Skip to content

chore(specs): gardener checkbox sync - #1594

Draft
Dumbris wants to merge 7 commits into
mainfrom
claude/spec-gardener
Draft

Dumbris wants to merge 7 commits into
mainfrom
claude/spec-gardener

Conversation

@Dumbris

@Dumbris Dumbris commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

0 ticks applied, 0 un-ticks proposed, run date 2026-10-26 (this run; cumulative branch total unchanged at 68 ticks from the 2026-10-12 and 2026-10-19 runs below).

2026-10-26 run (this update)

main had moved 42 commits ahead of this branch's base (4e5b533b…) since the
2026-10-19 run. No force-push is available in this environment, so the branch
was brought current the same way as last time: merged main in (commit
0ccaa5ec), not rebased — a clean merge this time, no --deepen needed since
the real merge-base was found directly. No specs/*/tasks.md or ROADMAP.md
content was hand-edited in that merge; both came in verbatim from main's own
history, already mutually consistent, so no separate gen-roadmap.py run was
needed this time (no checkbox commit exists for it to resync against).

scripts/check-spec-evidence.py against the merged tree: 85 specs, 98
unresolved, 33 removed, 83 relocated (informational), 167 possibly_built —
identical to the composition the 2026-10-19 PR body reported (195 − 28 ticked
= 167), confirming the deferred backlog is unchanged.

Of the 42 new commits, only 8 spec directories had any file under specs/
touched (085-compact-router, 087-tpa-daily-refresh, 101-tpa-db,
107-server-edition-sso-hardening, 111-personal-docker-image,
118-auto-rescan-on-change, 118-pin-visibility-boundary,
119-scan-default-trust). Four of those have no tasks.md at all (spec-only
folders); 101-tpa-db's tasks.md is already 0/81 unchecked (its own PR
ticked it); 085 and 107 only had non-tasks.md files change (a
data-model doc and a contracts doc respectively) — so there was no new
possibly_built signal from this window, and the three possibly_built
candidates the checker still lists for already-covered specs 113/116/117 are
the same two human-deferred ones ("the lead" sub-steps) the 2026-10-19 PR
already explained, plus one genuinely new one (113's T145) that this run
checked and did not tick — see Dropped by verification.

Applied ticks

None this run. (28 ticks from the 2026-10-19 run are unchanged on this
branch — see the historical section below for their evidence.)

Proposed un-ticks (NOT applied)

None this run. 107-server-edition-sso-hardening's REMOVED findings for T007,
T059, T092, T114 (all citing .github/RELEASE_NOTICE.md) are not genuine
gaps: that file is a deliberate create-then-delete release artifact —
.github/workflows/release.yml:1529-1539 reads and prepends it to the
release body, and release.yml:1898 opens a PR that deletes it once the
release lands. Being gone on main today is the designed end-state, not lost
work, so these stay ticked as-is. Likewise T015/T016/T026's REMOVED verdicts
are tasks whose own text is "Delete ..." — the file being gone is the task
succeeding, not regressing.

Dropped by verification

  • 113-upstream-resilience T145 (ServerFieldMaskDecisions NotSecret rows
    • contracts projection + regenerated frontend/src/types/contracts.ts +
      swagger, FR-028): three of the four parts are done —
      oauth.authorization_endpoint/token_endpoint/registration_endpoint/auth_server_metadata_url
      are all MaskDecisionNotSecret in internal/oauth/serverfields.go:315-318;
      the fields are projected in internal/contracts/types.go:234-237 and
      internal/contracts/converters.go:450-459; oas/swagger.yaml has all four
      (lines 773-805, 2563-2589). But frontend/src/types/contracts.ts has zero
      matches for any of the four field names — cmd/generate-types was not
      re-run after the contracts struct changed. Left unticked; the gap is real
      and narrow (one generated file).
  • 107-server-edition-sso-hardening T072 (SSE frame narrows/widens on
    group hot-reload): internal/server/mcp_group_scope_test.go exists with
    9 tests including TestMCPGroupScope_HotReload_GroupRemovalNarrowsExistingToken,
    covering the MCP-side half of the task. But the task's own second citation,
    internal/httpapi/sse_scope_group_test.go, was never created, and no
    existing SSE test (sse_scope_internal_attribution_test.go,
    sse_attention_scope_test.go, sse_scope_reveal_test.go,
    sse_attribution_scope_test.go) asserts a group-hot-reload-driven SSE frame
    change. T072 is already [x]; flagging here as a genuine open question for
    a human, not applying an un-tick per the hard rule — the MCP-side coverage
    that does exist may be judged sufficient by whoever scoped the task, but the
    literal "and the next SSE frame" clause in the task text does not appear to
    have a backing test today.
  • The remaining ~165 possibly_built candidates across ~82 specs, and the
    ~94 remaining unresolved/removed findings not covered above
    : unchanged
    in composition from the 2026-10-19 run, which itself carried them forward
    from the 2026-10-12 run and the earlier 8-pass review (chore(specs): gardener checkbox sync #1333). Nothing in
    the 42 commits since this branch's base touches the code those candidates
    cite, so there is no new evidence to re-derive a different verdict from;
    not re-litigated this run. Still left for a future run with the bandwidth
    to re-open that backlog from scratch rather than spot-check for new signal.

Notes (this run)

  • Git identity: Algis Dumbris <a.dumbris@gmail.com>, per this task's
    standing instructions. This machine's stop hook flagged the merge commit
    (0ccaa5ec) as "Unverified" and suggested rewriting it to a
    noreply@anthropic.com identity — not done, same call the 2026-10-19 run
    made, for the same reason (the hook's suggestion directly contradicts this
    task's non-Claude-attribution requirement for this repo).
  • Only one commit was pushed this run: the merge of main (0ccaa5ec). No
    checkbox commit, no ROADMAP.md regeneration commit — there was nothing to
    tick, so nothing to resync.

Historical: 2026-10-19 run

28 ticks applied, 0 un-ticks proposed, run date 2026-10-19.

This run continues the claude/spec-gardener branch (previous run: 2026-10-12,
40 ticks on spec 113-upstream-resilience, capped). The branch's prior history
had diverged from main by more than the repo's default shallow-clone depth
(50 commits), so git merge-base initially reported no common ancestor and a
naive rebase produced catastrophic add/add conflicts on nearly every workflow
file; git fetch --deepen=500 recovered the real merge-base
(4cc4bcbc3827…, which matches the previous PR's recorded base exactly), and
history was then integrated by merging main in (matching this branch's own
prior convention — its tip was already a "Merge main into..." commit) rather
than rebasing, since a force-push to republish a rebase is blocked in this
environment.

scripts/check-spec-evidence.py against current main (62 commits ahead of
the previous run's base) reports 195 possibly_built candidates and 98
unresolved/33 removed currently-ticked findings across 84 specs. This run
focused on genuinely new signal since the previous run: the 20 possibly_built
tasks in 113-upstream-resilience that the previous run had already identified
as "verified but deferred" by the 40-tick cap (independently re-verified
end-to-end this run, see below), plus the two specs that shipped in the 62 new
commits since the previous run's base, 116-config-commit-consistency and
117-review-bound-approvals (10 new possibly_built candidates, 22
currently-ticked tasks with unresolved evidence). All other specs' candidate
sets are unchanged in composition from the previous run and were not
re-litigated.

(See the full table of file:line citations for those 28 ticks, the 2 declined
tasks, and the subagent-discard note in this PR's revision history — preserved
verbatim, trimmed here only to keep this body from growing unbounded across
runs.)

@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

📦 Build Artifacts

Workflow Run: View Run
Branch: claude/spec-gardener

Available Artifacts

  • archive-darwin-amd64 (32 MB)
  • archive-darwin-arm64 (29 MB)
  • archive-linux-amd64 (20 MB)
  • archive-linux-arm64 (17 MB)
  • archive-windows-amd64 (32 MB)
  • archive-windows-arm64 (28 MB)
  • frontend-dist-pr (0 MB)
  • installer-dmg-darwin-amd64 (28 MB)
  • installer-dmg-darwin-arm64 (25 MB)
  • smart-mcp-proxymcpproxy-goPCD627.dockerbuild (0 MB)

How to Download

Option 1: GitHub Web UI (easiest)

  1. Go to the workflow run page linked above
  2. Scroll to the bottom "Artifacts" section
  3. Click on the artifact you want to download

Option 2: GitHub CLI

gh run download 40273772718 --repo smart-mcp-proxy/mcpproxy-go

Note: Artifacts expire in 14 days.

@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!

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Deploying mcpproxy-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 0ccaa5e
Status: ✅  Deploy successful!
Preview URL: https://d192c8b5.mcpproxy-docs.pages.dev
Branch Preview URL: https://claude-spec-gardener.mcpproxy-docs.pages.dev

View logs

Dumbris commented Oct 12, 2026 •

Copy link
Copy Markdown
Member Author

Unit Tests (shuffle) failed on fd67906 — not this PR's: this PR only touches specs/113-upstream-resilience/tasks.md and ROADMAP.md, and the failure is the known global-state-leak hang in newRootCmd() (CLI singleton re-parenting under the docs-smoke test root) that was already root-caused and fixed in #1593, merged to main just after this branch pointed. Ported the fix by merging main (which now carries #1593) into this branch at b3dba25 rather than waiting on it — no re-run spent, since the merge itself should turn the check green on the new head.

Dumbris commented Oct 12, 2026 •

Copy link
Copy Markdown
Member Author

Build Binaries (windows-latest, windows, amd64, 1, mcpproxy-windows-amd64.exe, zip) failed on b3dba25 at its "Run tests" step — also not this PR's: the diff is still markdown-only (specs/113-upstream-resilience/tasks.md, ROADMAP.md), which cannot affect Go test behavior on any platform.

This isn't a one-off on my branch either: main's own Unit Tests (windows-latest, 1.26) job, on the exact same commit this branch is built from (4cc4bcbc, the #1593 fix itself), has its Run unit tests (Windows) step stuck in progress for 20+ minutes as of this check — the same hang signature #1593 fixed for the shuffled Linux run. So #1593 evidently didn't fully cover the Windows-specific manifestation of that global-state leak, and this is a currently-active, pre-existing CI issue on main, not something this PR introduced.

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 --- FAIL: line. No fix for the Windows case exists yet to port, and diagnosing it is outside this PR's scope (a markdown-only spec-gardener chore). Keeping this PR watched; the Windows build check is expected to stay red until a follow-up addresses the Windows-specific hang.

Dumbris commented Oct 19, 2026 •

Copy link
Copy Markdown
Member Author

Build Binaries (ubuntu-latest, linux, amd64, 0, mcpproxy-linux-amd64, tar.gz) failed on 7b43dde — not this PR's: the diff is still markdown-only (specs/*/tasks.md, ROADMAP.md).

Root cause traced to a single test: TestManager_LateCallbacks_ReachExistingClients (internal/upstream/manager_late_callback_test.go:85) — "tool discovery callback set after client creation was not invoked on tools/list_changed", with connection refused noise closing its real streamable-HTTP test server. This test was added by #1586 ("apply late discovery callbacks to existing clients"), merged to main yesterday (2026-10-18) with its own verification (-race -count=5), so the fix is real and present on this PR's base. A single failure here, with connection-refused noise, while this run has ~45 checks firing concurrently across the full matrix, reads as CI resource-contention flakiness on a real-network integration test rather than a regression.

I tried to confirm by re-running the failed job but don't have the permission (rerun-failed-jobs → 403 Resource not accessible by integration). Making that test more robust is outside this PR's scope — it's a markdown-only spec-gardener chore touching only specs/*/tasks.md and ROADMAP.md, not internal/upstream. Keeping this PR watched.

This branch has not been deployed

No deployments
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