v0.1.4: playback-control provenance log
LinTunes has spontaneously resumed playback for ~4s (then paused) four times while trav was away — suspected phantom media-key events from the Audioengine USB DAC's HID 'keyboard', but the pathway (MPRIS vs the focused-window key filter) is unproven. Every control path now drops a timestamped line in ~/.cache/lintunes/control-events.log: MPRIS Player methods, the media-key eventFilter (with source input device where the compositor exposes it), and Player.toggle_play/pause with position. New lintunes/eventlog.py, 1MB rotation, never raises; conftest autouse fixture keeps tests off the real log file. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
22
TASKS.md
22
TASKS.md
@ -3,6 +3,28 @@
|
||||
Legend: `[ ]` todo · `[~]` in progress · `[x]` done.
|
||||
When a round closes, move its finished items to `tasks-done.md`.
|
||||
|
||||
## Round 23 — playback-control provenance log (v0.1.4)
|
||||
|
||||
Tests in `tests/test_round23.py`. Diagnostic round → patch bump **0.1.4**.
|
||||
|
||||
Background: LinTunes has resumed playback by itself for ~4s (then paused)
|
||||
four times while trav was away/asleep (Jul 5, 7, 8?, 10). Fingerprint each
|
||||
time: current track resumed from its paused position, paused ~4s later.
|
||||
Suspected phantom media-key events (the Audioengine 2+ USB DAC registers a
|
||||
HID *keyboard*), but the pathway is unproven — hence instrumentation.
|
||||
|
||||
- [x] New `lintunes/eventlog.py` — `log_control(source, action, detail)`
|
||||
appends timestamped one-liners to
|
||||
`~/.cache/lintunes/control-events.log` (1 MB rotate, never raises)
|
||||
and mirrors to the `lintunes.control` logger.
|
||||
- [x] Provenance hooks: every MPRIS Player method (`mpris.py`; PyQt6 lacks
|
||||
QDBusContext so no sender — run dbus-monitor alongside when the
|
||||
sender matters), the media-key `eventFilter` in `main_window.py`
|
||||
(logs the source input device where the compositor exposes it), and
|
||||
`Player.toggle_play`/`pause` (state + position).
|
||||
- [x] `tests/conftest.py`: autouse fixture isolates the log path so tests
|
||||
never write the real ~/.cache file.
|
||||
|
||||
## Round 22 — start time honored on same-source replay (v0.1.3)
|
||||
|
||||
Plan reference: `~/.claude/plans/could-you-look-into-generic-balloon.md`.
|
||||
|
||||
Reference in New Issue
Block a user