Story: Comms features

Table of Contents

This page documents a story in Sprint 07. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

Goal

Stretch the comms substrate: optional payload compression, LISTEN/NOTIFY through the shell, and type-traits-based message classification.

Status

Field Value
State DONE
Parent sprint Sprint 07
Now Completed 2025-12-25.
Waiting on None.
Next None.
Last touched 2025-12-25

Acceptance

  • Payload compression negotiated at session setup; benchmarks recorded.
  • Shell receives Postgres notifications via the comms layer.
  • Type traits classify every message; dispatch uses traits.

Tasks

Task State Start End Description
Consider compressing payload DONE 2026-05-19 2025-12-23 Add optional zstd compression to comms payloads; benchmark against representative messages and decide thresholds.
Add listen/notify to shell DONE 2026-05-19 2025-12-24 Route Postgres LISTEN/NOTIFY events through the comms substrate to the shell so users see live state updates.
Define type traits for message grouping DONE 2026-05-19 2025-12-25 Add type traits to group messages by component and concern; basis for cleaner dispatch tables.

Decisions

Negotiate compression at setup
keeps the protocol forward-compatible; clients without compression keep working.
Notifications first in the shell
cheap to inspect; Qt wiring comes later once we know the shape works.

Out of scope

  • Per-message dynamic compression policies — we negotiate once per session.

See also

Emacs 29.1 (Org mode 9.6.6)