• feat(#18): PAD read-endpoint — web pane renders live PAD/valence from our affect store (Deliverable 2)

    vh released this 2026-06-19 21:56:15 -07:00 | 197 commits to main since this release

    The web persona pane now renders live PAD/valence for Tier-3 agents from our
    :8390 affect store, closing the persona-telemetry gap (Worldtree persona_state
    404s for Tier-3 per ADR-0009; Tier-3 emits no affect_update SSE).

    • provider: non-bifrost GET /affect/state/{agent_id} on the affect-store-owning
      app (add_route — keeps /bifrost/* top-level + op-feed-skipped); explicit
      no_affect_snapshot 404 (never a zeroed PAD); busy_timeout + check_same_thread
      on the connection.
    • web: GET /api/affect/{agent_id} proxy — end_user_id server-supplied (never the
      browser), colon-id round-trip, configured RATATOSKR_AFFECT_READ_URL.
    • pane: honest affect render (pad + valence + emitted_at, labelled "affect", no
      fabricated Tier-1 fields); explicit empty-state; polls 2s post-turn.

    Contract-first (docs/contracts/issues/18.contract.md, Deliverable-2-scoped;
    Deliverable 1 / composite endpoint deferred — bifrost-blocked on a public
    build_combined_app, WT dispatch confirmed single-endpoint caps-routed).
    Heid-code-review panel: 1 INV-001 drift (strip fabricated "neutral") + 4
    test-gaps fixed. Live-smoke PROVEN: web->provider->affect.db chain returns real
    sindra/vuong PAD; Playwright DOM check confirms the pane render + the fix.

    Suite 482 green.

    Downloads