Skip to content

Stamp protocolVersion via preSerialization and fix strict chat transport schema on web #99

Description

@dasomji

Parent

Review findings on #96.

What to build

Question Chat transport events (online/offline) must reach the web dashboard again. The server now adds protocolVersion to every SSE event, but the shared transport-event schema is strict, so the web client silently drops every transport event and never shows connection state.

At the same time, replace the server's global onSend hook — which JSON-parses and re-stringifies every already-serialized response body, silently skips non-object bodies, and duplicates the header write done in onRequest — with a preSerialization hook that stamps the object once. Make the 426 incompatible-protocol body conform to the shared incompatible-response schema, and either use or delete the currently dead reported-version / incompatible-response schema exports.

Acceptance criteria

  • Web chat UI displays transport online/offline events (test parses a stamped event through the web schema)
  • /api/state and /healthz responses are serialized once; version header set exactly once
  • 426 response body validates against the shared incompatible-protocol schema
  • No dead schema exports in the versioning module
  • Android conformance tests still pass

Blocked by

  • None — can start immediately

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentReady for an implementation agent

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions