• fix: render the seeded first-message on the web UI (v0.19.9)

    vh released this 2026-07-06 15:19:56 -07:00

    The #347 auto-seed worked (the greeting was in the session ledger at seq-0),
    but the web UI never showed it: there was no GET /api/sessions/{id}/messages
    route and startSession() went straight from create to persona/tools/admin
    hydration, so the transcript only filled from the live turn stream + user
    echoes — a seeded turn-0 was invisible.

    • server: new proxy route GET /api/sessions/{id}/messages -> get_session_messages
      (mirrors the tools/bifrost proxies; status-preserving envelope).
    • SPA: loadTranscript(sessionId) fetches it on open and renders existing turns
      (assistant -> .response .md-body via markdownSafe escape-first; user ->
      .prompt-echo via textContent), called after the workspace opens. Best-effort.

    web_debug_surface contract amended (endpoint + loadTranscript). 2 web route
    tests, suite 617 green. Playwright DOM check proved the render end-to-end
    (drive the real UI -> Sindra's greeting bubble appears).

    Downloads