Repository navigation
Conversation
Both meta-tools were annotated destructiveHint: true, but neither deletes anything: they change which tools are exposed and can be reversed by the other. Set destructiveHint: false, keep idempotentHint: true, assert the annotations in tests and update the meta intent node. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZj3jC148r1VwBYogZpWKL
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JZj3jC148r1VwBYogZpWKL
TS review:
|
| # | Sev | Location | Finding |
|---|---|---|---|
| 1 | LOW | tests/metaTools.test.ts (new "discovery meta-tools as read-only" test) |
Pins annotations this PR doesn't change; a cheap regression guard, marginally outside "only the two flipped annotations". |
| 2 | LOW | src/meta/AGENTS.md:23 |
"calling either again is a no-op" is true for state but not for the response (a repeat disable_toolset returns success: false). Suggested "no further effect on state". |
{
"recommendation": "APPROVE",
"summary": "Surgical, correct annotation fix for enable_toolset/disable_toolset with matching doc update and strict regression tests; only minor wording and scope notes.",
"findings": [
{ "severity": "LOW", "file": "tests/metaTools.test.ts", "issue": "Discovery read-only annotation test covers behaviour this PR does not change; acceptable as a regression guard." },
{ "severity": "LOW", "file": "src/meta/AGENTS.md", "line": 23, "issue": "'no-op' holds for state only; consider 'no further effect on state'." }
]
}Generated by Claude Code
Fixes for the TS review, and re-reviewMapping to the review comment above:
Re-review of the head ( {
"recommendation": "APPROVE",
"summary": "The annotation change is surgical and correct, the AGENTS.md wording now accurately describes state-level idempotence, and the tests cover the stated invariant.",
"findings": []
}Generated by Claude Code |
Requested by Ben · project thread
Before:
enable_toolsetanddisable_toolsetwere advertised to MCP clients withdestructiveHint: true, so clients could treat turning a toolset on or off as a data-destroying action and prompt for confirmation.After: both advertise
destructiveHint: false, idempotentHint: true. In the MCP specdestructiveHintmeans the tool may delete or overwrite data. These tools only change which tools are exposed, one reverses the other, and repeating either has no further effect on state.How: two annotation values in
src/meta/registerMetaTools.ts, a newannotationstest block intests/metaTools.test.ts(fails on the old values), and the matching invariant line insrc/meta/AGENTS.md. Nothing else changes, so it merges cleanly with the sibling PR that changesdisable_toolset's removal behaviour. No CHANGELOG entry: 0.7.0 is already released and the release PR adds the next entry. Unchanged by design:openWorldHintstill defaults to true per spec for these tools; that is outside this bug.Base:
main. No stacking, any merge order works.🤖 Generated with Claude Code
https://claude.ai/code/session_01JZj3jC148r1VwBYogZpWKL