Repository navigation
feat(daemon): daemon status lists the registered provider plugins - #3768
Conversation
|
Size Report
Startup median (7 runs, lower is better):
|
There was a problem hiding this comment.
All reported issues were addressed across 9 files
You’re at about 93% 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
aa05a74 to
2e08f8f
Compare
There was a problem hiding this comment.
All reported issues were addressed across 4 files (changes from recent commits).
You’re at about 93% 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
2e08f8f to
8566cee
Compare
8566cee to
5645905
Compare
|
The code has one problem to fix before merge, and CI is green: 18 checks, 0 failing at 5645905. There are no conflicts.
plugins list leaves out the daemon inventory, even while a daemon serves that state dir. The rule: one owner in daemon-contracts parses daemon.json, and every reader uses it. Please move readDaemonInfo and its field readers into daemon-contracts next to readRegistration, or extend readRegistration to return the parsed record. Then build readDaemonStatus from that record and its registered, absent or unreadable status, delete readRecord and isTransport, and report "unreadable" instead of running: false. A test with an unreadable daemon.json should show that case.
Could Not blocking, take or leave: plugins.md does not yet mention the daemon inventory that Of the open inline threads, none still apply. All five are fixed at 5645905, so please resolve them: --clean only on stop, plugins flags per action, null start time, start-time JSDoc and plugins usage text. No test here proves that a real daemon writes Before merge, one |
5645905 to
8e5814d
Compare
|
Thanks. Fixed in 8e5814d (stack top 7f449c5 passed
On the docs sentence: |
8e5814d to
e886ff7
Compare
|
The PR is ready at e886ff7. The earlier findings from #3768 (comment) are fixed, and I have no new blocking findings. Not blocking: The five open cubic-dev-ai threads are fixed at this head, so you can resolve them: the daemon usage and flags (#3768 (comment)), the plugins flags (#3768 (comment)), the unreadable start-time case (#3768 (comment)), the All 15 checks pass at e886ff7, and there are no conflicts. This was a read-only review: I did not rerun |
e886ff7 to
377404f
Compare
377404f to
7fa7572
Compare
|
On the non-blocking |
7fa7572 to
ae9ce10
Compare
ae9ce10 to
7a789be
Compare
|
Rebased onto main and the new #3767. |
|
Fixed the failed Coverage check (CRAP 30.0 at 0% coverage on the |
There was a problem hiding this comment.
All reported issues were addressed across 1 file (changes from recent commits).
You’re at about 97% 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
|
This PR is ready at b4b381f. The earlier clean review at 7fa7572 (#3768 (comment)) still holds, and nothing new needs fixing. Not blocking: Cubic's P3 thread on the plugins.test.ts:178 assertion still applies (#3768 (comment)). The two Smoke Tests jobs are still queued, and nothing is failing. This PR only changes how the CLI and daemon-contracts read records (daemon status, plugins list, readDaemonInfo). Smoke does reach readDaemonInfo on its daemon-connect route, but the read behavior is unchanged. I did not run tests or lint locally, and I could not check the Smoke outcome. There are no conflicts. The queued Smoke Tests need to pass before merge. This review covers b4b381f. The newer head bddb30f only pins the |
`daemon status [--json]` reads the daemon record without contacting the daemon and reports every provider it registered, with the reason any plugin failed. `plugins list --json` reports the running daemon's inventory next to the store selections. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… daemon records Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ecord Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
This PR is ready: the code is clean at bddb30f, and the earlier clean review at 7fa7572 (#3768 (comment)) still holds. The rebase onto the new base changed nothing in behavior, and the new test commits now pin the "unknown providers" wording that the open test thread asked for. Not blocking: the check The cubic-dev-ai P3 thread on plugins.test.ts no longer applies, because the test at bddb30f asserts the "providers are unknown" text, so please resolve it: #3768 (comment) All 20 checks pass, and I know of no conflicts. I reviewed only the logical patch from the range-diff (7a789be, b4b381f and bddb30f), not the roughly 220 files of rebase churn from the base moving. I did not re-trace the daemon-side writer of the daemon.json plugins list in this round, and I ran no tests. The only step left before merge is that the base branch feat/plugin-registry-v2 must be ready. |
bddb30f to
0c81506
Compare
|
Pushed |
|
This PR is ready. Since the earlier review at bddb30f, the rebased head 0c81506 extracts the unusable-record check into one predicate shared by the daemon status and plugins list renderers, and the '{not json' test in plugins.test.ts now asserts 'is invalid'. I read the diff and found the extraction preserves behavior. I did not run the tests, and I did not review the #3767 content that came in with the rebase, since it belongs to the base. Not blocking: the 'unreadable' state of the unusable-record check has no CLI-level test, and the render branch at daemon.ts:144 is never exercised for either unusable state. You could add one case in daemon.test.ts that stubs readDaemonStatus as { state: 'unreadable', stateDir } and asserts the output contains 'is unreadable, so whether a daemon runs there is unknown', and optionally a matching 'invalid' case for 'not a valid record'. You can take or leave this. The cubic-dev-ai thread on the plugins.test.ts '{not json' assertion no longer applies, because that test now asserts 'is invalid'. Please resolve it: #3768 (comment) There are no conflicts. Smoke Tests is still running, not failed, and this change touches no device or smoke route. Once CI is green, the PR waits for the base PR #3767 to land. |
…ment * origin/main: feat(provider-testmu): publish @agent-device/testmu on plugin contract v2 (#3770) docs(plugins): document plugin contract v2, the inventory and ADR 0034 (#3769) feat(daemon): daemon status lists the registered provider plugins (#3768) feat(plugins): plugin contract v2 and one provider registry (#3767) # Conflicts: # packages/daemon/src/sessions/handlers/lease.ts # src/__tests__/cloud-connect-testmu.test.ts # src/cli/commands/connection.ts # src/cli/commands/daemon.ts # src/daemon-client/daemon-client-metadata.ts # src/daemon-client/daemon-client.ts
Summary
Part 2 of 4 of #3755 (umbrella #3747), stacked on #3767. Blocked by #3748: do not merge before it.
agent-device daemon status [--state-dir <path>] [--json]readsdaemon.jsonwithout contacting the daemon and lists every provider it registered (builtin/store/embedder,active/failed, typederror.reason). A record whose pid/start time no longer names a live process reportsrunning: false.plugins list --jsonstill works without a daemon (it lists store selections), and when a daemon runs for the same--state-dirit also returns that daemon's inventory underdaemon.daemonandpluginsschema, usage and help updated;daemonstays out of MCP (mcpExposed: false).Not in this PR: the failed inventory entry inside the
provider-not-registerederror. #3748 owns that error, so I'll add the entry after rebasing onto it.9 files.
Validation
pnpm check:affected --run --head a304bb7f40(the stack top, which contains this layer): passed (exactCommit). CI owns integration, coverage and device lanes.🤖 Generated with Claude Code