Skip to content

feat(ship): rebuild repo sections as pipeline-driven kanban [ROA-264]#108

Merged
prellr merged 2 commits into
mainfrom
feat/roa264-repo-kanban-rebuild
May 16, 2026
Merged

feat(ship): rebuild repo sections as pipeline-driven kanban [ROA-264]#108
prellr merged 2 commits into
mainfrom
feat/roa264-repo-kanban-rebuild

Conversation

@prellr
Copy link
Copy Markdown
Owner

@prellr prellr commented May 16, 2026

Summary

ROA-264 v1 disappointed: a flat PR list per repo in a fixed max-h-[400px] scrollbox (the "height issue"), with stage categories that didn't match each repo's real process. This rebuilds it.

Each repo section now renders the existing ShipKanban, with visible columns derived from the project's pipeline_kind (not deploy-env-row guesswork):

pipeline_kind columns
staged Drafted → In Review → Ready → Merged·Pre-Staging → In Staging → Verifying → Promoting → In Production → Done
direct_to_prod Drafted → In Review → Ready → Merged·Pre-Staging → Promoting → In Production → Done (no In Staging, no Verifying)
unknown/undefined staged superset — never hide a real stage (CLAUDE.md enum-drift rule)
  • verifying is now its own column (was folded into in_staging).
  • The kanban's responsive layout (desktop: horizontal column scroll that grows with content; mobile: collapsible) replaces the 400px scrollbox → height issue resolved.
  • Repo header + ready/blocked/draft badges preserved; bucketing/snapshot logic untouched (still used for SHA-matched merged-PR placement).

Frontend-only, no schema/backend change. pipeline_kind is the existing per-project attribute (one repo/project in practice), sourced via the existing useFullProject. Also re-exports ProjectPipelineKind from @multica/core/types (was defined but not surfaced).

Test plan

  • @multica/core + @multica/views typecheck clean
  • @multica/views lint 0 errors (15 pre-existing warnings only — no new i18next violations)
  • @multica/views test 657/657 pass (incl. updated contract tests for the replaced behavior + new columnsForPipeline/verifying coverage)
  • CI green
  • Post-deploy visual check: staged repo shows Verifying column; direct_to_prod repo shows no staging/verify; no cramped scrollbox

Deploy note

This is a frontend-touching change → its deploy rebuilds the frontend image. Risk profile is now much better than earlier today: Pulse is off the mini (real headroom restored) and the frontend builder cache is warm from recent deploys — so this should build fast and non-disruptively. Still a conscious deploy decision given the history.

🤖 Generated with Claude Code

prellr and others added 2 commits May 16, 2026 13:38
ROA-264 v1 shipped a flat PR list per repo in a fixed
max-h-[400px] overflow-y-auto box (cramped — the "height issue") with
columns/stages that didn't reflect each repo's real process.

Rebuild: each repo section now renders the existing ShipKanban, with
visible columns derived from the project's `pipeline_kind` instead of
deploy-env-row presence:

- staged    → Drafted · In Review · Ready · Merged·Pre-Staging ·
              In Staging · Verifying · Promoting · In Production · Done
- direct_to_prod → … (NO In Staging, NO Verifying) · Promoting · …
- unknown/undefined → staged superset (never hide a real stage —
  CLAUDE.md "enum drift downgrades, not crashes")

`verifying` is now its own column (the verifying release stage was
previously folded into in_staging). The kanban's responsive layout
(desktop: horizontal column scroll that grows with content; mobile:
collapsible) replaces the 400px scrollbox — height issue gone. The
repo header + ready/blocked/draft summary badges are preserved.

Frontend-only. No schema/backend change — pipeline_kind is the
existing per-project attribute (one repo per project in practice),
sourced via the existing useFullProject(project.id). Also exports
ProjectPipelineKind from @multica/core/types (was defined but not
re-exported). Updated two contract tests that asserted the replaced
behavior (verifying→in_staging; env-driven columns).

Verified: core+views typecheck clean, views lint 0 errors, 657/657
views tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The rebuild removed the cramped max-h-[400px] box but left columns
unbounded — a long column scrolled the whole page forever. Add a
bounded height (max-h-[70vh]) + overflow-y-auto to each column's card
body, in both desktop and mobile branches. ColumnHeader / details
summary stay outside the scroll region so headers remain pinned while
cards scroll within the column. 70vh is generous (vs the disliked
400px) but caps page runaway; trivially tunable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@prellr prellr merged commit f38c4e5 into main May 16, 2026
2 checks passed
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