Skip to content

Simplify goals Kanban columns: Backlog/Queue/Blocked/Complete/Cancelled#1726

Closed
pulzzejaehoon wants to merge 4 commits into
mainfrom
goal/54447352
Closed

Simplify goals Kanban columns: Backlog/Queue/Blocked/Complete/Cancelled#1726
pulzzejaehoon wants to merge 4 commits into
mainfrom
goal/54447352

Conversation

@pulzzejaehoon

Copy link
Copy Markdown
Contributor

Summary

  • Rewrites the Goals Kanban column model to a 5-column set: Backlog / Queue / Blocked / Complete / Cancelled
  • Wires a live data source for the Cancelled column
  • Exposes EngineGoal.pausedAt as the "blocked" signal on EngineGoalRow

Goal

Goal #1https://build.interactor.com (goal 54447352)

Test plan

  • Unit tests updated for the new 5-column model (goals-kanban-view.test.tsx, goals-kanban.test.ts, goals-view.test.ts, use-goals-view.test.ts, goal-read.test.ts)

Adds a `blocked` field (pausedAt != null) to EngineGoalRow and the goals
list API, and reshapes GoalBucketCounts (in_progress -> blocked, keyed
off the pause rollup instead of status) so the Kanban board can surface
a Blocked bucket in a follow-up change. listEngineGoals/listEngineGoalsPage
already fetch pausedAt via `include`, so no new query was needed.
…plete/Cancelled

Replaces the 4-column model (Backlog/Queue/Rework/Complete, cancelled
hidden) with a 5-column model. kanbanColumnForGoal() now uses explicit
precedence: terminal status first (accepted/cancelled), then pausedAt
(blocked), then admitted, then backlog — everything else (open+admitted,
or in_progress rework) merges into Queue. filterGoalsForKanban no longer
excludes cancelled goals.

kanbanMove() drops "request_changes" as a drag target (Blocked is
derived from pausedAt, not operator-settable) and adds "close" for
dragging to Cancelled. "Request changes" stays reachable via a new
card kebab-menu item instead of the old drag-to-Rework gesture.

goals-kanban-view.tsx is updated to compile and render the 5 columns,
including collapse-state keys, bucket-count lookup (now a direct
counts[col.key] since GoalBucketCounts field names match KanbanColumnKey
1:1), and the Queue card's ring/spinner styling (unchanged, now gated
on a single inQueue flag instead of inProgress||inQueue).

Known gap (tracked for the next task in this goal): the Cancelled
column has no live paginated data source yet — cancelled goals never
appear in the "active" goals query, so the column only shows goals
cancelled optimistically in the current session until a cancelledGoals
fetch is wired up, mirroring the existing doneGoals pattern.
Adds cancelledGoals to the goals store (mirroring doneGoals), sourced
from the existing cancelled-set fetch already used by the List/Calendar/
Text status filter. Threads it through engine-goals-client.tsx into
GoalsKanbanView, which merges it into the cancelled column and paginates
it the same way the accepted column paginates doneGoals — closing the
gap where cancelled goals never appeared in the Kanban board's "active"
query.
Updates all assertions to match the Backlog/Queue/Blocked/Complete/
Cancelled model: in_progress goals now assert against the Queue column
(Rework merged into it), cancelled goals are asserted present instead
of excluded, drag semantics cover the new "close" move and Blocked's
non-drop-target behavior, and the "Request changes" flow is tested via
its new kebab-menu entry point instead of the removed drag-to-Rework
gesture. Adds coverage for the new Cancelled column's cancelledGoals
prop, pagination, and load-more affordance.
@pulzzejaehoon

Copy link
Copy Markdown
Contributor Author

Closing — this goal's objective (5-column Kanban: Backlog/Queue/Blocked/Complete/Cancelled) was already delivered on main via #1649 (merged 2026-07-01, same day this branch was cut) and substantially extended since (#1530 self-moving Kanban via SSE, #1682, #1706). This branch predates that work and conflicts with it; merging would risk regressing the live-update/blocked-routing logic shipped afterward. Superseded, not landing.

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