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.shellrenamed toores.comms.shellconsistently.- 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
- ores.comms.shell — the renamed component.
- Wt and HTTP review — the HTTP entry point that consumes the same dispatch.