Skip to content

0.5.5: lower stale-prior threshold from 10s to 1s#24

Merged
sym-bot merged 1 commit intomainfrom
fix/shorten-stale-window
Apr 29, 2026
Merged

0.5.5: lower stale-prior threshold from 10s to 1s#24
sym-bot merged 1 commit intomainfrom
fix/shorten-stale-window

Conversation

@sym-bot
Copy link
Copy Markdown
Owner

@sym-bot sym-bot commented Apr 29, 2026

Fixed

The 10s lastSeen-stale window from v0.5.3+v0.5.4 was too lenient. When a peer process is killed and quickly relaunched, its old run had typically sent a CMB seconds before death, so `lastSeen` is still within the 10s window. The dedup logic then rejects the legitimate redial as a same-direction-duplicate, producing `connection ready → immediate disconnect` with no handshake-complete on the dialing side — the exact symptom on iPhone↔Mac-Catalyst MeloMove pair after either side rebuilds.

Lowered to a hardcoded 1s threshold. Sub-second TCP-retry races during initial handshake still keep prior; peer restarts with ≥1s gap recover at the application layer instead of waiting on OS keepalive (~100s).

150/150 tests pass.

🤖 Generated with Claude Code

The 10s window from v0.5.3+v0.5.4 was too lenient. Peer process killed
and quickly relaunched left lastSeen within the window (old run had
sent a CMB seconds before death), so the dedup-reject path killed
legitimate redials.

1s threshold tolerates sub-second TCP-retry races during initial
handshake; peer restarts (≥1s gap) now recover at the application layer.

150/150 unit tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@sym-bot sym-bot merged commit c1b010e into main Apr 29, 2026
2 checks passed
@sym-bot sym-bot deleted the fix/shorten-stale-window branch April 29, 2026 20:08
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