You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Back-face normal filter | LPI-PROC-060 to 066 | 7 | 0 | 0 |
60
60
| Reprojection model | LPI-DATA-060 to 063 | 4 | 0 | 0 |
61
61
62
-
**Summary:**36 of 40 specs implemented; 3 active gaps; 0 deferred.
62
+
**Summary:**37 of 40 specs implemented; 2 active gaps; 0 deferred.
63
63
64
64
## Key Findings
65
65
66
-
1.**Gen2 path is incomplete** — `src/survive_process_gen2.c` is nearly empty; Gen2 LFSR decoder (`lfsr_lh2.c`) contains extensive debug `fprintf` calls indicating active development state. (LPI-PROC-032)
66
+
1.**Gen2 path is incomplete** — `src/survive_process_gen2.c` is nearly empty. (Debug `fprintf` calls in `lfsr_lh2.c` removed 2026-04-17.)
67
67
68
68
2.**One-way generation detection** — Once the system commits to Gen1 or Gen2 for a device, there is no recovery path. A mis-detection in the 500-packet window produces a bad session with no error surfaced. (LPI-PROC-004)
69
69
@@ -76,8 +76,7 @@ Decodes raw photon timestamps into calibrated sweep angles and lighthouse calibr
76
76
## Work Required
77
77
78
78
### Must Fix
79
-
1. Remove debug `fprintf` calls from `src/lfsr_lh2.c` before any production Gen2 use (LPI-PROC-032)
80
-
2. Complete `src/survive_process_gen2.c` — currently the Gen2 processing path is non-functional for full angle extraction (LPI-PROC-032, gap in spec coverage)
79
+
1. Complete `src/survive_process_gen2.c` — currently the Gen2 processing path is non-functional for full angle extraction (gap in spec coverage)
81
80
82
81
### Should Fix
83
82
3. Surface OOTX quality metrics (bad_crcs, bad_sync_bits, guess_bits) to callers so degraded calibration is visible (LPI-PROC-026)
| Reprojection model | TE-DATA-050 to 053 | 4 | 0 | 0 |
66
66
| Math infrastructure | TE-DATA-060 to 064 | 4 | 1 | 0 |
67
67
68
-
**Summary:** 37 of 38 active specs implemented; 1 active gap (CI guard for codegen); 0 deferred.
68
+
**Summary:** 37 of 41 active specs implemented; 4 active gaps (3 angular-rate gates TE-PROC-040/041/042, plus CI guard for codegen TE-DATA-064); 0 deferred.
Copy file name to clipboardExpand all lines: docs/launch-readiness-triage.2026-04-17.md
+10-14Lines changed: 10 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@
8
8
9
9
33 open items in the libsurvive docs, bucketed by shoot-readiness impact.
10
10
11
-
- 6 **launch blockers** — silent corruption or grey failures
11
+
- 6 **launch blockers** — silent corruption or grey failures (LB-1/LB-2/LB-4/LB-5 done; LB-3 deferred to on-Pi recording milestone; LB-6 open)
12
12
- 5 **should fix before launch** — diagnosability gaps
13
13
- 7 **nice to have** — robustness / dev hygiene
14
14
- 8 **save for later** — irrelevant to stagehand (third-party bindings)
@@ -29,23 +29,19 @@ Each item either (a) lets bad data through without visibility, or (b) makes on-s
29
29
- Verified 2026-04-17. `solve_global_scene()` in `poser_mpfit.c:978-989` returns `false` when `status_failure || sensor_error > max_cal_error`. Calibration commit (`PoserData_lighthouse_poses_func` at L1047) is inside the success-only `else` branch — previous calibration retained by default on failure. `status_failure` also covers MPFit convergence errors (`res <= 0`) and max-iter termination.
30
30
-**Fail-loud bonus**: stagehand patch at L981-988 invokes `stagehand_gss_failure_cb` so the agent emits `GSS_FAILURE` LOG_EVENT with `bestnorm`. Spec marked `[x]`; arrow doc updated to 31/31.
- Reviewed 2026-04-17. Stagehand today does all shoot recording client-side (SMLL/FBX); libsurvive's `.rec.gz` is not in the shoot path, so fail-loud behaviour is not load-bearing yet.
34
+
-**Revisit when on-Pi recording is added.** At that point `.rec.gz` becomes shoot-authoritative and open/write failures must fail loud + disable (or fail closed, depending on the design at the time). Keep spec `LI-BE-063` open.
37
35
38
-
-[]**LB-4 — Remove debug `fprintf` from Gen2 LFSR decoder** (`LPI-PROC-032`)
36
+
-[x]**LB-4 — Remove debug `fprintf` from Gen2 LFSR decoder** (`LPI-PROC-032`)
39
37
- Category: **operational safety**
40
-
- Uncontrolled stdout in hot path — pollutes logs, can distort timing.
41
-
- Flagged in [lighthouse-protocol-intelligence.md](arrows/lighthouse-protocol-intelligence.md) "Must Fix #1". Cheap.
42
-
- Fix: wrap in `SV_VERBOSE` or delete.
38
+
- Done 2026-04-17. All 4 `fprintf(stderr, ...)` calls deleted from `src/lfsr_lh2.c` (previously at L97-98, L103, L170-171, L177). Spec `LPI-PROC-032` marked `[x]`; arrow doc "Must Fix #1" cleared.
-Defined twice in [tracking-engine-specs.md](specs/tracking-engine-specs.md): once for `lc-angular-rate-max` (lines 43–44), once for Kalman lighthouse tracker (lines 49–50).
47
-
-Breaks grep-based traceability during incident response.
48
-
-Fix: renumber the Kalman-lighthouse-tracker pair to unused IDs.
42
+
-Done 2026-04-17. Kalman-lighthouse-tracker pair renumbered to **TE-PROC-050 / TE-PROC-051**in [tracking-engine-specs.md](specs/tracking-engine-specs.md). `TE-PROC-040 / 041 / 042` now unambiguously refer to the angular-rate gates (still `[ ]`, tracked under SF-4 / LB-6).
43
+
-Bonus cleanup: `src/test_cases/residual_cascade_props.c:781` referenced `TE-PROC-040` but described the per-LH adaptive R formula → corrected to `TE-PROC-038`.
Copy file name to clipboardExpand all lines: docs/specs/lighthouse-protocol-intelligence-specs.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,7 +34,7 @@ Prefix: **LPI**
34
34
35
35
-[x]**LPI-PROC-030**: The system shall identify the Gen2 lighthouse channel (0–31) by matching observed timing against 32 known LFSR polynomial sequences.
36
36
-[x]**LPI-PROC-031**: When decoding Gen2 channel identity, the system shall tolerate ±2-sample timing deviation from the expected LFSR sequence.
37
-
-[]**LPI-PROC-032**: The system shall remove debug output (fprintf calls) from the Gen2 LFSR decoder before production use.
37
+
-[x]**LPI-PROC-032**: The system shall remove debug output (fprintf calls) from the Gen2 LFSR decoder before production use.
Copy file name to clipboardExpand all lines: docs/specs/tracking-engine-specs.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,8 +46,8 @@ Prefix: **TE**
46
46
47
47
## Kalman Lighthouse Tracker
48
48
49
-
-[x]**TE-PROC-040**: The system shall maintain a 7-dimensional Kalman filter per lighthouse (position + quaternion) updated by pose observations from the geometric solvers.
50
-
-[x]**TE-PROC-041**: The system shall support push/pop of lighthouse Kalman state to enable hypothesis testing without committing to a new lighthouse position.
49
+
-[x]**TE-PROC-050**: The system shall maintain a 7-dimensional Kalman filter per lighthouse (position + quaternion) updated by pose observations from the geometric solvers.
50
+
-[x]**TE-PROC-051**: The system shall support push/pop of lighthouse Kalman state to enable hypothesis testing without committing to a new lighthouse position.
0 commit comments