fabro/apps/fabro-web/app
Bryan Helmkamp 7c8448ece8
refactor(api): stage 6.6 collapse settings DTOs to freeform v2 shape
Replaces the legacy flat `ServerSettings` / `RunSettings` schemas in
`docs/api-reference/fabro-api.yaml` and 20+ supporting nested type
schemas (LlmSettings, SandboxSettings, HookDefinition, WebSettings,
ApiSettings, GitSettings, McpServerEntry, etc.) with two simple
`type: object, additionalProperties: true` schemas that declare the
wire shape as the v2 `SettingsFile` tree with secret-bearing subtrees
dropped before serialization.

Regenerates the Rust progenitor and TypeScript Axios clients against
the new spec. The progenitor generates `RunSettings` / `ServerSettings`
as `#[serde(transparent)]` newtypes over `serde_json::Map<String,
Value>`; the openapi-generator emits `{ [key: string]: any; }` inlined
into the API method signatures and no longer exports named model
types.

Updates fabro-web to define local `type ServerSettings =
Record<string, unknown>` / `type RunSettings = Record<string,
unknown>` aliases since the generated client no longer exports them.
The UI only `JSON.stringify`s these payloads into a CollapsibleFile,
so the opaque shape is fine.

All 3,756 workspace tests remain green. The OpenAPI conformance test
`server_settings_keys_match_openapi_spec` still passes because
`compare_schema` short-circuits on pure-map schemas (no `properties`);
it becomes a no-op that will be removed entirely when Stage 6.3b
deletes the legacy flat `Settings` struct it still builds.

Unblocks the server handler + CLI migration in the next commits of
Stage 6.6.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 17:04:33 -04:00
..
components Rename Arc to Fabro in TypeScript/JavaScript 2026-03-12 11:13:18 -04:00
data feat: wire web UI to real server with demo mode toggle 2026-04-08 04:46:08 -04:00
layouts feat: wire web UI to real server with demo mode toggle 2026-04-08 04:46:08 -04:00
lib refactor(api): stage 6.6 collapse settings DTOs to freeform v2 shape 2026-04-09 17:04:33 -04:00
routes refactor(api): stage 6.6 collapse settings DTOs to freeform v2 shape 2026-04-09 17:04:33 -04:00
api.test.ts feat: wire web UI to real server with demo mode toggle 2026-04-08 04:46:08 -04:00
api.ts feat: wire web UI to real server with demo mode toggle 2026-04-08 04:46:08 -04:00
app.css Rename Arc to Fabro in TypeScript/JavaScript 2026-03-12 11:13:18 -04:00
entry.tsx Cut over Fabro web app to a server-backed SPA 2026-04-01 21:36:01 -07:00
root.tsx fix(fabro-web): default unsaved theme selection to dark 2026-04-08 12:10:34 -04:00
router.test.tsx Fix login route collision after SPA cutover 2026-04-01 21:55:30 -07:00
router.tsx refactor(billing): unify the LLM billing domain 2026-04-07 14:33:35 -04:00