fabro/docs
Bryan Helmkamp b8af65a9c6
refactor(runs): blocked status canonicalization cleanup (#165)
## Summary

Stacked cleanup of the `canonicalize blocked run status` work (local
commit `d13cdf374`) plus reconciliation with origin's `canonicalize
paginated run list responses` (origin commit `8ab689da7`). Both efforts
ran in parallel and diverged on the column name (`blocked` vs `waiting`)
and on how the board response is shaped — this PR converges them,
keeping `blocked` as the canonical column id while adopting origin's
`column` field on `RunListItem` and `StoreRunSummary` shape.

Also fixes a production-worker regression introduced by the
canonicalization: the worker's start-precondition only accepted
`Submitted | Starting`, so once runs started transitioning through
`Queued` on the way to `Starting`, every subprocess-worker run failed
with `Precondition failed: cannot start run: status is Queued`. That
cascaded into ~90 failing CLI/server integration tests locally.

## Commits

1. `f65843168` refactor(runs): simplify blocked status follow-ups
2. `1492d956c` chore: resolve clippy warnings
3. `676fd9f44` first merge of origin/main
4. `23fc92a2f` **fix(runs): allow Queued status in start precondition**
← the cascade-fix
5. `36b507a83` refactor: simplify pause/unpause + dedupe web status
tables
6. `8d8d27748` refactor(workflow): encapsulate BlockedStateTracker
inside HumanHandler
7. `1c17fda35` second merge of origin/main — resolves waiting vs blocked
8. `4cd3ef7b1` refactor(workflow): Mutex<usize> → AtomicUsize
9. `2e5a58e8a` fix(demo): align run-4 lifecycle status with Blocked
board column

## Test plan

- [x] fmt, clippy, build, doctests all clean
- [x] `cargo nextest run --workspace` — **4092/4092 pass**
- [x] `bun test` — **26/26 pass**, typecheck + production build clean
- [x] Manual CLI repro of the Queued-precondition fix
- [x] Browser smoke test: all 5 columns render with correct
labels/colors, demo run-4 appears in Blocked lane with question text
intact

## Known follow-up (not blocking)

A "paused-while-blocked" run (status `Paused` + `blocked_reason: Some`)
lands in the `running` column because the visible status chooses
`Paused` over `Blocked`. The pending question is not prominent on the
board. Addressing it would require `board_column()` to branch on
`(status, blocked_reason)` rather than just `status` — worth a separate
ticket.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 14:53:46 -04:00
..
administration fix(server): address TLS removal review follow-ups 2026-04-19 10:48:42 -04:00
agents refactor(config): move project state under .fabro 2026-04-11 12:55:46 -04:00
api-reference refactor(runs): blocked status canonicalization cleanup (#165) 2026-04-19 14:53:46 -04:00
brainstorms feat(cli): add --prerelease to fabro upgrade 2026-04-16 20:20:14 -04:00
changelog fix(server): address TLS removal review follow-ups 2026-04-19 10:48:42 -04:00
core-concepts docs: migrate reference and guide examples to v2 config shape 2026-04-09 11:30:52 -04:00
examples feat(template): unify workflow and config template syntax 2026-04-11 10:58:50 -04:00
execution refactor(config): move project state under .fabro 2026-04-11 12:55:46 -04:00
getting-started ci(release): attest SLSA build provenance for binaries and image 2026-04-18 15:05:32 -04:00
human-tools docs: migrate reference and guide examples to v2 config shape 2026-04-09 11:30:52 -04:00
ideation docs 2026-04-09 17:24:30 -04:00
images Cut over Fabro web app to a server-backed SPA 2026-04-01 21:36:01 -07:00
integrations docs: update changelog and docs for Apr 14–16 changes 2026-04-16 08:01:59 -04:00
languages Add fabro language for syntax highlighting in docs 2026-03-17 09:43:14 -04:00
logo Fix logo SVG viewBox clipping the right edge of the O 2026-03-14 14:11:36 -04:00
plans plans 2026-04-18 12:36:41 -04:00
reference refactor(server): remove inbound TLS termination 2026-04-19 10:43:57 -04:00
superpowers/specs docs(install): address sixth review pass on web-install spec 2026-04-18 19:50:44 -04:00
tutorials Attractor spec hunks 14 & 16: remove error_policy and k_of_n/quorum from parallel handler 2026-03-23 14:59:35 -04:00
workflows refactor(config): move project state under .fabro 2026-04-11 12:55:46 -04:00
.mintignore Fix Mintlify dev server: valid navbar URL and ignore AGENTS.md 2026-03-05 16:29:50 -05:00
docs.json ci(release): attest SLSA build provenance for binaries and image 2026-04-18 15:05:32 -04:00
dot-highlight.js Remove debug markers from dot-highlight script 2026-03-17 10:23:48 -04:00
favicon.svg Rebrand docs site from Arc to Fabro 2026-03-11 21:27:58 -04:00