Conversation
Size Report
Startup median (7 runs, lower is better):
|
There was a problem hiding this comment.
All reported issues were addressed across 14 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 6 files (changes from recent commits).
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
|
The code at d4a7be6 looks right, but the PR is not ready to merge yet. I could not run the tests, and I judged behavior only by reading the code against the merge-base. All 14 checks pass, and there are no conflicts. Not blocking, and you can take or leave these. In scripts/clean-daemon.ts the check Could the PR be smaller still? It already removes Before merge, please resolve the open P1 thread: the |
There was a problem hiding this comment.
All reported issues were addressed across 11 files (changes from recent commits).
Tip: Review your code locally with the cubic CLI to iterate faster.
Re-trigger cubic
|
This PR is ready at 1b2e47e. The zombie-pid and timeout fixes from the earlier review (#3124 (comment)) are in, and the regression tests now cover them. Not blocking: the All 14 checks pass on 1b2e47e, and the unit tests and the real-process smokes (clean, HTTP, replace) cover the changed files. I did not run the tests myself. I judged the regression tests by reading the old code against their mocked inputs. I also did not confirm that Vitest ties the unhandled rejection to the timeout test, but the run fails without the fix either way. The timeout fallback still removes daemon.json and daemon.lock in its finally block even if the async stop comes back retained. That predates this PR and is left for the #3116 work, so I did not raise it again. Nothing in this change blocks merge. Please resolve or answer the two open Cubic threads on test/integration/support/daemon-test-cleanup.ts, then merge after #3123. No conflicts. |
Summary
Daemon stopping now returns an explicit outcome. One function verifies the captured process lifetime, sequences TERM/KILL, and waits for exit. PID reuse and a verified zombie prove that lifetime ended; unreadable identity, failed signals, and exhausted waits do not.
Manual stop refuses success when exit is unconfirmed. Startup cleanup preserves normalized error reasons, and the transitional timeout fallback reports rejection instead of leaving it unhandled. Integration cleanup retains unconfirmed state and preserves the primary test failure.
18 files changed. Builds on #3123; part of #3116. The dependent client migration replaces the transitional cleanup paths.
Validation
Tested
1b2e47efb5:AGENT_DEVICE_REQUIRE_LOOPBACK_TESTS=1 pnpm check:affected --base refactor/shared-daemon-registration --runpassed; all runnable checks completed.