Repository navigation
fix bad packets crashing or stalling sync #82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
33 commits
Select commit
Hold shift + click to select a range
9d5481a
gate the r10 decoders on the packet type
abdulsaheel f948597
parseR10Lite now refuses short historical records with layout byte 10
abdulsaheel 747e6ea
reassembler no longer holds a history_end behind a truncated frame
abdulsaheel e69502f
hello battery reads past the field when the band is below 1%
abdulsaheel 6568ddf
huami clock: send sunday as 7, not 0
abdulsaheel f4ae06a
frame oura extended events correctly in parseOuraFrame
abdulsaheel b8e8cc6
stop the garmin protobuf walker throwing on a bad length varint
abdulsaheel b7639f0
colmi big-data reassembler restarts on a new reply instead of splicin…
abdulsaheel 3223b21
garmin fit: a timestamp that isn't a plain integer now fails as a For…
abdulsaheel fbe95e7
drop the deprecated gen5 compat getters nothing calls anymore
abdulsaheel e2fbda3
pebble reassembler can drop a partial frame on a transport reset
abdulsaheel 8993693
pebble reassembler only takes the next serial instead of clearing on …
abdulsaheel 779ec2a
garmin fit views skip a NaN or Inf sample instead of throwing
abdulsaheel 04fa1d8
drop the deprecated gen5 clock builders from the public api
abdulsaheel cfff47c
drop the rest of the deprecated gen5 v26 compat surface
abdulsaheel 30d7ace
flag frames the reassembler gives up as truncated
abdulsaheel efc524e
keep a history_end held behind a truncated frame unless the caller op…
abdulsaheel b15a6cc
stop trusting battery_level millivolts and charging from a garbage body
abdulsaheel f8ee613
drop the deprecated channel0/channel1AdcOffset getters on the gen5 op…
abdulsaheel a44ac47
pebble reassembler tells the caller to re-ack a repeated packet
abdulsaheel e0eb92d
gen5 hello battery dropped the tenths and let raw 1001..1009 through …
abdulsaheel d734064
drop the deprecated ecg opcode aliases and builders
abdulsaheel 0d56c90
drop the unused decodeBatch helper
abdulsaheel bf203cf
truncated-frame give-up could resume inside the frame's own header
abdulsaheel d7a6ca3
colmi: don't drop a pending reply on a continuation that looks like a…
abdulsaheel b49a288
garmin: reject a 10-byte varint with bits past 63
abdulsaheel c9f78a0
battery level: read soc and millivolts as the u32s they are
abdulsaheel a1a7ce8
reject non-finite values before the int check in the fit reader
abdulsaheel 58eaf87
ack every re-sent pebble packet that was already taken
abdulsaheel 887771f
refuse FIT timestamps declared as floats
abdulsaheel 9155f99
garmin stress: drop a sample whose own time is unreadable
abdulsaheel 17854ab
garmin stress: a sent-but-invalid or float time field also drops the …
abdulsaheel 0d3cb73
colmi test: a header-shaped continuation that completes with a bad crc
abdulsaheel File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🟡 Medium · Short replies mix with pending data
When a new reply begins with the 0xbc/type prefix in a notification shorter than
kColmiBigHeaderLengthwhile another reply is pending,_startsReplyreturns false, soaddappends the new reply's prefix to the pending reply; later chunks can complete a mixed response while the new reply is lost.Handle a partial new-reply prefix without appending it to the pending reply.
Prompt for AI agents