Skip to content

Close the HTTP contract loop#19

Merged
heimanba merged 1 commit into
mainfrom
codex/close-http-contract-loop
Jul 17, 2026
Merged

Close the HTTP contract loop#19
heimanba merged 1 commit into
mainfrom
codex/close-http-contract-loop

Conversation

@heimanba

Copy link
Copy Markdown
Contributor

Summary

  • route files and skills through the shared Zod/OpenAPI seam, including multipart uploads
  • enforce runtime-route coverage and committed OpenAPI snapshot freshness
  • generate WebUI wire types from OpenAPI and keep domain-specific response mapping in explicit adapters
  • fix the environment response-envelope mismatch and remove unsupported list query parameters

Root cause

HTTP routes could bypass createRoute + openapi, the committed snapshot had no freshness gate, and the WebUI maintained a separate handwritten wire contract. Those seams allowed runtime routes, documentation, validation, and client types to drift independently.

Impact

The runtime now exposes 32 documented operations across 25 paths. Files and skills retain their existing validation/error behavior, while WebUI requests are checked against generated method, path, query, body, and response types.

Validation

  • bun run lint:changed
  • bun run test:server — 50 passed
  • bun run test:webui — 114 passed
  • bun run typecheck:server
  • bun run typecheck:webui
  • bun run check:architecture
  • bun run build:webui
  • pre-push bun scripts/verify.ts push

Change-Id: I653d759a826b23b7d023b9639ba9d76da7d3553f
@heimanba
heimanba marked this pull request as ready for review July 17, 2026 03:01
@heimanba
heimanba merged commit d213ad3 into main Jul 17, 2026
15 checks passed
@heimanba
heimanba deleted the codex/close-http-contract-loop branch July 17, 2026 03:05
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