Skip to content

test(parity): cross-surface parity, traceability and docs (Spec 109-m) - #1461

Merged
github-actions[bot] merged 13 commits into
mainfrom
109-m-parity-docs
Oct 2, 2026
Merged

github-actions[bot] merged 13 commits into
mainfrom
109-m-parity-docs

Conversation

@Dumbris

@Dumbris Dumbris commented Oct 2, 2026

Copy link
Copy Markdown
Member

Spec 109-m closes the cross-surface parity work of specs/109-ux-navigation-consistency: it turns the terminology, attention, health wording, catalog order, parity matrix, contradiction register and finding traceability into automated checks, publishes the user docs and writes the release notes. There is no new route, flag or MCP argument, so the frozen tool-surface goldens and oas/swagger.yaml are unchanged.

What changes for users

  • Web UI and macOS: a server the core reports as not usable no longer reads "Connected" in the last-resort status wording (a payload with neither a status nor a summary, for example an older core); the Web card, the ServerDetail header and the macOS tray first line now read "Unavailable". The tool tier and Activity view labels on the Web come from one exported table each, with the same words as before.
  • Web UI: the dead NavBar.vue (it still carried the retired "Dashboard" and "Repositories") is deleted.
  • Docs (live after deploy at docs.mcpproxy.app): new cli/attention-command and cli/catalog-commands; new ### Attention, ### Review and ### Catalog sections in api/rest-api; web-ui/dashboard is now titled Home and describes the grouped sidebar, header, palette and redirects; cli/status-command, cli/management-commands, cli/command-reference and features/registry-add describe the declared CLI text changes; features/needs-attention is finally in the sidebar.
  • Release notes (CHANGELOG, Unreleased): the declared CLI table-text changes (JSON unchanged): upstream list STATUS shows the status label, status renames MCP Endpoints to Endpoint & mode and starts with a Needs attention: N line, doctor leads with the attention list and its diagnostics heading is Diagnostics: N findings. Deprecations: registry search|add, upstream approve, security approve|reject, tools approve|reject, tools list --risk and the old routes. Features: Home and one attention list, Review queue, Clients hub, catalog-first Add, grouped navigation.
  • Generated types: contracts.ts gains the tool approval, activity view and client presence enums (ToolApprovalState, ActivityView, ClientPresenceState).
  • CI: a new No Unquarantine Callers job (SC-005) and the native and frontend workflows now also run when a Go-owned golden they read by path changes.

Spec requirements and audit findings closed here

FR-090, FR-091, FR-092 and SC-001 to SC-012 (their proof); audit findings H2 (traceability path), C2 (traceability path), S2 and X12 (SC-005 mechanised), N7 (dead NavBar, retired names), S4 and S5 (SC-003 on every renderer), A3, N6 and N8 (SC-002 parity, needs-attention published), C1 (SC-008 order), N1, N4 and N5 (CLI and REST docs). Spec: specs/109-ux-navigation-consistency (tasks T144 to T149d, research D34).

Tests added

  • Go: TestSpec109TerminologyGolden, TestSpec109ContractsTSExactLines (these fold in and delete 109-l's attention_108_contract_test.go), TestSpec109RetiredNames, TestSpec109MCPRESTNames_*, TestAttentionParity_* (runtime, REST, SSE) and TestAttentionParityCLI, TestCatalogOrderParity_* (REST, MCP, CLI), TestUpstreamListForbiddenWords, TestSpec109RegisterDispositions, TestSpec109Traceability_* (findings, FR coverage, acceptance index), TestSpec109ParityMatrix*, TestParity109CLICellsResolve, TestParity109FlagUsageNamesTheValues, TestSpec109DocsPublished. Each has a mutation or self-test showing it can fail.
  • vitest: spec109-terminology, attention-parity, catalog-order-parity, sc003-forbidden-renderings, spec109-parity-matrix. XCTest: Spec109TerminologyTests, AttentionParityTests, CatalogOrderParityTests, Spec109ParityMatrixTests, two tray cases in CrossSurfaceRenderedLabelParityTests.
  • Goldens and indexes: internal/contracts/testdata/terminology.json, internal/runtime/testdata/attention_parity_{fixture,rest}.json, internal/registries/testdata/catalog_github_order.json, specs/109-ux-navigation-consistency/{parity-matrix,acceptance-index}.json, internal/httpapi/testdata/spec109_retired_allow.json.
  • scripts/check-no-unquarantine-callers.sh with its self-test scripts/check-no-unquarantine-callers.test.sh.

Decisions and deviations from the plan

  • AllHealthStatuses() is not in internal/contracts: internal/health imports it, so the golden test reads health.StatusOrder and runtime.AttentionKinds() directly.
  • The retired-name allowlist has one entry: the server-edition admin menu (navModel.ts, "Dashboard"), which the spec puts out of scope.
  • The dry run found two stale test paths (T011, T012) and two moved ones (T097, T125a), annotated with Shipped as: instead of rewritten. FR coverage counts a citation in a task line, its phase heading or the finding table.
  • catalog add takes --env only, not --secret-env; contracts/cli.md is corrected and the secret toggle's CLI form is upstream add --secret-env|--secret-header.
  • M17 (feat(catalog): catalog-first Add Server across all surfaces (Spec 109-j) #1383 F-P) needed no change: CatalogTests already reads internal/secret/testdata/ref_names.json by path.
  • T150 (the live run) is described in tasks.md: the release-gate Playwright sweep and the macOS app against a scratch core were not run in this PR's session.

Related #1383

…ame parity (Spec 109-m)

Adds the Go source for the tool approval, activity view and client presence
enums (internal/contracts/terminology.go), generates them into contracts.ts,
pins all six FR-090 families in one golden decoded by Go, and scans UI and CLI
string literals for retired names. Deletes the dead NavBar.vue.

Related #1383
… and macOS (Spec 109-m)

One attention fixture is computed by Compute, served by GET /attention and
SSE, and replayed through the CLI, the Web Home list, header pill and
sidebar badge, and the macOS Home model, tray group and badge. One registry
fixture pins the catalog search order across REST, MCP, CLI, Web and macOS.
The Web Activity view and tool tier labels now come from exported tables so
the terminology golden can pin them.

Related #1383
…rding (Spec 109-m)

The last-resort status text on the Web card, ServerDetail header and the macOS
tray first line said Connected for a connected-but-unusable server whose
payload carried neither a status nor a summary. It now reads Unavailable.
Adds the SC-003 forbidden-word tests for the CLI STATUS column, the Web
detail header and card, and the tray first line.

Related #1383
…filters (Spec 109-m)

Adds scripts/check-no-unquarantine-callers.sh (SC-005) with its red/green
self-test and a unit-tests.yml job, and makes the native and frontend
workflows run when a Go-owned golden they read by path changes.

Related #1383
…ec 109-m)

TestSpec109Traceability resolves the finding table, every FR citation and a
43-scenario acceptance index to files and test functions; the register test
closes every contradiction by an FR that a task traces to a real test.
Annotates tasks that moved or were never created with Shipped as paths.

Related #1383
…solvers (Spec 109-m)

Adds specs/109-ux-navigation-consistency/parity-matrix.json in Spec 108's
parity-matrix/v1 schema: every row of the spec table, same ticks, a reason on
every dash, a ticked 108 cell for every (108) cell. Identifiers resolve in
oas/swagger.yaml, the tool-surface golden, source, the real router, the Swift
enums and the --help-json output. The CLI test also pins the --approval,
--tier, --view and upstream list --status usage to the terminology golden.

Related #1383
…ec 109-m)

