Unlike the cleanup twins, backup can't share the music handler — it's a different DB file. Extract the music backup body into _backup_db_at(db_path, ...) (music behaviour byte-identical, now a thin wrapper over DATABASE_PATH) and add auto_backup_video_database pointing at VIDEO_DATABASE_PATH (video_library.db). New video_backup_database action (scope='video' block + registry), owned_by='video' system automation on the music cadence (every 3 days). Tests: a REAL backup behaviour test — music backup lands next to music_library.db, video backup next to video_library.db, no cross-contamination (this is the whole reason it can't be shared); scope isolation; single video-owned seed; own handler. Existing music maintenance tests (22) still green — refactor is non-regressing. EXPECTED_ACTION_NAMES updated. |
||
|---|---|---|
| .. | ||
| handlers | ||
| __init__.py | ||
| api.py | ||
| blocks.py | ||
| deps.py | ||
| progress.py | ||
| schedule.py | ||
| signals.py | ||