You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AutomationApiContracts declares its nine flow endpoints under /api/automation; the runtime serves them only under /api/v1/automation and answers 404 ENDPOINT_NOT_FOUND at every declared path #20034
Filing gate: ① a product defect with a named landing site (a published spec contract names a wire path the platform does not serve). It was measured on a composed runtime by the #19966 dev (report on PR #20031, out_of_scope_findings[0]) and re-read from source by the domain:spec seat 4 (session_019c3Hi6ZMU1p6m6aA6Bz45d) at origin/main9d81af714f. Filed unassigned and unlabelled: routing and grading are triage's. Routing suggestion: domain:spec (the landing is packages/spec/src/api/automation-api.zod.ts). ⛔ Not a claim.
Hand that acts: the lane triage routes this to, in one claim.
Dedupe (including closed), four semantic queries over this repo:
AutomationApiContracts base path /api/automation does not match runtime /api/v1/automation: 0 hits;
What the spec says.packages/spec/src/api/automation-api.zod.ts:14 says Base path: /api/automation. AutomationApiContracts (:655) declares nine path values, all under /api/automation (:658 through :706), from listFlows to getRun. automation-api.zod.test.ts:803-811 pins all nine. The export is published (packages/spec/api-surface/api.json:106).
What the runtime serves. The dispatcher mounts the automation door at config.prefix || '/api/v1' (packages/runtime/src/dispatcher-plugin.ts:909) plus /automation (:1468, :1477). objectstack serve passes no prefix. The route ledger agrees: route-ledger.ts:429 has POST /automation (client automation.create), and its header (:17) says to prepend /api/v1 for the wire path.
Filing gate: ① a product defect with a named landing site (a published spec contract names a wire path the platform does not serve). It was measured on a composed runtime by the #19966 dev (report on PR #20031,
out_of_scope_findings[0]) and re-read from source by thedomain:specseat 4 (session_019c3Hi6ZMU1p6m6aA6Bz45d) atorigin/main9d81af714f. Filed unassigned and unlabelled: routing and grading are triage's. Routing suggestion:domain:spec(the landing ispackages/spec/src/api/automation-api.zod.ts). ⛔ Not a claim.Hand that acts: the lane triage routes this to, in one claim.
Dedupe (including closed), four semantic queries over this repo:
AutomationApiContracts base path /api/automation does not match runtime /api/v1/automation: 0 hits;automation-api.zod path /api/automation: 0 hits;spec API contract path prefix api/v1 missing automation contract 404: 1 hit,POST /api/v1/automation/:name/toggleanswers 500 INTERNAL_ERROR instead of 404 NOT_FOUND for an unknown flow #7535 (a toggle status code, closed);ApiContracts declared path disagrees with dispatcher route ledger: 2 hits, Three ledgered /meta routes are never mounted and die in the/meta/:typecatch-all — the route audit can't see this class because it treats the ledger as ground truth for what's mounted #7526 and Reconcile the four dispatcher↔client shape mismatches (analytics ×2, storage ×2) — #3563 follow-up #3584 (other routes, both closed).None covers this.
The defect (at
origin/main9d81af714f)packages/spec/src/api/automation-api.zod.ts:14saysBase path: /api/automation.AutomationApiContracts(:655) declares ninepathvalues, all under/api/automation(:658through:706), fromlistFlowstogetRun.automation-api.zod.test.ts:803-811pins all nine. The export is published (packages/spec/api-surface/api.json:106).config.prefix || '/api/v1'(packages/runtime/src/dispatcher-plugin.ts:909) plus/automation(:1468,:1477).objectstack servepasses no prefix. The route ledger agrees:route-ledger.ts:429hasPOST /automation(clientautomation.create), and its header (:17) says to prepend/api/v1for the wire path.flow-edge-condition-evaluated-slot-source-requiredand its pending changeset namePOST /flows, a route that does not exist — the upgrade guide renders it #19966 dev on a composed runtime (bootStack(@objectstack/example-crm, { automation: true })from@objectstack/verify, default prefix):/api/v1/automationand 0 under/api/automation;POST /api/automationwith a well-formed flow answers404 ENDPOINT_NOT_FOUND;POST /api/v1/automationwith the same body answers200.path: '/api/v1…'rows. These nine are the only ones without the version segment.A consumer that builds requests from the published contract (a generated client, an AI author, docs) calls a path that 404s for every flow operation.
Remedy shape (for the implementing round to confirm)
Either:
pathvalues, theBase pathdocblock and the endpoint list with/api/v1/automation, and re-pin the test; orBreaking-ness: the value of a published
constchanges, so a changeset is owed. The implementing round classifies Clause ② for the launch window.Generated by Claude Code