# QA RC58 Report

## Scope
RC58 turns the Program page into a real program manager on top of the RC57 program library.

## Implemented
- Program topbar now scrolls away like Profile.
- Program page remains a program library, not a calendar/progress page.
- Program cards are connected to existing program data/stage data for stats and preview content.
- Active program is tracked by `activeProgramId` in profile settings.
- Only the actual active program receives `VALT`.
- Half-finished programs can appear under **Påbörjade program**.
- Selecting a half-finished program asks whether to **Återuppta** or **Starta om**.
- Switching from an active program with progress asks for confirmation.
- Start-over archives current progress before clearing the current run.
- Resume restores archived progress and moves to the next open pass.
- Forhandsvisning now shows a program-template preview: rhythm, days, and exercises without live calendar status.

## QA checks
- `node --check assets/js/app.js` OK
- `node --check assets/js/data.js` OK
- `node --check assets/js/shell.js` OK
- `php -l ota_youtube_proxy.php` OK
- HTML asset reference check OK
- Zip test OK

## Screenshots
Produced via the established fallback rendering path:
- `qa_screenshots/rc58_program_mobile_390x844.png`
- `qa_screenshots/rc58_program_full_mobile_390x1600.png`
- `qa_screenshots/rc58_program_preview_mobile_390x844.png`
- `qa_screenshots/rc58_program_ipad_820x1180.png`
- `qa_screenshots/rc58_program_desktop_1440x1024.png`

## Notes
The deeper historic display of archived runs is stored but not yet given its own History UI. Current RC58 behavior keeps the program switch safe by archiving before restart/switch and by keeping the live calendar driven by the selected program.
