Skip to content

feat(sidebar): settled and tasks-in-action quick filters in status chips - #390

Merged
simion merged 1 commit into
simion:mainfrom
nvkvin:feature/tasks-in-action
Oct 10, 2026
Merged

simion merged 1 commit into
simion:mainfrom
nvkvin:feature/tasks-in-action

Conversation

@nvkvin

@nvkvin nvkvin commented Oct 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds two quick filter chips to the sidebar's status chips row:

  1. Settled (status:settled):
    Completes the lifecycle chips with a Check icon in info blue.
  2. Tasks in action (-status:backlog):
    An umbrella filter at the front with the Activity icon.
    It matches all active tasks across working, attention, review, and settled.

Clicking Tasks in action clears granular status clauses so all active tasks are shown at once.
Clicking any granular status chip while Tasks in action is active clears -status:backlog and focuses on that specific status.
The status chips container now uses no-scrollbar overflow-x-auto to preserve layout on narrow sidebars.

Proposal: Deprecating the Status Section

With the new Tasks in action quick filter, users can view all non-backlog active tasks in place within the project tree with a single click.
This keeps the project hierarchy, folder guides, worktrees, and context menus intact without duplicating task rows.
We propose deprecating and removing the opt-in Status Section (StatusSection.tsx) and its settings in a follow-up PR if aligned.

Verification

  • Manual testing: Exercised by hand in the app: verified clicking Settled and Tasks in action filters the sidebar project tree as expected, toggling and switching between granular chips and the action filter behaves smoothly, and tooltip counts match.
  • npm test: All 201 test suites and 3,096 tests passed.
  • npm run typecheck:e2e: Passed.
  • npm run build: Passed.

- Add Settled chip (status:settled) to the status chips row in the sidebar
  with a Check icon in info blue.
- Add Tasks in action chip (-status:backlog) to filter to all active
  tasks across working, attention, review, and settled.
- Clicking Tasks in action clears granular status clauses so all active
  tasks are displayed; clicking a granular chip clears -status:backlog
  and focuses on that specific status.
- Add stripBoardKey helper in boardFilter to remove all clauses of a key.
- Add actionCount in useTaskQuery to count non-backlog tasks.
- Make status-chips container horizontally scrollable with no scrollbar
  to maintain layout on narrow sidebars.
- Update docs/ui.md and locales.
@simion

simion commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Still thinking about deprecating the Status Section, not pulling it yet since some people already rely on it. I want to add optional, opt-in telemetry at some point so calls like this are based on real usage instead of guessing.

@nvkvin

nvkvin commented Oct 10, 2026

Copy link
Copy Markdown
Contributor Author

Makes complete sense.
Let's keep the Status Section as is and leave it untouched.
Relying on opt-in telemetry down the road is definitely the right way to make that call based on actual usage data.

@nvkvin

nvkvin commented Oct 10, 2026

Copy link
Copy Markdown
Contributor Author

Other than keeping the Status Section untouched, does the rest of the PR look good to you?

@simion simion left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Yes, rest of the PR looks good, just missing test coverage on the new click-orchestration paths (not a blocker). Thanks for the contribution!

@simion
simion merged commit bddfb5f into simion:main Oct 10, 2026
7 checks passed
simion added a commit that referenced this pull request Oct 12, 2026
With Settled and Tasks in action added (#390) the row had six chips and
three of them counted the same task: one that finished unread read 1 on
Tasks in action, 1 on Done and 1 on Settled. Six chips also no longer
fit beside the filter's "1 of 10 tasks" count, which scrolled the row
and covered the chip a click had just turned on.

The row is now Tasks in action, a thin rule, then Working, Needs you,
In review and Settled. Those four are board columns, a task is in
exactly one, so they always add up to the first; the spec asserts the
sum. Done is not a column (it cuts across them), so it leaves the row.
status:done still works typed and from the filter menu, and the title
bar's waiting pill counts unread work.

The count moves to the foot of the tree, above the note about hidden
projects. The unused doneCount is dropped from useTaskQuery.

sidebar-status: the projectsSectionCollapsed assertion compares before
and after the click instead of expecting null, which a key left in a
local e2e profile broke.

Refs #390

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

2 participants