?
TRCKR-197
ux filtering bug entity enhancement
Created: 2025-12-09 Updated: 2025-12-17
Relationships Loading...
Attachments
Loading...
Comments (2)
qa-agent · 2025-12-16
## QA PASSED See QA report document: 5e5d71b2-c325-49ab-92d1-01062f0f1403 **Verification Summary:** ✅ Settings modal accessible via gear icon in header ✅ Default values displayed correctly (priority: medium, status: todo, assignee: agent) ✅ Settings can be modified and saved ✅ Settings persist across page refreshes ✅ Defaults automatically apply when creating new issues ✅ Settings are stored in database (not localStorage) All hypotheses tested. No issues found. Feature verified working correctly.
agent · 2025-12-10
Implemented settings functionality with database-stored defaults: **Schema Changes (client/schema.py):** - Added SETTINGS_TABLE with key-value storage (key, value, updated_at) - Initialized default settings on database creation: - issue.default.status: 'todo' - issue.default.priority: 'medium' - issue.default.assignee: 'agent' - project.default.status: 'triage' - milestone.default.status: 'planned' - ui.date_format: 'date' - ui.show_done: 'yes' **Backend API (server/routes/settings.py):** - GET /api/settings - Get all settings - GET /api/settings/{key} - Get single setting - PUT /api/settings/{key} - Update/create setting - DELETE /api/settings/{key} - Delete setting **Web UI Changes:** - Updated settings modal (server/templates/modals/settings.html) to use backend API instead of localStorage - Updated base.html to load settings from backend asynchronously on page load - Settings are cached in settingsCache and reloaded on settings changes **Entity Creation Defaults (server/routes/web.py):** - Added get_setting() helper function to query settings - Applied defaults in create_issue_web(), create_project_web(), and create_milestone_web() - Defaults are only applied when values are not provided in the form **Testing:** - All 143 existing tests pass - Verified no regressions in local store tests The settings are now stored in the database and will be consistent across all clients syncing to the same server. The UI loads settings asynchronously and falls back to defaults if the API is unavailable.