Repository navigation
Conversation
Size Report
Startup median (7 runs, lower is better):
|
|
There was a problem hiding this comment.
All reported issues were addressed across 26 files
You’re at about 92% of the monthly reviewed-line limit. You may want to disable incremental reviews to conserve quota. Reviews will continue until that limit is exceeded. If you need help avoiding interruptions, please contact contact@cubic.dev.
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
1a5cedd to
9f6aff4
Compare
There was a problem hiding this comment.
All reported issues were addressed across 2 files (changes from recent commits).
You’re at about 92% of the monthly reviewed-line limit. You may want to disable incremental reviews to conserve quota. Reviews will continue until that limit is exceeded. If you need help avoiding interruptions, please contact contact@cubic.dev.
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
9f6aff4 to
4488553
Compare
5228ab7 to
a972b47
Compare
685c01a to
c95c9c8
Compare
a972b47 to
d80f096
Compare
c95c9c8 to
44eefce
Compare
There was a problem hiding this comment.
All reported issues were addressed across 14 files (changes from recent commits).
You’re at about 94% of the monthly reviewed-line limit. You may want to disable incremental reviews to conserve quota. Reviews will continue until that limit is exceeded. If you need help avoiding interruptions, please contact contact@cubic.dev.
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
44eefce to
5035bed
Compare
d80f096 to
415e080
Compare
769eda3 to
ddb6a5e
Compare
An attach client connects to the daemon registered in its state directory and never starts, replaces or kills one, including after a request times out; it fails with daemon-not-running or daemon-incompatible. ensureDaemon() starts a missing daemon and replaces an incompatible one only through the daemon's own quiesce answer, refusing with daemon-busy while it holds work and never replacing a daemon that predates the capability. managed stays the default and unchanged. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
415e080 to
1bacb95
Compare
ddb6a5e to
e9819db
Compare
Summary
Layer 2 of 3 for #3754 (umbrella #3747); based on #3764. The client half: who owns the daemon is now an explicit choice.
createAgentDeviceClient({ daemonLifecycle: 'attach' | 'managed' });managedis the default and behaves as before (additive in 0.21.x).attachconnects to the registered daemon and never starts, replaces or kills one, including after a timeout. A missing daemon fails withdetails.reason: 'daemon-not-running', an incompatible one with'daemon-incompatible'(both identities, hint namesagent-device daemon stop).ensureDaemon({ stateDir, onStart })starts a missing daemon and replaces an incompatible one only through the quiesce request from feat(daemon): quiesce request that retires an idle daemon atomically #3764. A busy daemon failsdaemon-busy, a daemon without the capability is never replaced, and a live daemon on another transport is quiesced, not killed. A daemon that times out on quiesce is force-retired only after repeated failed liveness probes.daemonBaseUrlconnection never starts or retires a local daemon in either mode;ensureDaemonreads no remote env.26 files incl. docs and changelog. The repo has no changeset tooling, so the
CHANGELOG.mdUnreleased entry is the changeset. Layer 3 adopts this in the CLI and MCP.Validation
pnpm check:affected --run --head e9819dbb51: passed. New tests cover attach (missing, incompatible, unreachable, timeout),ensureDaemon(start, idle replace, busy, old daemon, transport, contention, unconfirmed retirement) and remote.🤖 Generated with Claude Code