Repository navigation
docs: follow bounded MCP lists and strict tenant arguments - #83
Conversation
WalkthroughThis revision is documentation-only: 18 N|Solid skill guides (+48/−38 across 14 commits) now describe the matching Console MCP contract — bounded list results (read The macOS PR-Lens: the earlier overview/termination-flow diagrams described a head that still included the macOS runtime fix; that fix now lives in #84 and this revision is documentation-only, so no flow diagram is attached. AssessmentAddressed since the last review round (verified in the diff):
Validation at this head:
Verdict: APPROVE — no blocking correctness, security or performance findings. A clean, documentation-only head with all follow-ups from the previous review round addressed and CI green on all three OS jobs. |
brycebaril
left a comment
There was a problem hiding this comment.
Thanks, this gets the server's list limits and its stricter tenant argument into the skills. I checked the facts it states against the server change, and they hold:
list_tenants,expression_help,vulnerability_dataandlist_alert_starterstake notenant.list_appsdefaults to 50 apps, andbyAppto 25.- List results stay within 20,000 bytes, and
outputCutnames what was left out. list_alert_rulesreturns a bare array.- The expression limits and the settings-or-config alias are right.
Requesting changes for scope, in two parts.
The skills. The PR adds about 2,800 words to the skills, and most of it isn't about the list limits:
ns-fleet-healthgoes from 716 words to 1,607. Its Node.js runtimes bullet grows from one line to 476 words: platform qualifiers, pooled advisories, paging through the REST agent inventory, and a task budget. Its crashes bullet is 270 words.ns-node-upgradegets the same runtime procedure, about 500 words.ns-configure-agents(about 660 words) andns-manage-alerts(about 560) get new rules: when a name counts as free, what counts as a go-ahead to replace a config or rule, and what to claim after a timeout.
These are new policies, not follow-ups to the list cap, and each deserves a review of its own. They also load on every run, and ns-fleet-health is usually the first skill people run.
Please keep this PR to what the server change does:
- the tenant lines, as they are;
- the Bounded Lists section in
ns-fleet-health; - the notes on omitted apps in
ns-analyze-tracingandns-generate-sbom; - one sentence each for:
byApp's limits and refusals;list_runtimes' 20 apps;- partial
list_vulnerabilitiesresults; - a cut
list_alert_rules: a name it doesn't show isn't proof the name is free; - the cursor-page retry;
- the settings-or-config alias.
The rest can go in PRs of their own.
The macOS fix. The two cancelManagedTree commits are right. On macOS, probing a process group whose members are all zombies returns EPERM until they're reaped. The fix keeps polling for ESRCH within the same deadline and never confirms on EPERM, and the new tests cover both cases.
But the fix is independent of this change, and it's needed now. The same EPERM failure, in "terminates the whole managed tree (grandchild included) before resolving", failed the macOS job twice here. It also failed main on 10-26 (run 40378567904) and #78. This PR has to wait for the server change, but the fix doesn't. Please open it as its own fix: PR so it can merge first, then rebase this one on it.
The description says no runtime code or bundled scripts changed, but mcp-runtime-runner.ts does until the fix moves out. It also says the PR stays a draft until the server contract is ready. It's out of draft now, but the server change hasn't merged, so this still has to wait for it.
c477221 to
1f970f3
Compare
brycebaril
left a comment
There was a problem hiding this comment.
Thanks, this now covers what the server change does, and nothing more. It adds about 580 words instead of 2,800, and ns-fleet-health grows by 255 words instead of 891. Both suggestions are in.
I checked the new sentences against the server, and they hold:
byApp's arguments and its 25-app default;list_apps' default of 50;- the
settings/configalias; - the expression limits.
It merges after #84, and after the server change ships.
Explain partial fleet discovery, list limits, cursor-page retry, tenantless tools and the config/settings alias. Keep absent apps from being treated as healthy or missing. Requires the matching N|Solid Console MCP server release.
Verify an omitted rule name through a complete authorized source before treating it as new, while reusing authorization for the same action and target. Preserve positive matches from partial lists. Distinguish samples, lower-bound totals and incomplete vulnerability/runtimes evidence in the skills that consume bounded lists.
1f970f3 to
348f2c3
Compare
Document the matching N|Solid Console MCP contract: tenantless tools, bounded list results and omission metadata, app-scoped reads, cursor-page retries, the
settings/configalias and expression limits.The skill updates stay limited to those contract changes. Runtime and crash guidance is concise; broader advisory-platform, REST-inventory, replacement-authorization and uncertain-save procedures are deferred to separate review.
The macOS process-group fix is separated into #84 (
fix/macos-runtime-reaping) so it can merge independently. This documentation branch is based on that fix to keep its own diff limited to skill guides.Requires the matching N|Solid Console MCP server release before merging.
Validation: unchanged skill frontmatter and original Guardrails, plugin and marketplace asset synchronization, whitespace checks, lint, build and the complete local test suite. Native Claude
/review highandcodex reviewcompleted on the full documentation layer and its final clarification delta; the coordinator independently checked their findings. Local validation includes 738 passing tests; remote CI is checked on the published HEAD.