2.6 KiB
Todos
Investigate transient concurrent NeMo benchmark failures
During Dictate Phase 0 on 26AUG2026, repeated overlapping throwaway benchmark processes produced two one-off failures in the external /srv/data/tools/parakeet-v3/.venv environment:
ASRModel.restore_from()raisedMemoryErrorwhile OmegaConf rebuiltjoint.vocabulary. The exact clean/noisy/silence harness passed on its immediate rerun.- A later production-adapter check raised
ValueError: bad marshal data (invalid reference)while importingtorch._tensor. An immediate standaloneimport torchsucceeded, and the cached_tensor.cpython-312.pycpassedmarshal.loads().
The production service serializes model loading and inference and therefore does not intentionally launch concurrent NeMo processes. Before treating concurrent workers as supported, build a repeatable cold-load stress loop, monitor process and cgroup memory, disable bytecode writes, and determine whether the failures come from NeMo/OmegaConf resource pressure or concurrent access to the external environment's bytecode cache.
Repair nono self-diagnosis after terminal path drift
During Dictate waveform testing on 26AUG2026, every Unix socket bind() in services/dictate/tests/test_unix_server.py failed with EACCES or EPERM, including when TMPDIR pointed inside the repository worktree. The required diagnostic also failed:
$ nono why --self --path /tmp --op readwrite
nono: Configuration parse error: sandbox state path drifted at reload: serialized resolved=/dev/pts/15, actual resolved=/dev/null
Reproduce in a non-interactive or reloaded Pi session, determine whether /dev/pts/* should be serialized by identity rather than resolved path, and make nono why --self report the active policy even after the controlling terminal changes. Also verify whether the Pi profile intentionally denies AF_UNIX socket creation in otherwise writable paths; the Dictate service loop tests need local throwaway sockets.
Reuse the verified Dictate model during reinstall
The protocol-v2 reinstall on 26AUG2026 attempted to download the pinned model again even though the exact model already existed under ~/.local/share/pi-dictate/models/. The sandbox correctly blocked unapproved access to huggingface.co, so installation had to be repeated with the installed model passed explicitly through --model-source.
Teach services/dictate/install.sh to checksum an existing model first and keep it when it matches MODEL_SHA256. Download only when the model is absent or invalid, while preserving the current atomic temporary-file replacement for new model sources.