Memory 019eaf10

Memory ID (Session ID): 019eaf10-d102-7000-bce3-f543c4f3ca6b
Last Updated: 2026-06-10 03:17:38

Fact Summary

  1. utils/security.py: In sanitize_command, avoid using shlex.quote for arguments when passing to asyncio.create_subprocess_exec (or any shell=False process creation) as it results in double-quoting. Just use str(arg).
  2. config/yaml_precedence_validator.py: In _parse_native_lists, do not aggressively split strings by commas (elif ',' in value:) as this incorrectly transforms standard prose strings containing commas into lists.
  3. infrastructure/adapters/tts/piper.py: In _run_piper_process, catch asyncio.TimeoutError from asyncio.wait_for explicitly, log it, and re-raise it as an ExternalServiceError to prevent ambiguous crashes.
  4. infrastructure/services/montage.py: In _get_silence, implement a fallback to AudioSegment.silent(duration=duration_ms) if the silence_dir is empty to prevent a ValueError. Use try/except (IndexError, ValueError) when extracting silence durations from filenames.

Reference Session