fabro/lib/crates
Bryan Helmkamp da88a47595 feat: wire web UI to real server with demo mode toggle
Server changes:
- Add /boards/runs to demo routes (delegates to list_runs)
- Fix demo get_run_status to return StoreRunSummary shape matching OpenAPI spec
- Enrich real /boards/runs to return RunListItem shape with board column mapping
  (Running->working, Paused->pending, Completed->merge; others excluded)
- Update existing tests that asserted old RunStatusResponse fields from /boards/runs

Web UI changes:
- Add DemoModeProvider context and useDemoMode hook
- Hide Workflows/Insights nav items in production mode via getVisibleNavigation
- Change run-detail loader to use /runs/{id} directly instead of searching /boards/runs
- Add mapRunSummaryToRunItem for mapping server response to UI shape
- Add Graph tab, hide Stages tab in production mode, always hide Files tab
- Make run-overview and run-graph loaders resilient to 501 via apiJsonOrNull
- Add isNotImplemented and apiJsonOrNull helpers to api.ts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 04:46:08 -04:00
..
fabro-agent refactor(billing): unify the LLM billing domain 2026-04-07 14:33:35 -04:00
fabro-api fix(api): resolve build spec path at runtime 2026-04-07 23:05:07 -04:00
fabro-checkpoint test(checkpoint): restore RunRecord helper fields 2026-04-07 23:24:36 -04:00
fabro-cli Merge remote-tracking branch 'origin/main' 2026-04-08 03:53:54 -04:00
fabro-config refactor(scratch): remove store-backed diff and blob cache writes 2026-04-07 22:31:59 -04:00
fabro-core Rename fabro_core::RunState to ExecutionState 2026-04-03 16:34:24 -07:00
fabro-devcontainer refactor(workspace): satisfy clippy all-targets warnings 2026-04-05 14:37:32 -04:00
fabro-github refactor(cli): make run-adjacent commands server-only 2026-04-06 06:12:16 -04:00
fabro-graphviz Clean up workspace clippy warnings 2026-03-30 11:27:25 -04:00
fabro-hooks refactor(workspace): satisfy clippy all-targets warnings 2026-04-05 14:37:32 -04:00
fabro-interview test(cli): replace slow active-run coverage 2026-04-08 03:47:35 -04:00
fabro-llm fix(clippy): restore workspace lint cleanups after main merge 2026-04-07 18:01:53 -04:00
fabro-macros Add twin test mode for OpenAI E2E tests 2026-03-31 20:36:48 -04:00
fabro-mcp Rename fabro-api-types to fabro-api with progenitor client generation 2026-04-03 11:17:27 -07:00
fabro-model fix(clippy): restore workspace lint cleanups after main merge 2026-04-07 18:01:53 -04:00
fabro-oauth refactor(workspace): satisfy clippy all-targets warnings 2026-04-05 14:37:32 -04:00
fabro-proc feat(run): harden server-supervised worker lifecycle 2026-04-07 07:59:35 -04:00
fabro-retro Merge remote-tracking branch 'origin/main' 2026-04-07 15:24:07 -04:00
fabro-sandbox refactor(storage): unify scratch paths and key schema 2026-04-06 10:13:37 -04:00
fabro-server feat: wire web UI to real server with demo mode toggle 2026-04-08 04:46:08 -04:00
fabro-slack fix(clippy): restore workspace lint cleanups 2026-04-07 20:40:02 -04:00
fabro-store Merge remote-tracking branch 'origin/main' 2026-04-07 23:15:06 -04:00
fabro-telemetry fix(home): migrate all runtime consumers to use Home 2026-04-06 13:36:43 -04:00
fabro-test Merge remote-tracking branch 'origin/main' 2026-04-07 20:45:12 -04:00
fabro-tracker fix(test): remove hidden HTTP client startup overhead 2026-04-04 21:25:51 -04:00
fabro-types Merge remote-tracking branch 'origin/main' 2026-04-07 23:15:06 -04:00
fabro-util refactor(home): move Home to fabro-util so all crates can share it 2026-04-06 13:08:35 -04:00
fabro-validate Add publish = false to all crates to prevent accidental crates.io publish 2026-03-29 13:47:09 -04:00
fabro-workflow Merge remote-tracking branch 'origin/main' 2026-04-07 23:15:06 -04:00