feat: PWA manifest + the Ghost Log (Workstream C)
manifest.webmanifest referencing the icon assets that actually exist (sizes verified with file, not asserted), standalone display, no service worker — offline séance is meaningless and SW cache bugs are not worth it. GET /api/seances/recent: last 12 sessions in exactly three queries (sessions+entity join, one GROUP BY for counts, one window-function query for up to 3 echoes per session). Echoes filter on utterance payload kinds because DB event kinds carry no greeting/manifest — the agent verified where _speak actually writes rather than trusting the spec's phrasing. /log page: entity glyphs, relative in-fiction timestamps, counts, echo lines in transcript style, gated like the séance, 390px-safe. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -269,6 +269,10 @@ function SeanceSession({ username }: { username: string }) {
|
||||
{t('nav.codex')}
|
||||
</Link>
|
||||
|
||||
<Link to="/log" className="seance-codex-link">
|
||||
{t('nav.log', { defaultValue: 'log' })}
|
||||
</Link>
|
||||
|
||||
<Link to="/inventory" className="seance-codex-link">
|
||||
{t('nav.inventory', { defaultValue: 'inventory' })}
|
||||
</Link>
|
||||
|
||||
Reference in New Issue
Block a user