Skip to content

fix(rynk): preserve long behavior timeouts - #955

Closed
HaoboGu wants to merge 1 commit into
feat/rynk_protocolfrom
agent/pr848-long-behavior-timeouts
Closed

fix(rynk): preserve long behavior timeouts#955
HaoboGu wants to merge 1 commit into
feat/rynk_protocolfrom
agent/pr848-long-behavior-timeouts

Conversation

@HaoboGu

@HaoboGu HaoboGu commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

What

Preserve combo and one-shot timeouts as u32 milliseconds across configuration, storage, and the Rynk wire API. Bump the developing protocol minor version to 0.2 and keep Vial's 16-bit view saturating rather than wrapping.

Why

Real RMK configurations use long one-shot timeouts; this actively maintained keyboard configuration uses 300s. The current as u16 storage conversion changes 300,000 ms to 37,856 ms after persistence.

Root cause

The runtime uses Duration, but both persisted behavior fields and Rynk BehaviorConfig narrowed the millisecond value to u16.

Impact

Rynk behavior timeouts now support the full u32 millisecond range. Existing low-value postcard records remain decodable, and Vial continues to expose its protocol-defined 16-bit range.

Checks

  • Added 120s/300s storage and end-to-end Rynk round-trip coverage.
  • Added legacy u16 storage decode coverage.
  • Regenerated and verified locked wire snapshots.
  • sh scripts/test_all.sh (full feature matrix, doctests, Wasm build, and Clippy)
  • wasm-pack build --target web

Built on #848.

@HaoboGu HaoboGu closed this Jul 15, 2026
@HaoboGu
HaoboGu deleted the agent/pr848-long-behavior-timeouts branch July 16, 2026 02:19
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