@buoy-gg/time-machine 7.0.17 → 7.0.18

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 (69) hide show
  1. package/lib/commonjs/components/HeaderReloadButton.js +61 -0
  2. package/lib/commonjs/components/HeaderReloadButton.js.map +1 -0
  3. package/lib/commonjs/components/TimeMachineBody.js +343 -127
  4. package/lib/commonjs/components/TimeMachineBody.js.map +1 -1
  5. package/lib/commonjs/components/TimeMachineModal.js +1 -0
  6. package/lib/commonjs/components/TimeMachineModal.js.map +1 -1
  7. package/lib/commonjs/components/preview/ItemDetailScreen.js +189 -0
  8. package/lib/commonjs/components/preview/ItemDetailScreen.js.map +1 -0
  9. package/lib/commonjs/components/preview/RestorePreviewScreen.js +1056 -0
  10. package/lib/commonjs/components/preview/RestorePreviewScreen.js.map +1 -0
  11. package/lib/commonjs/components/preview/verdictMeta.js +58 -0
  12. package/lib/commonjs/components/preview/verdictMeta.js.map +1 -0
  13. package/lib/commonjs/preset.js +11 -2
  14. package/lib/commonjs/preset.js.map +1 -1
  15. package/lib/commonjs/store/snapshotVault.js +19 -0
  16. package/lib/commonjs/store/snapshotVault.js.map +1 -1
  17. package/lib/commonjs/store/timeMachineStore.js +298 -7
  18. package/lib/commonjs/store/timeMachineStore.js.map +1 -1
  19. package/lib/commonjs/sync/timeMachineSyncAdapter.js +62 -2
  20. package/lib/commonjs/sync/timeMachineSyncAdapter.js.map +1 -1
  21. package/lib/module/components/HeaderReloadButton.js +56 -0
  22. package/lib/module/components/HeaderReloadButton.js.map +1 -0
  23. package/lib/module/components/TimeMachineBody.js +345 -129
  24. package/lib/module/components/TimeMachineBody.js.map +1 -1
  25. package/lib/module/components/TimeMachineModal.js +1 -0
  26. package/lib/module/components/TimeMachineModal.js.map +1 -1
  27. package/lib/module/components/preview/ItemDetailScreen.js +184 -0
  28. package/lib/module/components/preview/ItemDetailScreen.js.map +1 -0
  29. package/lib/module/components/preview/RestorePreviewScreen.js +1051 -0
  30. package/lib/module/components/preview/RestorePreviewScreen.js.map +1 -0
  31. package/lib/module/components/preview/verdictMeta.js +53 -0
  32. package/lib/module/components/preview/verdictMeta.js.map +1 -0
  33. package/lib/module/preset.js +11 -2
  34. package/lib/module/preset.js.map +1 -1
  35. package/lib/module/store/snapshotVault.js +18 -0
  36. package/lib/module/store/snapshotVault.js.map +1 -1
  37. package/lib/module/store/timeMachineStore.js +299 -8
  38. package/lib/module/store/timeMachineStore.js.map +1 -1
  39. package/lib/module/sync/timeMachineSyncAdapter.js +62 -2
  40. package/lib/module/sync/timeMachineSyncAdapter.js.map +1 -1
  41. package/lib/typescript/components/HeaderReloadButton.d.ts +2 -0
  42. package/lib/typescript/components/HeaderReloadButton.d.ts.map +1 -0
  43. package/lib/typescript/components/TimeMachineBody.d.ts.map +1 -1
  44. package/lib/typescript/components/TimeMachineModal.d.ts.map +1 -1
  45. package/lib/typescript/components/preview/ItemDetailScreen.d.ts +11 -0
  46. package/lib/typescript/components/preview/ItemDetailScreen.d.ts.map +1 -0
  47. package/lib/typescript/components/preview/RestorePreviewScreen.d.ts +15 -0
  48. package/lib/typescript/components/preview/RestorePreviewScreen.d.ts.map +1 -0
  49. package/lib/typescript/components/preview/verdictMeta.d.ts +10 -0
  50. package/lib/typescript/components/preview/verdictMeta.d.ts.map +1 -0
  51. package/lib/typescript/preset.d.ts +15 -3
  52. package/lib/typescript/preset.d.ts.map +1 -1
  53. package/lib/typescript/store/snapshotVault.d.ts +7 -0
  54. package/lib/typescript/store/snapshotVault.d.ts.map +1 -1
  55. package/lib/typescript/store/timeMachineStore.d.ts +49 -2
  56. package/lib/typescript/store/timeMachineStore.d.ts.map +1 -1
  57. package/lib/typescript/sync/timeMachineSyncAdapter.d.ts +36 -0
  58. package/lib/typescript/sync/timeMachineSyncAdapter.d.ts.map +1 -1
  59. package/package.json +13 -6
  60. package/src/components/HeaderReloadButton.tsx +45 -0
  61. package/src/components/TimeMachineBody.tsx +416 -137
  62. package/src/components/TimeMachineModal.tsx +1 -0
  63. package/src/components/preview/ItemDetailScreen.tsx +172 -0
  64. package/src/components/preview/RestorePreviewScreen.tsx +1089 -0
  65. package/src/components/preview/verdictMeta.ts +40 -0
  66. package/src/preset.tsx +11 -2
  67. package/src/store/snapshotVault.ts +28 -0
  68. package/src/store/timeMachineStore.ts +330 -7
  69. package/src/sync/timeMachineSyncAdapter.ts +63 -3
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useCallback","useEffect","useMemo","useRef","useState","ActivityIndicator","FlatList","StyleSheet","Text","TextInput","TouchableOpacity","View","ChevronDown","ChevronUp","Filter","RefreshCw","Search","buoyColors","macOSColors","JotaiIcon","QueryIcon","ReduxIcon","StorageIcon","TimeMachineIcon","ZustandIcon","useToolHeader","useToolHost","timeMachineStore","VERDICT_META","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SOURCE_ICONS","storage","redux","zustand","jotai","query","SOURCE_NOUNS","cKey","sourceId","itemKey","shortPreview","value","undefined","s","JSON","stringify","String","length","slice","sideName","ref","snapshots","find","id","snapshotId","name","timeAgo","ts","Math","max","round","Date","now","m","h","Checkbox","state","style","styles","checkbox","checkboxChecked","children","checkboxGlyph","ItemRow","row","onOpen","onToggle","meta","item","verdict","dimmed","applies","excluded","openable","itemRow","onPress","hitSlop","top","bottom","left","right","testID","key","itemBodyTouch","disabled","itemGlyph","color","glyph","itemBody","itemLabel","numberOfLines","label","itemPreview","oldValue","newValue","itemPreviewRemoved","itemExcluded","reason","itemReason","itemChevron","RestorePreviewScreen","preview","busy","onBack","onOpenItem","onRestore","onPickSide","onRefresh","host","hosted","instanceId","localSearch","setLocalSearch","collapsed","setCollapsed","allCollapsed","setAllCollapsed","setExcluded","Set","search","rightMeta","isBaseline","baseline","liveLeft","selectAll","selectNone","next","src","sources","items","add","seededScopeFor","scope","building","current","scopeSet","has","saveScope","selected","push","clearing","size","setScope","showToast","toggleItem","prev","delete","toggleSource","source","includeState","toggleCollapse","currentlyCollapsed","c","toggleAllCollapsed","Object","fromEntries","map","totals","excludedCount","wontApply","perSource","n","toLowerCase","title","subtitle","searchable","rows","q","trim","out","relevant","some","i","expandable","notes","error","applicable","filter","wontApplyCount","noun","replace","summary","excludedInSource","counts","added","removed","changed","visible","includes","isCollapsed","kind","applicableCount","note","text","renderRow","clean","IconComp","sourceCard","sourceCardTouch","sourceIconTile","sourceNameBlock","sourceName","sourceSummary","sourceBadges","sourceBadge","success","info","textMuted","noteRow","keyExtractor","header","fallbackHeader","HIT","backText","screenTitle","compareCard","compareSide","compareTagRow","stateDot","backgroundColor","compareTag","compareName","compareMetaRow","compareMeta","builtAt","accessibilityLabel","textSecondary","swapBadge","swapGlyph","compareSideRight","compareNameRight","compareMetaRight","createdAt","changesRow","changesTitleRow","changesTitle","selectLinks","selectLink","selectLinkActive","selectLinkSep","primary","changesChip","changesChipText","join","wontApplyLine","searchRow","searchField","searchInput","onChangeText","placeholder","placeholderTextColor","autoCorrect","autoCapitalize","collapseAllButton","ctaDisabled","container","data","renderItem","ListHeaderComponent","ListEmptyComponent","emptyText","removeClippedSubviews","initialNumToRender","windowSize","contentContainerStyle","listContent","footer","cta","ctaDanger","Array","from","ctaText","ctaCaption","create","flex","flexDirection","alignItems","paddingVertical","gap","fontSize","fontWeight","toolbarButton","padding","justifyContent","opacity","paddingHorizontal","paddingTop","paddingBottom","card","borderColor","border","borderWidth","borderRadius","minWidth","width","height","letterSpacing","textAlign","hover","marginTop","maxWidth","warning","marginBottom","lineHeight","fontVariant","paddingLeft","marginLeft","textDecorationLine","fontStyle","borderTopColor","borderTopWidth","base"],"sourceRoot":"../../../../src","sources":["components/preview/RestorePreviewScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * One place for the verdict → glyph/color/label mapping. Color is ALWAYS
5
+ * paired with a distinct glyph (true minus U+2212, approx U+2248) — the
6
+ * repo-wide accessibility convention for diff surfaces.
7
+ */
8
+ import { buoyColors } from "@buoy-gg/shared-ui";
9
+ export const VERDICT_META = {
10
+ added: {
11
+ glyph: "+",
12
+ color: buoyColors.success,
13
+ label: "added",
14
+ applies: true
15
+ },
16
+ removed: {
17
+ glyph: "−",
18
+ color: buoyColors.error,
19
+ label: "removed",
20
+ applies: true
21
+ },
22
+ changed: {
23
+ glyph: "≈",
24
+ color: buoyColors.info,
25
+ label: "changed",
26
+ applies: true
27
+ },
28
+ "too-large": {
29
+ glyph: "≈",
30
+ color: buoyColors.warning,
31
+ label: "changed (large)",
32
+ applies: true
33
+ },
34
+ unchanged: {
35
+ glyph: "=",
36
+ color: buoyColors.textMuted,
37
+ label: "unchanged",
38
+ applies: false
39
+ },
40
+ "wont-apply": {
41
+ glyph: "⊘",
42
+ color: buoyColors.warning,
43
+ label: "won't apply",
44
+ applies: false
45
+ },
46
+ recomputes: {
47
+ glyph: "↻",
48
+ color: buoyColors.textMuted,
49
+ label: "recomputes",
50
+ applies: false
51
+ }
52
+ };
53
+ //# sourceMappingURL=verdictMeta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["buoyColors","VERDICT_META","added","glyph","color","success","label","applies","removed","error","changed","info","warning","unchanged","textMuted","recomputes"],"sourceRoot":"../../../../src","sources":["components/preview/verdictMeta.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,oBAAoB;AAW/C,OAAO,MAAMC,YAA8D,GAAG;EAC5EC,KAAK,EAAE;IAAEC,KAAK,EAAE,GAAG;IAAEC,KAAK,EAAEJ,UAAU,CAACK,OAAO;IAAEC,KAAK,EAAE,OAAO;IAAEC,OAAO,EAAE;EAAK,CAAC;EAC/EC,OAAO,EAAE;IAAEL,KAAK,EAAE,GAAG;IAAEC,KAAK,EAAEJ,UAAU,CAACS,KAAK;IAAEH,KAAK,EAAE,SAAS;IAAEC,OAAO,EAAE;EAAK,CAAC;EACjFG,OAAO,EAAE;IAAEP,KAAK,EAAE,GAAG;IAAEC,KAAK,EAAEJ,UAAU,CAACW,IAAI;IAAEL,KAAK,EAAE,SAAS;IAAEC,OAAO,EAAE;EAAK,CAAC;EAChF,WAAW,EAAE;IACXJ,KAAK,EAAE,GAAG;IACVC,KAAK,EAAEJ,UAAU,CAACY,OAAO;IACzBN,KAAK,EAAE,iBAAiB;IACxBC,OAAO,EAAE;EACX,CAAC;EACDM,SAAS,EAAE;IAAEV,KAAK,EAAE,GAAG;IAAEC,KAAK,EAAEJ,UAAU,CAACc,SAAS;IAAER,KAAK,EAAE,WAAW;IAAEC,OAAO,EAAE;EAAM,CAAC;EAC1F,YAAY,EAAE;IACZJ,KAAK,EAAE,GAAG;IACVC,KAAK,EAAEJ,UAAU,CAACY,OAAO;IACzBN,KAAK,EAAE,aAAa;IACpBC,OAAO,EAAE;EACX,CAAC;EACDQ,UAAU,EAAE;IACVZ,KAAK,EAAE,GAAG;IACVC,KAAK,EAAEJ,UAAU,CAACc,SAAS;IAC3BR,KAAK,EAAE,YAAY;IACnBC,OAAO,EAAE;EACX;AACF,CAAC","ignoreList":[]}
@@ -12,7 +12,8 @@
12
12
  */
