fix(hid): serialize Unifying receiver identity reads - #493
Open
4dux wants to merge 2 commits into
Open
Conversation
Greptile SummaryThis revision safely bounds and serializes Unifying receiver identity reads while preserving concurrent per-device feature probing.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| crates/openlogi-hid/src/inventory/probe.rs | Serializes receiver-backed name reads, bounds the identity phase, validates echoed slot sub-registers, and retains concurrent feature walks. |
| crates/openlogi-hid/src/inventory.rs | Defines the bounded duration used for optional Unifying identity reads. |
| crates/openlogi-hid/src/inventory/tests.rs | Adds focused coverage proving that a late response for one slot cannot satisfy the next slot’s request. |
| crates/openlogi-cli/src/cmd/list.rs | Replaces outdated receiver-support guidance with current Bolt and Unifying support information. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Drain Unifying arrival events] --> B[Sort connections by slot]
B --> C[Read slot names sequentially]
C --> D{750 ms phase budget expired?}
D -- No --> E[Retain resolved names]
D -- Yes --> F[Skip remaining optional names]
E --> G[Walk per-device HID++ features concurrently]
F --> G
G --> H[Assemble receiver inventory]
Reviews (3): Last reviewed commit: "fix(hid): bound Unifying identity reads" | Re-trigger Greptile
4dux
force-pushed
the
fix/unifying-register-probes
branch
from
August 3, 2026 07:52
b33a847 to
a9a0ec4
Compare
Contributor
|
Same failure mode on the write path: every verb re-resolves its feature with the same |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Unifying device-name requests all address receiver index
0xff, and replies are correlated by register rather than by the paired slot carried in the payload. Running these requests concurrently can cross-wire replies or leave a request waiting until the probe budget expires.Read receiver-backed slot identities sequentially, then retain concurrency for the slower per-device HID++ feature walks.
Changes
Testing
cargo fmt --all -- --checkcargo test -p openlogi-hid -p openlogi-clicargo clippy -p openlogi-hid -p openlogi-cli --all-targets -- -D warnings