Skip to content

docs(specs): commit specs 104/105 and put both on the roadmap - #1232

Merged
Dumbris merged 1 commit into
mainfrom
docs/specs-104-105-roadmap
Sep 9, 2026
Merged

docs(specs): commit specs 104/105 and put both on the roadmap#1232
Dumbris merged 1 commit into
mainfrom
docs/specs-104-105-roadmap

Conversation

@Dumbris

@Dumbris Dumbris commented Sep 9, 2026

Copy link
Copy Markdown
Member

Summary

Specs 104 (auto routing mode) and 105 (agent-token scope hardening) were written and cross-reviewed on 2026-09-07 but never committed. Five already-merged PRs cite 105 by name as their acceptance contract. This lands both specs and records them in roadmap.yaml, so the DAG shows what shipped and what is left.

Spec 105 — agent-token scope hardening

The Spec 104 review checked the scoped-token promise against the code one surface at a time and found eight places where a legitimately narrow token could learn about or act on servers outside its grant. Five fix sessions ran from that review and merged on 2026-09-08, each live-verified against a baseline binary built from main and reviewed to a clean cross-model verdict:

PR FR Fix
#1223 FR-009 call_tool_* requires the target tool's tier, fail closed on unresolved tiers
#1224 FR-007 tail_log authorizes the named server before lookup, non-disclosing refusal
#1225 FR-003 set_profile reports token ∩ profile; non-selectable reads as nonexistent
#1226 FR-001 Cached responses carry the producer's authorization snapshot
#1227 FR-006, FR-004 Prompts authorized by canonical registration owner; no enumeration on a deleted pin

The epic records those five as done and carries eight todo tasks, one per remaining FR group, lifted from the "Follow-ups / Spec 105 gaps" checklists in those PR bodies. The two heaviest are FR-007 per-record log attribution (a/b and a_b share one log file; Docker cleanup matches by name prefix) and the FR-003/FR-004 selectable-profile predicate for unpinned tokens.

Spec 104 — auto routing mode

Measures the three candidate surfaces per session, on the catalog that session will actually see, and serves the richest rung under a token budget. Depends on 105: its FR-016 states the invariant those corrections make true. P1 is US1–4 (rung selection, session stability, scoped measurement, routing API and doctor); P2 is US5–6 (hysteresis reporting, tray and Web UI, telemetry).

Notes

Validation

python3 scripts/gen-roadmap.py --check-github0 errors. The single warning (mcp-2026-upgrade has no pr: link and no child tasks) is pre-existing and untouched here. ROADMAP.md regenerated; the pre-commit freshness hook passes.

Specs 104 (auto routing mode) and 105 (agent-token scope hardening) were
written and cross-reviewed on 2026-09-07 but never committed; five merged
PRs already cite 105 by name as their acceptance contract. This lands both
and records them in roadmap.yaml so the DAG reflects what shipped and what
is left.

Spec 105 — agent-token scope hardening. The Spec 104 review verified the
scoped-token promise against the code one surface at a time and found eight
places where a legitimately narrow token could learn about or act on servers
outside its grant. Five fix sessions ran from that review and merged on
2026-09-08: #1223 target tier, #1224 tail_log, #1225 set_profile, #1226
read_cache provenance, #1227 prompt owner and deleted-pin enumeration. Each
was live-verified against a baseline binary and reviewed to a clean verdict.
The epic records those five as done tasks and carries eight todo tasks, one
per remaining FR group, taken from the "Follow-ups / Spec 105 gaps"
checklists in those PR bodies: FR-005 retrieve_tools scoping, FR-008 direct
publication identity, FR-010 refusal shapes, the FR-003/FR-004 selectable-
profile predicate for unpinned tokens, FR-002 legacy cache invalidation,
FR-007 log-record attribution, FR-009 producer-side identity, and the
FR-011/013/014 regression suite.

Spec 104 — auto routing mode. Measures the three candidate surfaces per
session on the catalog that session will actually see and serves the richest
rung under a token budget. It depends on 105: its FR-016 states the
invariant those corrections make true. P1 is US1-4, P2 is US5-6.

PR evidence sits on the child tasks rather than the epic, because
gen-roadmap.py --check-github reads an all-merged epic pr: list as "this
epic is done" and the scope-hardening epic is not.

Also flips activity-storage-bounds to done: #1174 wired the 64KB write-path
cap and #1214 bounded the per-server tool_calls buckets, stopped omitempty
erasing configured zeros and added db compact, closing #1175 and #1176.

The specs/README index rows are appended for both, though that table has
been stale since 043 and does not list 044-103.

Validation: gen-roadmap.py --check-github reports 0 errors. The one warning
(mcp-2026-upgrade has no pr: link or child tasks) is pre-existing.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying mcpproxy-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: fe75aa7
Status: ✅  Deploy successful!
Preview URL: https://e4fa14dd.mcpproxy-docs.pages.dev
Branch Preview URL: https://docs-specs-104-105-roadmap.mcpproxy-docs.pages.dev

View logs

@Dumbris
Dumbris enabled auto-merge (squash) September 9, 2026 07:00
@Dumbris
Dumbris merged commit 12a40f5 into main Sep 9, 2026
37 of 38 checks passed
@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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.

2 participants