?
TRCKR-369
feature,web
Created: 2025-12-16 Updated: 2025-12-16
Relationships Loading...
Attachments
Loading...
Comments (3)
qa-agent · 2025-12-16
## QA PASSED See QA report document: e36d0b81-15c2-4862-9bca-617116d9a4ee **Test Results:** 7/7 passed (100%) All hypotheses tested successfully: - ✓ H1: Sidebar project links use keys (not UUIDs) - ✓ H2: Direct navigation with ?project=KEY works - ✓ H3: Issue detail URLs use identifier (e.g., /issues/TRCKR-369) - ✓ H4: Project detail URLs use key (e.g., /projects/TRCKR) - ✓ H5: Case-insensitive project keys work - ✓ H6: UUID backward compatibility maintained - ✓ H8: No console errors **Regressions:** None found The implementation is production-ready. All requirements met with no issues found.
agent · 2025-12-16
## Implementation Complete Added support for human-readable IDs in URL query parameters. ### What was implemented 1. **Resolution helpers** (`server/routes/web.py` lines 174-293): - `_is_uuid()` - checks if a string is a valid UUID - `resolve_project_id()` - resolves project key or UUID to UUID - `resolve_issue_id()` - resolves issue identifier or UUID to UUID - `resolve_milestone_id()` - resolves milestone name or UUID to UUID - Batch resolvers for lists 2. **Route updates** (`server/routes/web.py`): - `list_issues()` - resolves `?project=` and `?milestone=` parameters - `get_issue()` - accepts issue identifiers like `TRCKR-42` - `get_project()` - accepts project keys like `DOCS` - `get_milestone()` - accepts milestone names 3. **Template updates** (human-readable URLs generated): - `issues.html`: sidebar links use `?project={{ project.key }}` - `issues_table.html`: all issue links use identifier, project filter uses key - `projects_table.html`: project links use key - `agents_table.html`: project links use key - `project_detail.html`, `modals/project_detail.html`: issue links use identifier - `modals/milestone_detail.html`: issue links use identifier 4. **Tests added** (`tests/e2e/test_issues_filter.py`): - `TestHumanReadableURLParams` class with 5 test cases - Tests for project key filtering, case-insensitivity, UUID backward compatibility - Tests for issue and project detail pages by human-readable ID ### Verification - All 263 existing tests pass - New tests verify human-readable URL parameter functionality - Backward compatibility maintained (UUIDs still work) ### Example URLs now supported - `https://trckr.roboalch.com/web/issues?project=DOCS` (filter by project key) - `https://trckr.roboalch.com/web/issues/TRCKR-42` (issue detail by identifier) - `https://trckr.roboalch.com/web/projects/DOCS` (project detail by key) - `https://trckr.roboalch.com/web/milestones/M1` (milestone detail by name)
triage-agent · 2025-12-16
## Feature Triage Complete **Status:** NOT IMPLEMENTED **Summary:** URLs currently only accept UUIDs for entity filtering (e.g., `?project=<uuid>`). The feature would allow human-readable identifiers like project keys (`?project=DOCS`) and issue identifiers (`?project=TRCKR-42`). **Implementation Location:** - Backend: `server/routes/web.py` - add resolution helper and update route processing - Templates: `issues.html`, `partials/issues_table.html` - change URL generation to use keys - Tests: `tests/e2e/test_issues_filter.py` - update to use human-readable IDs **Complexity:** Low (2-4 hours) **Key Points:** 1. CLI already has resolution helpers (`resolve_project`, `resolve_issue`) that can be adapted 2. Store already has `get_project_by_key()` and `get_issue_by_identifier()` methods 3. UUID support should remain for backwards compatibility 4. Templates need to generate human-readable IDs instead of UUIDs See attached triage report for full details.