Repository source: docs/plans/archive/backup_page_freshness_preview_step4_implementation_summary.md
Backup Page Freshness Preview Step 4 Implementation Summary
Stage 1 - Define backup snapshot summary
Changes:
Added a bounded five-item backup preview limit.
Added the canonical Backup snapshot summary contract using existing read-model
rebuilt_at,repository_head, and content activity data.Passed the summary into the canonical Backup page context without changing download routes.
Verification:
php -l src/ForumRewrite/Application.php— passed.php tests/run.php LocalAppSmokeTest— all tests passed.
Notes:
The timestamp currently represents the read-model rebuild time, paired with the repository head recorded in the same metadata set.
Stage 2 - Render freshness and preview
Changes:
Extended the canonical Backup page with snapshot freshness metadata and repository identity.
Added recent included-item links, bounded-preview messaging, and an explicit empty-state message.
Added focused smoke assertions for the new Backup page content.
Verification:
php -l templates/pages/instance.php— passed.php -l tests/LocalAppSmokeTest.php— passed.php tests/run.php LocalAppSmokeTest::testApplicationRendersCoreRoutes— passed.
Notes:
Existing repository archive and SQLite download links remain unchanged.
Stage 3 - Invalidate static freshness artifacts
Changes:
Extended content-related static invalidation to remove Backup and Activity artifacts.
Covered both flat public artifacts and alternate Apache-friendly index layouts.
Added regression coverage for board, reply, identity-link, and approval invalidations.
Verification:
php tests/run.php LocalAppSmokeTest::testBackupStaticArtifactsAreInvalidatedByContentWrites LocalAppSmokeTest::testStaticArtifactBuilderWritesApacheFriendlyArtifactLayout LocalAppSmokeTest::testFrontControllerServesStaticArtifactForBackupAlias— all passed.
Notes:
Existing
/backup/and/tools/backup/resolution already maps to the canonical instance artifact; no duplicate route artifact was introduced.
Stage 4 - Final verification
Changes:
Completed final regression coverage and manual static-artifact inspection.
Verification:
php tests/run.php LocalAppSmokeTest— all tests passed.php tests/run.php— full repository test suite passed../v3 build-static tests/fixtures/parity_minimal_v1 <temporary database> <temporary artifact root>followed by inspection ofinstance.html— freshness timestamp, repository snapshot, recent-items heading, and preview disclaimer all present.
Notes:
The feature is implemented without database schema changes or changes to download endpoint behavior.
Stage 5 - Link to full activity
Changes:
Added a direct link from the Backup freshness preview to the full Activity page.
Added a smoke assertion for the new navigation link.
Verification:
php -l templates/pages/instance.php— passed.php -l tests/LocalAppSmokeTest.php— passed.php tests/run.php LocalAppSmokeTest::testApplicationRendersCoreRoutes— passed.
Notes:
This is navigation only; snapshot metadata, preview limits, and download behavior are unchanged.