Repository navigation
fix(daemon): cancel shutdown producers and verify store-free stop - #1161
Merged
Merged
Conversation
Give warmup a daemon-owned context, join its producer before stopping the final watcher and closing shared state, and reject watcher handoffs after stop. Preserve canceled batch cleanup and forward cancellation to startup resolution and derived passes. Add deterministic parser, handoff and teardown-order regressions. Refs #1022.
Closed
14 tasks
* origin/main: test(mcp): retire collision worker before missing-owner retry
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.
Daemon shutdown could leave startup work running, skip store close after a contract-drain error, or wait for an already-exited PID until the CLI forced a kill. Shutdown now cancels and joins its producers, closes their stores, and verifies completion against the captured store lock and runtime identities.
Focused race controls for the product at
5e223d667e9eca8d23e07f51787ddf21883362f1cover cancellation, SQLite close/reopen through unchanged startup, failed publication with retained repair debt, cross-group test-edge correctness and shutdown ownership. The pinned Go 1.27.3 / golangci-lint 2.14.0, formatting, affected vet, CGO/workflow guards, tidy and module verification passed. The test-only CI corrections are pushed atffbec2b21bde2c3ca991aed6e2847b2870424bfc. Capability/debt controls, 20 repeated relay-restart runs and protocol/no-replay neighbors passed under race. A later CI run exposed a catalog fixture shutting down before Serve began; a bounded real handshake now establishes admission. The failing control passed 30 race repetitions, with 15 neighboring top-level passes and 18 subtest passes. All prescribed pinned checks passed again before push. Final-head hosted CI passed: 24 successful checks and two skipped jobs. Only three test files differ from the measured product.Fresh 29-repository validation passed all four observations at
5e223d667: complete stops 0.694–3.466 s, backend-close-to-CLI 53.288–60.603 ms, and matching graph calls 137.849–324.658 ms after readiness. All declared roots were ready/loaded; enrichment was still running. The first restart repaired interrupted projection work in 10.554 s before readiness; clean census phases took 96.919–115.905 ms. No forced kill, watchdog dump or OOM occurred, and evidence/ownership/lock/cleanup checks passed. The VM stopped normally.The ledger now has passing observations for 48/48 distinct rows across their recorded source versions. Earlier results retain their source attribution, including one-hour churn and live-worktree stops; every row is not being relabeled as a final-head rerun. The earlier 9.026-second full-workspace failure remains recorded. Acceptance is complete; PR merged as
9797334420c47b2892652d8f14a2e84bc85dfc10.Closes #1022; prerequisite #995 is merged. #1022 is closed and Done; #1029 can complete its own CI.