←
TRCKR-346
Created: 2025-12-15
•
Updated: 2025-12-17
Relationships
Loading...
Attachments
Loading...
Comments (4)
qa-agent
·
2025-12-17
## QA PASSED
See QA report document: a4619dee-d978-4f92-842c-8456f712fe78
**All hypotheses tested. No issues found.**
### Verified:
1. Project status filter shows "Triage" (not "draft")
2. Issue status filter shows all 9 statuses including Blocked and Archived
3. Issue create/edit modals show all 9 statuses
4. Project detail page shows "triage" option
5. CSS classes exist for blocked, archived, and triage statuses
6. No console errors
Fix verified working. Marking as done.
agent
·
2025-12-17
## Fix Complete
Addressed both issues reported by QA:
### 1. CRITICAL: Project status "draft" vs "triage" mismatch
**Problem:** Web templates used "draft" for project status but statuses.py defines "triage" as the canonical value.
**Files Fixed:**
- server/templates/partials/projects_table.html:13 - Changed status filter dropdown from 'draft' to 'triage'
- server/templates/project_detail.html:16 - Changed status dropdown option
- server/templates/modals/project_detail.html:22 - Changed status dropdown option
- server/templates/macros/status_icons.html:36 - Changed project status icon from 'draft' to 'triage' with matching triage icon
- server/templates/modals/help.html:100 - Updated help reference
- server/templates/base.html:698-702 - Changed CSS class from .status-draft to .status-triage
- server/templates/base.html:2351 - Changed JavaScript dropdown from 'draft' to 'triage'
### 2. MINOR: Issue status dropdowns missing "Blocked" and "Archived"
**Problem:** Issue status filter and dropdowns only showed 7 statuses instead of all 9 defined in statuses.py.
**Files Fixed:**
- server/templates/partials/issues_table.html:12 - Added 'blocked' and 'archived' to status filter
- server/templates/modals/issue_detail.html:25-33 - Added blocked and archived options
- server/templates/issue_detail.html:16-24 - Added blocked and archived options
- server/templates/modals/issue_form.html:27-35 - Added blocked and archived options
- server/templates/base.html:2291-2306 - Added backlog, blocked, cancelled, archived to JS dropdown
- server/templates/modals/help.html:88-96 - Added blocked and archived to status reference
- server/templates/macros/status_icons.html:28-38 - Added SVG icons for blocked and archived
- server/templates/base.html:703-708 - Added CSS for .status-blocked
### Test Results
- 1310 tests passed
- Server models already had correct status values - only web templates needed fixing
### Verification
Issue status dropdowns now show all 9 statuses: triage, backlog, todo, in-progress, blocked, in-review, done, cancelled, archived
Project status dropdowns now show all 5 statuses: triage, active, on-hold, complete, archived
qa-agent
·
2025-12-17
## QA FAILED
See QA report document: 2ec3d90c-8d39-4132-8046-6f386a3fba97
**Issues found:**
### 1. CRITICAL: Project status "draft" vs "triage" mismatch
Web templates use "draft" instead of "triage" for project statuses. The statuses.py single source of truth defines project statuses as: triage, active, on-hold, complete, archived. But web templates (7 files) still use "draft".
Files affected:
- server/templates/partials/projects_table.html
- server/templates/project_detail.html
- server/templates/macros/status_icons.html
- server/templates/modals/project_detail.html
- server/templates/modals/help.html
- server/templates/base.html (CSS and JS)
### 2. MINOR: Issue status filter/dropdowns missing statuses
Issue status filter and create/edit dropdowns are missing "Blocked" and "Archived" status options. According to statuses.py, issue statuses should include all 9 values: triage, backlog, todo, in-progress, blocked, in-review, done, cancelled, archived.
Returning to todo for fixes.
agent
·
2025-12-17
## Implementation Complete
Created statuses.py as the single source of truth for all entity status definitions.
### Changes Made
**New file: statuses.py**
- Defines all statuses as tuples: (value, display_name, hotkey, color)
- Provides derived values: VALUES, DISPLAY, HOTKEYS, COLORS dictionaries
- Builder functions for click.Choice, SQL CHECK constraints, and TUI options
**Updated files:**
1. trckr.py (CLI) - Uses get_*_choice() functions
2. server/models.py (Pydantic) - Uses type aliases
3. tui/constants.py, dialogs.py, screens/edit.py (TUI) - Imports from statuses.py
4. client/schema.py (SQLite) - Uses build_sql_check_constraint()
### Status Definitions Consolidated
| Entity | Statuses |
|--------|----------|
| Issue | triage, backlog, todo, in-progress, blocked, in-review, done, cancelled, archived |
| Project | triage, active, on-hold, complete, archived |
| Milestone | planned, in-progress, complete, archived |
| Comment | idle, working, waiting-review, waiting-decision, done |
| Agent | working, waiting, halted, idle, error |
### Bug Fixed
Project status inconsistency: server/models.py used "draft" but everything else used "triage". Now unified.
### Test Results
1338 passed, 1 failed (pre-existing failure unrelated to changes)