feat(ui): Settings view + per-space project cards (status/research/edit/delete) + theming pass

- Settings (#/settings): API tokens (mint/list/revoke), Agents list, Orthos Mode placeholder
- Per-space Projects: Void-1-style expandable cards — inline status, ↻ Research (Eithan stub),
  Edit/New modal, Delete-with-confirm; migration 019 adds research_status/notes/timestamps;
  POST /api/projects/:id/research stub; GET /api/agent-tokens list
- Global +1 font bump; themed scrollbars; larger/bolder themed topbar

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
root
2026-06-05 00:06:08 +10:00
parent 4a55c24700
commit 80363d3e68
14 changed files with 432 additions and 113 deletions

View File

@@ -43,6 +43,18 @@ export async function update(id, patch, actor) {
return r;
}
// Stub for the future Eithan research agent: flag the project as research-requested.
// Eithan will later transition requested → researching → done and fill research_notes.
export async function requestResearch(id, actor) {
const before = await getById(id);
if (!before) return null;
const { rows: [r] } = await pool.query(
`UPDATE projects SET research_status='requested', research_requested_at=now(), updated_at=now()
WHERE id=$1 RETURNING *`, [id]);
await recordAudit(actor, 'update', 'project', id, before, r);
return r;
}
export async function del(id, actor) {
const before = await getById(id);
await pool.query(`DELETE FROM projects WHERE id=$1`, [id]);