chore: replace the npm MCP conformance harness with a Go check, and drop npm from the project #854
No reviewers
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea!854
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue-750-go-conformance-no-npm"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
madtea no longer carries npm or TypeScript. The MCP client-conformance harness was a Node script on the TypeScript SDK, with its own lockfile, and every npm advisory against that lockfile failed the gate. Its checks now run in Go, inside
go test ./....What the Go check covers (
internal/mcp/client_conformance_test.go), each one proven to fail on a planted broken case:serveprocess.tools/list: every tool's shape the way the SDK client checks it, and every input and output schema compiles and resolves.madt_enablewith every gated domain, then a freshtools/listthat validates and grows. The domain list comes from the registry, not a hand list.madt_helpcall whose structured content validates against its declared output schema. The old harness did not check this.What is removed:
conformance/mcp-client/(the harness,package.json,package-lock.json),scripts/mcp-conformance.sh, the gate's conformance leg and its--no-conformanceflag, the node bootstrap inscripts/setup-dev.sh, and themcp-conformanceCI job.git ls-fileslists nopackage.json, lockfile,.js, or.tsfile.The CI gate job was also broken:
scripts/gate.sh --skip-remote-issuespassed--skip-remote-issuestoadr check, which now takes--skip-forge-checks. The gate keeps its own flag and passes the new one. ADR 0036 now names--skip-forge-checks, and ADR 0044 no longer describes the removed npm lockfile as current.Not in this change, so #750 stays open: validation against the official MCP
schema.jsonper protocol revision, a gate warning when the pinned go-sdk is behind, and the removal ofresult_type_test.goonce a validator coversresultType../scripts/gate.shpasses on this commit, and the CI gate job step./scripts/gate.sh --skip-remote-issuespasses too.Refs #750