Symptom
On /overseer, Brain → profile openai → Set active returns HTTP 404 : 404 Not Found.
The OpenAI endpoint itself is fine: GET /api/overseer/brains/:id/models reports reachable with dozens of chat models. The failure is the persist call.
Repro (live soup :3006)
PUT /api/overseer/brain/active → 404 Not Found
GET /api/overseer/brain/active → 404 Not Found
GET /api/overseer/brains → 200, profiles include default/openai/local, no `active`
Root cause
feat/overseer-admin-console (#103) shipped:
- web:
PUT /api/overseer/brain/active from OverseerBrainPanel
- hub: GET+PUT handlers,
resolveBrainSelection(), SyncEngine.getSettings(), overseer_settings KV
Soup remat later dropped the hub handlers while keeping the web panel. Manifest sweep 1d4644037 also dropped the feat/overseer-admin-console layer. Heal a786d6a8e restored web files only.
Store + DDL (overseer_settings, SettingsStore) still exist on soup. The route is the hole.
Fix
Thin collision-repair layer on current driver/integration: restore PUT/GET /overseer/brain/active, GET /brains active, converse defaulting through resolveBrainSelection, plus a soup-heal so remat cannot drop the handler again.
Fork-only (Overseer). Not a tiann/hapi issue.
Symptom
On
/overseer, Brain → profileopenai→ Set active returnsHTTP 404 : 404 Not Found.The OpenAI endpoint itself is fine:
GET /api/overseer/brains/:id/modelsreports reachable with dozens of chat models. The failure is the persist call.Repro (live soup :3006)
Root cause
feat/overseer-admin-console(#103) shipped:PUT /api/overseer/brain/activefrom OverseerBrainPanelresolveBrainSelection(),SyncEngine.getSettings(),overseer_settingsKVSoup remat later dropped the hub handlers while keeping the web panel. Manifest sweep
1d4644037also dropped thefeat/overseer-admin-consolelayer. Heala786d6a8erestored web files only.Store + DDL (
overseer_settings, SettingsStore) still exist on soup. The route is the hole.Fix
Thin collision-repair layer on current
driver/integration: restore PUT/GET/overseer/brain/active,GET /brainsactive, converse defaulting throughresolveBrainSelection, plus a soup-heal so remat cannot drop the handler again.Fork-only (Overseer). Not a tiann/hapi issue.