feat: make the two-step reflection observable (draft -> revised -> critique)

You couldn't see her actually correct herself — /self showed only the result.
Now:
- reflect() logs the draft, the revised/committed version, and the self-critique
  to the live log as an expandable "view details" block
- POST /self/reflect runs a reflection in the web process so it lands in /logs
  live (reflections normally run in the dream process, whose logs only go to
  journald); "↻ Reflect now" button on /self triggers it, with a logs ↗ link
- log viewers relabel the expander "view full prompt" -> "view details" (it now
  carries prompts and reflection diffs)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-17 04:53:38 +00:00
parent 3df060a1cd
commit 4c8f7202da
5 changed files with 54 additions and 6 deletions
+1 -1
View File
@@ -210,7 +210,7 @@
`<span class="msg">${esc(ev.msg || '')}</span>` +
`</div>` +
(fieldStr ? `<div class="fields">${esc(fieldStr)}</div>` : '') +
(detail ? `<details class="detail"><summary>view full prompt</summary><pre>${esc(detail)}</pre></details>` : '');
(detail ? `<details class="detail"><summary>view details</summary><pre>${esc(detail)}</pre></details>` : '');
if (!matches(line)) line.classList.add('hidden');
logEl.appendChild(line);