Skip to content

contract: the unit create, configurator cap and millwork 404 match the code - #107

Merged
futurebuildai merged 2 commits into
refactor/v1from
refactor/contract-prose-drift
Oct 11, 2026
Merged

futurebuildai merged 2 commits into
refactor/v1from
refactor/contract-prose-drift

Conversation

@futurebuildai

Copy link
Copy Markdown
Contributor

Contract and comment text that disagreed with the code. No wire change: every response the server gives is unchanged; the contract now describes it.

Where Was The code
units.yaml UnitCreate required: [code, name], "the dimension defaults to count" unit/input.go refuses a create without dimension ("is required"), so it joins required
configurator.yaml validate and build-sku "The body is capped at 64 KiB" no module cap: httpx.DecodeJSON maps the platform's MaxRequestSize(10 << 20) (app/serve/chain.go) to a 413, already listed
millwork.yaml millworkGetOption 404 AppDisabled only millwork/service.go answers httpx.NotFound for an unknown id; the 404 is now oneOf AppsDisabledError and WireError (disjoint: app_disabled only, and meta required)
worker.go package comment three jobs six, as Run logs: idempotency purge, outbox drain, outbox purge, draft events purge, order allocation, order fulfilment
exposure_scheduler.go comment the recovery path for the at-most-once in-process bus exposure notifications travel over the outbox, delivered at least once by the worker's drain

openapi.yaml (go run ./api/tools/merge) and web/packages/api-client/src/schema.d.ts (npm run generate) are regenerated. Gates run locally: merge -check fresh (406 operations), pending fresh (0 pending), go test ./internal/apicontract/... ok, conformance 1289 golden steps validated, npm run drift and npm run typecheck ok, go build ./..., go vet and gofmt on both packages clean, bash scripts/check-shape.sh OK. No frontend code builds a unit create body.

🤖 Generated with Claude Code

futurebuildai and others added 2 commits October 10, 2026 21:04
…e code

UnitCreate requires dimension (unit/input.go refuses a create without
one); the configurator bodies are bounded by the platform's 10 MiB limit
with a 413, not 64 KiB; the millwork option read answers not_found
beside app_disabled. The worker package comment names its six jobs and
the exposure scheduler comment names the outbox, not the in-process bus.
openapi.yaml and the TypeScript types are regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: colton <colton@futurebuild.ai>
…act-prose-drift

Signed-off-by: colton <colton@futurebuild.ai>
@futurebuildai
futurebuildai merged commit 8634898 into refactor/v1 Oct 11, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant