feat: move driver controls to channels - #668
Conversation
|
Warning Review limit reached
Next review available in: 24 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (25)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Description
Phase 4 follow-up to
docs/ARCHITECTURE_REVIEW.md.Moves the Input and Tachometer widgets off the legacy renderer-wide telemetry firehose and onto a typed, demand-driven
driver-controls.snapshotchannel. The main-process processor projects the minimum full-precision input and engine values required by those widgets, publishes only changed state, and is active only while a renderer subscribes.The runtime is wired through both live/tape and mock sources. Input requests the channel at up to 60 Hz, while Tachometer uses its driver-focused rate. Shift-light thresholds are sourced from session data instead of the previous invalid telemetry-key casts. Storybook fixtures and the curated replay validator now seed and validate the new snapshot.
The implementation plan now records the four remaining Phase 4 slices: this driver-controls migration, positional/warning consumers, low-frequency/debug consumers, and final legacy telemetry deletion with re-profiling.
Validation:
npm run lint -- --no-fixnpm run test -- --no-coverage— 1,218 passed, 1 skippednpm run test:replay:curated— 36,000 frames, 70 session revisions, 12 probesgit diff --checkArchitecture pre-PR checklist:
src/appScreenshots
No visual changes expected; Input and Tachometer retain their existing presentation.
Before
Input and Tachometer subscribed to the legacy renderer-wide telemetry store.
After
Input and Tachometer consume
driver-controls.snapshot; renderers containing only migrated widgets no longer require legacy telemetry.Type of Change
Checklist
npm testnpm run lintand fixed any issues