e30c3b632a
Forges (multi-host) + tokens, project directories, and git identity now live in a private SQLite config store (internal/store, modernc.org/sqlite) on a /data named volume that is not bind-mounted or exposed, so credentials aren't reachable outside the container. New Settings page (/settings) + <settings-panel> with /api/config CRUD. Scanner reads roots fresh from the store each cycle; service resolves forges per-repo from the store and reapplies per-forge git auth on change. First run seeds the store from .env. Overturns the old no-datastore/.env-config laws (AGENT.md updated). Verified live end-to-end. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.3 KiB
1.3 KiB
settings-panel
Intent
The UI for the config store (AGENT.md §1.3) — manage forge hosts + tokens,
project directories to scan, and the git commit identity, replacing hand-editing
.env for domain config. Served at /settings.
Public surface
- Tag:
<settings-panel> - Fetches:
GET /api/config/forges,GET /api/config/project-dirs,GET /api/config/identity. - Writes:
- Forges:
POST /api/config/forges(add),DELETE /api/config/forges/:id. - Project dirs:
POST /api/config/project-dirs(add),PUT /api/config/project-dirs/:id(enable/disable),DELETE /api/config/project-dirs/:id. - Identity:
PUT /api/config/identity.
- Forges:
- Reports: results via
toastCustomEvents (needs<toast-host>on the page).
History
- 2026-09-22: created — settings UI for the SQLite config store (forges, project dirs, git identity).
Notes / gotchas
- Tokens are write-only from the client: the server returns only
hasToken, never the value. Removing + re-adding a forge is how you rotate a token. - Project-dir paths are container paths and must resolve inside the container (under a mounted base); the server validates existence before adding.
- Adding/removing a forge reapplies git auth (the server sets an
http.extraheaderper forge); changes take effect immediately.