The self-heal audit is complete. Here's the summary: **All Palace Code API endpoints are healthy:** | Endpoint | Status | |---|---| | `GET /code/api/threads` | 200 ✓ | | `GET /code/api/session-tails` | 200 ✓ | | `GET /code/api/linear-issues` | 200 ✓ | | `GET /code/api/attach-thread` | 200 ✓ | | `POST /code/api/update-thread` | 200 ✓ | **One fix applied:** `GET /api/usage` was throwing HTTP 500 when the PostgreSQL database wasn't available. The queries in `usage/index.ts` and `usage/log.ts` weren't wrapped in try-catch, so a connection failure caused an unhandled exception. Both files were fixed to return gracefully (`[]`) when the DB is unreachable. App rebuilt and restarted, now returns 200. Layout (split-panel, thread cards, detail panel CSS) is structurally correct. 2 threads in Redis, 87 Linear issues loading, 11 thread attachments present.