Skip to content

PR-008: Interactive TUI (Tasks MVP) - #9

Draft
raychrisgdp wants to merge 12 commits into
mainfrom
feature/cli-core
Draft

PR-008: Interactive TUI (Tasks MVP)#9
raychrisgdp wants to merge 12 commits into
mainfrom
feature/cli-core

Conversation

@raychrisgdp

Copy link
Copy Markdown
Owner

Summary

Build a first-class interactive TUI using Textual with task list, detail views, create/edit flows, command palette, and collapsible AI sidebar. Primary workflow before integrations and RAG.

Changes

  • Create Textual-based TUI app with task list/detail/form screens
  • Implement async API client with retry logic and error handling
  • Add command palette (/) with fuzzy search for commands and tasks
  • Implement collapsible AI sidebar with chat interface (stub for agent integration)
  • Add toast notifications with queuing and auto-dismissal
  • Global keybindings: / (command), q (quit), ? (help), n (new), a (toggle AI), Esc (back)
  • Filter tasks by status (All, Pending, In Progress, Completed)
  • Error handling with API-down states and user-friendly messages

Test Results

  • Total Tests: 187
  • Passed: 187 ✅
  • Failed: 0 ❌
  • Coverage: Full

Acceptance Criteria

  • ✅ AC1: Tasks MVP Flows
  • ✅ AC2: Navigation and Keybindings
  • ✅ AC3: Empty and Error States

See test results for details.

Related

  • Spec: PR-008-interactive-tui.md
  • Depends on: PR-002 (Task CRUD API)

- Create Textual-based TUI app with task list/detail/form screens
- Implement async API client with retry logic and error handling
- Add command palette (`/`) with fuzzy search for commands and tasks
- Implement collapsible AI sidebar with chat interface (stub for agent integration)
- Add toast notifications with queuing and auto-dismissal
- Global keybindings: / (command), q (quit), ? (help), n (new), a (toggle AI), Esc (back)
- Filter tasks by status (All, Pending, In Progress, Completed)
- Error handling with API-down states and user-friendly messages
- 187 tests passing (100%)
- All acceptance criteria met

See PR-008-TEST-RESULTS.md for detailed test results
@raychrisgdp raychrisgdp self-assigned this Jan 4, 2026
@raychrisgdp
raychrisgdp marked this pull request as draft January 4, 2026 11:24
- Fix Textual severity value: 'info' -> 'information' in ai_sidebar
- Add explicit type casts for Select.value (NoSelection handling)
- Rename TaskDetailScreen.task to _task_data to avoid Textual conflict
- Remove redundant cast() calls in task_list
- Remove REVIEW_COLLABORATIVE.md from git tracking
- Add a method to set task status filters in TaskListScreen.
- Update error handling in task loading to include specific httpx exceptions.
- Modify AISidebar to reflect upcoming service statuses.
- Adjust mounting order in TaskListWidget for better clarity.
- Expand integration tests for keybindings and error handling scenarios.
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