• feat(sse,tui): bump spec pin to v0.28.0 + AffectUpdate event (v0.11.0)

    vh released this 2026-05-25 18:48:44 -07:00 | 244 commits to main since this release

    Spec pin moved 55101e9 (v0.19.0) → da93ca7 (v0.28.0); vendored
    conversation-api-spec.md + conversation_api.contract.md re-snapshotted
    from Worldtree at the new SHA. The only material delta consumed in
    this bump is Worldtree #204's affect_update SSE event surface.

    Wire layer (sse_client.py):

    • New AffectUpdate dataclass: sse_id / status / turn_id / snapshot
      (snapshot is None for status="scheduled")
    • Added to Event union + _envelope_for_type dispatch branch
    • Without this, ratatoskr would crash on any persona-enabled turn
      from a v0.28.0 server (unknown SSE event type → ValueError)

    TUI layer (tui.py):

    • AffectUpdate routes through the v0.10.0 audit pipeline only — one
      debug-pane line per arrival with dominant_emotion + PAD for
      status="current", lightweight status+turn_id for status="scheduled"
    • No transcript / tools / thinking pane writes — the persona UX shape
      (Persona TabPane vs sticky header line) is deferred to a separate
      bump pending operator direction

    Tests: 2 new wire-layer tests for current+scheduled parsing + 2 new
    presenter audit tests for routing and audit-line shape.

    Not yet consumed: GET /agents/{id}/persona_state endpoint (step 2 of
    the integration plan).

    Downloads