Skip to content

[codex] v3.28 follow-up: fix position hysteresis and voice cleanup#10

Merged
Anthonyiswhy merged 1 commit into
mainfrom
codex/v328-position-cache-followup
Apr 21, 2026
Merged

[codex] v3.28 follow-up: fix position hysteresis and voice cleanup#10
Anthonyiswhy merged 1 commit into
mainfrom
codex/v328-position-cache-followup

Conversation

@Anthonyiswhy

Copy link
Copy Markdown
Owner

What changed

  • makes get_position() frame-stable so repeated same-frame reads do not consume the left/right/ahead hysteresis budget
  • threads frame_tag and frame_width through threat scoring so side-pass boosts use the same cached zone as the rest of the frame
  • removes the unused dist_m parameter from _select_voice_message() so the helper matches its real interface
  • makes PiperVoice.synthesize_alert_to_file() honor the instance _alert_cache_enabled flag instead of ignoring it
  • cleans up empty temp WAVs if _copy_to_temp() fails mid-copy
  • syncs repo metadata and interview notes to the current 174 passed validation count

Why

Claude's review surfaced a real field-impacting bug: get_position() mutates hysteresis state, but it was being called 4-6 times in one video frame. That meant objects near a zone boundary could switch from left/right to ahead faster than intended.

The other changes are cleanup and correctness fixes around the alert helper path so the code matches the behavior the tests and runtime expect.

Validation

  • python -m py_compile raspberry_pi/yolo_realsense_navigation.py tests/test_blindnav_v326.py
  • pytest tests/test_blindnav.py tests/test_blindnav_v326.py -q
  • Result: 174 passed

@Anthonyiswhy Anthonyiswhy merged commit b2fa141 into main Apr 21, 2026
1 check passed
@Anthonyiswhy Anthonyiswhy deleted the codex/v328-position-cache-followup branch April 22, 2026 18:06
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