Conversation
The TUI Dashboard and Work pane sorted latest-first and sliced to _RECEIPTS_LIMIT (300) before classifying attention or filtering, and the Dashboard equated an empty truncated attention set with "All clear". A blocked task older than the 300 most recent was therefore dropped from attention (false "All clear"), missing from the Work list, and unsearchable. Dashboard attention is now computed over the full store (reusing the existing api attention projection with its exact total and bounded preview), so a stale blocker surfaces and "All clear" shows only when the whole queue is empty. Work builds a row for every task so text search reaches an older blocker, keeps only the display capped, and discloses "showing 300 of N" in the Work head when the list is truncated. The api projection is unchanged; behavior is identical when the store holds 300 tasks or fewer. (#220)
# Conflicts: # CHANGELOG.md # src/agentacct/tui.py
Main moved the receipts list to the Sessions tab (key 3; key 2 is now Work, the worksets tab), so the two #220 scenarios pressed the wrong pane and saw an empty list. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #220: the TUI Dashboard could show "All clear" while a blocked task sat unresolved, and the Work pane could hide and make unsearchable any task older than the 300 most recent. This is a regression the #185 TUI rewrite reintroduced — the correct full-store attention pattern already exists in the API layer (the #152/#153 fix used by
/v1/tasksand the GUI); the TUI just bypassed it. Reproduced against source, then fixed; tests verified pre-fix/post-fix.Root cause
_build_dashboard()and_build_work()sort latest-first and slice to_RECEIPTS_LIMIT = 300before attention classification / text filtering, and_build_dashboard_parts()equates an empty truncated attention set with "All clear". So a blocked task older than the 300 newest completed tasks never enters the classified set.Fix (TUI presentation layer only; the API projection is unchanged)
Testing
test_tui.py: (1) 1 blocked + 300 newer → Dashboard is not "All clear" and the blocker surfaces; (2) the blocker is search-reachable and the head discloses "showing 300 of 301" under the latest sort; (3) a store under the cap still surfaces its blocker with no truncation disclosure (preserves current behavior). All three fail on the pre-fix source and pass on the fix.PYTHONPATH=src .venv/bin/python -m pytest -q), on top of currentmain(0.10.10).Fixes #220