feat(mcp): land the harness refresh tool on main #378
No reviewers
Labels
No labels
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!378
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/land-the-harness-refresh-on-main"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The hour from 363 is only safe if something can end it early, and the thing
best placed to notice a missing tool is the model that just failed to find one.
This is the tool it uses to say so, and the first tool Echo offers that does
not belong to an MCP server.
The collision question I raised on 163 was already answered by the code. The
name is built by the same server__tool rule with harness as the server, so a
rostered server publishing it hits register's existing fatal collision, whose
comment says degrading past it would silently drop whichever tool lost.
Two of the five tests this broke were telling me something. An empty roster is
a documented no-tool capability boundary, so the refresh is offered only when
the roster is non-empty; a tool in the one configuration meant to have none is
a capability claim with nothing behind it. And the proxy test asserts what
reaches the model at the wire, where the count moving from 1 to 2 is the real
change here.
The other four assertions stay exact counts rather than becoming contains
checks. An exact count is what fails when a tool nobody intended appears.
The result text and the description both say the new list lands on the next
turn. A model reading otherwise would tell a member a tool is available before
it can see one, which is 211.
The doc split out rather than squeezing the roster doc past its cap. The first
harness-owned tool is its own concept and a later second one lands beside it.
closes #377
Co-authored-by: Kai Siren coilysiren@gmail.com
Co-authored-by: Claude noreply@anthropic.com
Re-applied onto main after the original merged into its own stale base branch
and never reached the product. Conflict resolved against 369, which moved the
MCP numbers into tuning.go; the tool names and the model-facing description are
not numbers and stay in mcp.go.
Co-authored-by: Kai Siren coilysiren@gmail.com
Co-authored-by: Claude noreply@anthropic.com