Skip to content

release: v1.4.1 - #15

Merged
Gyanano merged 3 commits into
mainfrom
release/1.4.1
Sep 2, 2026
Merged

release: v1.4.1#15
Gyanano merged 3 commits into
mainfrom
release/1.4.1

Conversation

@Gyanano

@Gyanano Gyanano commented Sep 2, 2026

Copy link
Copy Markdown
Owner

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, and frontend/package.json.

The serial reader now calls flush_if_idle before feed when 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 adds DelayedBytes scripts 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 frame len in useSerialLogs, and LogViewer totals use byte_len ?? data.length.

Reviewed by Cursor Bugbot for commit cfc2f90. Bugbot is set up for automated code reviews on this repo. Configure here.

Gyanano and others added 3 commits September 2, 2026 06:41
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)
@cursor

cursor Bot commented Sep 2, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot 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)

@Gyanano
Gyanano merged commit 87cfd11 into main Sep 2, 2026
3 checks passed
@Gyanano
Gyanano deleted the release/1.4.1 branch September 2, 2026 14:36
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