TODO grooming — close the RS-11.6/RS-12 arcs, add next-session sequencing - #109
Conversation
…cing End-of-session TODO grooming after the PR #108 merge: - RS-12 marked closed (search phase): mechanism + validated host fix, floor 5.9% -> 0.9%; remaining work scoped to the flash session, with the binary rx_urc_lost prediction recorded. - New RS-12.9 sequencing block: boards powered down cleanly tonight; morning consequences spelled out (/tmp wipe, tractor-camera UART theft), and the recommended order — wake-up checks + same-day channel spot-check, RS-3.3 camera first flight, flash session (rx_urc_lost + firmware URC fix + RS-3.6 formal gate + tx_done_early read), optional emitter hunt. - RS-11.6 original entries superseded (emitters characterized, escape validated, hunt optional); RS-11.5 original resolved by RS-12 (the slot-(total-2) loss was never on-air corruption). - RS-3.6 annotated: DIV8 build flashed and field-soaked through the whole campaign; only the formal gate transcript remains. - RS-11.7 annotated: hopper reshuffles in hours -> promoted to field-measurement prerequisite; survey_compare --history already implements the v1 stability ranking. - Root LifeTrac-v25/TODO.md: dated radio-status banner pointing at the live campaign state; historical body untouched. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Documentation-only PR that performs end-of-session TODO grooming after the RS-11.6/RS-12 investigation work (per #108), updating campaign status, sequencing notes for the next bench session, and superseding older TODO entries with pointers.
Changes:
- Adds a dated “Radio status” banner to the root
LifeTrac-v25/TODO.mdsummarizing current bench loss-floor state and next steps. - Updates
DESIGN-CONTROLLER/TODO.mdto mark RS-12 search phase as closed, add RS-12.9 next-session sequencing, and annotate RS-3.6 status plus RS-11.6 superseded items.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| LifeTrac-v25/TODO.md | Adds a top-of-file radio-status banner summarizing current campaign state and next actions. |
| LifeTrac-v25/DESIGN-CONTROLLER/TODO.md | Closes RS-12 search arc, adds next-session sequencing, and updates related RS-3.6/RS-11.6 TODO entries. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| > 3/3-clean channel so far). RS-12: the historic slot-(total−2) loss was | ||
| > an L072 URC-overwrite race at the short-final-fragment ride; host-side | ||
| > fix (`-NoParkLast 1`) validated n=3 + strict-hold. Remaining: one | ||
| > confirmation-sized flash session (rx_urc_lost + firmware URC fix + | ||
| > RS-3.6 gate) and the RS-3.3 camera first flight. Live campaign state: |
… ideas From the 2026-08-22 session: PR #110 review surfaced that all bench channel-stability data sits on the x.0/x.5 MHz survey grid while the production FHSS table centers sit on x.25/x.75 (offset 250 kHz, zero shared channels) -> RS-11.8 tracks chantab-grid survey passes. PM-1 tracks the power-down/wake design (PR #110) with its verified implementation prerequisites and cheap bench checks. RS-12.9 gains two idle-time items (/sys/class/power_supply check, optional chantab pass) and bench ops ideas (overnight quiesce vs halt, smart plug). Root TODO banner gets a dated update line. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.
Suppressed comments (6)
Previously missed (5) — in code that hasn't changed since the last review.
LifeTrac-v25/TODO.md:4
- The 0.9% status is not supported by the cited campaign evidence. The final strict-hold result reports 1.5% loss (also reflected in
DESIGN-CONTROLLER/TODO.md:2290), while the n=3 plain-hold result is 1.8%. Publishing 0.9% in the root status banner makes the current operating floor inaccurate.
> The bench LoRa link runs at **0.9 % fragment loss** (from 5.9 % two days
LifeTrac-v25/TODO.md:13
- This calls the next run a “first flight,” but RS-3.3 is already marked complete and its evidence records 472 real-camera frames delivered over LoRa (
DESIGN-CONTROLLER/TODO.md:865-877). Describe this as a regression/revalidation run so the root status does not reopen completed work.
> RS-3.6 gate) and the RS-3.3 camera first flight. Live campaign state:
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md:918
- This reopens a gate that the committed flash record explicitly marks cleared:
bench-evidence/RS_firmware_patch_flash_2026-07-25/NOTES.md:20-25says the RS-3.6 gate cleared on both boards with REG 0x42 = 0x12. If a required TX/RX transcript was actually omitted, reconcile that evidence record; otherwise close RS-3.6 here rather than queuing a duplicate gate.
(thousands of TX/RX cycles, tx_fifo_rb_bad=0 throughout). Only the
FORMAL gate transcript remains (REG 0x42 readback + one TX/RX cycle,
~2 min) — queued in the RS-12.9 flash session.
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md:2320
- This sequencing item contradicts the existing RS-3.3 record:
bench-evidence/RS_3_3_real_camera_2026-07-30/RESULTS.md:1-26says the real camera, encode-to-fit packer, carry fix, age escalation, and liveness valve already ran on hardware and delivered 472 frames over LoRa. Keep the useful lower-loss rerun, but present it as regression coverage rather than an unperformed first flight.
2. **RS-3.3 camera first flight** — `-TxFeed camera` at the current best
operating point (`-ForceFrfHz <today's pick> -NoParkLast 1`). The
encode-to-fit packer, carry fix, age-escalation and liveness valve
have NEVER been on air; flying them on a 0.9%-loss link attributes any
failure to the path, not the link.
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md:2263
- The documented floor is 1.5%, not 0.9%. The cited strict-hold evidence and the preserved RS-12 entry at line 2290 both report 1.5%, so this closure headline contradicts its own evidence.
This issue also appears on line 2270 of the same file.
- [x] **RS-12 CLOSED (search phase) 2026-08-17 — mechanism found, host fix
validated, bench floor 5.9% → 0.9%.** The penultimate-fragment loss was
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md:2271
- These results do not match
RS_12_noparklast_ab_2026-08-17/RESULTS.md: n=3 plain hold measured 1.8% loss/11.6% penultimate share, while strict hold was only n=1 and measured 1.5% loss, 32 timeouts, and 143 published frames. The 0.9%/22/154 figures have no cited evidence, so the closure record should retain the measured arm sizes and values.
n=3 interleaved + strict-hold legs: penultimate → uniform, loss 0.9%,
timeouts 22, published 154 (all campaign bests); cost ~−6% offered
…-12.9 mostly done RS-12.9 block gets a session-outcome header (items 1/2/5/6 done, 3/4 remain, new motion-leg residue; boards quiesced with radios verified in LoRa SLEEP). RS-11.8 annotated with the ticker-dominated first pass and the 4/4 stability result. RS-11.7 gains the 4-survey update (stability ranking is the only trustworthy output). PM-1 power_supply bench check marked CONFIRMED with charger IDs. RS-12 closed entry updated: leg 3 is the first live-traffic command-plane exercise, motion leg is the remaining gate before any NO_PARK_LAST default-flip discussion. Root banner gets the session paragraph including the main-CI heal in #111. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
| > scene motion at the bench. Same day: 927.5 became clean **4/4** — the | ||
| > sole stable channel across all surveys; the first chantab-grid pass | ||
| > proved ticker-dominated (no valid single-survey pick, method fix in | ||
| > RS-11.8); synth control 1.6 % with penultimate at 3 % (RS-12 fix | ||
| > holds); main CI red-since-#108 healed by #111's `_env_int` fix. Boards |
| > **Update 2026-08-22:** production power-down/wake design opened (PR | ||
| > #110, [DESIGN-CONTROLLER/POWER_MANAGEMENT.md](DESIGN-CONTROLLER/POWER_MANAGEMENT.md) | ||
| > — Opta I1 key-off sensing, battery-bridged clean halt, default-off | ||
| > bench gating, base quiesce + hail-set rendezvous; tracked as PM-1). |
| - [ ] **PM-1 Production power-down / wake (design PR #110, opened | ||
| 2026-08-22).** Design in POWER_MANAGEMENT.md (revised same day — all 8 | ||
| review findings verified against source and addressed). Shape: Opta I1 | ||
| + battery_mv sensing, H747-owned debounce, farewell-then-halt bridged |
| `seq=` publish logging verified on air, 4th survey made 927.5 **clean | ||
| 4/4** (sole stable channel), main CI red-since-#108 healed. Evidence: | ||
| `RS_3_3_camera_first_flight_2026-08-22/`, `RS_11_8_chantab_2026-08-22/`, | ||
| `RS_11_6_channel_survey_2026-08-22/`; PR #111. Boards left QUIESCED |
…e order Root banner now names the complete validated mitigation (-NoParkLast 1 PLUS LIFETRAC_NO_PARK_LAST_GAP_MS=80 strict hold, env-gated not default) instead of implying the CLI flag alone suffices, and the session block declares the merge-order prerequisite (#110 and #111 land the referenced design doc, evidence dirs, seq= change and CI fix -- merge them before this PR so no reference dangles). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.
Suppressed comments (4)
Previously missed (3) — in code that hasn't changed since the last review.
LifeTrac-v25/TODO.md:33
- The corrected RS-3.3 evidence in PR #111 says the injector was configured for 24, but only 11 requests landed within the leg (22 received copies). Reporting 24 here overstates the command-plane exercise; update this count to 11.
> leg), 0.3 %, 0.2 % with 24 injected keyframe requests dispatched
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md:2274
- PR #111's corrected
RESULTS.mdrecords 11 injected requests during the leg, received as 22 copies; 24 was only the injector target. This count should be 11 so the closed-entry summary matches its evidence.
This issue also appears on line 2315 of the same file.
**Update 2026-08-22 (RS-3.3 leg 3): first live-traffic exercise — 24
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md:2388
- These ranges do not match PR #111's results: the survey recorded 1–7 hits, with maxima mostly −44…−58 dBm and three much louder outliers (−30/−35/−38 dBm). Preserve those values so this TODO does not hide the outliers or misstate the minimum count.
PR #111): ticker-dominated — 49/50 hot (2–7 hits, flat −46..−52 dBm)
because the band-wide ~7 s ticker lands in every 30 s dwell;
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md:2315
- The dependency's corrected evidence shows that only 11 of the configured 24 requests occurred before teardown. Use 11 here; otherwise the session outcome overstates the exercised traffic.
(0.0% / 0.3% / 0.2% — kf-off, kf-idle, kf + 24 injected REQ_KEYFRAME
…evidence 11 in-leg requests (22 x2-copy receptions), not the injector target of 24, in all three summary spots; chantab ranges 1-7 hits with maxima mostly -44..-58 and outliers -30/-35/-38; hold-setting transcript-attested caveat carried into both summaries with a pointer to the archive instrumentation added in PR #111. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
Suppressed comments (3)
Previously missed (3) — in code that hasn't changed since the last review.
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md:2273
- These figures conflate two experiments. The evidence reports n=3 for the plain hold (1.8% loss, about 40 timeouts, about 144 published frames) and n=1 for the strict 80 ms hold (1.5%, 32, 143); it contains no n=3 strict-hold result at 0.9%/22/154. Please record the two validation levels separately.
- [x] **RS-12 CLOSED (search phase) 2026-08-17 — mechanism found, host fix
validated, bench floor 5.9% → 0.9%.** The penultimate-fragment loss was
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md:2289
- This historical opening entry remains unchecked even though the preceding entry closes the RS-12 search phase and the remaining firmware work is separately tracked above and in RS-12.9. That leaves the arc open in rendered checklist summaries, contrary to this PR’s stated purpose; mark the superseded original complete as done for the other historical RS entries below.
- [ ] **RS-12 (original opening entry) — the clustered bulk loss floor
LifeTrac-v25/TODO.md:13
- The cited RS-12 evidence does not support either 0.9% loss or n=3 validation of the strict hold.
RS_12_noparklast_ab_2026-08-17/RESULTS.mdrecords three plainNoParkLastfix legs at 1.8%, followed by one strict-hold leg at 1.5%. This banner currently overstates both the measured result and its replication.
> The bench LoRa link runs at **0.9 % fragment loss** (from 5.9 % two days
| > leg), 0.3 %, 0.2 % with 11 injected keyframe requests (22 ×2-copy | ||
| > receptions; the injector's other 13 fell outside the leg window) |
| **Update 2026-08-22 (RS-3.3 leg 3): first live-traffic exercise — 11 | ||
| injected REQ_KEYFRAME (22 ×2-copy receptions; 13 more fell outside | ||
| the leg window) dispatched during active image TX, loss 0.2%. |
…tion Both summaries now state the executed run precisely: 12 of 24 configured requests were emitted before teardown stopped the injector; 11 landed in-leg (22 x2-copy receptions), 1 post-leg, 12 never sent. The prior wording (13 fell outside the window) implied all 24 flew. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.
Suppressed comments (6)
Previously missed (3) — in code that hasn't changed since the last review.
LifeTrac-v25/TODO.md:4
- The documented RS-12 results do not support a 0.9% floor: the n=3 plain-hold arm averaged 1.8%, and the single strict-hold leg measured 1.5% (
RS_12_noparklast_ab_2026-08-17/RESULTS.md:65-71). Use the measured strict-hold value here, or cite the separate archived run that produced 0.9%.
This issue also appears on line 11 of the same file.
> The bench LoRa link runs at **0.9 % fragment loss** (from 5.9 % two days
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md:2263
- The linked RS-12 evidence reports 1.8% for the n=3 plain-hold arm and 1.5% for the sole strict-hold leg, not 0.9%. Recording 0.9% as the closed campaign floor makes this status disagree with its evidence.
This issue also appears in the following locations of the same file:
- line 2269
- line 2351
validated, bench floor 5.9% → 0.9%.** The penultimate-fragment loss was
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md:2291
- The superseded RS-12 opening entry remains an unchecked task, so TODO consumers still see RS-12 as open despite the new CLOSED entry. Mark it complete as done for the other superseded originals in this file (for example, lines 2481, 2527, and 2545).
- [ ] **RS-12 (original opening entry) — the clustered bulk loss floor
LifeTrac-v25/TODO.md:12
n=3applies to the plainNoParkLastA/B arm, not to the full flag-plus-80 ms strict hold: the evidence records only one strict-hold leg. This currently overstates how many times the mitigation described on the next line was replicated.
> mitigation validated n=3: `-NoParkLast 1` **plus** the strict hold
> `LIFETRAC_NO_PARK_LAST_GAP_MS=80` — env-gated, NOT a default (see the
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md:2271
- These strict-hold metrics do not match the cited result: its table records one strict-hold leg at 1.5% loss, 32 timeouts, and 143 published frames, while
n=3describes the earlier plain-hold arm. Please keep the closure summary aligned with the archived measurements.
event body so commands keep flowing — PR #108 review catch). Confirmed
n=3 interleaved + strict-hold legs: penultimate → uniform, loss 0.9%,
timeouts 22, published 154 (all campaign bests); cost ~−6% offered
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md:2351
- This historical preflight rationale repeats the unsupported 0.9% measurement. The strict-hold result available at shutdown was 1.5%, so the sequencing record should use that value consistently.
have NEVER been on air; flying them on a 0.9%-loss link attributes any
…ision The 0.9% floor is real but its record lived only in commit 5cc4dd9 and the leg-L archive (radio_monitor_20260817_195107_dde2c8a7) -- the A/B RESULTS the TODO cites never got the addendum. Fixed at the source: new Section 6 in RS_12_noparklast_ab_2026-08-17/RESULTS.md records leg L (0.9% / 22 timeouts / 154 published, guarantee intact 0/175, pen 8% = uniform) with the precision note that n=3 applies to the control and plain-hold arms only; strict hold is n=1 per build (K 1.5% pre-fix, L 0.9% shipped). Every TODO claim of 0.9% now cites leg L explicitly, the n=3 wording states the arms correctly, and the superseded RS-12 opening entry is checked off like the other superseded originals. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
LifeTrac-v25/TODO.md:8
- The banner overstates the second emitter as characterized. PR #111's RS-11.8 evidence says the −30 dBm 923.5 MHz dwell followed the same ~7 s grid, with only possible interleaved-ticker hints; its summary explicitly says the exact-10 s device B was not directly confirmed. Preserve that limitation so this status does not turn the ~7 s observation into a confirmed second-device fingerprint.
> since: 0.9–1.6 %; from 5.9 % two days prior). RS-11.6: two external ISM emitters characterized (a ~7 s hopper
> and an exact-10 s device at −30 dBm); escaped by carrier choice — the
… evidence The banner's two-emitter characterization now names its source (the 2026-08-16 surveys) and carries the 2026-08-22 dwell result honestly: -30 dBm at 923.5 rode the ~7 s grid and the exact-10 s fingerprint was not directly re-confirmed that day. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md:918
- This requeues a formal gate that is already documented as cleared.
bench-evidence/RS_firmware_patch_flash_2026-07-25/NOTES.md:10-25records REG 0x42 = 0x12 on both boards, both Stage 1 gates passing, Method G passing, and explicitly lists RS-3.6 under “Gates cleared.” Keeping RS-3.6 open makes the next-session plan schedule redundant bench work.
**Status 2026-08-17: FLASHED and field-soaked** — the DIV8 build is what
both boards have run through the entire RS-11.5→RS-12 campaign
(thousands of TX/RX cycles, tx_fifo_rb_bad=0 throughout). Only the
FORMAL gate transcript remains (REG 0x42 readback + one TX/RX cycle,
~2 min) — queued in the RS-12.9 flash session.
| > (`channel_survey_sniff.py` + `survey_compare.py`; 927.5 MHz is the only | ||
| > 3/3-clean channel so far). RS-12: the historic slot-(total−2) loss was |
| > env-gated, NOT a default (see the RS-12 closed entry). Remaining: one | ||
| > confirmation-sized flash session (rx_urc_lost + firmware URC fix + | ||
| > RS-3.6 gate) and the RS-3.3 camera first flight. Live campaign state: |
| > **Session 2026-08-22 (PR #111): the camera path FLEW — RS-3.3 on air | ||
| > at last.** *(Merge order: this TODO update references evidence, code, |
…losed Two review catches verified against archived evidence, both correct: - RS-3.3 flew 2026-07-31 (radio_monitor_20260731_213152_9db14d4d, 472 frames, 2381-2430 B multi-fragment keyframes) -- the 08-17 NEVER-been- on-air claim was wrong and every first-flight framing built on it is retracted on the record. Corrected framing everywhere: 2026-08-22 = first camera legs at the RS-12 operating point + first live-traffic NO_PARK_LAST exercise; the unexercised combination is multi-frag camera trains UNDER the strict hold (the motion leg). - RS-3.6 formal gate was cleared on flash day (2026-07-25 NOTES: REG 0x42 = 0x12 both boards, Gates cleared) -- entry closed [x], removed from the flash-session queue, the 08-17 requeue noted as erroneous. Also: banner-internal 3/3-vs-4/4 staleness resolved; pending-work list now names the motion leg instead of the already-flown camera legs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/RS_12_noparklast_ab_2026-08-17/RESULTS.md:95
- The archive's
params.txtrecordsgit_sha=dde2c8a7, but that commit still contains the command-swallowing discard-poll; the fall-through fix lands in the later5cc4dd9bcommit that also adds this archive. ThereforeSHA dde2c8a7does not substantiate the claim that this was the fixed build. Please archive the tested dirty-tree diff/hash (if available) or explicitly qualify the build identity instead of presenting the pre-fix SHA as the tested revision.
normal event body. **Leg L verified the fixed build** (archive
`radio_monitor_20260817_195107_dde2c8a7`, SHA dde2c8a7, bracketed,
| > `RS_3_3_real_camera_2026-07-30/`; the 08-17 "never been on air" note | ||
| > was wrong. What remains unexercised is multi-frag camera trains UNDER | ||
| > the strict hold — the motion leg.)* *(Merge order: this TODO update |
| RESIDUE (scope corrected 2026-08-23: multi-frag camera trains per se | ||
| flew 2026-07-31 with 2.4 KB keyframes — what has never flown is that | ||
| combination WITH the strict hold): the static scene compresses so well | ||
| that every keyframe fit a single fragment — **multi-fragment camera | ||
| trains under the hold need scene MOTION (operator's hand) during a | ||
| leg**; injection recipe `kf_inject.py` is in the evidence dir |
TODO grooming: closes the RS-11.6/RS-12 arcs as documented entries, adds RS-12.9 next-session sequencing, and (2026-08-22) records the session outcomes: RS-3.3 camera legs, RS-11.8 chantab findings, PM-1 tracking, 927.5 clean 4/4.
MERGE ORDER (from review): merge #111 and #110 BEFORE this PR. This TODO references the POWER_MANAGEMENT.md design (lands with #110) and the session evidence directories, seq= logging change, and CI heal (land with #111). Merging #109 first would publish dangling references; after those two land, this PR applies cleanly with every reference resolving.
Review status: all five Copilot comments addressed -- the RS-12 banner now names the full env-gated mitigation (flag + strict-hold gap), and the ordering dependency is declared here and in the banner text itself.
🤖 Generated with Claude Code