Skip to content

F10 on-air acceptance: 0x6C stale-tile repair verified end-to-end - #89

Merged
dorkmo merged 1 commit into
mainfrom
f10-onair-acceptance
Aug 2, 2026
Merged

F10 on-air acceptance: 0x6C stale-tile repair verified end-to-end#89
dorkmo merged 1 commit into
mainfrom
f10-onair-acceptance

Conversation

@dorkmo

@dorkmo dorkmo commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Evidence-only PR: on-air acceptance for the F10 stale-tile report merged in #88, plus TODO closures and the follow-up candidate it produced.

What was verified (bench, 2026-08-01)

Camera feed, DTS profile 2, pinned operating point; the production web_ui ran on the base board as the F10 scanner (30 s staleness horizon vs the bench's 24 s sweep rotation). Full record: bench-evidence/F10_tile_stale_acceptance_2026-08-01/RESULTS.md, with both broker taps committed and raw daemon logs in radio_monitor_20260801_182119_0697e5dd/.

  • Cold-fill acceleration — never-arrived tiles reported and front-run; convergence to silence.
  • No false positives — zero reports across three healthy-link quiet windows.
  • Timed 18-frame outage — repaired in 27 s, individual marks clearing 3–9 s after appearing (sweep-only counterfactual: up to 24 s per tile). No keyframe used for any tile repair; reassembler_timeouts=0 throughout.
  • Level-triggered robustness — reports lost during the outage superseded harmlessly; tiles whose repairs were lost on air re-marked and cleared in ≤6 s.
  • Chain receipts at every hop — web_ui publish → rx daemon command TX opcode=0x6c OK (on air) → tractor LoRa cmd: TILE_STALE 14 B (the predicted body size exactly) → camera_service front-run.

Surfaced in passing (recorded in RESULTS §6)

  • Pre-existing bug, filed separately, not fixed here: Canvas.apply catches only CodecDecodeError around tile transcode; an unexpected exception (observed: ImportError from the lazy PIL import under mono_g4) silently freezes the canvas while base_seq keeps tracking.
  • Dual-broker retained-override trap: the rx daemon receives retained control state from BOTH its brokers on every reconnect; a stale mono_g4 retained on the bench PC's broker reproduced the freeze after a daemon relaunch. Bench rule added.
  • Deployment rule: LIFETRAC_TILE_STALE_AFTER_MS ≥ ~1.25 × n_tiles/(SWEEP_STEP × fps) — the repo default (20 s) is below this bench's rotation; horizon must be set per deployment.
  • F11 candidate queued in TODO: web_ui requests a keyframe on every base_seq gap, including single lost delta frames (~2.4 KB each at this budget) — largely redundant now that F10 repairs staleness tile-by-tile. Same measure-then-flip protocol as F10.

Boards left booted with radios idle; bench containers stopped; retained encode-mode cleared to webp on both brokers.

🤖 Generated with Claude Code

…end-to-end

Full record in bench-evidence/F10_tile_stale_acceptance_2026-08-01/
(RESULTS.md + both broker taps; raw daemon logs in the harness archive
radio_monitor_20260801_182119_0697e5dd). Camera feed, DTS profile 2,
production web_ui scanning on the base board.

All legs passed: cold-fill acceleration; zero false positives on a
healthy link (30 s threshold vs 24 s sweep rotation); an 18-frame timed
outage repaired in 27 s with individual marks clearing 3-9 s after
appearing (sweep counterfactual up to 24 s/tile); repair-loss re-marks
absorbed by the level-triggered design; reassembler_timeouts=0 and no
keyframe used for any tile repair.

Surfaced in passing and recorded: a pre-existing Canvas.apply
silent-desync on non-codec exceptions (filed separately), the
dual-broker retained-override trap (bench rule added), the
LIFETRAC_TILE_STALE_AFTER_MS-vs-sweep-rotation deployment rule, and the
F11 candidate (demote web_ui's per-gap keyframe request, now largely
redundant under F10).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 1, 2026 23:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This evidence-only PR records on-air acceptance results for the previously-merged F10 stale-tile repair (0x6C) and updates the project TODOs accordingly, adding the bench artifacts needed to audit the end-to-end verification.

Changes:

  • Marks F10 as verified on air (2026-08-01) and captures follow-up candidate (F11) in TODO.md.
  • Adds acceptance write-up (RESULTS.md) plus base/tractor broker taps for the run.
  • Adds the archived harness parameter snapshot for reproducibility (params.txt).

Reviewed changes

Copilot reviewed 3 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
LifeTrac-v25/DESIGN-CONTROLLER/TODO.md Updates F10 task status to “verified on air” and records follow-up candidate work (F11).
LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/radio_monitor_20260801_182119_0697e5dd/params.txt Captures run parameters for the archived harness session.
LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/F10_tile_stale_acceptance_2026-08-01/tap_base.log Base-broker tap showing published tile_stale and req_keyframe events with timestamps and payloads.
LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/F10_tile_stale_acceptance_2026-08-01/tap_tractor.log Tractor-broker tap intended to show received stale-tile marks for cross-hop verification.
LifeTrac-v25/DESIGN-CONTROLLER/bench-evidence/F10_tile_stale_acceptance_2026-08-01/RESULTS.md Primary acceptance report describing setup, legs, observations, and raw artifact pointers.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@dorkmo
dorkmo merged commit 9e05d24 into main Aug 2, 2026
1 check passed
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.

2 participants