Skip to content

feat(edge): EdgeIngest phone-side receiver (Dart)#59

Open
isrugeek wants to merge 4 commits into
mainfrom
feat/edge-ingest-receiver
Open

feat(edge): EdgeIngest phone-side receiver (Dart)#59
isrugeek wants to merge 4 commits into
mainfrom
feat/edge-ingest-receiver

Conversation

@isrugeek

Copy link
Copy Markdown
Contributor

Pure-Dart canonical phone-side consumer of the edge wire contract — parity with the Kotlin/Swift EdgeIngest (same dedupe/hash/version/ACK, idempotent duplicate re-ACK, poison-pill dead-letter K=3, bounded LRU, sealed EdgeEvent + broadcast Stream). Additive, branched off main (the score-explanation feature is intentionally NOT bundled). 27 edge tests pass.

Canonical phone-side consumer of the edge wire contract for Flutter apps:
parse, sha256 verify, hsi_version validate, dedupe by artifact_id, ACK.
Idempotent duplicate re-ACK, poison-pill dead-letter (K=3), bounded LRU dedupe.
Sealed EdgeEvent + broadcast Stream + listener (dispose-aware). Additive;
exported from the barrel. README + CHANGELOG.
@isrugeek isrugeek requested a review from a team as a code owner June 16, 2026 04:49
isrugeek added 3 commits June 16, 2026 00:58
Mirror RecoveryScoreResult/ReadinessScoreResult: add a SleepFactor enum (in
lockstep with the engine's synheart_sleep_score::SleepFactor wire strings) and an
explanation: List<SleepFactor> field, parsed from the 'explanation' wire array
(unknown wires dropped — the engine enum is non_exhaustive).

Fixes the undefined-getter break in synheart-life's ExplanationFacts.fromSleep,
which already referenced SleepScoreResult.explanation. Adds parse + wire-contract
tests.
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