Module: Ask::SessionProtocol
- Defined in:
- lib/ask/session_protocol.rb,
lib/ask/session_protocol/host.rb,
lib/ask/session_protocol/client.rb,
lib/ask/session_protocol/events.rb,
lib/ask/session_protocol/schema.rb,
lib/ask/session_protocol/methods.rb,
lib/ask/session_protocol/version.rb,
lib/ask/session_protocol/interactions.rb
Overview
ask-session-protocol — the canonical wire contract between the ask session host (ask-app-server) and every client: terminal TUI, web console, bots, IDE integrations.
This gem is a definition, not an implementation. It contains no runtime, no transports, and no session logic. It is the single authoritative, versioned artifact for what a session event looks like on the wire and which methods a host exposes — so the host and every client evolve independently against the same contract.
Defined Under Namespace
Modules: Events, Host, Interactions, Methods, Schema Classes: Client
Constant Summary collapse
- PROTOCOL_VERSION =
Wire protocol version, negotiated in the
initializehandshake. Semantic: bump the minor on additive changes (new events, new methods), bump the major on breaking changes. Clients must tolerate unknown event types and methods within the same major version. "1.0"- DELIVERY_KINDS =
How a subscriber receives events for a session.
live — events are pushed as they happen; no replay replay — the host replays the session's event log from after_seq before pushing new events web-remote-replayable — replay semantics tuned for web/remote clients (snapshot-friendly, resumable) %w[live replay web-remote-replayable].freeze
- VERSION =
"0.2.0"