# Session 0009: Dashboard Rewrite Committed & Gen-Timers Migration **Date:** 2026-02-23 **Status:** Completed **Origin:** MDF Webseiten session 0047 --- ## Work Done - [x] Committed ops-dashboard rewrite (8 files, rebuild.py reduced from 707 to 348 lines) - [x] Browser-tested all 5 dashboard pages: Dashboard, Backups, Schedules, Operations, MDF drill-down ### Frontend Fixes (app.js) - [x] Fixed environment parsing — `cfg.environments` returns objects, needed `.map(e => e.name)` for promote/sync/lifecycle sections - [x] Removed `has_coolify` gate — Container Lifecycle section was incorrectly hidden entirely - [x] Changed all "Coolify API" text references to "docker compose" - [x] Fixed leftover banner bug — "Go to Backups" banner from Recreate persisted across subsequent Restart/Rebuild operations ### Gen-Timers Migration - [x] Rewrote `cmd_gen_timers` to read from `all_projects()` descriptors instead of `registry.yaml` - [x] Orphan timer auto-cleanup (removed `backup-coolify.timer`) - [x] Schedule `PUT` endpoint now writes to `project.yaml` (not `registry.yaml`) — registry.yaml is now dead code ### Seafile Healthchecks - [x] Added Docker HEALTHCHECK to `prod-mdf-seafile` (curl localhost:80, 60s start_period) - [x] Added Docker HEALTHCHECK to `prod-mdf-seafile-redis` (redis-cli ping) - [x] All 3 Seafile containers now report `healthy` in dashboard ### Backup Bug Fixes - [x] Fixed single-env backup — MDF CLI `--all` flag was always backing up all envs even when one env was requested - [x] Fixed `bk.create` delegation — only delegates when command template contains `{env}` ### Known Issues Remaining - Restore chain broken: offsite downloaded file path not reaching actual restore (shows wrong filename) - Backups page shows all entries as "Remote" (local/remote distinction broken in frontend) ## Key Decisions / Learnings - `project.yaml` descriptors replace `registry.yaml` as source of truth for all ops commands - `has_coolify` gate should be removed — dashboard should always show lifecycle section - Browser testing after every batch of changes is essential — environment parsing bug only visible in browser --- **Tags:** #Session #OpsDashboard #Refactor