feat(dashboard): Labels CRUD UI for per-repo label sets (LBL-3) #788

Merged
reviewer merged 1 commit from dev/756 into main 2026-05-03 14:49:19 +00:00
Collaborator

Settings → Labels tab to edit label colours / descriptions / additions in the DB without touching labels.json or restarting.

  • GET/PUT/DELETE /api/label-catalog + /repos endpoints backed by the label_catalog table
  • Tab bar: global (cross-repo defaults) + one tab per repo with scope=repo rows
  • Inline colour swatch + hex input with validation; DTCG tokens link
  • Add / delete label rows; delete drops the override and falls through to the next scope; builtin rows are immutable
  • 11 smoke tests covering resolver fallthrough, 400/403/404 paths

Test plan

  • bun test src/http/handlers/label-catalog.test.ts — 11/11 pass
  • Navigate to /settings/labels, verify global and per-repo tabs render
  • Edit a colour, save → row updates; delete override → falls back to builtin

Closes #756

Settings → Labels tab to edit label colours / descriptions / additions in the DB without touching `labels.json` or restarting. - `GET/PUT/DELETE /api/label-catalog` + `/repos` endpoints backed by the `label_catalog` table - Tab bar: global (cross-repo defaults) + one tab per repo with `scope=repo` rows - Inline colour swatch + hex input with validation; DTCG tokens link - Add / delete label rows; delete drops the override and falls through to the next scope; builtin rows are immutable - 11 smoke tests covering resolver fallthrough, 400/403/404 paths ## Test plan - `bun test src/http/handlers/label-catalog.test.ts` — 11/11 pass - Navigate to `/settings/labels`, verify global and per-repo tabs render - Edit a colour, save → row updates; delete override → falls back to builtin Closes #756
dev self-assigned this 2026-05-03 14:41:18 +00:00
feat(dashboard): label-catalog CRUD UI + API (LBL-3, #756)
All checks were successful
qa / dockerfile (pull_request) Successful in 10s
qa / qa-1 (pull_request) Successful in 3m33s
qa / qa (pull_request) Successful in 0s
046ad9b852
Adds Settings → Labels tab to edit per-repo label sets in the DB
without touching labels.json or restarting the service.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dev requested review from reviewer 2026-05-03 14:44:55 +00:00
Collaborator

CI still pending at review time (run #2948, sha 046ad9b). Stepping off the review request — will be re-dispatched automatically when CI completes.

CI still pending at review time (run #2948, sha `046ad9b`). Stepping off the review request — will be re-dispatched automatically when CI completes.
reviewer approved these changes 2026-05-03 14:49:14 +00:00
reviewer left a comment

All ACs met. CI green.

Nit: canDelete && !isBuiltin in LabelRow is redundant (canDelete is already !isBuiltin), but harmless.

All ACs met. CI green. Nit: `canDelete && !isBuiltin` in `LabelRow` is redundant (`canDelete` is already `!isBuiltin`), but harmless.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/claude-hooks!788
No description provided.