Story: Comms substrate evolution

Table of Contents

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

Goal

Continue evolving the comms substrate: composable CLI options across binaries, rename ores.shell to reflect its scope, and replace the hardcoded channel list with server-side discovery.

Status

Field Value
State DONE
Parent sprint Sprint 08
Now Completed 2026-01-11.
Waiting on None.
Next None.
Last touched 2026-01-11

Acceptance

  • All binaries share the composable options classes; standardised flags.
  • ores.shell renamed to ores.comms.shell consistently.
  • Channels discovered dynamically; shell consumes the registry.

Tasks

Task State Start End Description
Refactor options and parser DONE 2026-05-19 2026-01-02 Composable CLI configuration: common, server, client, compression configurations; standardise -h/-v/–verbose across binaries; add –log-include-pid.
Rename ores.shell to ores.comms.shell DONE 2026-05-19 2026-01-03 The shell is specific to the binary comms protocol; namespaces, CMake targets, headers, and docs renamed.
Discover notification channels dynamically DONE 2026-05-19 2026-01-11 Server-side event_channel_registry; new list_event_channels protocol messages (0x0015/0x0016); shell 'events channels' and 'events listen *' use discovery.

Decisions

Compose options rather than inherit
small focused classes keep each binary's option set explicit while sharing the common bits.
Server-side channel registry
clients no longer need code changes when a new channel is added; subscriptions follow the registry.

Out of scope

  • Splitting the shell into per-binary subcommands.
  • Channel-level authorization (covered by RBAC in sprint 07).

See also

Emacs 29.1 (Org mode 9.6.6)