13
13
 
14
14
  import { TimeMachineIcon, TIME_MACHINE_ICON_COLOR } from "@buoy-gg/shared-ui";
15
- import { TimeMachineModal } from "./components/TimeMachineModal";
15
+ import { TimeMachineBody } from "./components/TimeMachineBody";
16
+ import { HeaderReloadButton } from "./components/HeaderReloadButton";
16
17
  import { jsx as _jsx } from "react/jsx-runtime";
17
18
  export const timeMachineToolPreset = {
18
19
  id: "time-machine",
@@ -26,7 +27,15 @@ export const timeMachineToolPreset = {
26
27
  size: size,
27
28
  color: color || TIME_MACHINE_ICON_COLOR
28
29
  }),
29
- component: TimeMachineModal
30
+ component: TimeMachineBody,
31
+ // Declarative chrome: core's ToolModalShell provides the JsModal, the
32
+ // managed header (screens override it via useToolHeader) and header search.
33
+ modal: {
34
+ subtitle: "snapshot & restore app state",
35
+ searchable: true,
36
+ searchPlaceholder: "Filter…",
37
+ headerActions: /*#__PURE__*/_jsx(HeaderReloadButton, {})
38
+ }
30
39
  };
31
40
 
32
41
  /** Create a custom Time Machine tool configuration. */
