fabro/lib/foundation
Bryan Helmkamp 690ddd2a96
Fix live parallel branch refresh and simplify branch rendering
Branches bypass the engine's stage.started/stage.completed lifecycle, so
no SWR key invalidated the stages list while a fork ran. The new live
branch rows stayed frozen at their first observed state until an
incidental refetch. Map parallel.* events to the stages list, run events,
and graph keys.

Also:
- Label branch rows with formatStageLabel so a re-entered branch renders
  as `review_glm@2`, matching the sidebar and waterfall.
- Build branch rows in one pass and count live outcomes in one loop.
- Name ParallelBranchId in the OpenAPI spec and reuse fabro_types::
  ParallelBranchId, replacing two copies of an inline string format.
- Hoist makeStage and textContent into lib/test-utils so widening Stage
  cannot leave per-file fixtures stale (tests are excluded from
  typecheck, so the two component-test copies had already gone stale).
- Query stat tiles by data-stat instead of an exact Tailwind class.
- Reuse append_scoped_stage_event's body via append_event_with_scope and
  add test_branch_event instead of poking envelope fields.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 17:26:05 -04:00
..
build-support refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-api Fix live parallel branch refresh and simplify branch rendering 2026-07-28 17:26:05 -04:00
fabro-auth refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-client refactor(events): simplify backward pagination internals 2026-07-24 08:34:02 -04:00
fabro-config fix(glob): harden artifact traversal 2026-07-25 11:56:57 -04:00
fabro-core refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-db refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-dev Merge origin/main into feat/sandbox-bash-contract 2026-07-24 22:42:28 -04:00
fabro-http refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-macros refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-model fix(agent): simplify GPT-5.6 tool routing 2026-07-25 11:49:40 -04:00
fabro-oauth refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-options-metadata refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-proc refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-redact refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-static feat(llm): add Fireworks AI as an opt-in provider 2026-07-24 08:03:39 -04:00
fabro-telemetry refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-template refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-test refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-types Show live status for parallel branches 2026-07-27 17:08:08 -04:00
fabro-util fix(glob): harden artifact traversal 2026-07-25 11:56:57 -04:00
fabro-vault refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00