Skip to content

feat(mcp): read-only freshness signal + honest stale-session messaging#460

Merged
githubrobbi merged 1 commit into
mainfrom
feat/mcp-freshness-and-honest-stale-hint
Jun 18, 2026
Merged

feat(mcp): read-only freshness signal + honest stale-session messaging#460
githubrobbi merged 1 commit into
mainfrom
feat/mcp-freshness-and-honest-stale-hint

Conversation

@githubrobbi

Copy link
Copy Markdown
Collaborator

Why

Version-freshness should reach the audience that can actually act on it — the LLM host — and not appear as false hope to a human. Two coupled changes.

1. uffs --status: stop pointing a human at a button that severs a live session

MCP stdio sessions are spawned and OWNED by their AI host (Claude/Cursor/…). Telling a human to uffs --mcp reload them just kills the host's live link. The line now states the fact, with no action verb:

- Run `uffs --mcp reload` to restart stale sessions.
+ These run an older binary; the AI host that launched them refreshes on its next start.

(The managed HTTP gateway stale hint is unchanged — that one genuinely is user-restartable.)

2. MCP surface: a read-only freshness signal for the agent

  • uffs_status structured output adds server_version (the running uffsmcp build); the text output prints it too.
  • AGENT_INSTRUCTIONS gain a STAYING CURRENT note: UFFS self-updates; uffs --update is a quick one-shot the USER runs; if staying current matters, suggest it — never run it (tools stay read-only); a version bump shows up on the agent's next launch, not mid-session.

Constraints honored

  • All-read-only tool contract intact — no new mutating tool.
  • No network callsserver_version is the compiled-in version.

Tests

Builds clean; all uffs-mcp tests pass; clippy clean on both touched crates.

🤖 Generated with Claude Code

Two coupled changes so version-freshness is surfaced to the audience that
can actually act on it — the LLM host — and not as false hope to a human.

1. uffs --status no longer tells a human to `uffs --mcp reload` stale stdio
   sessions. Those sessions are spawned and OWNED by their AI host
   (Claude/Cursor/…); a human reload only severs the host's live link. The
   line now just states the fact: "These run an older binary; the AI host
   that launched them refreshes on its next start." (The managed HTTP gateway
   hint is unchanged — that one IS user-restartable.)

2. The MCP surface gains a read-only freshness signal for the agent:
   - uffs_status structured output adds `server_version` (the running uffsmcp
     build), and the text output prints it too.
   - AGENT_INSTRUCTIONS gain a STAYING CURRENT note: UFFS self-updates;
     `uffs --update` is a quick one-shot the USER runs; if staying current
     matters, SUGGEST it — never run it (tools stay read-only); a version
     bump shows up on the agent's next launch, not mid-session.

No new mutating tools — the all-read-only contract is intact. No network
calls added (server_version is the compiled-in version).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@githubrobbi githubrobbi enabled auto-merge (squash) June 18, 2026 17:31
@githubrobbi githubrobbi merged commit 3d0c350 into main Jun 18, 2026
21 checks passed
@githubrobbi githubrobbi deleted the feat/mcp-freshness-and-honest-stale-hint branch June 18, 2026 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant