From 2fb835a1aa4cb6260445f2ef3f10057aabd2fbe7 Mon Sep 17 00:00:00 2001 From: jcwalker3 Date: Tue, 28 Jul 2026 10:01:01 -0500 Subject: [PATCH] docs(remote-mcp): stamp the commit the #956 anchors were re-derived at The anchor fixture records the commit its anchors were taken at, and the threat model must state the same commit, so a reviewer can resolve every cited line at a named revision. Both still named aad5c8b4, where the anchors no longer resolve after the transport seam shifted the lines they point at. Point both at c1626081, the seam commit whose tree the anchors were re-derived from. This commit changes no .py file, so every anchor that resolves at c1626081 resolves here too. The historical note about #930's drift between 7bf4f125 and aad5c8b4 stays as written -- it is the reason the guard exists. Refs #931, #956. Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/remote-mcp/threat-model-anchors.json | 2 +- docs/remote-mcp/threat-model.md | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/remote-mcp/threat-model-anchors.json b/docs/remote-mcp/threat-model-anchors.json index 0b24688..3fe4e3a 100644 --- a/docs/remote-mcp/threat-model-anchors.json +++ b/docs/remote-mcp/threat-model-anchors.json @@ -8,7 +8,7 @@ "document. #930's inventory had no such guard and its gitea_mcp_server.py", "anchors drifted between 7bf4f125 and aad5c8b4." ], - "generated_against_commit": "aad5c8b42361d380a8eeb07b94b90815e594c2c5", + "generated_against_commit": "c1626081757dff76ea49fcb1869fc0362dea45b1", "anchors": [ {"anchor": "gitea_mcp_server.py:24728", "expect": "mcp_daemon_guard.bind_native_mcp_transport()"}, {"anchor": "mcp_daemon_guard.py:49", "expect": "_PRODUCTION_TRANSPORTS = mcp_transport_config.SUPPORTED_TRANSPORTS"}, diff --git a/docs/remote-mcp/threat-model.md b/docs/remote-mcp/threat-model.md index 8acb3cd..4662e4d 100644 --- a/docs/remote-mcp/threat-model.md +++ b/docs/remote-mcp/threat-model.md @@ -5,7 +5,9 @@ What the adversary is, what each boundary protects, and which services may share - **Issue:** #956 (Remote-MCP threat model), child of epic #929, cross-linked to #955. - **Depends on:** #930 (closed) — `docs/remote-mcp/coupling-inventory.md`. - **Blocks:** #932, #933, #934, #938. -- **Generated against commit:** `aad5c8b42361d380a8eeb07b94b90815e594c2c5` (`master`). +- **Generated against commit:** `c1626081757dff76ea49fcb1869fc0362dea45b1` (#931's transport + bind seam). Originally generated against `aad5c8b42361d380a8eeb07b94b90815e594c2c5` + (`master`) and re-anchored when #931 shifted the cited lines. - **Scope:** documentation only. This child changes no server behavior. It adds one document, one anchor fixture, and the test that enforces them. @@ -71,7 +73,7 @@ authenticate the *caller*, not the *intent*. ## 3. Trust boundaries "Crossing requires today" is what the code actually enforces at -`aad5c8b42361d380a8eeb07b94b90815e594c2c5`, not what the design intends. +`c1626081757dff76ea49fcb1869fc0362dea45b1`, not what the design intends. | ID | Boundary | Protects | Crossing requires today | Crossing must require remotely | | -- | -------- | -------- | ----------------------- | ------------------------------ |