Skip to content

test(cli): cover stop and offline untrack recovery - #1172

Merged
zzet merged 12 commits into
mainfrom
test/offline-untrack-escape
Oct 29, 2026
Merged

zzet merged 12 commits into
mainfrom
test/offline-untrack-escape

Conversation

@zzet

@zzet zzet commented Oct 28, 2026 •

Copy link
Copy Markdown
Owner

An unwanted cold warmup has documented recovery steps and a repeatable opt-in test: stop the daemon, untrack the absolute repository path while offline, then restart. The test observes active indexing, measures complete stop through child exit and socket removal, verifies the store lock is released, and checks that restart purges the removed repository while keeping the other repository ready.

Closes #1029. Prerequisite #1022 is merged. The CLI guide, onboarding troubleshooting and v0.64.12 upgrade note use the same recovery procedure. Offline unit tests cover removal, unknown paths and unresolvable bare prefixes.

At final head e6a8b4b79957769262006e75bb0ae214104f8654, affected race controls and all pinned lint, formatting, vet, CGO/workflow and module checks passed before push. Native evidence at 517d4d146 remains applicable: the final integration changes only an upstream test fixture; all six issue-specific files and production code are unchanged.

Native gate Consecutive passes Maximum complete stop (limit 5 s) Maximum offline untrack (limit 1 s) Forced kills
macOS 20/20 301.858 ms 41.767 ms 0
Linux 20/20 175.393 ms 28.139 ms 0

These runs cover 80 normal daemon exits. Process, socket, fixture and handle cleanup was verified. Linux used the retained product built at 5e223d667, whose non-test Go source matches the integration, and a fresh race test binary from 517d4d146. An initial owned-cache permission failure occurred before product execution and is retained separately; no native case failed or was retried. Detailed evidence.

Final-head CI passed (24 successful, two skipped checks), and the PR merged as 12625b0ca18976e8b3f2351c2f668fdd439f81f0. #1029 is closed and marked Done on the project board. Acceptance retains each native result’s original source attribution.

zzet added 3 commits October 29, 2026 12:16
* commit '5e223d667e9eca8d23e07f51787ddf21883362f1':
  test(indexer): use promoted batch writer in publication failure control
  test(daemon): bind repair failure injection to the tracked restart configuration
  test(daemon): use resolved index defaults for restart failure fixture
  test(daemon): use the registered Go parser package in restart fixture
  fix(indexer): resume canceled test projections on unchanged startup
  test(indexer): cover successful cancellable projection repair across groups
  fix(indexer): stop canceled warmup test projection between complete groups
  Keep sidecar shutdown from starting implicit SQLite checkpoints
  Share SQLite physical close-checkpoint policy between stores
  test(mcp): retire collision worker before missing-owner retry
…erage

* commit 'eff4c97a69b84bf8956b62827d3bf7921ca6e871':
  test(daemon): join restarted relay before closing host transport
  test(indexer): document checked persistence outside delta staging
…tion

* commit 'ffbec2b21bde2c3ca991aed6e2847b2870424bfc':
  test: await catalog daemon serve admission before returning
@zzet
zzet changed the base branch from fix/daemon-stop-teardown to main October 29, 2026 13:07
@zzet
zzet marked this pull request as ready for review October 29, 2026 13:51
@zzet
zzet merged commit 12625b0 into main Oct 29, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Test and document the runaway-warmup escape: daemon stop, then offline untrack

1 participant