@@ -1 +1 @@
1
- {"version":3,"names":["TimeMachineIcon","TIME_MACHINE_ICON_COLOR","TimeMachineModal","jsx","_jsx","timeMachineToolPreset","id","name","description","slot","icon","size","color","component","createTimeMachineTool","options"],"sourceRoot":"../../src","sources":["preset.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACEA,eAAe,EACfC,uBAAuB,QAClB,oBAAoB;AAC3B,SAASC,gBAAgB,QAAQ,+BAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEjE,OAAO,MAAMC,qBAAqB,GAAG;EACnCC,EAAE,EAAE,cAAc;EAClBC,IAAI,EAAE,cAAc;EACpBC,WAAW,EAAE,6DAA6D;EAC1EC,IAAI,EAAE,MAAe;EACrBC,IAAI,EAAEA,CAAC;IAAEC,IAAI;IAAEC;EAAwC,CAAC,kBACtDR,IAAA,CAACJ,eAAe;IAACW,IAAI,EAAEA,IAAK;IAACC,KAAK,EAAEA,KAAK,IAAIX;EAAwB,CAAE,CACxE;EACDY,SAAS,EAAEX;AACb,CAAC;;AAED;AACA,OAAO,SAASY,qBAAqBA,CACnCC,OAAgD,GAAG,CAAC,CAAC,EACrD;EACA,OAAO;IACL,GAAGV,qBAAqB;IACxBE,IAAI,EAAEQ,OAAO,CAACR,IAAI,IAAIF,qBAAqB,CAACE,IAAI;IAChDC,WAAW,EAAEO,OAAO,CAACP,WAAW,IAAIH,qBAAqB,CAACG;EAC5D,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["TimeMachineIcon","TIME_MACHINE_ICON_COLOR","TimeMachineBody","HeaderReloadButton","jsx","_jsx","timeMachineToolPreset","id","name","description","slot","icon","size","color","component","modal","subtitle","searchable","searchPlaceholder","headerActions","createTimeMachineTool","options"],"sourceRoot":"../../src","sources":["preset.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACEA,eAAe,EACfC,uBAAuB,QAClB,oBAAoB;AAC3B,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,kBAAkB,QAAQ,iCAAiC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAErE,OAAO,MAAMC,qBAAqB,GAAG;EACnCC,EAAE,EAAE,cAAc;EAClBC,IAAI,EAAE,cAAc;EACpBC,WAAW,EAAE,6DAA6D;EAC1EC,IAAI,EAAE,MAAe;EACrBC,IAAI,EAAEA,CAAC;IAAEC,IAAI;IAAEC;EAAwC,CAAC,kBACtDR,IAAA,CAACL,eAAe;IAACY,IAAI,EAAEA,IAAK;IAACC,KAAK,EAAEA,KAAK,IAAIZ;EAAwB,CAAE,CACxE;EACDa,SAAS,EAAEZ,eAAe;EAC1B;EACA;EACAa,KAAK,EAAE;IACLC,QAAQ,EAAE,8BAA8B;IACxCC,UAAU,EAAE,IAAI;IAChBC,iBAAiB,EAAE,SAAS;IAC5BC,aAAa,eAAEd,IAAA,CAACF,kBAAkB,IAAE;EACtC;AACF,CAAC;;AAED;AACA,OAAO,SAASiB,qBAAqBA,CACnCC,OAAgD,GAAG,CAAC,CAAC,EACrD;EACA,OAAO;IACL,GAAGf,qBAAqB;IACxBE,IAAI,EAAEa,OAAO,CAACb,IAAI,IAAIF,qBAAqB,CAACE,IAAI;IAChDC,WAAW,EAAEY,OAAO,CAACZ,WAAW,IAAIH,qBAAqB,CAACG;EAC5D,CAAC;AACH","ignoreList":[]}
@@ -58,6 +58,24 @@ export async function deleteSnapshot(id, metas) {
58
58
  await saveIndex(next);
59
59
  return next;
60
60
  }
61
+ export async function setSnapshotScope(id, scope, metas) {
62
+ const apply = m => {
63
+ if (m.id !== id) return m;
64
+ const next = {
65
+ ...m
66
+ };
67
+ if (scope && scope.length > 0) next.scope = scope;else delete next.scope;
68
+ return next;
69
+ };
70
+ const next = metas.map(apply);
71
+ await persistentStorage.setItem(INDEX_KEY, JSON.stringify(next));
72
+ const stored = await loadSnapshot(id);
73
+ if (stored) {
74
+ stored.meta = apply(stored.meta);
75
+ await persistentStorage.setItem(SNAP_PREFIX + id, JSON.stringify(stored));
76
+ }
77
+ return next;
78
+ }
61
79
  export async function renameSnapshot(id, name, metas) {
62
80
  const next = metas.map(m => m.id === id ? {
63
81
  ...m,
@@ -1 +1 @@
1
- {"version":3,"names":["persistentStorage","INDEX_KEY","SNAP_PREFIX","loadIndex","raw","getItem","parsed","JSON","parse","Array","isArray","saveIndex","metas","setItem","stringify","saveSnapshot","snapshot","serialized","meta","sizeBytes","length","id","next","filter","m","loadSnapshot","deleteSnapshot","removeItem","renameSnapshot","name","map","stored"],"sourceRoot":"../../../src","sources":["store/snapshotVault.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["persistentStorage","INDEX_KEY","SNAP_PREFIX","loadIndex","raw","getItem","parsed","JSON","parse","Array","isArray","saveIndex","metas","setItem","stringify","saveSnapshot","snapshot","serialized","meta","sizeBytes","length","id","next","filter","m","loadSnapshot","deleteSnapshot","removeItem","setSnapshotScope","scope","apply","map","stored","renameSnapshot","name"],"sourceRoot":"../../../src","sources":["store/snapshotVault.ts"],"mappings":"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","ignoreList":[]}
@@ -17,11 +17,14 @@
17
17
  * Baseline snapshots always use this path (clear + reload).
18
18
  */
19
19
  import { getStateSnapshotProvider, getStateSnapshotProviders, scheduleReloadApp, superJsonDeserialize, superJsonSerialize } from "@buoy-gg/shared-ui";
20
- import { deleteSnapshot, loadIndex, loadSnapshot, renameSnapshot, saveSnapshot } from "./snapshotVault";
20
+ import { objectDiff } from "@buoy-gg/shared-ui/dataViewer";
21
+ import { deleteSnapshot, loadIndex, loadSnapshot, renameSnapshot, saveSnapshot, setSnapshotScope } from "./snapshotVault";
21
22
  export const RESTORE_ORDER = ["storage", "redux", "zustand", "jotai", "query"];
22
23
 
23
24
  /** Provider capability row as mirrored to a remote dashboard. */
24
25
 
26
+ /** One side of a preview comparison. */
27
+
25
28
  let remoteHandler = null;
26
29
  function skippedResult(reason) {
27
30
  return {
@@ -45,8 +48,12 @@ class TimeMachineStore {
45
48
  hasLoaded: false,
46
49
  busy: null,
47
50
  lastOutcome: null,
51
+ preview: null,
48
52
  remoteProviders: null
49
53
  };
54
+ /** Monotonic token — a preview build checks it after every await and
55
+ * abandons itself when a newer build (or clearPreview) supersedes it. */
56
+ previewRunId = 0;
50
57
  listeners = new Set();
51
58
  loadPromise = null;
52
59
  getState() {
@@ -177,11 +184,18 @@ class TimeMachineStore {
177
184
  });
178
185
  return snapshot.meta;
179
186
  }
180
- async restore(id, mode) {
187
+
188
+ /**
189
+ * `excludeKeys` entries are compound `"sourceId::itemKey"` strings (the
190
+ * itemKey being what previewItems emitted) — split per source before each
191
+ * provider sees only its own keys.
192
+ */
193
+ async restore(id, mode, excludeKeys) {
181
194
  if (remoteHandler) {
182
195
  const outcome = await remoteHandler("restore", {
183
196
  id,
184
- mode
197
+ mode,
198
+ excludeKeys
185
199
  });
186
200
  this.setState({
187
201
  lastOutcome: outcome
@@ -222,10 +236,28 @@ class TimeMachineStore {
222
236
  return outcome;
223
237
  }
224
238
  const sourceIds = [...RESTORE_ORDER.filter(sid => sid in stored.data), ...Object.keys(stored.data).filter(sid => !RESTORE_ORDER.includes(sid))];
239
+ const splitCompound = keys => {
240
+ const bySource = new Map();
241
+ for (const compound of keys) {
242
+ const sep = compound.indexOf("::");
243
+ if (sep <= 0) continue;
244
+ const sid = compound.slice(0, sep);
245
+ const itemKey = compound.slice(sep + 2);
246
+ const list = bySource.get(sid) ?? [];
247
+ list.push(itemKey);
248
+ bySource.set(sid, list);
249
+ }
250
+ return bySource;
251
+ };
252
+ const excludeBySource = splitCompound(excludeKeys ?? []);
253
+ // A saved scope makes this a targeted restore point. An explicit
254
+ // exclusion list from the preview already reflects the scope (the
255
+ // preview seeds its selection from it), so it takes precedence.
256
+ const includeBySource = !excludeKeys && stored.meta.scope?.length ? splitCompound(stored.meta.scope) : null;
225
257
  if (mode === "reload") {
226
258
  // Storage only; everything in-memory rebuilds after the reload.
227
- if (stored.data.storage) {
228
- outcome.results.storage = await this.restoreSource("storage", stored.data.storage);
259
+ if (stored.data.storage && (!includeBySource || includeBySource.has("storage"))) {
260
+ outcome.results.storage = await this.restoreSource("storage", stored.data.storage, excludeBySource.get("storage"), includeBySource?.get("storage"));
229
261
  }
230
262
  outcome.willReload = this.scheduleReload("buoy time-machine restore");
231
263
  this.setState({
@@ -234,7 +266,9 @@ class TimeMachineStore {
234
266
  return outcome;
235
267
  }
236
268
  for (const sid of sourceIds) {
237
- outcome.results[sid] = await this.restoreSource(sid, stored.data[sid]);
269
+ // Sources entirely outside the scope are untouched and unreported.
270
+ if (includeBySource && !includeBySource.has(sid)) continue;
271
+ outcome.results[sid] = await this.restoreSource(sid, stored.data[sid], excludeBySource.get(sid), includeBySource?.get(sid));
238
272
  }
239
273
  this.setState({
240
274
  lastOutcome: outcome
@@ -246,7 +280,7 @@ class TimeMachineStore {
246
280
  });
247
281
  }
248
282
  }
249
- async restoreSource(sourceId, payload) {
283
+ async restoreSource(sourceId, payload, excludeKeys, includeKeys) {
250
284
  const provider = getStateSnapshotProvider(sourceId);
251
285
  if (!provider) {
252
286
  return skippedResult("provider not available (package missing or not initialized)");
@@ -256,7 +290,15 @@ class TimeMachineStore {
256
290
  return skippedResult(status.detail ?? "restore unavailable");
257
291
  }
258
292
  try {
259
- return await provider.restore(superJsonDeserialize(payload));
293
+ const options = excludeKeys?.length || includeKeys?.length ? {
294
+ ...(excludeKeys?.length ? {
295
+ excludeKeys
296
+ } : {}),
297
+ ...(includeKeys?.length ? {
298
+ includeKeys
299
+ } : {})
300
+ } : undefined;
301
+ return await provider.restore(superJsonDeserialize(payload), options);
260
302
  } catch (e) {
261
303
  return skippedResult(String(e));
262
304
  }
@@ -299,11 +341,260 @@ class TimeMachineStore {
299
341
  snapshots
300
342
  });
301
343
  }
344
+
345
+ /**
346
+ * Save (or clear with null/empty) a snapshot's restore scope — compound
347
+ * "sourceId::itemKey" strings. A scoped restore point only ever touches
348
+ * its scoped items.
349
+ */
350
+ async setScope(id, scope) {
351
+ if (remoteHandler) {
352
+ await remoteHandler("setScope", {
353
+ id,
354
+ scope
355
+ });
356
+ return;
357
+ }
358
+ await this.ensureLoaded();
359
+ const snapshots = await setSnapshotScope(id, scope, this.state.snapshots);
360
+ this.setState({
361
+ snapshots
362
+ });
363
+ }
302
364
  clearLastOutcome() {
303
365
  this.setState({
304
366
  lastOutcome: null
305
367
  });
306
368
  }
369
+
370
+ /**
371
+ * Wipe every clearable source to fresh-install state and reload — the
372
+ * standalone utility behind the home screen's "Wipe all app state" button
373
+ * (no baseline snapshot involved).
374
+ */
375
+ async wipeAll() {
376
+ if (remoteHandler) {
377
+ const outcome = await remoteHandler("wipeAll", {});
378
+ this.setState({
379
+ lastOutcome: outcome
380
+ });
381
+ return outcome;
382
+ }
383
+ this.setState({
384
+ busy: "restore"
385
+ });
386
+ try {
387
+ const outcome = {
388
+ snapshotId: "wipe-all",
389
+ snapshotName: "Wipe all",
390
+ mode: "reload",
391
+ at: Date.now(),
392
+ willReload: false,
393
+ results: {}
394
+ };
395
+ for (const provider of getStateSnapshotProviders()) {
396
+ if (provider.clear) {
397
+ try {
398
+ outcome.results[provider.id] = await provider.clear();
399
+ } catch (e) {
400
+ outcome.results[provider.id] = skippedResult(String(e));
401
+ }
402
+ }
403
+ }
404
+ outcome.willReload = this.scheduleReload("buoy time-machine wipe all");
405
+ this.setState({
406
+ lastOutcome: outcome
407
+ });
408
+ return outcome;
409
+ } finally {
410
+ this.setState({
411
+ busy: null
412
+ });
413
+ }
414
+ }
415
+ clearPreview() {
416
+ this.previewRunId += 1;
417
+ this.setState({
418
+ preview: null
419
+ });
420
+ }
421
+
422
+ /**
423
+ * Build (or rebuild) the restore preview: item-level verdicts per source,
424
+ * filled in incrementally with a frame yield between sources so a big app
425
+ * never freezes the JS thread in one go.
426
+ */
427
+ async buildPreview(right, left = "current") {
428
+ if (remoteHandler) {
429
+ // Buoy Desktop: the device builds it; result mirrors into state.
430
+ const runId = ++this.previewRunId;
431
+ this.setState({
432
+ preview: {
433
+ left,
434
+ right,
435
+ building: true,
436
+ builtAt: Date.now(),
437
+ sources: []
438
+ }
439
+ });
440
+ try {
441
+ const result = await remoteHandler("preview", {
442
+ id: right === "current" ? undefined : right.snapshotId,
443
+ compareTo: left === "current" ? undefined : left.snapshotId
444
+ });
445
+ if (runId !== this.previewRunId) return;
446
+ this.setState({
447
+ preview: {
448
+ left,
449
+ right,
450
+ building: false,
451
+ builtAt: Date.now(),
452
+ sources: result.sources ?? []
453
+ }
454
+ });
455
+ } catch (e) {
456
+ if (runId !== this.previewRunId) return;
457
+ this.setState({
458
+ preview: {
459
+ left,
460
+ right,
461
+ building: false,
462
+ builtAt: Date.now(),
463
+ sources: [{
464
+ id: "error",
465
+ label: "Preview",
466
+ items: [],
467
+ notes: [],
468
+ error: String(e)
469
+ }]
470
+ }
471
+ });
472
+ }
473
+ return;
474
+ }
475
+ await this.ensureLoaded();
476
+ const runId = ++this.previewRunId;
477
+ this.setState({
478
+ preview: {
479
+ left,
480
+ right,
481
+ building: true,
482
+ builtAt: Date.now(),
483
+ sources: []
484
+ }
485
+ });
486
+ const loadSide = async ref => {
487
+ if (ref === "current") return null; // providers capture live themselves
488
+ const stored = await loadSnapshot(ref.snapshotId);
489
+ if (!stored) throw new Error(`No snapshot with id "${ref.snapshotId}"`);
490
+ return stored.data;
491
+ };
492
+ try {
493
+ if (right === "current") throw new Error("preview target must be a snapshot");
494
+ const [leftData, rightStored] = await Promise.all([loadSide(left), loadSnapshot(right.snapshotId)]);
495
+ if (runId !== this.previewRunId) return;
496
+ if (!rightStored) {
497
+ throw new Error(`No snapshot with id "${right.snapshotId}"`);
498
+ }
499
+ const rightData = rightStored.data;
500
+
501
+ // Baseline = empty target: preview every clearable source against live,
502
+ // so each live key naturally reads as "removed" — the informed wipe.
503
+ const isBaseline = rightStored.meta.baseline === true;
504
+ const sourceIds = isBaseline ? getStateSnapshotProviders().filter(p => p.clear).map(p => p.id) : [...RESTORE_ORDER.filter(sid => sid in rightData), ...Object.keys(rightData).filter(sid => !RESTORE_ORDER.includes(sid))];
505
+ const sources = [];
506
+ for (const sid of sourceIds) {
507
+ // Yield a frame between sources — verdict passes are bounded but a
508
+ // five-source build shouldn't run as one synchronous block.
509
+ await new Promise(r => setTimeout(r, 0));
510
+ if (runId !== this.previewRunId) return;
511
+ const provider = getStateSnapshotProvider(sid);
512
+ const label = provider?.label ?? sid;
513
+ try {
514
+ const targetData = isBaseline ? undefined // provider treats an absent target as "empty"
515
+ : superJsonDeserialize(rightData[sid]);
516
+ const baseData = leftData === null ? undefined : sid in leftData ? superJsonDeserialize(leftData[sid]) : undefined;
517
+ let result;
518
+ if (!provider) {
519
+ result = {
520
+ items: [{
521
+ key: sid,
522
+ label,
523
+ verdict: "wont-apply",
524
+ reason: "tool not installed — restore skips this source"
525
+ }],
526
+ notes: []
527
+ };
528
+ } else if (provider.previewItems) {
529
+ result = await provider.previewItems(targetData, baseData);
530
+ } else {
531
+ // Whole-source fallback for custom providers without previewItems.
532
+ const diff = objectDiff(baseData, targetData);
533
+ result = {
534
+ items: [{
535
+ key: sid,
536
+ label,
537
+ verdict: diff.equal ? "unchanged" : "changed",
538
+ oldValue: baseData,
539
+ newValue: targetData
540
+ }],
541
+ notes: diff.truncated ? ["diff truncated (large value)"] : []
542
+ };
543
+ }
544
+ if (runId !== this.previewRunId) return;
545
+ sources.push({
546
+ id: sid,
547
+ label,
548
+ ...result
549
+ });
550
+ } catch (e) {
551
+ sources.push({
552
+ id: sid,
553
+ label,
554
+ items: [],
555
+ notes: [],
556
+ error: String(e)
557
+ });
558
+ }
559
+ this.setState({
560
+ preview: {
561
+ left,
562
+ right,
563
+ building: true,
564
+ builtAt: Date.now(),
565
+ sources: [...sources]
566
+ }
567
+ });
568
+ }
569
+ if (runId !== this.previewRunId) return;
570
+ this.setState({
571
+ preview: {
572
+ left,
573
+ right,
574
+ building: false,
575
+ builtAt: Date.now(),
576
+ sources
577
+ }
578
+ });
579
+ } catch (e) {
580
+ if (runId !== this.previewRunId) return;
581
+ this.setState({
582
+ preview: {
583
+ left,
584
+ right,
585
+ building: false,
586
+ builtAt: Date.now(),
587
+ sources: [{
588
+ id: "error",
589
+ label: "Preview",
590
+ items: [],
591
+ notes: [],
592
+ error: String(e)
593
+ }]
594
+ }
595
+ });
596
+ }
597
+ }
307
598
  }
308
599
  export const timeMachineStore = new TimeMachineStore();
309
600