Conversation
…tion fix: migrate legacy statusline runner
fix: make SQLite driver optional for CLI updates
Network-group probes (DNS/TCP/TLS/HTTP) use short wall-clock timeouts and ran in the same Promise.all as checkers that make synchronous child-process calls (gh auth status, npm view, node --check). Those freeze the single thread for up to ~1.5s; a frozen loop fires the probe timers the instant it resumes - before the already-completed I/O callback runs - yielding false "unreachable"/timeout results on a healthy connection. - check-runner: run the network group against a free event loop, before the loop-blocking groups - github-reachability: resolve via getaddrinfo (dns.lookup) instead of c-ares so it matches the path git/gh/fetch use; defer raceTimeout rejection one tick so a completed result wins over a spuriously-fired timer
ConfigManager caches loaded config in a process-global static. Bun shares
that static across test files in one process, so a sibling test that loads a
real ~/.claudekit/config.json (when CK_TEST_HOME is unset) leaves it
populated. config.test.ts cleared the cache only in afterEach, so its first
test ("should return default config when no config file exists") inherited the
leaked value and failed - but only on machines that actually have a
non-default config (clean CI runners see the default, so it stayed green).
Clear the static cache and global flag in beforeEach too, mirroring the
existing afterEach, so the test is independent of cross-file state.
setupTestPaths().cleanup() did `process.env.CK_TEST_HOME = undefined`, which Node coerces to the literal string "undefined" rather than removing the var. After cleanup getTestHomeDir() then returns "undefined", so PathResolver resolves config/cache under a bogus relative "undefined/..." path instead of restoring the production location. Use Reflect.deleteProperty(process.env, "CK_TEST_HOME") to truly remove it, matching the convention already used in the other test files (and satisfying biome's lint/performance/noDelete rule, unlike the `delete` operator).
The /api/system/info handler detected Bun with `typeof Bun !== "undefined"`, which is only true when the CLI itself runs under the Bun runtime. Under the shipped Node build it is always null, so the dashboard Health Check always showed "Bun — not found" even when bun is installed and on PATH. Probe `bun --version` on PATH via the existing runCommand helper, exactly like the sibling git/gh checks; map empty/error output to null so an absent bun still shows "not found".
…cache-isolation test: reset ConfigManager static cache before each config test
test: properly unset CK_TEST_HOME in test-paths cleanup
…path-probe fix: detect bun via PATH in system info instead of in-process Bun global
…kills feat(init): preserve ignored skills during updates
…racking fix: converge hook self-heal tracking
fix(install): gate dynamic team hook rehydration
…t-loop-starvation fix: prevent false-negative GitHub network checks in ck doctor
The Zod StatuslineThemeSchema accepts quotaLow/quotaHigh but the JSON schema file still rejected them via additionalProperties: false, so schema-driven config editing silently dropped the quota theme colors. Mirror the Zod constraints in ck-config.schema.json and add a parity test asserting the JSON schema theme keys exactly match the Zod shape, plus a round-trip test that both keys survive CkConfigSchema parsing.
Match the engineer runtime default. Yellow at 85%+ collided with the brightYellow model section; red follows the contextHigh convention.
…parity fix(schema): add quotaLow/quotaHigh to ck-config JSON schema theme
feat: add Kiro skill and migrate support
fix: support Antigravity 2 migration paths
mrgoonie
commented
Jun 18, 2026
mrgoonie
left a comment
Owner
Author
There was a problem hiding this comment.
Review result: Approve, posted as comment because GitHub does not allow the PR author to self-approve.
Findings after fix: no remaining blockers.
What I found and fixed:
- The dev-release bot commit path could advance
package.jsonwhile leaving generated CLI metadata stale. This made the final[skip ci]PR head capable of shipping stalecli-manifest.jsondata even though the parent PR CI passed. - Fixed in
9eda3c04by regenerating CLI manifest/reference docs after release version bumps, including generated metadata in release commits, and adding prepublish validation for manifest/package version parity. - Verified by Release Dev creating
24e360f8 chore(release): 4.4.0-dev.16 [skip ci]withpackage.jsonandcli-manifest.jsonboth at4.4.0-dev.16.
Checks:
- GitHub PR CI on
9eda3c04: Test, Metadata Deletions Check, Release Dry-Run Check all passed. - GitHub Release Dev on
9eda3c04: passed. - Final PR head
24e360f8:PATH="$HOME/.bun/bin:$PATH" bun run ci:localpassed locally, including manifest/docs drift check and packaged CLI verification. - Pre-push hook on
9eda3c04: passed local CI parity plus extra UI vitest suite.
Duplicate/prior implementation gate: clear. This is the intentional dev -> main official release aggregation PR.
Project standards checked: CLAUDE.md, AGENTS.md, docs/code-standards.md, docs/system-architecture.md.
Remaining risk: medium release blast radius, but no unresolved review findings.
Contributor
|
🎉 This PR is included in version 4.5.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
devline tomainfor the 4.4.0 official release.package.jsonwithout regeneratingcli-manifest.json, leaving the final[skip ci]PR head able to ship stale CLI metadata.9eda3c04and verified by Release Dev bot commit24e360f8(4.4.0-dev.16), wherepackage.jsonandcli-manifest.jsonnow match.Linked Issues / Included PRs
No single release issue. Included merged PRs: #868, #870, #872, #873, #874, #875, #877, #879, #880, #882, #884, #885, #887, #888, #890.
Review Result
/ck:review-pr --fix --reply: blocker fixed.dev -> mainaggregation release PR.CLAUDE.md,AGENTS.md,docs/code-standards.md,docs/system-architecture.md.Test Results
24e360f8:PATH="$HOME/.bun/bin:$PATH" bun run ci:localpassed locally.cli-manifest.jsonversion4.4.0-dev.16.9eda3c04: Test, Metadata Deletions Check, Release Dry-Run Check passed.9eda3c04: passed and created24e360f8 chore(release): 4.4.0-dev.16 [skip ci].9eda3c04: local CI parity plus extra UI vitest suite passed.Changes
src/commands/portable,src/commands/migrate,src/domains/installation/merger,src/commands/update, CLI docs/manifest, migration/update/health-check tests, release metadata automation.Ship Mode