fix(ci): release build fails on committed path dependency_overrides - #34
Merged
Conversation
…in release PR #25 committed a dependency_overrides block pointing protocol/analytics at the sibling working copies. CI has no sibling checkout, so `flutter pub get` failed (exit 66) on the v0.6.0 tag build. Move the path overrides to a gitignored pubspec_overrides.yaml (pub auto-detects it for local dev) and regenerate pubspec.lock against the pinned git refs (analytics@main c1a68a0, protocol@main dc64c4e).
svssathvik7
added a commit
to svssathvik7/edge
that referenced
this pull request
Aug 6, 2026
kAlgoVersion 55 and 56 both cite the new nap detector as their sibling change, and until this commit neither was backed by the pin. pubspec.yaml still pointed at OpenStrap#34 (f0d1153), which has no `sleep/nap.dart`, no `wristOff:`/`exclude:` on `detectNaps`, and no `tstSec`/`tibSec`/`efficiency` on `NapWindow`. This is the §3.5 failure mode the v43 changelog is remembered for, except worse in kind: v43 shipped a changelog describing a fix its pin merely lacked, while this branch did not COMPILE against its own pin — 10 analyzer errors in derivation_engine.dart. It went unnoticed because pubspec_overrides.yaml is gitignored and resolves both siblings to local working copies, so every local build and test run silently used analytics HEAD rather than the pinned SHA. Confirmed by moving the override aside and running `flutter pub get` against the real pin. Verified present at c3a30be, per §3.5: git show c3a30be:lib/src/onehz/sleep/nap.dart | grep -cE 'wristOff|exclude|tibSec' -> 16 git show c3a30be:lib/src/onehz/sleep/van_hees.dart | grep -c immobilityMask -> 2 pubspec.lock regenerated with the override moved aside, so it locks the git SHA rather than `path: ../analytics`. A path-source lock fails CI `flutter pub get` (exit 66) and is the reason that file must never be regenerated with the override in place. No kAlgoVersion bump: 56 is already the version describing this analytics behaviour, and it has not shipped. The pin and the version now land together, which is the whole point. Against the real pin: flutter analyze lib/ clean, 1150 tests pass. The single failure is workout_reliability_test.dart's queued-job case, pre-existing and identical on clean main.
chinna244
pushed a commit
to chinna244/edge
that referenced
this pull request
Aug 9, 2026
The sleep-stager rewrite (analytics#34) and the protocol RR-bound fix (protocol#21) were both on their respective mains but not reaching users, because edge was still pinned behind. Analytics was two hops back — sitting on analytics#32's PR-BRANCH head even though OpenStrap#32 merged two days ago. analytics cbbe06a -> f0d1153 (main @ OpenStrap#34) protocol 5bb8606 -> 7edcb3e (main @ OpenStrap#21) analytics#34 replaces the deep/REM boolean conjunctions with weighted robust-z scores. The old deep rule AND-ed one informative axis with one null one (rmssd, d -0.13) and one INVERTED one (mean HR, d +0.31 — deep sleep runs slightly FASTER than light on the wrist), so all three only co-fired by luck. That's what produced 30-second deep specks the 3-min bout rule then deleted. Against 99 PSG-labelled wrist nights: kappa 0.036 -> 0.128 (0.132 held out), deep 10.3/5.7 -> 53.0/12.9 sens/PPV, REM 30.6/12.1 -> 52.6/20.7. protocol#21 bounds realtimeRr to the same 200-2500ms range parseRealtimeHr and parseR24 already use, so a misaligned 0x28 frame can't hand a 5ms "beat" to live HRV. The other half of that commit (historical-family activity/steps_inc null instead of 0) isn't read by edge. kAlgoVersion 52 -> 53: every day's hypnogram, stage minutes and sleep-derived scalars change, so every day re-derives. Verified both SHAs actually contain what this claims, per the v43 lesson: git show f0d1153:lib/src/onehz/sleep/cardio_stager.dart | grep classifyCardioEpochs git show 7edcb3e:lib/src/live.dart | grep kMinRrMs Reproduced CI locally rather than trusting the path overrides: moved pubspec_overrides.yaml aside, pub get, confirmed lock resolved-ref matches both pins, ran check_sibling_pins.sh (both agree), then analyze + full suite against the REAL pinned packages. 1088 tests, analyze clean. Lock diff is the four ref lines only — no path: sources.
abdulsaheel
added a commit
that referenced
this pull request
Aug 24, 2026
…pick lifecycle pairing key: pairOuraRing wrote it to secure storage before proving the ring accepts it, but nothing ever deleted it -- a failed pair or a forgotten ring left a 16-byte secret behind with no device row pointing at it. added OuraLink.forgetRing + a paired-flag so every early return in pairOuraRing drops the key it wrote. HrsLink.forgetDevice now dispatches on adapter_id so the one "forget" entry point the UI calls actually reaches it for a ring. devices.dart: sensorLive reflects HrsLink.reading only, so it was marking an unrelated paired oura row "connected" whenever a strap happened to be live. oura_link.dart: the advertised ring name went into device.label unfiltered -- same cleanDeviceLabel pass the strap pairing path already runs it through. pair_sensor.dart: dismissing the screen mid-scan left the process-wide scan running for its full timeout with nothing to stop it; an exception out of the injected pairing callback skipped the busy-clearing setState and left every row permanently locked; forgetting a sensor updated the screen's own state but not the shared AppState.sensors another open screen reads. repin to protocol #34's latest head, verified against the actual pinned SHAs with overrides off same as last time.
DropTabl
added a commit
to DropTabl/edge
that referenced
this pull request
Aug 26, 2026
…ision gate is gone All three pin locations move together to protocol main @ 6664854, the OpenStrap/protocol#35 merge commit. The old pin's parser returned null for any hello body whose revision byte was not 1; under this branch's mandatory-hello bootstrap that made a future firmware revision bump unable to connect. OpenStrap#35 records the byte instead of gating on it. NO kAlgoVersion bump, verified against the full 4ce8f02..6664854 diff: OpenStrap#35's one code change widens which HELLO bodies PARSE (hello feeds connection identity/state, not the derivation pipeline); OpenStrap#34, also in the hop, only ADDS files (oura + generic-HRS wire formats nothing here imports); the rest is comment rewording. No decoder for a persisted record moves, so no stored number can.
DropTabl
added a commit
to DropTabl/edge
that referenced
this pull request
Aug 26, 2026
…ision gate is gone All three pin locations move together to protocol main @ 6664854, the OpenStrap/protocol#35 merge commit. The old pin's parser returned null for any hello body whose revision byte was not 1; under this branch's mandatory-hello bootstrap that made a future firmware revision bump unable to connect. OpenStrap#35 records the byte instead of gating on it. NO kAlgoVersion bump, verified against the full 4ce8f02..6664854 diff: connection identity/state, not the derivation pipeline); OpenStrap#34, also in the hop, only ADDS files (oura + generic-HRS wire formats nothing here imports); the rest is comment rewording. No decoder for a persisted record moves, so no stored number can.
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.
The v0.6.0 tag build failed at
flutter pub get(exit 66):_edge depends on _analytics from path which doesn't exist.Cause: PR #25 committed a
dependency_overridesblock inpubspec.yamlpointing protocol/analytics at the sibling working copies (../openstrap-*). CI checks out only the edge repo, so those paths don't exist. v0.5.4 (last good release) had no such block.Fix:
dependency_overridesblock frompubspec.yamlso CI/release resolves the pinned git refs (OpenStrap/analytics@main,OpenStrap/protocol@main).pubspec_overrides.yaml(pub auto-detects it) so local dev still links the siblings.pubspec.lockagainst the git refs (analytics c1a68a0 = Its crashed sometimes #14, protocol dc64c4e = main).flutter pub getverified locally both with the override (path link) and without (git refs).🤖 Generated with Claude Code