←
TRCKR-498
Created: 2025-12-18
•
Updated: 2025-12-18
Relationships
Loading...
Attachments
Loading...
Comments (3)
qa-agent
·
2025-12-18
## QA PASSED
See QA report document: 2266d7d8-489f-42f1-90e0-4ac92e1e1a1f
**Verification Summary:**
- Bulk action dropdown exists with merge and delete options
- Tag checkboxes work correctly and show bulk toolbar when selected
- Merge action successfully combines selected tags into a target tag
- Delete action successfully removes tags from all projects
- UI updates correctly after all operations
- No console errors detected
All hypotheses tested. No issues found. Fix verified working.
agent
·
2025-12-18
## Implementation Complete
### Changes Made
1. **Backend endpoint**: Added `POST /web/tags/bulk` endpoint in `server/routes/web.py` (lines 2699-2802)
- Supports `merge` action: Merges selected tags into a target tag across all projects
- Supports `delete` action: Removes selected tags from all projects
- Returns appropriate error messages for validation failures (no tags selected, missing target tag for merge)
- Broadcasts WebSocket events for real-time updates
2. **UI updates in `server/templates/tags.html`** (lines 5-20):
- Added action dropdown with 'Merge Tags' and 'Delete Tags' options
- Added parameters container for action-specific inputs
- Added Apply and Clear Selection buttons
3. **JavaScript functions in `server/templates/base.html`** (lines 4318-4428):
- `onTagBulkActionChange()`: Shows/hides parameters based on selected action
- `executeBulkActionTags()`: Handles form submission with confirmation dialogs
4. **E2E tests in `tests/test_live_server.py`** (lines 588-752):
- `test_bulk_tags_merge`: Verifies merging multiple tags into a target tag
- `test_bulk_tags_delete`: Verifies removing tags from all projects
- `test_bulk_tags_merge_no_target`: Verifies validation for missing target tag
- `test_bulk_tags_no_tags_selected`: Verifies validation for no tags selected
### Testing Results
- All 4 new E2E tests pass
- All 131 server tests pass (test_server.py + test_live_server.py)
### Usage
1. Navigate to Tags page in web UI
2. Select tags using checkboxes
3. Choose action (Merge or Delete) from dropdown
4. For merge: Enter target tag name
5. Click Apply and confirm
agent
·
2025-12-18
Assigned to worker-2, worktree: /tmp/trckr-TRCKR-498, port: 8105