@buoy-gg/time-machine 7.0.20 → 7.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/lib/commonjs/components/TimeMachineBody.js +103 -8
  2. package/lib/commonjs/components/TimeMachineBody.js.map +1 -1
  3. package/lib/commonjs/index.js +55 -0
  4. package/lib/commonjs/index.js.map +1 -1
  5. package/lib/commonjs/store/routeRestore.js +188 -0
  6. package/lib/commonjs/store/routeRestore.js.map +1 -0
  7. package/lib/commonjs/store/snapshotVault.js.map +1 -1
  8. package/lib/commonjs/store/timeMachineStore.js +41 -3
  9. package/lib/commonjs/store/timeMachineStore.js.map +1 -1
  10. package/lib/commonjs/sync/timeMachineSyncAdapter.js +18 -4
  11. package/lib/commonjs/sync/timeMachineSyncAdapter.js.map +1 -1
  12. package/lib/module/components/TimeMachineBody.js +104 -9
  13. package/lib/module/components/TimeMachineBody.js.map +1 -1
  14. package/lib/module/index.js +11 -0
  15. package/lib/module/index.js.map +1 -1
  16. package/lib/module/store/routeRestore.js +176 -0
  17. package/lib/module/store/routeRestore.js.map +1 -0
  18. package/lib/module/store/snapshotVault.js.map +1 -1
  19. package/lib/module/store/timeMachineStore.js +41 -3
  20. package/lib/module/store/timeMachineStore.js.map +1 -1
  21. package/lib/module/sync/timeMachineSyncAdapter.js +18 -4
  22. package/lib/module/sync/timeMachineSyncAdapter.js.map +1 -1
  23. package/lib/typescript/components/TimeMachineBody.d.ts.map +1 -1
  24. package/lib/typescript/index.d.ts +2 -1
  25. package/lib/typescript/index.d.ts.map +1 -1
  26. package/lib/typescript/store/routeRestore.d.ts +51 -0
  27. package/lib/typescript/store/routeRestore.d.ts.map +1 -0
  28. package/lib/typescript/store/snapshotVault.d.ts +7 -0
  29. package/lib/typescript/store/snapshotVault.d.ts.map +1 -1
  30. package/lib/typescript/store/timeMachineStore.d.ts +29 -1
  31. package/lib/typescript/store/timeMachineStore.d.ts.map +1 -1
  32. package/lib/typescript/sync/timeMachineSyncAdapter.d.ts +8 -0
  33. package/lib/typescript/sync/timeMachineSyncAdapter.d.ts.map +1 -1
  34. package/package.json +12 -8
  35. package/src/components/TimeMachineBody.tsx +146 -10
  36. package/src/index.tsx +22 -0
  37. package/src/store/routeRestore.ts +194 -0
  38. package/src/store/snapshotVault.ts +7 -0
  39. package/src/store/timeMachineStore.ts +60 -1
  40. package/src/sync/timeMachineSyncAdapter.ts +27 -4
@@ -10,6 +10,7 @@ exports.timeMachineStore = void 0;
10
10
  var _sharedUi = require("@buoy-gg/shared-ui");
11
11
  var _dataViewer = require("@buoy-gg/shared-ui/dataViewer");
12
12
  var _snapshotVault = require("./snapshotVault");
13
+ var _routeRestore = require("./routeRestore");
13
14
  /**
14
15
  * Time Machine orchestrator — snapshot CRUD + capture/restore across every
15
16
  * registered StateSnapshotProvider (storage, redux, zustand, jotai, query,
@@ -29,10 +30,14 @@ var _snapshotVault = require("./snapshotVault");
29
30
 
30
31
  const RESTORE_ORDER = exports.RESTORE_ORDER = ["storage", "redux", "zustand", "jotai", "query"];
31
32
 
33
+ /** Extra knobs a restore accepts beyond mode + exclusions. */
34
+
32
35
  /** Provider capability row as mirrored to a remote dashboard. */
33
36
 
34
37
  /** One side of a preview comparison. */
35
38
 
39
+ /** Whether this device can capture and return to routes, and where it is now. */
40
+
36
41
  let remoteHandler = null;
