Skip to content

app: bus manager owns the adapter with lanes, spans, coalesced writes and a debug readout - #16

Merged
aq1018 merged 1 commit into
mainfrom
app/bus-manager
Sep 23, 2026
Merged

aq1018 merged 1 commit into
mainfrom
app/bus-manager

Conversation

@aq1018

@aq1018 aq1018 commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

PR 1 of three from docs/design/bus-manager.md. One scheduler owns the client: exclusive, control, refresh and live lanes under the document's decision rule; subscriptions merged into spans per servo and rate class; decode once and fan out one immutable Snapshot; writes coalesce per (servo, register) and dirty the covering span; utilisation-based stretching; group reads behind a gread feature detect; a register cache that serves a subscriber mounting mid-period without an exchange. The React binding publishes once per animation frame. The session hosts the manager, runs scan and baud migration as one exclusive turn, and the fleet cards are one slow subscription per servo. ?debug renders the exchange statistics.

  • 26 manager unit tests over a manual clock and a fake client, plus store and span tests
  • tests/e2e/bus.spec.ts drives the debug readout over the simulated fleet
  • card-poll and command-queue deleted; Session.run and Session.client stay until PR 3

https://claude.ai/code/session_015YgEehU5GLftenbuhpKWMi

@aq1018
aq1018 merged commit 756a1c4 into main Sep 23, 2026
1 check passed
@aq1018
aq1018 deleted the app/bus-manager branch September 23, 2026 03:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant