You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: group Docker/Podman container logs by category instead of one file per container
Real usability gap found via live testing on an actual ovos-docker
install: bridging each of ~26 containers to its own file/log-source
meant 26 Sources: checkboxes and 26 different tag colors (all falling
back to the same default color, since none matched the known
skills/audio/voice/etc names) - unwieldy compared to a normal
install's small, familiar set.
Fixed with categorize_container_name(): maps real ovos-docker
container names (confirmed against a live install) to the SAME
category names file-based installs already use - every ovos_skill_*
container (and ovos_core, whose own log content is exactly what
already lands in skills.log on a normal install) maps to "skills",
ovos_audio to "audio", ovos_listener to "voice", ovos_messagebus to
"bus", ovos_phal/ovos_phal_admin to "phal", anything with "gui" in the
name to "gui", and anything unrecognized (ovos_cli,
ovos_plugin_ggwave, confirmed via the same live install) to a new
"other" category.
start_container_log_bridges() now groups containers by this category
and has every container in a group append to the SAME shared file
(skills.log, audio.log, etc) rather than its own separate one -
multiple containers' `docker logs -f` subprocesses writing to one file
concurrently is safe without locking (POSIX guarantees atomic writes
under PIPE_BUF with O_APPEND, true for any normal single log line).
This means discover_log_sources() no longer needs a custom `names=`
override for the bridge case at all - the files it creates already
match the default KNOWN_LOG_NAMES (added "other" to that list), so
coloring, tag formatting, and the Sources: checkboxes all work
completely unchanged, identical in shape to a normal install.
Verified end-to-end against real, locally-run podman containers
(two separate "skill" containers deliberately given different names -
confirmed both landed in the same skills.log, correctly interleaved,
tagged [skills] and colored green together, while a third "audio"
container stayed separate and yellow).
222 tests passing (9 new - categorize_container_name coverage per
category, plus a test confirming the grouping/shared-file behavior
specifically); verified sdist->wheel build.
0 commit comments