Repository navigation
chore(specs): gardener checkbox sync - #1138
Merged
Merged
Conversation
Deploying mcpproxy-docs with
|
| Latest commit: |
cef81c7
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://ece272a9.mcpproxy-docs.pages.dev |
| Branch Preview URL: | https://claude-spec-gardener.mcpproxy-docs.pages.dev |
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Contributor
📦 Build ArtifactsWorkflow Run: View Run Available Artifacts
How to DownloadOption 1: GitHub Web UI (easiest)
Option 2: GitHub CLI gh run download 34086845443 --repo smart-mcp-proxy/mcpproxy-go
|
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MzzqcBe7a3LNp4ojoxMfsp
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MzzqcBe7a3LNp4ojoxMfsp
Dumbris
force-pushed
the
claude/spec-gardener
branch
from
September 7, 2026 05:26
987649a to
cef81c7
Compare
Dumbris
marked this pull request as ready for review
September 7, 2026 06:50
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Description
Automated spec-gardener run (2026-08-31): 6 checkbox ticks applied, 1 un-tick candidate proposed (NOT applied), across 3 specs with confirmed ticks. Ran
scripts/check-spec-evidence.pyacross all 70 specs (65 unresolved, 1 removed, 29 relocated-informational, 140 possibly-built), then fanned out verification across 10 parallel research passes (grouped by spec), each applying this repo's tick test: state the promised behaviour, cite file:line, confirm it's real (not a stub/comment/unwired component/skipped test), and default to not-ticking when uncertain. Only- [ ]/- [x]checkbox characters inspecs/*/tasks.mdwere changed, plus the requiredROADMAP.mdregeneration — no task prose, no other files.Note:
claude/spec-gardenerhad been fully merged since the last gardener run (PR #999), so this run restarted the branch from the latestmain(force-with-lease push of already-merged history, per the gardener's merged-PR restart rule) before doing any new work.Update (2026-09-07): a subsequent scheduled gardener run restarted this branch again from a newer
main(which had since merged PR #1204/#1202, the spec-058 mcp-go v1.0.0 upgrade) and ticked 19 additional tasks inspecs/058-mcp-2026-upgrade/tasks.md— see the dedicated section below. All other content in this description is from the original 2026-08-31 run and still accurate for the specs it covers.Testing
git diffthat no other content changed)Applied ticks — 2026-08-31 run
internal/server/mcp_code_scripts_test.go:462-490TestCodeExecutionDisabledStub_AcceptsScript— disabled flag swaps in a stub tool (nocall_toolscapability), equivalent to excluding the live tool fromtools/listinternal/server/mcp_code_scripts_test.go:500-531TestCodeExecution_DisabledGateCoversEveryDispatch— asserts every dispatch path returns a "disabled" error whenenable_code_execution=falseinternal/server/code_execution_hotreload_test.go:39-56TestBuildCodeExecutionTool_FollowsCurrentConfig— enabling the flag returns the live (non-stub) toolinternal/server/code_execution_options_test.go:162-187TestRESTCodeExecOmittedOptionsKeepConfigDefaults— assertsZero(options.TimeoutMs)etc. when options are omitted, confirming config defaults applydocs/release-notes-generation.md:104-116releases/directory wording is stale; the shipped design is flat-file and it's fully documented)docs/cli/activity-commands.md(668 lines)docs/cli-management-commands.mdcite, same promised behaviour: documenting the activity CLI commands)Applied ticks — 2026-09-07 run (058-mcp-2026-upgrade, T001-T019)
The 2026-09-07 gardener run restarted the branch after PR #1204 ("feat(058): adopt mcp-go v1.0.0, pinned inert on both protocol hops") and PR #1202 ("docs(058): implementation plan for the MCP 2026-07-28 upgrade") merged to
main, and found the following tasks inspecs/058-mcp-2026-upgrade/tasks.mdalready satisfied by that landed work. Spot-verified against the current tree:go.modgit.832008.xyz/mark3labs/mcp-go v1.0.0bench/mcpcall_test.go,internal/server/mcp_routing_test.go,internal/upstream/listtools_logging_test.go,internal/upstream/manager_prompts_test.go,internal/upstream/managed/prompts_test.go,internal/upstream/core/prompts_test.goNewTestStreamableHTTPServerto theservertestpackagego build ./...,go build -tags server,go vet ./...,go vet -tags server ./...all exit 0internal/server/protocol_era_test.go2025-11-25internal/upstream/core/protocol_pin_test.goinitializestill requests2025-11-25internal/server/server.go:2535func clientFacingStreamableOptions() []server.StreamableHTTPOption— applied at all 5NewStreamableHTTPServersites (e.g. line 949)internal/upstream/core/connection_lifecycle.gomcp.LATEST_LEGACY_PROTOCOL_VERSIONinternal/server/era_harness_test.goforEachErahelper; a deliberately mis-pinned era fails the assertioninternal/hash/schema_ref_test.go,internal/hash/hash.go:150draft07RefPrefix = "#/definitions/"—NormalizeJSONcanonicalizes#/definitions/to#/$defs/internal/server/content_forward_test.go,internal/server/content_forward.go,internal/server/mcp_routing.gospecs/058-mcp-2026-upgrade/tasks.mdcheckpoint noteAll 19 are Phase 1/2 foundational tasks (get the mcp-go v1.0.0 bump compiling and prove it's wire-inert) — genuinely gating work for the rest of spec 058, which remains largely unstarted (19/81, 23%).
Proposed un-ticks (NOT applied)
[x]cmd/mcpproxy/activity_cmd_test.gohasTestActivityListCommand_JSONOutput, but its mock activity fixture has nosensitive_data_detection/has_sensitive_datafields — no test (JSON or YAML) asserts detection data survives output formatting. The adjacent implementation task (T079, pass-through of the raw activity map in JSON/YAML mode) does appear to work, but the specific test T074 promises was not found anywhere in the repo. A human should confirm this is genuinely missing before un-ticking.Dropped by verification (2026-08-31 run)
200 candidates were investigated and dropped (i.e., left as-is) across 10 parallel verification passes. Full detail:
001-code-execution (13 possibly-built dropped)
ExecutionIDUUID generation is real but no test asserts uniqueness/formattruncated_code/tools_called/duration_mslog fields never implemented (onlyexecution_idis)cmd/mcpproxy/integration_test.go,TestIntegration_CodeExecStandaloneMode) but is gated by anintegrationbuild tag never invoked by any script/CI — unwired--fileflag, JS-syntax-error exit code, or timeout behavior--inputtested;--input-filehas zero coverage001-oas-endpoint-documentation (6 possibly-built dropped)
handleGetSecretRefs/handleGetConfigSecrets/handleMigrateSecretsstill have zero swag@Summary/@Routerannotationscode_exec.goServeHTTPandhandleSSEEvents/HEAD/eventsstill have zero swag annotations001-update-version-display (6 possibly-built dropped)
setupMenu/versionItem.data.updateexists003-tool-annotations-webui (3 possibly-built dropped)
SessionsTable.vueexists anywhere; Dashboard only links to/sessionsgetToolCalls()has nosessionIdparametersessions.created/updated/closedSSE events exist; onlystatus/pingare emitted004-management-health-refactor (9 possibly-built dropped)
upstream restart/ bulk--allrestart (only service-layer unit tests exist, a different layer than specified)doctor_cmd_test.gohas only unit tests, no true E2E against a live daemonlogHTTPRequestsymbol anywhereredactToken/sanitizeAuthHeaderfunctions exist; existing sanitizer tests cover unrelated GitHub-token patternsdocs/cli-management-commands.mdplan.mdstates an intent to add an architecture diagram but no diagram was ever added006-oauth-extra-params (8 possibly-built dropped)
auth_cmd.go;maskExtraParams/maskOAuthSecretexist but are wired only into transport logging, not the status display007-oauth-e2e-testing (5 possibly-built dropped)
grant_type/provider_url/scopestructured logging fields inconnection.goauth_cmd_test.gonever exercisesdisplayAuthStatusPrettyor asserts printed text008-oauth-token-refresh (6 possibly-built dropped)
correlation-related code inconfig.go,discovery.go,persistent_token_store.go,managed/client.go;CreateOAuthConfigstill takes no context paramhandleOAuthAuthorizationfunction itself has no correlation-id logging (only its siblinghandleOAuthAuthorizationWithResultdoes) — a genuinely unfinished half, not a rename009-proactive-oauth-refresh (21 possibly-built dropped)
All 21 (T011, T031–T034, T041, T044, T045, T054, T060, T062, T067–T071, T074, T076–T078, T082) independently re-verified absent: no OAuth SSE event types in
contracts.ts, only mock stubs forTriggerOAuthLogout(no real tests), no--alllogout flag, no distinctoauthExpired/isAuthenticated/oauthErrorcomputed properties or badges (the UI evolved toward a unifiedsignInState/health-badge model that deliberately collapses these), no logout confirmation dialog, noFormatRelativeTimefunction, no token-expiration/5-minute-warning/EXPIRED display elements, andverify-oas-coverage.shis still broken (self-contradictory coverage output, exit 1).026-pii-detection (3 possibly-built dropped, 1 un-tick candidate — see above)
test-api-e2e.sh, no SSE-emission test for detections010/011/012/014/016/017/019/021 (assorted, 13 dropped)
doctor_cmd.godoctor_cmd.gois the one CLI command never migrated tointernal/cli/outputhandleExportActivity(json/csv) has zero test coverageshow's table-formatting code never invoked by any test, no distinct invalid-ID-format handling, summary logic lives inline in the HTTP handler rather than as a storage method, summary's table-printing code never invoked by a test, no export path validationActivityWidget.vueexists but is never imported intoDashboard.vue— unwired--request-idflag itself028-agent-tokens / 029-mcpproxy-teams / 040-server-ux (6 dropped)
token_cmd_test.gotests list/create behaviorally but revoke/regenerate only structurally (flags/args, no success/not-found assertions)release.ymlare still commented outNSOpenPanelbrowse button, no timeout override on the import request042-telemetry-tier2 (12 possibly-built dropped)
ErrCatOAuthTokenExpireddefined but never referenced anywhere; no registry accessor added to the OAuth coordinatortelemetry show-payload(TestShowPayloadPrintsValidJSON/no-network-call guarantee)docs/features/telemetry.mdis missingDO_NOT_TRACK/CI env var docs, the heartbeat schema link, and the ID-rotation policy section044-diagnostics-taxonomy (10 possibly-built dropped)
go:generatedirective or codegen tool anywhere ininternal/diagnostics/RecordFixAttemptexists; nothing writes fix attempts to the activity logtest-diagnostics-e2e.shnever spawns a real broken-stdio server against a live daemoncheck-errors-docs-links.shexists but isn't wired intorun-all-tests.shstdio_show_last_logsfixer is still an explicit stub stringinternal/telemetry/payload_phase_h_test.go) than an HTTP-handler-level testdocs/architecture.mdnever mentionsinternal/diagnostics/; server-scoped/diagnosticsand/diagnostics/fixendpoints (which do exist in code) are undocumenteddocs/errors/README.mdis still hand-maintained/stale; no generator produces it044-retention-telemetry-v3 (3 possibly-built dropped)
docs/features/telemetry.mdnever got the "Environment Classification"/"Activation Tracking"/"Launch Source" sectionsenv_kind/env_markers/activation/autostart_enabled/bucketing despite the underlying code being real056/057/073/076/077/083/096/097 (assorted CI-gate and doc tasks, 9 dropped)
test-api-e2e.shnever extended with outputSchema/policy-decision assertionsactivity_max_size_mbdocumented only indocs/features/activity-log.md, not indocs/configuration.mdas the task requiresgofmt -lstill flags 5 files including the package the task names; the gofmt/goimports step was never actually rungo test -race ./internal/..././bench/...gates fail in this sandbox purely on tiktoken-vocab-fetch403 Forbidden(blocked egress) and one shellwrap test tripped by the sandbox's ownHTTPS_PROXY— environment-caused, not code defects, but per "when uncertain, don't tick" these stay unticked since the literal gate isn't green herecall_toolsfeature is implemented098-tools-preflight (1 dropped, flagged for reconsideration)
./scripts/test-api-e2e.shappeared unrunnable outside aworkflow_call-only reusable workflow. This run actually executed it locally and it passed cleanly (63 passed / 0 failed / 2 skipped), along withgolangci-lint(0 issues),make swagger-verify,go run ./cmd/generate-types(no diff), and both edition builds + server-edition race tests. The prior blocking rationale is disproven. The only non-green gate isgo test -race ./internal/..., which fails solely on the same tiktoken-network/sandbox-HTTPS_PROXYartifacts described above — not a code defect. Left unticked per "when uncertain, don't tick," but a human may reasonably conclude this should be ticked on a machine with normal network access; flagging explicitly rather than deciding it here.102-schema-deferred (RELOCATED, no un-tick — confirms current tick is correct)
internal/server/mcp_direct_scope_test.gonever existed, but the equivalent test lives ininternal/server/mcp_direct_catalog_publish_test.go(comment explicitly says "Spec 102 T021") — correctly left ticked.RELOCATED findings confirming existing ticks are correct (23 items, no action)
The following UNRESOLVED/REMOVED findings from the checker were all confirmed relocated, not missing — equivalent code/tests exist under renamed or consolidated files — and were correctly left ticked:
internal/contracts/types.gointernal/management/service.gointernal/contracts/types.goe2e_test.go,activity_service_test.go)teams_register.gorenamed toserveredition_register.go(Teams→ServerEdition rename), still functionalpatch_server_test.go/server_config_patch_test.gostartup_outcome.go,telemetry.gomethods,notice_test.go, etc.)AutoStartServicewrappers exist at different pathshandleServersChangedinfrontend/src/stores/servers.tsmatches the task's own "or equivalent path" hedgeTestGetRecentSessions_OrdersByLastActivityBeforeTruncationand the.jsonlfixture both confirmed present; checker's "never existed" was a false positiveNotes
python3 scripts/gen-roadmap.pyafter each checkbox-sync commit, per the pre-commit staleness check.claude/spec-gardenerbranch was reset to the tip ofmaintwice (2026-08-31 and again 2026-09-07) via force-with-lease pushes of already-merged history, per the gardener's merged-PR restart rule, since it carried no unmerged work beyondmainat either point.tryHTTPOAuthStrategy— the function 008-T025 (already ticked, not in this run's scope) claims to have updated — does not exist anywhere in the current codebase. Worth a look in a future run.Cap: 40 applied ticks per run — 2026-08-31 found 6, 2026-09-07 found 19, both well under the cap.