Skip to content

feat(board-view): section the console list by state in collapsible groups (v0.22.0)#54

Merged
mabry1985 merged 1 commit into
mainfrom
feat/list-view-sections
Jun 21, 2026
Merged

feat(board-view): section the console list by state in collapsible groups (v0.22.0)#54
mabry1985 merged 1 commit into
mainfrom
feat/list-view-sections

Conversation

@mabry1985

Copy link
Copy Markdown
Member

Idea (#26)

The console Board view's list projection rendered every feature as one flat table. Group it by board state into collapsible sections so a dense board is scannable — mirroring the Kanban's column grouping.

What

  • Sections in COLS order (backlog → ready → in_progress → in_review → done) + a blocked group + a cancelled group (the Add a way to cancel/delete a feature created in error (no DELETE route, no store method) #47 terminal edge) — so every state a feature can be in has a home in the list.
  • Each section header shows the state name + a count; clicking it collapses the group (header stays, rows omitted).
  • Empty states are omitted. Unknown/unexpected states land in their own group last (defensive).
  • Collapse state persists across the 10s auto-reload (a module-scoped Set), so a re-render doesn't re-expand what the user closed.
  • Token-driven styling (--pl-*), consistent with the existing board CSS.

Kanban view untouched — this is the list projection only.

Verification

No JS runtime in CI, so (like test_api guarding the served path) the new test_board_view.py asserts the page's structural contract. Beyond that, locally:

  • node --check of the extracted module script → syntax OK.
  • Simulated the grouping algorithm on sample features → correct COLS order, empty-section omission, counts, collapse (rows hidden, header+count stay), unknown-state-last, and empty-board fallback to the "No features yet" message.
  • Full suite: 190 passed; ruff check + ruff format --check clean.

Acceptance sketch

  • List groups rows under a collapsible header per state, in COLS order (+ blocked, + cancelled)
  • Each header shows the state name + a count; collapsing hides that group's rows
  • Empty states omitted
  • Token-driven styling (--pl-*); Kanban left as-is

Closes #26

🤖 Generated with Claude Code

…oups (v0.22.0)

The console Board view's list projection rendered every feature as one flat table.
Group it by board state into collapsible sections — COLS order (backlog → ready →
in_progress → in_review → done) + a blocked group + a cancelled group (the #47
terminal edge) — mirroring the Kanban's column grouping so a dense board stays
scannable. Each section header shows the state name + a count; clicking it collapses
the group (header stays, rows omitted). Empty states are omitted. Collapse state lives
in a module-scoped Set so the 10s auto-reload re-render doesn't re-expand what the user
closed. Token-driven styling (--pl-*), consistent with the existing board CSS.

Kanban view untouched — this is the list projection only.

Verified: node syntax-check of the module script, and a simulation of the grouping
algorithm (COLS order, empty-section omission, counts, collapse, unknown-state-last,
empty-board fallback). Contract-tested against the page string (no JS runtime in CI).

Closes #26

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@protoquinn

protoquinn Bot commented Jun 21, 2026

Copy link
Copy Markdown

👀 Quinn is reviewing — verdict (PASS / WARN / FAIL) + findings to follow.

@mabry1985
mabry1985 merged commit 9332762 into main Jun 21, 2026
1 check passed
@mabry1985
mabry1985 deleted the feat/list-view-sections branch June 21, 2026 09:08

@protoquinn protoquinn Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

QA Audit — PR #54 | feat(board-view): section the console list by state in collapsible groups (v0.22.0)

VERDICT: WARN (CI pending — test in_progress; re-review will confirm terminal pass)


CI Status

  • test: ⏳ in_progress

Diff Review

  • ~70 lines across 4 files: view logic in board_view.py, version bumps, +3 contract tests
  • List view now groups rows under collapsible per-state headers in COLS order + blocked + cancelled (#26)
  • Module-scoped COLLAPSED Set preserves collapse state across 10s auto-reloads
  • CSS is token-driven (--pl-*), scoped to #list — Kanban untouched
  • window.toggleGroup exposure follows existing window.setView pattern

Observations

  • LOW: clawpatch unavailable (repo not in project registry) — structural review skipped; diff is self-contained (~70 lines, single-view change) so risk is minimal
  • Contract tests (test_board_view.py) assert string-level structure — appropriate given no JS runtime in CI; coverage of LIST_SECTIONS, toggleGroup, COLLAPSED, omit-empty, and Kanban-unchanged is sufficient

— Quinn, QA Engineer

@protoquinn

protoquinn Bot commented Jun 21, 2026

Copy link
Copy Markdown

Submitted COMMENT review on #54.

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.

Board console view: section the list by state, in collapsible groups

1 participant