CI/CD / gate (push) Canceled after 0s
CI/CD / containment (push) Canceled after 0s
CI/CD / image (push) Canceled after 0s
CI/CD / rollout (push) Canceled after 0s
CI/CD / reach (push) Canceled after 0s
CI/CD / fanout (push) Canceled after 0s
CI/CD / receipt (push) Canceled after 0s
The app was renamed to /v1/risk/reference — openapi.Product reads the product off the first /v1 segment, and these six operations are the risk product's — but the committed projection and the woven document were generated before the rename and still published /v1/ml/reference. manifest's TestEveryServedPathReachesTheAppThatServesIt is the gate that caught it: four paths the fleet published and routed to the /v1 catch-all instead. Regenerated plugin/reference/openapi.json from the app's own live router and re-wove openapi.yaml from the subsets. The delta is exactly the four reference paths; no neighbour moved. plugin/reference/mcp.json goes with it. The tool catalogue stopped being a generated artifact when the door started asking each subsystem for its tools at the moment it is asked (package fleet) — 122 of 124 apps ship no such file, and a stale one beside a regenerated projection is a second answer to a question that has one. Co-authored-by: Hanzo Dev <dev@hanzo.ai>