Adds the attention and catalog CLI pages, the Attention, Review and Catalog
REST sections, retitles the Web UI page Home and describes the grouped
sidebar, header, palette and redirects. Updates the status and management
command pages for the declared table-text changes, puts needs-attention in
the sidebar, adds the release notes and a TestSpec109DocsPublished guard.

Related #1383
…t the CLI contract

Ticks T144-T149d, adds the nine new tasks, recomputes the task count (195),
points FR-090 to FR-092, SC-001, SC-005 and SC-012 at their tests, adds the
109-m notes to the checklist, the quickstart recipe and research D34, and
aligns contracts/cli.md with the shipped catalog commands.

Related #1383
@cloudflare-workers-and-pages

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

Copy link
Copy Markdown

Deploying mcpproxy-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 3d5e537
Status: ✅  Deploy successful!
Preview URL: https://59c28fee.mcpproxy-docs.pages.dev
Branch Preview URL: https://109-m-parity-docs.mcpproxy-docs.pages.dev

View logs

…s (Spec 109-m)

Review round 1: the retired-name scan sees interpolated labels, symbol ids
must be declared (not just mentioned), the CLI walk also checks main.go
registers every group, the traceability checks hold the non-finding table
rows and test-file refs to the same rules, the generator skips empty words,
and the self-test refuses to build trees without a temp directory. Docs: the
CHANGELOG route placeholder, the empty-query catalog description and the
tools alias row.

Related #1383
Move --secret-env before the -- separator in the documented stdio examples
(management-commands, catalog-commands): Cobra treats everything after -- as
positional stdio args, so the flag was never parsed and the key would land in
the config as a plain argument. Add a release-gate docs check that fails when
--secret-env/--secret-header follow the separator.
@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

❌ Patch coverage is 65.21739% with 16 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
internal/contracts/terminology.go 0.00% 13 Missing ⚠️
cmd/generate-types/main.go 91.66% 1 Missing and 1 partial ⚠️
internal/httpapi/clients.go 88.88% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

📦 Build Artifacts

Workflow Run: View Run
Branch: 109-m-parity-docs

Available Artifacts

  • archive-darwin-amd64 (31 MB)
  • archive-darwin-arm64 (28 MB)
  • archive-linux-amd64 (18 MB)
  • archive-linux-arm64 (17 MB)
  • archive-windows-amd64 (31 MB)
  • archive-windows-arm64 (27 MB)
  • frontend-dist-pr (0 MB)
  • installer-dmg-darwin-amd64 (26 MB)
  • installer-dmg-darwin-arm64 (24 MB)
  • smart-mcp-proxymcpproxy-goRSCMBB.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 36968662312 --repo smart-mcp-proxy/mcpproxy-go

Note: Artifacts expire in 14 days.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved (Model B): Paperclip review verdicts = ACCEPT and qa-gate green at this head SHA. Arming auto-merge; GitHub merges when all required checks pass.

@github-actions
github-actions Bot merged commit b3191a0 into main Oct 2, 2026
63 checks passed
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