fix(openapi): document the /v1/loop/* idea/task-graph route family in the spec - #9414
Conversation
… the spec The five idea/task-graph composer routes under /v1/loop/* (evaluate-escalation, results-payload, progress-snapshot, intake-idea, plan-idea-claims) are each the REST mirror of an MCP tool with an existing Zod input/output shape, but none of them appeared in the generated OpenAPI contract. Add request/response component schemas in field-level parity with each tool's inputSchema/outputSchema constant, register all five routes as OpenAPI paths mirroring the gate-config/effective precedent, and regenerate the committed openapi.json. Add a regression test asserting each path is a documented POST whose request/response component keys stay in sync with the MCP tool shapes, and that request-apr-transfer stays intentionally excluded from this batch.
|
Tip ✅ LoopOver review result - approve/merge recommendedReview updated: 2026-07-27 17:31:34 UTC
Review summary Nits — 5 non-blocking
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. Decision record
Visual preview
Click any thumbnail to open the full-size screenshot. Before = production · After = this PR's preview deploy. Scroll preview
A short scroll-through clip (desktop) — click either thumbnail to open the full animation. Evidence for scroll-linked behavior a single screenshot can't show. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9414 +/- ##
===========================================
- Coverage 89.52% 76.09% -13.43%
===========================================
Files 840 278 -562
Lines 109777 59604 -50173
Branches 26147 8446 -17701
===========================================
- Hits 98275 45356 -52919
- Misses 10239 13955 +3716
+ Partials 1263 293 -970
Flags with carried forward coverage won't be shown. Click here to find out more.
|
|
This pull request changes UI/visual code but its screenshot evidence is incomplete. Every required viewport × theme combination needs its own before/after image pair in a labeled table row (e.g. "Desktop · Light | before | after"). Still missing: Desktop · Dark, Tablet · Dark, Mobile · Dark. Please resubmit with the remaining rows filled in. See https://github.com/JSONbored/loopover/blob/main/.claude/skills/contributing-to-loopover/SKILL.md for the exact format and examples. This is an automated maintenance action. |
|
Hi, @JSONbored |


Summary
The five idea/task-graph composer routes under
/v1/loop/*are each the REST mirror of anexisting MCP tool, but none of them were present in the generated OpenAPI contract:
POST /v1/loop/evaluate-escalationPOST /v1/loop/results-payloadPOST /v1/loop/progress-snapshotPOST /v1/loop/intake-ideaPOST /v1/loop/plan-idea-claimsThis documents all five in the public spec by adding request/response component schemas in
field-level parity with each tool's existing
inputSchema/outputSchemaconstant, registering thefive routes as OpenAPI paths (mirroring the existing
gate-config/effectiveregistration pattern),and regenerating the committed
apps/loopover-ui/public/openapi.json.request-apr-transferis leftundocumented on purpose — it is explicitly out of scope for this batch per the issue, and a test pins
that exclusion.
The MCP shape constants are made
export-only so the regression test can assert component-key parityagainst the source of truth; no runtime behavior changes.
Closes #9309
Scope
type(scope): short summaryConventional Commit format.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Closes #9309).Validation
git diff --checknpm run ui:openapi:check— no driftnpm run ui:openapi:settings-paritynpx vitest run test/unit/openapi.test.ts— 4 passing (path documented, request/responsecomponents registered, component keys in sync with each MCP tool shape, apr-transfer stays excluded)
The spec/schema additions are import-time-evaluated object/registration literals covered by the
parity test; the
export-only changes insrc/mcp/server.tsadd no branches.Safety
evidence are exposed.
UI Evidence
N/A — no visible UI change. The only file under
apps/loopover-ui/is the generatedpublic/openapi.json, regenerated verbatim bynpm run ui:openapifrom the schema/spec source. Noroute, component, style, or rendered page is added or modified, so there is no visual surface to
screenshot.
Notes
request-apr-transferexclusion follow the issue exactly; the exclusion isasserted by the regression test so a future PR documenting it will not silently regress this one.