feat(dashboard): Settings → Service tab for service_config CRUD (SVC-3) #789

Merged
dev merged 1 commit from dev/752 into main 2026-05-03 15:01:24 +00:00
Collaborator

Adds a new /settings/service route with tabbed editor for all service_config fields (Forge, Container, UI, MCP, Auth, Watchdogs, Node flows, Penpot, Routing). Confirm dialog guards forgejo_url and container_image_default changes. Reset-to-builtin per section; Reset all drops the global row.

Closes #752

Test plan

  • Navigate to Settings → Service config → verify all 9 tabs render
  • Edit forgejo_url or container_image_default → confirm dialog appears before save
  • Save a section → global row upserted; Reset to builtin → field nulled in global row
  • Reset all → global row deleted; scope chips show Builtin active
Adds a new `/settings/service` route with tabbed editor for all `service_config` fields (Forge, Container, UI, MCP, Auth, Watchdogs, Node flows, Penpot, Routing). Confirm dialog guards `forgejo_url` and `container_image_default` changes. Reset-to-builtin per section; Reset all drops the global row. Closes #752 ## Test plan - Navigate to Settings → Service config → verify all 9 tabs render - Edit `forgejo_url` or `container_image_default` → confirm dialog appears before save - Save a section → global row upserted; Reset to builtin → field nulled in global row - Reset all → global row deleted; scope chips show Builtin active
dev self-assigned this 2026-05-03 14:45:21 +00:00
feat(dashboard): Settings → Service tab for service_config CRUD (SVC-3)
All checks were successful
qa / dockerfile (pull_request) Successful in 22s
qa / qa-1 (pull_request) Successful in 3m9s
qa / qa (pull_request) Successful in 0s
8c031143c9
Adds GET/PUT/DELETE /api/service-config endpoints and a new
/settings/service route with tabbed editor for all service_config fields
(Forge, Container, UI, MCP, Auth, Watchdogs, Node flows, Penpot, Routing).
Confirm dialog guards forgejo_url and container_image_default changes.
Reset-to-builtin per section; Reset all drops the global row entirely.

Closes #752

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dev requested review from reviewer 2026-05-03 14:48:36 +00:00
reviewer approved these changes 2026-05-03 14:56:25 +00:00
reviewer left a comment

All 9 tabs render, PUT validation is correct, confirm-dialog guards the two destructive fields, guardMutating is consistent with the speech-config precedent, and CI is green.

Nit (doc-gap): service-config-settings.ts line 17-18 comment claims the PUT auto-deletes the global row when all non-speech fields resolve to null — that logic is not implemented (the handler leaves the all-null row). The null-coalesce chain in getForgejoUrl() etc. means this is not a functional bug, but the comment is misleading. Remove or correct it.

All 9 tabs render, PUT validation is correct, confirm-dialog guards the two destructive fields, guardMutating is consistent with the speech-config precedent, and CI is green. Nit (doc-gap): `service-config-settings.ts` line 17-18 comment claims the PUT auto-deletes the global row when all non-speech fields resolve to null — that logic is not implemented (the handler leaves the all-null row). The null-coalesce chain in `getForgejoUrl()` etc. means this is not a functional bug, but the comment is misleading. Remove or correct it.
dev force-pushed dev/752 from 8c031143c9
All checks were successful
qa / dockerfile (pull_request) Successful in 22s
qa / qa-1 (pull_request) Successful in 3m9s
qa / qa (pull_request) Successful in 0s
to c518d54168
All checks were successful
qa / dockerfile (pull_request) Successful in 26s
qa / qa-1 (pull_request) Successful in 4m31s
qa / qa (pull_request) Successful in 0s
2026-05-03 14:56:47 +00:00
Compare
Collaborator

PR was rebased after review (new head c518d541); CI still pending on the new SHA. Stepping off the review request — will be re-dispatched automatically when CI completes.

PR was rebased after review (new head `c518d541`); CI still pending on the new SHA. Stepping off the review request — will be re-dispatched automatically when CI completes.
dev merged commit e944392f47 into main 2026-05-03 15:01:24 +00:00
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!789
No description provided.