37
42
  function skippedResult(reason) {
38
43
  return {
@@ -57,7 +62,8 @@ class TimeMachineStore {
57
62
  busy: null,
58
63
  lastOutcome: null,
59
64
  preview: null,
60
- remoteProviders: null
65
+ remoteProviders: null,
66
+ remoteRoute: null
61
67
  };
62
68
  /** Monotonic token — a preview build checks it after every await and
63
69
  * abandons itself when a newer build (or clearPreview) supersedes it. */
@@ -108,6 +114,9 @@ class TimeMachineStore {
108
114
  busy: payload.busy ?? null,
109
115
  lastOutcome: payload.lastOutcome ?? null,
110
116
  remoteProviders: payload.providers ?? [],
117
+ remoteRoute: payload.route ?? {
118
+ available: false
119
+ },
111
120
  hasLoaded: true
112
121
  });
113
122
  }
@@ -142,12 +151,17 @@ class TimeMachineStore {
142
151
  };
143
152
  }
144
153
  }
154
+ // Where the app was when this state was true — restoring can return here.
155
+ const route = (0, _routeRestore.captureCurrentRoute)();
145
156
  const snapshot = {
146
157
  meta: {
147
158
  id: nextId(),
148
159
  name: name.trim() || "Untitled snapshot",
149
160
  createdAt: Date.now(),
150
161
  sizeBytes: 0,
162
+ ...(route ? {
163
+ route
164
+ } : {}),
151
165
  sources
152
166
  },
153
167
  data
@@ -198,12 +212,13 @@ class TimeMachineStore {
198
212
  * itemKey being what previewItems emitted) — split per source before each
199
213
  * provider sees only its own keys.
200
214
  */
201
- async restore(id, mode, excludeKeys) {
215
+ async restore(id, mode, excludeKeys, options) {
202
216
  if (remoteHandler) {
203
217
  const outcome = await remoteHandler("restore", {
204
218
  id,
205
219
  mode,
206
- excludeKeys
220
+ excludeKeys,
221
+ restoreRoute: options?.restoreRoute
207
222
  });
208
223
  this.setState({
209
224
  lastOutcome: outcome
@@ -262,11 +277,30 @@ class TimeMachineStore {
262
277
  // exclusion list from the preview already reflects the scope (the
263
278
  // preview seeds its selection from it), so it takes precedence.
264
279
  const includeBySource = !excludeKeys && stored.meta.scope?.length ? splitCompound(stored.meta.scope) : null;
280
+ const wantsRoute = options?.restoreRoute === true && !!stored.meta.route;
265
281
  if (mode === "reload") {
266
282
  // Storage only; everything in-memory rebuilds after the reload.
267
283
  if (stored.data.storage && (!includeBySource || includeBySource.has("storage"))) {
268
284
  outcome.results.storage = await this.restoreSource("storage", stored.data.storage, excludeBySource.get("storage"), includeBySource?.get("storage"));
269
285
  }
286
+ // Hand the route to the NEXT boot — this realm is about to die, so the
287
+ // slot must be written before the reload is armed.
288
+ if (wantsRoute) {
289
+ const route = stored.meta.route;
290
+ try {
291
+ await (0, _routeRestore.savePendingRoute)(route, stored.meta.name);
292
+ outcome.route = {
293
+ ...route,
294
+ status: "deferred"
295
+ };
296
+ } catch (e) {
297
+ outcome.route = {
298
+ ...route,
299
+ status: "failed",
300
+ error: String(e)
301
+ };
302
+ }
303
+ }
270
304
  outcome.willReload = this.scheduleReload("buoy time-machine restore");
271
305
  this.setState({
272
306
  lastOutcome: outcome
@@ -278,6 +312,10 @@ class TimeMachineStore {
278
312
  if (includeBySource && !includeBySource.has(sid)) continue;
279
313
  outcome.results[sid] = await this.restoreSource(sid, stored.data[sid], excludeBySource.get(sid), includeBySource?.get(sid));
280
314
  }
315
+ // Navigate LAST — the screen we land on should read the restored state.
316
+ if (wantsRoute) {
317
+ outcome.route = (0, _routeRestore.navigateToRoute)(stored.meta.route);
318
+ }
281
319
  this.setState({
282
320
  lastOutcome: outcome
283
321
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_sharedUi","require","_dataViewer","_snapshotVault","RESTORE_ORDER","exports","remoteHandler","skippedResult","reason","ok","applied","skipped","id","warnings","idCounter","nextId","Date","now","toString","TimeMachineStore","state","snapshots","hasLoaded","busy","lastOutcome","preview","remoteProviders","previewRunId","listeners","Set","loadPromise","getState","subscribe","listener","add","ensureLoaded","delete","setState","patch","forEach","l","Promise","resolve","loadIndex","then","replaceFromSnapshot","payload","providers","capture","name","sourceIds","result","snapshot","getStateSnapshotProviders","filter","p","status","canCapture","includes","data","sources","provider","captured","superJsonSerialize","e","String","meta","trim","createdAt","sizeBytes","saveSnapshot","captureBaseline","baseline","restore","mode","excludeKeys","outcome","stored","loadSnapshot","Error","snapshotId","snapshotName","at","willReload","results","clear","scheduleReload","sid","Object","keys","splitCompound","bySource","Map","compound","sep","indexOf","slice","itemKey","list","get","push","set","excludeBySource","includeBySource","scope","length","storage","has","restoreSource","sourceId","includeKeys","getStateSnapshotProvider","canRestore","detail","options","undefined","superJsonDeserialize","scheduleReloadApp","deleteSnapshot","rename","renameSnapshot","setScope","setSnapshotScope","clearLastOutcome","wipeAll","clearPreview","buildPreview","right","left","runId","building","builtAt","compareTo","label","items","notes","error","loadSide","ref","leftData","rightStored","all","rightData","isBaseline","map","r","setTimeout","targetData","baseData","key","verdict","previewItems","diff","objectDiff","equal","oldValue","newValue","truncated","timeMachineStore","setRemoteTimeMachineHandler","handler","replaceTimeMachineFromSnapshot"],"sourceRoot":"../../../src","sources":["store/timeMachineStore.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_sharedUi","require","_dataViewer","_snapshotVault","_routeRestore","RESTORE_ORDER","exports","remoteHandler","skippedResult","reason","ok","applied","skipped","id","warnings","idCounter","nextId","Date","now","toString","TimeMachineStore","state","snapshots","hasLoaded","busy","lastOutcome","preview","remoteProviders","remoteRoute","previewRunId","listeners","Set","loadPromise","getState","subscribe","listener","add","ensureLoaded","delete","setState","patch","forEach","l","Promise","resolve","loadIndex","then","replaceFromSnapshot","payload","providers","route","available","capture","name","sourceIds","result","snapshot","getStateSnapshotProviders","filter","p","status","canCapture","includes","data","sources","provider","captured","superJsonSerialize","e","String","captureCurrentRoute","meta","trim","createdAt","sizeBytes","saveSnapshot","captureBaseline","baseline","restore","mode","excludeKeys","options","outcome","restoreRoute","stored","loadSnapshot","Error","snapshotId","snapshotName","at","willReload","results","clear","scheduleReload","sid","Object","keys","splitCompound","bySource","Map","compound","sep","indexOf","slice","itemKey","list","get","push","set","excludeBySource","includeBySource","scope","length","wantsRoute","storage","has","restoreSource","savePendingRoute","error","navigateToRoute","sourceId","includeKeys","getStateSnapshotProvider","canRestore","detail","undefined","superJsonDeserialize","scheduleReloadApp","deleteSnapshot","rename","renameSnapshot","setScope","setSnapshotScope","clearLastOutcome","wipeAll","clearPreview","buildPreview","right","left","runId","building","builtAt","compareTo","label","items","notes","loadSide","ref","leftData","rightStored","all","rightData","isBaseline","map","r","setTimeout","targetData","baseData","key","verdict","previewItems","diff","objectDiff","equal","oldValue","newValue","truncated","timeMachineStore","setRemoteTimeMachineHandler","handler","replaceTimeMachineFromSnapshot"],"sourceRoot":"../../../src","sources":["store/timeMachineStore.ts"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,7 @@ var _sharedUi = require("@buoy-gg/shared-ui");
8
8
  var _dataViewer = require("@buoy-gg/shared-ui/dataViewer");
9
9
  var _timeMachineStore = require("../store/timeMachineStore");
10
10
  var _snapshotVault = require("../store/snapshotVault");
11
+ var _routeRestore = require("../store/routeRestore");
11
12
  /**
12
13
  * Sync adapter for the Time Machine tool, consumed by @buoy-gg/external-sync's
13
14
  * `useExternalSync` (structurally matches its ToolSyncAdapter interface so
@@ -40,15 +41,25 @@ function metadata() {
40
41
  busy,
41
42
  lastOutcome
42
43
  } = _timeMachineStore.timeMachineStore.getState();
44
+ const current = (0, _routeRestore.currentRoute)();
43
45
  return {
44
46
  snapshots,
45
47
  busy,
46
48
  lastOutcome,
47
- providers: providerStatuses()
49
+ providers: providerStatuses(),
50
+ // Route capture/restore is a device capability, not a snapshot provider —
51
+ // a dashboard has no router of its own to probe, so it's mirrored here.
52
+ route: {
53
+ available: (0, _routeRestore.canNavigate)(),
54
+ ...(current ? {
55
+ current: current.href
56
+ } : {})
57
+ }
48
58
  };
49
59
  }
50
60
  const timeMachineSyncAdapter = exports.timeMachineSyncAdapter = {
51
- version: 1,
61
+ // v2 adds `route` (device route capability) and `snapshots[].route`.
62
+ version: 2,
52
63
  getSnapshot: () => metadata(),
53
64
  subscribe: onChange => {
54
65
  const unsubStore = _timeMachineStore.timeMachineStore.subscribe(onChange);
@@ -87,10 +98,13 @@ const timeMachineSyncAdapter = exports.timeMachineSyncAdapter = {
87
98
  const {
88
99
  id,
89
100
  mode = "live",
90
- excludeKeys
101
+ excludeKeys,
102
+ restoreRoute
91
103
  } = params ?? {};
92
104
  if (!id) throw new Error("restore requires a snapshot `id`");
93
- return await _timeMachineStore.timeMachineStore.restore(id, mode, excludeKeys);
105
+ return await _timeMachineStore.timeMachineStore.restore(id, mode, excludeKeys, {
106
+ restoreRoute
107
+ });
94
108
  },
95
109
  delete: async params => {
96
110
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["_sharedUi","require","_dataViewer","_timeMachineStore","_snapshotVault","providerStatuses","getStateSnapshotProviders","map","p","s","status","id","label","canCapture","canRestore","detail","metadata","snapshots","busy","lastOutcome","timeMachineStore","getState","providers","timeMachineSyncAdapter","exports","version","getSnapshot","subscribe","onChange","unsubStore","unsubProviders","subscribeToStateSnapshotProviders","actions","list","capture","params","name","sourceIds","meta","captured","snapshot","captureBaseline","wipeAll","restore","mode","excludeKeys","Error","delete","deleted","rename","renamed","setScope","scope","scoped","count","length","preview","compareTo","right","snapshotId","left","buildPreview","VALUE_BUDGET","builtAt","sources","src","items","item","oldBig","oldValue","undefined","jsonLikelyLargerThan","newBig","newValue","valueOmitted","inspect","sourceId","stored","loadSnapshot","payload","data","warnings","superJsonDeserialize"],"sourceRoot":"../../../src","sources":["sync/timeMachineSyncAdapter.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_sharedUi","require","_dataViewer","_timeMachineStore","_snapshotVault","_routeRestore","providerStatuses","getStateSnapshotProviders","map","p","s","status","id","label","canCapture","canRestore","detail","metadata","snapshots","busy","lastOutcome","timeMachineStore","getState","current","currentRoute","providers","route","available","canNavigate","href","timeMachineSyncAdapter","exports","version","getSnapshot","subscribe","onChange","unsubStore","unsubProviders","subscribeToStateSnapshotProviders","actions","list","capture","params","name","sourceIds","meta","captured","snapshot","captureBaseline","wipeAll","restore","mode","excludeKeys","restoreRoute","Error","delete","deleted","rename","renamed","setScope","scope","scoped","count","length","preview","compareTo","right","snapshotId","left","buildPreview","VALUE_BUDGET","builtAt","sources","src","items","item","oldBig","oldValue","undefined","jsonLikelyLargerThan","newBig","newValue","valueOmitted","inspect","sourceId","stored","loadSnapshot","payload","data","warnings","superJsonDeserialize"],"sourceRoot":"../../../src","sources":["sync/timeMachineSyncAdapter.ts"],"mappings":"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","ignoreList":[]}
@@ -12,11 +12,12 @@
12
12
  import { useState } from "react";
13
13
  import { Alert, Platform, ScrollView, StyleSheet, Text, TextInput, TouchableOpacity, View } from "react-native";
14
14
  import { Plus, EventPickerModal, Home, Trash2, buoyColors } from "@buoy-gg/shared-ui";
15
- import { JotaiIcon, QueryIcon, ReduxIcon, StorageIcon, TimeMachineIcon, ZustandIcon } from "@buoy-gg/floating-tools-core";
15
+ import { JotaiIcon, QueryIcon, ReduxIcon, RoutesIcon, StorageIcon, TimeMachineIcon, ZustandIcon } from "@buoy-gg/floating-tools-core";
16
16
  import { useToolHost } from "@buoy-gg/core";
17
17
  import { useIsPro } from "@buoy-gg/license";
18
18
  import { useSnapshotProviders, useTimeMachineState } from "../hooks/useTimeMachine";
19
19
  import { timeMachineStore } from "../store/timeMachineStore";
20
+ import { canNavigate, currentRoute } from "../store/routeRestore";
20
21
  import { RestorePreviewScreen } from "./preview/RestorePreviewScreen";
21
22
  import { ItemDetailScreen } from "./preview/ItemDetailScreen";
22
23
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
@@ -26,8 +27,12 @@ const SOURCE_ICONS = {
26
27
  redux: ReduxIcon,
27
28
  zustand: ZustandIcon,
28
29
  jotai: JotaiIcon,
29
- query: QueryIcon
30
+ query: QueryIcon,
31
+ route: RoutesIcon
30
32
  };
33
+
34
+ /** Id of the route tile — a device capability, not a snapshot provider. */
35
+ const ROUTE_SOURCE_ID = "route";
31
36
  function timeAgo(ts) {
32
37
  const s = Math.max(0, Math.round((Date.now() - ts) / 1000));
33
38
  if (s < 60) return `${s}s ago`;
@@ -62,6 +67,53 @@ function confirmDestructive(title, message, confirmLabel, onConfirm) {
62
67
  onPress: onConfirm
63
68
  }]);
64
69
  }
70
+
71
+ /**
72
+ * "Also go back to the screen this was captured on?"
73
+ *
74
+ * Asked BEFORE the restore runs, because a reload-mode restore has to park the
75
+ * route in storage before the JS realm dies — there is no "after" to ask in.
76
+ * `onChoose(withRoute)` runs the restore; dismissing cancels it entirely.
77
+ *
78
+ * RN-web's Alert renders no buttons, so the web (Buoy Desktop) path uses the
79
+ * browser dialog: OK = state + route, Cancel = state only.
80
+ */
81
+ function confirmRestoreRoute(snapshotName, href, onChoose) {
82
+ const message = `“${snapshotName}” was captured on ${href}. Go back to that screen too, or restore state only?`;
83
+ if (Platform.OS === "web") {
84
+ const confirmFn = globalThis.confirm;
85
+ onChoose(confirmFn ? confirmFn(`Also return to ${href}?\n\n${message}`) : false);
86
+ return;
87
+ }
88
+ Alert.alert("Restore route too?", message, [{
89
+ text: "Cancel",
90
+ style: "cancel"
91
+ }, {
92
+ text: "State only",
93
+ onPress: () => onChoose(false)
94
+ }, {
95
+ text: `Go to ${href}`,
96
+ onPress: () => onChoose(true)
97
+ }]);
98
+ }
99
+
100
+ /**
101
+ * Route leg of a restore: prompt when the snapshot has a captured route we
102
+ * aren't already sitting on, otherwise restore straight away. On Buoy Desktop
103
+ * the device's live route is unknown (no local router), so we always ask.
104
+ */
105
+ function restoreWithRoutePrompt(meta, run) {
106
+ const route = meta.route;
107
+ if (!route) {
108
+ run(false);
109
+ return;
110
+ }
111
+ if (currentRoute()?.href === route.href) {
112
+ run(false); // already on that screen — nothing to ask
113
+ return;
114
+ }
115
+ confirmRestoreRoute(meta.name, route.href, run);
116
+ }
65
117
  function OutcomePanel({
66
118
  outcome
67
119
  }) {
@@ -89,6 +141,9 @@ function OutcomePanel({
89
141
  }), entries.length === 0 && /*#__PURE__*/_jsx(Text, {
90
142
  style: styles.outcomeLine,
91
143
  children: "no sources restored"
144
+ }), outcome.route && /*#__PURE__*/_jsx(Text, {
145
+ style: [styles.outcomeLine, (outcome.route.status === "failed" || outcome.route.status === "unavailable") && styles.outcomeLineBad],
146
+ children: outcome.route.status === "navigated" ? `✓ route — ${outcome.route.href}` : outcome.route.status === "deferred" ? `↻ route — ${outcome.route.href} after reload` : `✕ route — ${outcome.route.error ?? outcome.route.status}`
92
147
  }), entries.map(([sourceId, r]) => /*#__PURE__*/_jsxs(View, {
93
148
  style: styles.outcomeSource,
94
149
  children: [/*#__PURE__*/_jsxs(Text, {
@@ -111,7 +166,8 @@ export function TimeMachineBody() {
111
166
  busy,
112
167
  lastOutcome,
113
168
  preview,
114
- remoteProviders
169
+ remoteProviders,
170
+ remoteRoute
115
171
  } = useTimeMachineState();
116
172
  const localProviders = useSnapshotProviders();
117
173
  const isPro = useIsPro();
@@ -133,6 +189,23 @@ export function TimeMachineBody() {
133
189
  label: p.label,
134
190
  ...p.status()
135
191
  }));
192
+
193
+ // Route sits in the same strip as the state sources so its availability is
194
+ // visible before you ever open a restore point — but it's a device
195
+ // capability, not a registered provider, so it's derived separately (from
196
+ // the live router here, from the device's payload on Buoy Desktop).
197
+ const routeAvailable = remoteProviders ? remoteRoute?.available === true : canNavigate();
198
+ const routeSource = {
199
+ id: ROUTE_SOURCE_ID,
200
+ label: "Route",
201
+ canCapture: routeAvailable,
202
+ canRestore: routeAvailable,
203
+ // No live route in the caption: this screen only re-renders on store
204
+ // changes, so a pathname printed here goes stale the moment you navigate
205
+ // with the tool still open. Each restore point shows the route it holds.
206
+ detail: routeAvailable ? "recorded with every snapshot — restore can take you back" : "no Expo Router detected — snapshots record no route"
207
+ };
208
+ const sourceTiles = [...providers, routeSource];
136
209
  const atFreeLimit = !isPro && snapshots.length >= FREE_SNAPSHOT_LIMIT;
137
210
  const captureDisabled = busy !== null || atFreeLimit;
138
211
  const capture = () => {
@@ -146,7 +219,11 @@ export function TimeMachineBody() {
146
219
  confirmDestructive("Restore fresh install?", "This wipes all app storage and reloads the app.", "Wipe & reload", () => void timeMachineStore.restore(meta.id, "reload"));
147
220
  return;
148
221
  }
149
- void timeMachineStore.restore(meta.id, mode, excludeKeys);
222
+ restoreWithRoutePrompt(meta, restoreRoute => {
223
+ void timeMachineStore.restore(meta.id, mode, excludeKeys, {
224
+ restoreRoute
225
+ });
226
+ });
150
227
  };
151
228
  const remove = meta => {
152
229
  confirmDestructive("Delete snapshot?", `“${meta.name}” cannot be recovered.`, "Delete", () => void timeMachineStore.delete(meta.id));
@@ -253,7 +330,11 @@ export function TimeMachineBody() {
253
330
  }
254
331
  // Land back on the list, where the outcome panel reports the
255
332
  // results — the preview's diff is stale the moment restore runs.
256
- void timeMachineStore.restore(rightMeta.id, mode, excludeKeys).then(() => closePreview());
333
+ restoreWithRoutePrompt(rightMeta, restoreRoute => {
334
+ void timeMachineStore.restore(rightMeta.id, mode, excludeKeys, {
335
+ restoreRoute
336
+ }).then(() => closePreview());
337
+ });
257
338
  },
258
339
  onPickSide: setPicker,
259
340
  onRefresh: () => void timeMachineStore.buildPreview(preview.right, preview.left)
@@ -269,7 +350,7 @@ export function TimeMachineBody() {
269
350
  }
270
351
 
271
352
  // ── List screen ──
272
- const unavailable = providers.filter(p => p.detail && (!p.canCapture || !p.canRestore));
353
+ const unavailable = sourceTiles.filter(p => p.detail && (!p.canCapture || !p.canRestore));
273
354
  return /*#__PURE__*/_jsxs(ScrollView, {
274
355
  style: styles.screenFill,
275
356
  contentContainerStyle: styles.container,
@@ -313,11 +394,13 @@ export function TimeMachineBody() {
313
394
  children: "Sources"
314
395
  }), /*#__PURE__*/_jsxs(View, {
315
396
  style: styles.sourceTiles,
316
- children: [providers.map(p => {
397
+ children: [sourceTiles.map(p => {
317
398
  const IconComp = SOURCE_ICONS[p.id] ?? TimeMachineIcon;
318
399
  const dotColor = !p.canCapture ? buoyColors.textMuted : p.canRestore ? buoyColors.success : buoyColors.warning;
319
400
  return /*#__PURE__*/_jsxs(View, {
320
401
  style: styles.sourceTile,
402
+ testID: `time-machine-source-${p.id}`,
403
+ accessibilityLabel: `${p.label}: ${p.canCapture ? p.canRestore ? "capture and restore" : "capture only" : "unavailable"}`,
321
404
  children: [/*#__PURE__*/_jsx(IconComp, {
322
405
  size: 16
323
406
  }), /*#__PURE__*/_jsx(View, {
@@ -326,7 +409,7 @@ export function TimeMachineBody() {
326
409
  }]
327
410
  })]
328
411
  }, p.id);
329
- }), providers.length === 0 && /*#__PURE__*/_jsx(Text, {
412
+ }), providers.length === 0 && !routeAvailable && /*#__PURE__*/_jsx(Text, {
330
413
  style: styles.emptyText,
331
414
  children: "none registered"
332
415
  })]
@@ -334,7 +417,11 @@ export function TimeMachineBody() {
334
417
  }), unavailable.map(p => /*#__PURE__*/_jsxs(Text, {
335
418
  style: styles.providerDetail,
336
419
  children: [p.label, ": ", p.detail]
337
- }, p.id)), /*#__PURE__*/_jsx(Text, {
420
+ }, p.id)), routeAvailable && /*#__PURE__*/_jsxs(Text, {
421
+ style: styles.providerDetail,
422
+ numberOfLines: 1,
423
+ children: [routeSource.label, ": ", routeSource.detail]
424
+ }), /*#__PURE__*/_jsx(Text, {
338
425
  style: [styles.sectionTitle, styles.sectionSpacing],
339
426
  children: "Restore points"
340
427
  }), hasLoaded && snapshots.length === 0 && /*#__PURE__*/_jsx(Text, {
@@ -364,6 +451,10 @@ export function TimeMachineBody() {
364
451
  style: styles.snapshotMeta,
365
452
  numberOfLines: 1,
366
453
  children: [meta.baseline ? "wipes to fresh install" : `${timeAgo(meta.createdAt)} · ${formatBytes(meta.sizeBytes)} · ${Object.keys(meta.sources).length} sources`, meta.scope?.length ? ` · scoped (${meta.scope.length})` : "", warnings > 0 ? ` · ⚠ ${warnings}` : ""]
454
+ }), !meta.baseline && meta.route && /*#__PURE__*/_jsxs(Text, {
455
+ style: styles.snapshotRoute,
456
+ numberOfLines: 1,
457
+ children: ["\u2316 ", meta.route.href]
367
458
  })]
368
459
  }), !meta.baseline ? /*#__PURE__*/_jsx(TouchableOpacity, {
369
460
  style: [styles.rowAction, busy && styles.buttonDisabled],
@@ -552,6 +643,10 @@ const styles = StyleSheet.create({
552
643
  fontSize: 10,
553
644
  fontVariant: ["tabular-nums"]
554
645
  },
646
+ snapshotRoute: {
647
+ color: buoyColors.textSecondary,
648
+ fontSize: 10
649
+ },
555
650
  rowAction: {
556
651
  padding: 4,
557
652
  justifyContent: "center",