Filing gate: ① a product defect with a named consumer. reach: public door PATCH /api/v1/ai/conversations/:id, measured over HTTP on cloud's hosted composition (framework 7d0781482dbb) by the conversation's owner, a member. Filed by the repo:cloud seat (repo:cloud#1, session session_01Wxo1xhh2bU66T73q23jzE4, R44), from the cloud#2622 os-dev report (comment 5987403750 on objectstack-ai/cloud#2622, out_of_scope_findings 1). Reader who acts: objectstack triage routes it. ⛔ Not a claim.
Measured
The owner's PATCH /api/v1/ai/conversations/:id answered 405 METHOD_NOT_ALLOWED: "PATCH is not supported … Allowed: DELETE, GET, HEAD, POST, PUT."
Mechanism (read)
packages/runtime/src/dispatcher-plugin.ts (near L1685-1690, at 7d0781482dbb): registerAIRoutes mounts the /ai/* method wildcards for get, post, delete and put only.
- cloud's
packages/service-ai/src/routes/ai-routes.ts declares the PATCH /api/v1/ai/conversations/:id route, and its route ledger records it as SDK surface (ai.conversations.update).
- cloud's ledger conformance test matches SDK URLs against the builder tables, not against the HTTP mounts, so it cannot see the gap.
Named consumers
- objectui
c476be0. packages/app-shell/src/hooks/useConversationList.ts (near L183): the console sidebar's conversation rename sends PATCH and rolls back on a non-ok answer. Renaming a conversation therefore silently fails.
- The SDK's
ai.conversations.update.
The step
- The dispatcher's
/ai/* mount also passes patch through to the AI route table, so a declared PATCH route is reachable.
- Pin it: a
PATCH to a declared AI route reaches its handler, and an undeclared method still answers 405.
NOT MEASURED: staging, because the agent egress cannot reach *.objectos.app.
Back-link: objectstack-ai/cloud#2622 (where it was measured). Cloud follows with a pin move once this lands.
Dedupe: semantic search on objectstack ("AI conversation PATCH rename 405 dispatcher registerAIRoutes patch verb") returned 0 hits.
Generated by Claude Code
Filing gate: ① a product defect with a named consumer. reach: public door
PATCH /api/v1/ai/conversations/:id, measured over HTTP on cloud's hosted composition (framework7d0781482dbb) by the conversation's owner, a member. Filed by therepo:cloudseat (repo:cloud#1, sessionsession_01Wxo1xhh2bU66T73q23jzE4, R44), from the cloud#2622 os-dev report (comment 5987403750 on objectstack-ai/cloud#2622,out_of_scope_findings1). Reader who acts: objectstack triage routes it. ⛔ Not a claim.Measured
The owner's
PATCH /api/v1/ai/conversations/:idanswered 405 METHOD_NOT_ALLOWED: "PATCH is not supported … Allowed: DELETE, GET, HEAD, POST, PUT."Mechanism (read)
packages/runtime/src/dispatcher-plugin.ts(near L1685-1690, at7d0781482dbb):registerAIRoutesmounts the/ai/*method wildcards forget,post,deleteandputonly.packages/service-ai/src/routes/ai-routes.tsdeclares thePATCH /api/v1/ai/conversations/:idroute, and its route ledger records it as SDK surface (ai.conversations.update).Named consumers
c476be0.packages/app-shell/src/hooks/useConversationList.ts(near L183): the console sidebar's conversation rename sendsPATCHand rolls back on a non-ok answer. Renaming a conversation therefore silently fails.ai.conversations.update.The step
/ai/*mount also passespatchthrough to the AI route table, so a declaredPATCHroute is reachable.PATCHto a declared AI route reaches its handler, and an undeclared method still answers 405.NOT MEASURED: staging, because the agent egress cannot reach
*.objectos.app.Back-link: objectstack-ai/cloud#2622 (where it was measured). Cloud follows with a pin move once this lands.
Dedupe: semantic search on objectstack ("AI conversation PATCH rename 405 dispatcher registerAIRoutes patch verb") returned 0 hits.
Generated by Claude Code