Automattic / Automattic/jetpack
#2 Backup: Enhancement follow-up tasks
- Dominant language
- PHP
- Stars
- 1.8k
- Forks
- 898
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 774
Description
Left/missing:
- [ ] **Phase 5 — Restore flow.** REST bridges for `/rewind/to/{timestamp}` + poll status. `/restore` screen mirroring Calypso's. Header Restore button, per-file Restore in info card. Confirmation warning. Granular restore via `getCheckList` include/exclude. Flip `RESTORE_ENABLED` in `file-info-card.tsx` and remove the Coming soon tooltip.
- [ ] **Phase 6 — Router remount workaround cleanup.** First attempt (data-router swap, `createHashRouter` + `RouterProvider`, shipped in 02a15e4377) was reverted in 912e0012b6 — the data-router updates its internal `state.location` on `useNavigate()` but RouterProvider's `useSyncExternalStore` subscribers don't re-render under WP's canary ReactDOM (verified end-to-end on JN: hash updates, `Restore` URL set, but the Outlet keeps the previous screen mounted). Reverted to the original `` + `pushState` patch so Restore navigation actually swaps screens. Still want a real fix later — likely a `router.subscribe` + forceUpdate adapter, or pinning a non-canary ReactDOM.
- [ ] Known WPCOM-side issue on the current JN test backup: rewind/backup/{id}/file/{path}/stream?token=... responds 400 File not found for every file, even though path-info returns valid size/mtime/hash metadata and the signed URL round-trip succeeds. Reproducible with every manifest-path format we tried and with both the overall backup rewind_id and the per-file item.period. The content proxy now surfaces a "Preview unavailable" message instead of spinning forever. Needs re-verification on a non-JN backup before assuming the port is correct — possibly a JN/Atomic-specific backup-storage limitation or a WPCOM backend regression.
- [ ] Hex → --wpds-* token migration in the file-browser SCSS (currently raw hex; first pass guessed token names that weren't registered).
- [ ] Migrate remaining raw hex values in the file-browser SCSS to WordPress Design System (--wpds-*) tokens where valid tokens exist. Currently hex because my first pass guessed token names that weren't registered; stylelint flags unknown DS tokens so we'll get fast feedback.
- [ ] Download-screen analytics — onTrackEvent wired in the file-browser tree only; matching Calypso's event names + properties for the Download form/progress/success/error states is a follow-up.
Small tweaks:
- [ ] Remove Files label from backup view, above the file tree
- [ ] Update notice component to the latest for download backups:
- [ ] Illustrations (pull them in from Calypso)
Functionality:
- [ ] File previews (fBCpFRsWEkIP0rx9AXNIJt-fi-6165_56779)
- [ ] Object details (post) (fBCpFRsWEkIP0rx9AXNIJt-fi-6165_57780)
- [ ] Notices for running out space, out of space, and failed backup.
Deferred follow-ups
- [ ] Download-screen tracks events (initiate / complete / error / per-step navigation) — needs Calypso event-name parity.
- [ ] Download screen illustration (Calypso ships an SVG; skipped from the port so far).
- [ ] Settings tab — not yet scaffolded.
- [ ] Activity-log group-counts filter chip — needs `/activity/rewindable/count/group` bridge.
- [ ] Free date selection in the picker (currently presets only).
- [ ] Once the new page is feature-complete: point the My Jetpack Backup card at the native admin page and drop the duplicate action button (card currently still deep-links to Cloud).
- [ ] Full phpunit coverage for every new bridge (every method × happy/non-200/transport-error path) + a getCheckList-shape test for useFileBrowserState.
Contributor guide
Assessment
This issue has not been assessed yet.