2.0 KiB
Visual voice scheduling freeze
Both current source and production variants were edited in place only in assigned lifecycle/scheduling/serialization methods; unrelated code was preserved. Backup: before-visual-scheduling.
- Pending transcription consumes its 2-second retry deadline in selected-chat, orphan-queue and model-wrapper paths; it does not hold the active chat for 60 seconds or increment model failure backoff.
- A temporary missing or foreign database snapshot retains the original voice key/deadline. Only an exact new snapshot can clear waiting; timeout requires human handling.
- Explicit manual_required prevents model generation and cached-draft sending. A late successful ASR result cannot bypass manual handling. Existing foreign-composer clearing behavior is unchanged.
- manual_required/manual_reason/voice_wait_key/voice_wait_started_at/ready_at survive queue save/load. Existing eligible explicit retry clears these fields; persistence failure rolls them back. Retry eligibility and delivery uncertainty protections are unchanged.
- Legacy pure-voice regression expects a wait, no model, no staged exchange or automatic fallback reply.
Final isolated suite modules: test_voice_visual_scheduling (11 tests), test_voice_messages, test_reply_safety, test_visual_review_assistant, test_handoff_evidence, test_visual_handoff_visibility.
- Production: 492 tests, 0 failures/errors, 0 skips.
- Source: 492 tests, 0 failures/errors, 2 existing production-only skips.
- Temporary synthetic databases/settings/queues only; no actual messages or desktop/network actions. Both harness results report blocked_external_actions=[].
Reports: visual-voice-final-production.json, visual-voice-final-source.json; method hashes: visual-scheduling-verification.json.
Independent audit also identified and sent to root the protocol judge last-message-only input mismatch and visual database binding fallback omission. Root owns those remedies. Shared coordinator _automated explicitly excludes both customer review and customer manual-handling reminder prefixes.