Problem
src/review/content-lane/registry-logic.ts:636's probeFunctionalSurface is a "best-effort, truncation-tolerant check that a fetched body actually serves the surface its kind claims" (openapi schema, JSON API, SSE stream) -- fully implemented and tested (11+ cases in test/unit/content-lane-registry-logic.test.ts). Like computeGrounding (see the sibling issue), it has zero callers outside its test file; assessSurfaceEntry never fetches the surface url's content before merging.
Proposal
Same shape as the sibling grounding-check issue -- fetch the surface url's content-type/body for FUNCTIONAL_KINDS (openapi, subnet-api, sse) entries and feed it through probeFunctionalSurface, holding/closing on served: false. Likely should be scoped/designed together with the grounding-check issue since both need the same "fetch source content before merge" plumbing.
Deliverables
Links & Resources
src/review/content-lane/registry-logic.ts:636
test/unit/content-lane-registry-logic.test.ts
Boundaries
This changes what's verified before a subnet-registry surface auto-merges -- gate-authority change requiring design review. Do not unlock for contributors without an explicit maintainer decision. Should be scoped together with the sibling grounding-check issue given shared fetch-plumbing needs.
Problem
src/review/content-lane/registry-logic.ts:636'sprobeFunctionalSurfaceis a "best-effort, truncation-tolerant check that a fetched body actually serves the surface itskindclaims" (openapi schema, JSON API, SSE stream) -- fully implemented and tested (11+ cases intest/unit/content-lane-registry-logic.test.ts). LikecomputeGrounding(see the sibling issue), it has zero callers outside its test file;assessSurfaceEntrynever fetches the surfaceurl's content before merging.Proposal
Same shape as the sibling grounding-check issue -- fetch the surface
url's content-type/body forFUNCTIONAL_KINDS(openapi,subnet-api,sse) entries and feed it throughprobeFunctionalSurface, holding/closing onserved: false. Likely should be scoped/designed together with the grounding-check issue since both need the same "fetch source content before merge" plumbing.Deliverables
served: falsedoes to the gate decisionLinks & Resources
src/review/content-lane/registry-logic.ts:636test/unit/content-lane-registry-logic.test.tsBoundaries
This changes what's verified before a subnet-registry surface auto-merges -- gate-authority change requiring design review. Do not unlock for contributors without an explicit maintainer decision. Should be scoped together with the sibling grounding-check issue given shared fetch-plumbing needs.