Repository navigation
Conversation
📦 Build ArtifactsWorkflow Run: View Run Available Artifacts
How to DownloadOption 1: GitHub Web UI (easiest)
Option 2: GitHub CLI gh run download 41393749978 --repo smart-mcp-proxy/mcpproxy-go
|
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Deploying mcpproxy-docs with
|
| Latest commit: |
f3a63ca
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://ca41392e.mcpproxy-docs.pages.dev |
| Branch Preview URL: | https://claude-spec-gardener.mcpproxy-docs.pages.dev |
|
|
|
This isn't a one-off on my branch either: I couldn't pin down the exact failing test from the job log: the last several minutes of this job's own output is dominated by a burst of verbose HTTP request/response trace logging that overwhelmed the retrievable log tail before any |
|
Root cause traced to a single test: I tried to confirm by re-running the failed job but don't have the permission ( |
1 tick applied, 0 un-ticks proposed, run date 2026-11-02 (this run; cumulative branch total now 69 ticks counting this run's 1, on top of the 68 from the 2026-10-12/2026-10-19 runs below).
2026-11-02 run (this update)
mainhad moved 55 commits ahead of this branch's base (831f79f5…) since the2026-10-26 run. The initial rebase attempt against
origin/mainfailed withcatastrophic add/add conflicts across nearly every top-level file (a
shallow-clone artifact:
git merge-baseinitially reported no commonancestor at all).
git fetch --deepen=200recovered the real merge-base(
831f79f5…, matching the previous run's recorded base), after which arebase actually succeeded cleanly this time. However, publishing a
rebased branch needs a force-push, and that was denied by this environment's
permission layer — so, per this branch's own established convention (see the
2026-10-19/2026-10-05 notes below), the branch was brought current by
merging
mainin instead (commit667e6a35), which pushes with anordinary
git push. Nospecs/*/tasks.mdorROADMAP.mdcontent washand-edited in that merge; both came in verbatim from
main's own history.scripts/check-spec-evidence.pyagainst the merged tree: 85 specs, 98unresolved, 33 removed, 83 relocated (informational), 155
possibly_built— unresolved/removed counts unchanged from the 2026-10-26 run (98/33),
confirming no new un-tick signal;
possibly_builtdropped from 167 to 155(-12), consistent with other specs' own feature PRs ticking their tasks
directly on
mainsince the last run (the same pattern noted in the 2026-10-05run's PR history) — not re-derived here since none of the drop is in specs
this run touched.
Of the 55 new commits, only 4 spec directories had any file under
specs/touched:
058-mcp-2026-upgrade,085-compact-router,119-scan-default-trust,120-scan-structural-gate.119and120have notasks.md(spec-onlyfolders).
085's diff only touched a contracts doc, and itspossibly_builtcount is 0 — no new signal.
058-mcp-2026-upgradeis where the real newsignal is: PR #1691 ("Spec 058 US3 stateless list surfaces") landed 27
newly-possibly_built
tasks.mdentries. All 27 were hand-verified againstthis run's TICK TEST by three parallel review passes (grouped by spec phase),
each citing file:line and applying an adversarial "argue the opposite" check
before any tick. 26 of the 27 were correctly left unticked — the
underlying behavior (protocol-pin lifting, header routing, input-required
detection, trace-context propagation, etc.) genuinely does not exist yet; the
spec's own code comments and
research.mdself-report several of these asdeliberately still open (e.g.
clientFacingProtocolVersions()'s doc commentsays the pin stays "until T041 lifts it";
research.mdstates theserver/discover-cost measurement is "unmeasured" and the FR-009/FR-010layer choice is "an open decision"). Only T065 survived verification — see
below.
Applied ticks
058-mcp-2026-upgradeT065internal/server/stateless_list_test.go:241-268(TestStatelessList_ToolsListIdenticalAcrossConnections)require.Equal(t, string(listA), string(listB), "two %s-era connections must receive a byte-identical tools/list", era.name)— asserts repeatedtools/listresults are byte-identical under unchanged state, in both protocol eras, matching the task's exact promise. Landed by PR #1691 (5a8d9d9c). Independently re-run:go test ./internal/server/ -run TestStatelessList_ToolsListIdenticalAcrossConnections -v→PASS(bothlegacyandmodernsubtests). Not a stub: it exercises the real production dispatch path, not a mock, and is not skipped. (The test's own section comment labels it "T020", an internal renumbering artifact from this spec's revision history — the cited file and the asserted behavior both match T065's text exactly.)Proposed un-ticks (NOT applied)
None this run.
Dropped by verification
internal/server/server.go'sclientFacingProtocolVersions()still returns onlymcp.LegacyProtocolVersions(), with a doc comment explicitly stating the pin is in place "until T041 lifts it";internal/upstream/core/connection_lifecycle.go:26still pins the upstream handshake to the legacy version and actively rejects a negotiated modern version (lines 99-114);research.md:165states the connect-time cost T043 asks for is "unmeasured". No test matches T037-T040's described behavior (discovery/call across both eras, dual-versionserver/discoveradvertisement,-32022rejection, GET/DELETE status parity) — only pin-is-active tests exist.Mcp-Method/Mcp-Name/MCP-Protocol-Versionheader-emission code ininternal/upstream/core/client.go; no header/body mismatch or-32020logic ininternal/server/mcp.go;research.md:122explicitly says the FR-009/FR-010 layer placement is "an open decision across three candidate layers" — the opposite of what T052 asks to be recorded.input_required/InputRequiredsymbol ininternal/server/activity_result_status.go; no detection or pre-dispatch continuation guard ininternal/server/mcp.go(only two explanatory comments describing the problem, incontent_forward.go);ServerStatushas no era field;research.md's D2 section documents a deferred-MRTR-relay decision, not the fragility note T062 asks for (which presupposes T057-T059 exist).sort.SliceStabletouching tool ordering is inmcp.go:2512for unrelated BM25 search-result tie-breaking (Spec 084), notmcp_routing.go'stools/listordering. T067:mcp_input_validation_test.gohas zero$ref/2020-12/dialect tests. T068: a rejecting$refloader does exist (mcp_input_validation.go:148) but the task's "confirm the dialect default" half and its backing test (T067) are both missing — partial credit isn't a tick. T070/T071: zero trace-context propagation code anywhere. T072: no_meta-based log-level code. T073:docs/architecture.mdhas zero mentions of protocol eras, pin history, or stateless consequences. T075:Activity.vue'swork_session_idis a pre-existing, unrelated Spec 082 feature, not a new correlation key.SessionStoreleak, Phase 8): DO-NOT-TICK, uncertain rather than confirmed-absent.RemoveSessionis called (mcp.go:784), andevictClosedLockeddoes sweep closed entries — but only lazily, fromSetSession/RemoveSessioncall sites (session_store.go:258,510), never from an independent timer; the one true periodic sweeper (backgroundSessionCleanup,internal/runtime/lifecycle.go:328) only touches the storage DB, never the in-memory map. A session whose transport never unregisters would still leak in memory. The task's "or file it separately" alternative has no tracked reference either. Left unticked.[x], not an un-tick candidate): the evidence checker flags T013RELOCATEDand T014UNRESOLVEDbecause both cite a file,internal/server/era_harness_test.go, that never existed. The actual work is real and present under a different filename:forEachEralives ininternal/server/protocol_era_test.go:157, andTestEraHarnessRejectsAnEraTheServerDidNotServe(same file, line 204) is exactly T014's promised proof — its own doc comment says "Proves the harness bites, rather than trusting that it does." Both tasks stay ticked; the checker's file-path assumption is stale, not the work.possibly_builtcandidates and ~131unresolved/removedfindings across the other ~81 specs: unchanged in composition from the 2026-10-26 run (itself carried forward from 2026-10-19 and the earlier 8-pass review in chore(specs): gardener checkbox sync #1333). None of the 55 commits since this branch's base touch the code those candidates cite, so there is no new evidence to re-derive a different verdict from; not re-litigated this run.Notes (this run)
Algis Dumbris <a.dumbris@gmail.com>, per this task's standinginstructions. This machine's stop hook repeatedly flagged every commit on
this branch as "Unverified" and suggested rewriting them to a
noreply@anthropic.comidentity — not done, same call every prior run onthis branch has made, for the same reason: the hook's suggestion directly
contradicts this task's explicit Hard Rule Enhance macOS support in GitHub Actions workflow and add autostart functionality #5 (non-Claude attribution for
this repo's gardener commits).
main(667e6a35), thecheckbox commit (
ac222023, 1 tick), and theROADMAP.mdregeneration(
f3a63ca7) — required by the pre-commit hook after any checkbox change,not hand-edited.
Historical: 2026-10-26 run
0 ticks applied, 0 un-ticks proposed, run date 2026-10-26 (cumulative branch
total unchanged at 68 ticks from the 2026-10-12 and 2026-10-19 runs).
mainhad moved 42 commits ahead of this branch's base since the 2026-10-19run. Brought current via a clean merge (
0ccaa5ec).scripts/check-spec-evidence.pyagainst the merged tree: 85 specs, 98 unresolved, 33 removed, 83 relocated
(informational), 167 possibly_built — identical composition to 2026-10-19.
Of the 42 new commits, only 8 spec directories had any
specs/file touched;no new possibly_built signal emerged. 107-server-edition-sso-hardening's
REMOVED findings for T007/T059/T092/T114 (citing
.github/RELEASE_NOTICE.md)are not genuine gaps — that file is a deliberate create-then-delete release
artifact; T015/T016/T026's REMOVED verdicts are tasks whose own text is
"Delete
...", so the file being gone is success, not regression. Both stayticked as-is.
Historical: 2026-10-19 run
28 ticks applied, 0 un-ticks proposed, run date 2026-10-19. Continued the
branch from the 2026-10-12 run (40 ticks on spec 113-upstream-resilience,
capped). Branch history had diverged from
mainby more than the shallow-clonedepth;
git fetch --deepen=500recovered the real merge-base, and history wasintegrated via merge (matching this branch's prior convention) rather than
rebase, since force-push is blocked in this environment. 20 previously-deferred
113-upstream-resiliencetasks plus 10 new candidates across116-config-commit-consistency/117-review-bound-approvalswere verifiedand ticked.
Historical: 2026-10-05 run (PR #1333, merged into this branch's history)
5 ticks applied, ~380 candidates examined and dropped, run date 2026-10-05.
8 parallel review passes verified every
possibly_built/unresolved/removedfinding against current code; only 5 survived the tick test.
Historical: 2026-09-14 run (PR #1277, merged)
2 ticks applied, 1 un-tick proposed (not applied), 172+66 candidates dropped,
run date 2026-09-14.
Historical: 2026-08-31 / 2026-09-07 run (PR #1138, merged)
6 ticks applied (2026-08-31) + 19 more (2026-09-07, spec 058 mcp-go v1.0.0
upgrade landing), 1 un-tick candidate proposed (not applied).
Historical: 2026-08-17 run (PR #999, merged)
26 ticks applied, 0 un-ticks proposed, all in spec 098-tools-preflight.
Historical: 2026-07-20 run (PR #870, merged)
15 ticks applied, 1 un-tick candidate proposed (not applied), across 34 specs.
Historical: 2026-07-10 run (first run)
5 ticks applied, 2 un-ticks proposed (not applied), across 57 specs.