Skip to content

fix(recorder): harden gaze correction lifecycle and fallback - #1

Merged
Yansoul merged 2 commits into
flowprompter-recorder-releasefrom
codex/gaze-correction-hardening
Aug 10, 2026
Merged

fix(recorder): harden gaze correction lifecycle and fallback#1
Yansoul merged 2 commits into
flowprompter-recorder-releasefrom
codex/gaze-correction-hardening

Conversation

@Yansoul

@Yansoul Yansoul commented Aug 10, 2026

Copy link
Copy Markdown

Summary

  • make native gaze correction atomic across both eyes so a partial inference failure never produces a one-eye frame
  • scope gaze state and model-unavailable warnings to the current take
  • emit GAZE_UNAVAILABLE once per take when the native model cannot initialize
  • advertise and enforce gaze capability only on supported macOS builds
  • complete the canonical protocol schema for prepare.gazeCorrection, gazeLandmarks, and the warning event

Why

The desktop preview and the native recording path could diverge when model initialization or the second eye inference failed. The protocol schema also rejected the very gaze commands accepted by Rust. This PR makes the recording path fail closed, observable, and schema-valid.

Validation

  • cargo fmt --check
  • cargo check -p flowprompter-recorder --all-targets --locked --offline
  • cargo test -p flowprompter-recorder --locked --offline (54 lib + 1 main + 3 protocol/schema)
  • cargo test -p cap-gaze --locked --offline (4/4)
  • clippy for cap-gaze, cap-recording, and flowprompter-recorder with -D warnings
  • real ONNX gaze self-check (4/4, ok: true)
  • JSON Schema Draft 2020-12 validation for canonical valid/invalid fixtures

Companion desktop PR

Release boundary

This merges source only. It does not build, publish, or promote a signed recorder sidecar.

@Yansoul

Yansoul commented Aug 10, 2026

Copy link
Copy Markdown
Author

Final review disposition:

  • Independent final review: no remaining P0-P3 findings.
  • Dedicated source-gates is green, including format, check, targeted Clippy, protocol/schema validation, recorder regressions, and locked dependency graph.
  • A/V sync: macOS and Windows are green. Ubuntu failed only randomized pre-existing frame-count cases outside this diff.
  • Generic CI red checks are baseline-only: Expo expects React Native 0.83.10 while the base pins 0.83.6; Biome reports untouched base files.
  • The two full-repository Clippy jobs are still running; the changed Rust packages already pass -D warnings locally and in the dedicated source gate.

Merge decision: safe to merge this source hardening PR. This does not publish a signed sidecar artifact.

@Yansoul
Yansoul merged commit a884116 into flowprompter-recorder-release Aug 10, 2026
12 of 16 checks 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.

1 participant