Repository navigation
Polish the CLI and skill-installer reporting found in release validation - #3585
Conversation
Pragmatic Code Review: PR #3585Review Type: Initial Review (no prior reviews or comments on the PR) Scope reviewed: the single commit SummaryA net improvement, and every acceptance criterion is met. The CLI, installer, daemon and error-text changes are small, well tested and consistent with the surrounding code. The one area with substance is Requirements Check (issue #3570)
Documentation: Code Review FindingsCritical IssuesNone. Suggested Improvements1. 🟡 Important: the system-root exclusion also removes types the caller named EnumerateScope {
member_ids: collection_member_ids.as_ref(),
knowledge_only: matches!(scope, SearchScope::Knowledge),
},
Recommendation: drop a candidate only when its own type is a Knowledge type and its root is not (a 2. 🟡 Important: the paging loop is not exercised by any test // More fragments than a page holds, all newer than the user's nodes.
for i in 0..70 {With the default limit of 20, 3. 🟡 Important:
4. 🟢 Suggestion: the root cache does not save the walk it is described as saving // Whether each root met so far is a system type, so the nodes of one
// subtree cost one lookup between them.
5. 🟢 Suggestion: system roots still consume the listing budget when no type is named The doc comment says the two narrowings happen "before 6. 🟢 Suggestion: stale doc comments after passing
Nitpicks
Checks on the areas named in the request
RecommendationAPPROVE. Findings 1 to 3 are worth folding into this PR; none blocks the merge. |
malibio
left a comment
There was a problem hiding this comment.
Automated pragmatic-code-review: APPROVE (posted as a comment — GitHub blocks self-approval). Full findings in the review comment above.
Review addressed (commit 1511bfd)Addressed
Skipped
Re-Review DecisionDecision: NO RE-REVIEW NEEDED Rationale: The review verdict was APPROVE with no blocking findings. The follow-up is one added condition in the listing filter and one new installer status line, each pinned by a new test, plus comment corrections. |
…ion (closes #3570) - diagnostics lists what a refused database needs, with unsupported_extensions and refusal in JSON; database use warns when the new default is refused - skill status names a detected harness without the skill; a re-run of skill install leaves current files alone and reports them up to date; uninstall removes the skills directory install created - logs follows NODESPACE_HOME - a failed command prints the gRPC code and message, not the metadata map - type names take the right article (an ai-chat-message) - a refused root create names no id - skill guidance confidence is held to 0.0-1.0 - nodespaced --help prints usage - an empty-query search confined to a collection lists its members, and a type-only listing is newest first and leaves out system roots' fragments Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… marketplace install in skill status - A listing judges only a knowledge-type node by its root, so a type named outright is listed wherever it sits - The fragments test reads past several pages - skill status reports Claude Code's marketplace install as installed - Correct comments on the root cache, a create refusal's node_id and the pruned skills directory Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1511bfd to
4c36662
Compare
Closes #3570.
Nine small reporting fixes from the 2026-10-05 headless validation of
main.What changed
nodespace diagnosticslists what a refused database needs after its path, and its--jsonentries carryunsupported_extensionsandrefusal, asdatabase listdoes.database usestill accepts a refused database and now prints aWarning:line on stderr.skill statusnames a harness that is present without the skill (detected, skill not installed) instead of printing "No agent harnesses detected".skill installover a current install rewrites nothing and reportsskill already up to date. A file that differs is still updated and reported as installed.skill uninstallremoves theskills/directory install created when it is left empty. The harness's own directory is never touched.NODESPACE_HOMEset,nodespace logsresolves only to the log under that home.NotFound: …) without theMetadataMap{…}dump. Diagnostics' per-query errors use the same form.skill guidanceconfidence is held to 0.0–1.0 at the wire. The underlying score keeps its density boost for ranking.nodespaced --help/-hprints usage and exits 0. An unknown argument is still refused with status 2, now followed by the usage.search "" --collection <path>lists the collection's members. They are fetched by id; before, they were picked out of a capped slice of the whole table and usually weren't in it.search "" --type textno longer leads with skill and guidance paragraphs.Behaviour changes worth a look
cli.mdsays so.Tests
bun run test:changedpasses (Rust workspace, skill package, scripts; frontend not reached by the diff). New tests cover each bullet; the two listing tests were checked to fail with the fix disabled.Docs
packages/skill/references/cli.mdupdated where output changed. No architecture doc describes these outputs, so nodespace-docs is unchanged.🤖 Generated with Claude Code