release: v1.4.1 - #15
Merged
Merged
Conversation
At high duty cycles (e.g. 115200 baud, 2560 B every 250 ms) the inter-frame gap (~28 ms) never reaches the 50 ms read timeout, so read() returns the next chunk directly and flush_if_idle was never consulted — frames merged invisibly until the 64 KiB hard cap, making the RX frame counter appear stalled while TX kept climbing. Run the idle check before feed() on every data read: an observed gap longer than the segmentation timeout now closes the pending frame. Bytes were never lost (raw tap and stats are pre-framing); this restores correct frame boundaries. Regression pinned with a scripted DelayedBytes read that blocks 30 ms then delivers the next chunk, plus a companion test pinning that back-to-back chunks still merge. Also fix the log viewer's total-bytes counter: event-sourced entries carry empty data by design (Step 4), so the sum always showed 0. The frame DTO's len is now kept as byte_len and used for the total.
…ycle fix(serial): 高占空比下接收帧合并不切分 + 总计字节数恒为 0 (#9)
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_bb81db0c-5ea0-43be-ba72-4f9192eeb0be) |
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.
Release v1.4.1
Patch 发版,携带一个实测确认的串口接收修复:
version.json / Cargo.toml / tauri.conf.json / package.json 四件套已对齐 1.4.1。
Note
Medium Risk
Changes core serial receive framing in the reader loop; incorrect idle flushing could mis-split or merge frames under load, though new golden tests target the reported high-duty-cycle case.
Overview
v1.4.1 bumps version across
version.json, Cargo/Tauri config, andfrontend/package.json.The serial reader now calls
flush_if_idlebeforefeedwhen a read returns data, so Timeout segmentation still splits frames when inter-frame gaps are longer than the segmentation timeout but shorter than the port read timeout (issue #9). Golden harness addsDelayedBytesscripts and regression tests for split vs merge behavior.The log UI fixes total bytes stuck at 0 for event-driven entries:
LogEntry.byte_len, mapping from frameleninuseSerialLogs, andLogViewertotals usebyte_len ?? data.length.Reviewed by Cursor Bugbot for commit cfc2f90. Bugbot is set up for automated code reviews on this repo. Configure here.