fix(update): quiesce daemon before lifecycle lock - #501
Conversation
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 67d4224bf2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Summary
Live v0.0.71 reproduction
With the managed daemon active, both
tracedecay updateandtracedecay upgradefailed before doing work:cannot start update: daemon service install is already active; retry after it finishesThe daemon correctly held a shared lifecycle lease; the command incorrectly requested exclusive ownership before quiescing it. This also explains why earlier update runs could leave a previously-running service stopped: the original service state was not preserved across the hidden re-exec.
Verification
update_cmdtests passcargo clippy -p tracedecay --bin tracedecay --all-features -- -D warningscargo fmt --all -- --checkgit diff --checktracedecay updateagainst the preserved v0.0.71 profile stopped the daemon, refreshed every tracked integration including both Hermes profiles, advanced both version markers to 0.0.71, and restarted the servicetracedecay upgrade --no-heal --no-reinstallstopped PID 2711807, reported GitHub v0.0.71 current, restored the service as PID 2884363, and exited successfullyNo generated dashboard or binary artifacts are committed.