things-api 0.7.0 → 0.9.0

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 (154) hide show
  1. package/README.md +6 -3
  2. package/dist/cli/commands/area.d.ts +23 -0
  3. package/dist/cli/commands/area.js +164 -33
  4. package/dist/cli/commands/area.js.map +1 -1
  5. package/dist/cli/commands/project.d.ts +19 -0
  6. package/dist/cli/commands/project.js +142 -29
  7. package/dist/cli/commands/project.js.map +1 -1
  8. package/dist/cli/commands/reads.d.ts +10 -51
  9. package/dist/cli/commands/reads.js +454 -268
  10. package/dist/cli/commands/reads.js.map +1 -1
  11. package/dist/cli/commands/show.d.ts +9 -0
  12. package/dist/cli/commands/show.js +169 -0
  13. package/dist/cli/commands/show.js.map +1 -0
  14. package/dist/cli/commands/snapshot.js +1 -1
  15. package/dist/cli/commands/snapshot.js.map +1 -1
  16. package/dist/cli/commands/todo.d.ts +9 -0
  17. package/dist/cli/commands/todo.js +101 -16
  18. package/dist/cli/commands/todo.js.map +1 -1
  19. package/dist/cli/commands/writes.js +55 -1
  20. package/dist/cli/commands/writes.js.map +1 -1
  21. package/dist/cli/did-you-mean.d.ts +29 -0
  22. package/dist/cli/did-you-mean.js +53 -0
  23. package/dist/cli/did-you-mean.js.map +1 -0
  24. package/dist/cli/glyphs.d.ts +95 -0
  25. package/dist/cli/glyphs.js +282 -0
  26. package/dist/cli/glyphs.js.map +1 -0
  27. package/dist/cli/main.js +11 -1
  28. package/dist/cli/main.js.map +1 -1
  29. package/dist/cli/period.d.ts +32 -0
  30. package/dist/cli/period.js +129 -0
  31. package/dist/cli/period.js.map +1 -0
  32. package/dist/cli/read-driver.d.ts +76 -0
  33. package/dist/cli/read-driver.js +181 -0
  34. package/dist/cli/read-driver.js.map +1 -0
  35. package/dist/cli/render.d.ts +182 -0
  36. package/dist/cli/render.js +585 -0
  37. package/dist/cli/render.js.map +1 -0
  38. package/dist/cli/resolve-invocation.d.ts +78 -0
  39. package/dist/cli/resolve-invocation.js +178 -0
  40. package/dist/cli/resolve-invocation.js.map +1 -0
  41. package/dist/cli/shell-quote.d.ts +9 -0
  42. package/dist/cli/shell-quote.js +12 -0
  43. package/dist/cli/shell-quote.js.map +1 -0
  44. package/dist/cli/style.d.ts +5 -0
  45. package/dist/cli/style.js +5 -0
  46. package/dist/cli/style.js.map +1 -1
  47. package/dist/client.d.ts +45 -39
  48. package/dist/client.js +11 -74
  49. package/dist/client.js.map +1 -1
  50. package/dist/contracts.d.ts +66 -1
  51. package/dist/contracts.js +1 -1
  52. package/dist/contracts.js.map +1 -1
  53. package/dist/db/baselines/db-v26.js +7 -5
  54. package/dist/db/baselines/db-v26.js.map +1 -1
  55. package/dist/db/schema.d.ts +1 -1
  56. package/dist/db/schema.js +7 -1
  57. package/dist/db/schema.js.map +1 -1
  58. package/dist/mcp/server.js +227 -44
  59. package/dist/mcp/server.js.map +1 -1
  60. package/dist/model/entities.d.ts +21 -0
  61. package/dist/model/entities.js.map +1 -1
  62. package/dist/model/mappers.js +17 -1
  63. package/dist/model/mappers.js.map +1 -1
  64. package/dist/model/occurrences.d.ts +6 -1
  65. package/dist/model/occurrences.js +9 -2
  66. package/dist/model/occurrences.js.map +1 -1
  67. package/dist/model/recurrence.d.ts +30 -2
  68. package/dist/model/recurrence.js +20 -0
  69. package/dist/model/recurrence.js.map +1 -1
  70. package/dist/read/area-view.js +21 -5
  71. package/dist/read/area-view.js.map +1 -1
  72. package/dist/read/caps.d.ts +14 -0
  73. package/dist/read/caps.js +21 -0
  74. package/dist/read/caps.js.map +1 -0
  75. package/dist/read/detail.js +12 -2
  76. package/dist/read/detail.js.map +1 -1
  77. package/dist/read/log-boundary.d.ts +29 -0
  78. package/dist/read/log-boundary.js +38 -0
  79. package/dist/read/log-boundary.js.map +1 -0
  80. package/dist/read/pagination.d.ts +104 -0
  81. package/dist/read/pagination.js +208 -0
  82. package/dist/read/pagination.js.map +1 -0
  83. package/dist/read/predicates.d.ts +31 -0
  84. package/dist/read/predicates.js +48 -0
  85. package/dist/read/predicates.js.map +1 -0
  86. package/dist/read/project-view.js +28 -3
  87. package/dist/read/project-view.js.map +1 -1
  88. package/dist/read/queries.d.ts +21 -3
  89. package/dist/read/queries.js +35 -8
  90. package/dist/read/queries.js.map +1 -1
  91. package/dist/read/search-rank.d.ts +36 -0
  92. package/dist/read/search-rank.js +31 -0
  93. package/dist/read/search-rank.js.map +1 -0
  94. package/dist/read/show-target.d.ts +25 -0
  95. package/dist/read/show-target.js +41 -0
  96. package/dist/read/show-target.js.map +1 -0
  97. package/dist/read/sidebar-order.d.ts +19 -0
  98. package/dist/read/sidebar-order.js +92 -0
  99. package/dist/read/sidebar-order.js.map +1 -0
  100. package/dist/read/snapshot.js +2 -0
  101. package/dist/read/snapshot.js.map +1 -1
  102. package/dist/read/views.d.ts +64 -8
  103. package/dist/read/views.js +290 -155
  104. package/dist/read/views.js.map +1 -1
  105. package/dist/surface-copy.d.ts +23 -0
  106. package/dist/surface-copy.js +23 -0
  107. package/dist/surface-copy.js.map +1 -1
  108. package/dist/write/automation-probe.js +14 -6
  109. package/dist/write/automation-probe.js.map +1 -1
  110. package/dist/write/capabilities.d.ts +3 -0
  111. package/dist/write/capabilities.js +3 -0
  112. package/dist/write/capabilities.js.map +1 -1
  113. package/dist/write/checklist.d.ts +50 -0
  114. package/dist/write/checklist.js +61 -0
  115. package/dist/write/checklist.js.map +1 -0
  116. package/dist/write/clear-reminder.d.ts +3 -0
  117. package/dist/write/clear-reminder.js +205 -0
  118. package/dist/write/clear-reminder.js.map +1 -0
  119. package/dist/write/commands.js +122 -8
  120. package/dist/write/commands.js.map +1 -1
  121. package/dist/write/edit-checklist.d.ts +3 -0
  122. package/dist/write/edit-checklist.js +184 -0
  123. package/dist/write/edit-checklist.js.map +1 -0
  124. package/dist/write/failure-hints.d.ts +7 -0
  125. package/dist/write/failure-hints.js +25 -2
  126. package/dist/write/failure-hints.js.map +1 -1
  127. package/dist/write/guards.d.ts +1 -1
  128. package/dist/write/guards.js +16 -0
  129. package/dist/write/guards.js.map +1 -1
  130. package/dist/write/operations.d.ts +32 -1
  131. package/dist/write/operations.js +3 -0
  132. package/dist/write/operations.js.map +1 -1
  133. package/dist/write/pipeline.d.ts +3 -0
  134. package/dist/write/pipeline.js +23 -1
  135. package/dist/write/pipeline.js.map +1 -1
  136. package/dist/write/reversibility.d.ts +46 -0
  137. package/dist/write/reversibility.js +164 -0
  138. package/dist/write/reversibility.js.map +1 -0
  139. package/dist/write/undo.d.ts +29 -2
  140. package/dist/write/undo.js +357 -9
  141. package/dist/write/undo.js.map +1 -1
  142. package/dist/write/vectors/registry.js +2 -1
  143. package/dist/write/vectors/registry.js.map +1 -1
  144. package/dist/write/vectors/shortcuts.d.ts +9 -0
  145. package/dist/write/vectors/shortcuts.js +90 -0
  146. package/dist/write/vectors/shortcuts.js.map +1 -0
  147. package/dist/write/vectors/types.d.ts +11 -3
  148. package/dist/write/vectors/url-scheme.js +16 -0
  149. package/dist/write/vectors/url-scheme.js.map +1 -1
  150. package/dist/write/verify/delta.d.ts +1 -1
  151. package/dist/write/verify/delta.js +1 -1
  152. package/dist/write/verify/delta.js.map +1 -1
  153. package/package.json +1 -1
  154. package/shortcuts/things-proxy-find-items.shortcut +0 -0
@@ -1,4 +1,5 @@
1
1
  import type { AuditRecord } from "../audit/schema.ts";
2
+ import type { AnyTask } from "../model/entities.ts";
2
3
  import type { OperationKind } from "./operations.ts";
3
4
  import { type MutationResult, type WriteDeps } from "./pipeline.ts";
4
5
  import { type ReorderResult } from "./reorder.ts";
@@ -9,6 +10,17 @@ export interface UndoStep {
9
10
  options?: {
10
11
  acknowledgeChecklistReset?: boolean;
11
12
  dangerouslyPermanent?: boolean;
13
+ /**
14
+ * A precondition the PLAN already found violated (checklist undos resolve
15
+ * against the CURRENT list at plan time). When present, runUndo refuses
16
+ * this step (blocked/environment) instead of executing — same shape as the
17
+ * runtime `checkStepPrecondition` guard, decided earlier because the check
18
+ * is item-level, not a CLOBBER_FIELD.
19
+ */
20
+ blocked?: {
21
+ detail: string;
22
+ remediation: string;
23
+ };
12
24
  };
13
25
  }
14
26
  export interface UndoPlan {
@@ -48,6 +60,21 @@ export declare function readAuditRecords(dir: string): AuditRecord[];
48
60
  * successful mutations qualify; inverse mutations (actor `undo:…`) never do.
49
61
  */
50
62
  export declare function selectUndoTargets(records: AuditRecord[], last: number): AuditRecord[];
51
- /** Build the inverse plan for one audit record. Pure — unit-testable. */
52
- export declare function planUndo(record: AuditRecord, now: Date, allRecords?: AuditRecord[]): UndoPlan;
63
+ /**
64
+ * Operations with NO validated inverse surface reported irreversible on
65
+ * sight, before any per-record analysis. The reversibility matrix cross-checks
66
+ * that these keys are EXACTLY the ops classed `irreversible` in
67
+ * `reversibility.ts`, so the two catalogs cannot drift.
68
+ */
69
+ export declare const IRREVERSIBLE: Partial<Record<string, string>>;
70
+ /**
71
+ * Build the inverse plan for one audit record. Pure — unit-testable.
72
+ *
73
+ * `current` is the target's CURRENT decoded state (runUndo loads it fresh).
74
+ * Most ops invert from the recorded `pre`/`observed` alone and ignore it; the
75
+ * exception is `todo.clear-dated-reminder`, whose inverse re-attaches the
76
+ * cleared reminder to wherever the item is scheduled RIGHT NOW (not the date
77
+ * it was cleared from), so it must read the live schedule.
78
+ */
79
+ export declare function planUndo(record: AuditRecord, now: Date, allRecords?: AuditRecord[], current?: AnyTask | null): UndoPlan;
53
80
  export declare function runUndo(deps: WriteDeps, auditDirPath: string, options?: UndoOptions, onItem?: (item: UndoItemResult) => void): Promise<UndoItemResult[]>;
@@ -12,13 +12,26 @@
12
12
  * - Ops with no validated inverse surface are reported IRREVERSIBLE with
13
13
  * the reason (permanent deletes, empty-trash, project→no-area — unprobed).
14
14
  * - Partial inversions carry notes (todo.delete undo restores to the Inbox
15
- * de-scheduled; checklist per-item state is unrecoverable).
15
+ * de-scheduled).
16
+ * - Checklist undos are CURRENT-STATE-AWARE: a granular edit
17
+ * (todo.edit-checklist-item) inverts only the targeted item against the
18
+ * live list (a 3-way merge, so an out-of-band edit to a DIFFERENT item
19
+ * survives), refusing when the targeted item itself moved. A wholesale
20
+ * replace restores titles AND per-item state via the json form (P18) and
21
+ * refuses on ANY out-of-band difference from its recorded post snapshot.
16
22
  * - Inverse mutations are audited under an `undo:`-prefixed actor and are
17
23
  * themselves EXCLUDED from later undo target selection (no undo-the-undo).
24
+ * - PRECONDITION guard: before executing each inverse step, runUndo confirms
25
+ * the fields the step would OVERWRITE still hold their recorded after-state
26
+ * (`observed`). A field an out-of-band edit already moved is NOT clobbered —
27
+ * the step is refused (blocked) and unwinding stops. This is in addition to
28
+ * the pipeline's own verified read-after-write.
18
29
  */
19
30
  import { readFileSync, readdirSync } from "node:fs";
20
31
  import { join } from "node:path";
21
32
  import { localToday } from "../model/dates.js";
33
+ import { getField } from "./verify/delta.js";
34
+ import { isRepeatingTemplate, loadTarget } from "./pre-state.js";
22
35
  import { runMutation } from "./pipeline.js";
23
36
  import { runReorder } from "./reorder.js";
24
37
  // -------------------------------------------------------------- audit reads
@@ -71,10 +84,24 @@ export function selectUndoTargets(records, last) {
71
84
  .toReversed();
72
85
  }
73
86
  // -------------------------------------------------------------- plan builder
74
- const IRREVERSIBLE = {
87
+ /**
88
+ * Operations with NO validated inverse surface — reported irreversible on
89
+ * sight, before any per-record analysis. The reversibility matrix cross-checks
90
+ * that these keys are EXACTLY the ops classed `irreversible` in
91
+ * `reversibility.ts`, so the two catalogs cannot drift.
92
+ */
93
+ export const IRREVERSIBLE = {
75
94
  "area.delete": "areas are deleted permanently — there is nothing to restore (A25)",
76
95
  "tag.delete": "tags are deleted permanently — assignments already cascaded (A26)",
77
96
  "trash.empty": "emptying the Trash hard-deletes every row — nothing to restore (A27)",
97
+ "heading.create": "a created heading can only be removed by deleting it, which has no headless surface " +
98
+ "(heading delete is interactive-only) — archive it in the app instead",
99
+ // NB: todo.clear-dated-reminder is NOT here — it IS reversible. The URL
100
+ // scheme re-SETS a dated reminder (update?id=X&when=<date>@<time>, R17/R18),
101
+ // so its inverse re-attaches the captured reminder to the item's current
102
+ // schedule (see the todo.clear-dated-reminder case below). The old "dead on
103
+ // every surface (scf2 P3a)" reason was false — P3a is only the Shortcuts
104
+ // set-detail SET path; the URL SET path is alive.
78
105
  };
79
106
  function preField(record, field) {
80
107
  return record.pre === null ? undefined : record.pre[field];
@@ -141,8 +168,172 @@ function scheduleSteps(uuid, record, todayIso, op = "todo.update") {
141
168
  }
142
169
  return { steps: [{ op, params }], notes };
143
170
  }
144
- /** Build the inverse plan for one audit record. Pure — unit-testable. */
145
- export function planUndo(record, now, allRecords = []) {
171
+ /** The current checklist as ordered {title, completed}. */
172
+ function currentChecklistSpecs(current) {
173
+ if (current.type !== "to-do")
174
+ return [];
175
+ return (current.checklist ?? []).map((c) => ({
176
+ title: c.title,
177
+ completed: c.status === "completed",
178
+ }));
179
+ }
180
+ /** Raw ordered statuses (open|completed|canceled) — matches getField/observed. */
181
+ function currentChecklistStatuses(current) {
182
+ if (current.type !== "to-do")
183
+ return [];
184
+ return (current.checklist ?? []).map((c) => c.status);
185
+ }
186
+ function arraysEqual(a, b) {
187
+ return Array.isArray(a) && Array.isArray(b) && JSON.stringify(a) === JSON.stringify(b);
188
+ }
189
+ /**
190
+ * Locate a checklist item by title, using the recorded 1-based `position` to
191
+ * break duplicate-title ties. Returns the index, `-1` when absent, or `-2`
192
+ * when the title is ambiguous and `position` does not disambiguate.
193
+ */
194
+ function locateChecklistItem(items, title, position) {
195
+ const matches = items.map((c, i) => ({ c, i })).filter(({ c }) => c.title === title);
196
+ if (matches.length === 0)
197
+ return -1;
198
+ if (matches.length === 1)
199
+ return matches[0].i;
200
+ if (position !== undefined) {
201
+ const exact = matches.find(({ i }) => i === position - 1);
202
+ if (exact !== undefined)
203
+ return exact.i;
204
+ }
205
+ return -2;
206
+ }
207
+ const CHECKLIST_REMEDIATION = "review the item's current checklist; redo the change by hand if it's still wanted, or " +
208
+ "re-run undo once the targeted item is back to its post-change state";
209
+ function conflict(detail) {
210
+ return { conflict: { detail, remediation: CHECKLIST_REMEDIATION } };
211
+ }
212
+ /**
213
+ * The TARGETED inverse of a granular checklist edit, applied to the CURRENT
214
+ * list (a 3-way merge): only the item the edit touched is reverted; every
215
+ * other item keeps its current state. Refuses (conflict) when the targeted
216
+ * item itself moved out of band (toggled / renamed / removed) or a duplicate
217
+ * title makes it ambiguous.
218
+ */
219
+ function planChecklistItemInverse(record, current) {
220
+ const items = currentChecklistSpecs(current);
221
+ const req = record.requested;
222
+ const action = req["action"];
223
+ const pre = record.pre ?? {};
224
+ const observed = record.observed ?? {};
225
+ const postTitle = typeof observed["title"] === "string" ? observed["title"] : undefined;
226
+ const postPos = typeof observed["position"] === "number" ? observed["position"] : undefined;
227
+ switch (action) {
228
+ case "check":
229
+ case "uncheck": {
230
+ if (postTitle === undefined)
231
+ return conflict("the audit record did not capture the target");
232
+ const i = locateChecklistItem(items, postTitle, postPos);
233
+ if (i === -1)
234
+ return conflict(`the ${action}ed item "${postTitle}" is no longer in the checklist`);
235
+ if (i === -2)
236
+ return conflict(`"${postTitle}" is now a duplicate title — the target is ambiguous`);
237
+ const wantCompleted = action === "check"; // post-state we expect to still hold
238
+ if (items[i].completed !== wantCompleted) {
239
+ return conflict(`"${postTitle}" was changed out of band (no longer ${action}ed)`);
240
+ }
241
+ const next = items.map((c) => ({ ...c }));
242
+ next[i].completed = !wantCompleted; // toggle back to the pre-state
243
+ return { items: next };
244
+ }
245
+ case "add": {
246
+ if (postTitle === undefined)
247
+ return conflict("the audit record did not capture the added item");
248
+ const i = locateChecklistItem(items, postTitle, postPos);
249
+ if (i === -1)
250
+ return conflict(`the added item "${postTitle}" is no longer in the checklist`);
251
+ if (i === -2)
252
+ return conflict(`"${postTitle}" is now a duplicate title — the added item is ambiguous`);
253
+ const next = items.map((c) => ({ ...c }));
254
+ next.splice(i, 1);
255
+ return { items: next };
256
+ }
257
+ case "remove": {
258
+ const title = typeof pre["title"] === "string" ? pre["title"] : undefined;
259
+ if (title === undefined)
260
+ return conflict("the removed item's title was not captured");
261
+ const at = typeof pre["position"] === "number" ? pre["position"] : items.length + 1;
262
+ const next = items.map((c) => ({ ...c }));
263
+ next.splice(Math.max(0, Math.min(next.length, at - 1)), 0, {
264
+ title,
265
+ completed: pre["completed"] === true,
266
+ });
267
+ return { items: next };
268
+ }
269
+ case "rename": {
270
+ const oldTitle = typeof pre["title"] === "string" ? pre["title"] : undefined;
271
+ if (postTitle === undefined || oldTitle === undefined) {
272
+ return conflict("the rename's old/new titles were not captured");
273
+ }
274
+ const i = locateChecklistItem(items, postTitle, postPos);
275
+ if (i === -1)
276
+ return conflict(`no checklist item bears the new title "${postTitle}" anymore`);
277
+ if (i === -2)
278
+ return conflict(`"${postTitle}" is now a duplicate title — the target is ambiguous`);
279
+ const next = items.map((c) => ({ ...c }));
280
+ next[i].title = oldTitle;
281
+ return { items: next };
282
+ }
283
+ case "move": {
284
+ const title = typeof req["title"] === "string" ? req["title"] : postTitle;
285
+ const oldPos = typeof pre["position"] === "number" ? pre["position"] : undefined;
286
+ if (title === undefined || oldPos === undefined) {
287
+ return conflict("the move's title/old position were not captured");
288
+ }
289
+ const i = locateChecklistItem(items, title, postPos);
290
+ if (i === -1)
291
+ return conflict(`the moved item "${title}" is no longer in the checklist`);
292
+ if (i === -2)
293
+ return conflict(`"${title}" is now a duplicate title — the moved item is ambiguous`);
294
+ // oxlint-disable-next-line no-map-spread -- cloning specs before splice, not mutating in place
295
+ const next = items.map((c) => ({ ...c }));
296
+ const [moved] = next.splice(i, 1);
297
+ next.splice(Math.max(0, Math.min(next.length, oldPos - 1)), 0, moved);
298
+ return { items: next };
299
+ }
300
+ default:
301
+ return conflict(`unknown checklist action "${String(action)}"`);
302
+ }
303
+ }
304
+ /**
305
+ * Tier-1 precondition for a WHOLESALE checklist undo: the current list
306
+ * (titles + states, ordered) must still equal the recorded OBSERVED (post)
307
+ * snapshot. ANY out-of-band difference blocks (monolith semantics — unlike the
308
+ * granular path, which tolerates edits to other items). Returns the block
309
+ * payload, or null when it passes / cannot be checked (legacy record).
310
+ */
311
+ function wholesaleChecklistConflict(record, current) {
312
+ const obsTitles = record.observed?.["checklistTitles"];
313
+ const obsStates = record.observed?.["checklistStates"];
314
+ if (!Array.isArray(obsTitles) || !Array.isArray(obsStates))
315
+ return null; // legacy: can't verify
316
+ const curTitles = currentChecklistSpecs(current).map((c) => c.title);
317
+ const curStates = currentChecklistStatuses(current);
318
+ if (arraysEqual(curTitles, obsTitles) && arraysEqual(curStates, obsStates))
319
+ return null;
320
+ return {
321
+ detail: "the checklist changed since the recorded replacement — refusing to avoid clobbering an " +
322
+ "out-of-band edit (wholesale undo restores the whole list, so ANY difference blocks)",
323
+ remediation: "review the current checklist; redo the change by hand if still wanted, or re-run undo " +
324
+ "once the checklist matches its post-replacement state",
325
+ };
326
+ }
327
+ /**
328
+ * Build the inverse plan for one audit record. Pure — unit-testable.
329
+ *
330
+ * `current` is the target's CURRENT decoded state (runUndo loads it fresh).
331
+ * Most ops invert from the recorded `pre`/`observed` alone and ignore it; the
332
+ * exception is `todo.clear-dated-reminder`, whose inverse re-attaches the
333
+ * cleared reminder to wherever the item is scheduled RIGHT NOW (not the date
334
+ * it was cleared from), so it must read the live schedule.
335
+ */
336
+ export function planUndo(record, now, allRecords = [], current) {
146
337
  const target = { ts: record.ts, op: record.op, uuid: record.uuid, actor: record.actor };
147
338
  const todayIso = localToday(now);
148
339
  const notes = [];
@@ -555,10 +746,55 @@ export function planUndo(record, now, allRecords = []) {
555
746
  case "todo.replace-checklist": {
556
747
  if (uuid === null)
557
748
  return irreversible("no target uuid recorded");
558
- const items = preField(record, "checklistTitles");
559
- if (!Array.isArray(items))
749
+ const titles = preField(record, "checklistTitles");
750
+ if (!Array.isArray(titles))
560
751
  return irreversible("the pre-op checklist was not captured");
561
- notes.push("checklist TITLES are restored; per-item completion state is unrecoverable (T07)");
752
+ const states = preField(record, "checklistStates");
753
+ // Restore titles AND per-item completion via the things:///json form
754
+ // (P18) — the "state is unrecoverable (T07)" caveat is retired: T07 only
755
+ // describes the classic `checklist-items=` form, which recreates items
756
+ // open; json honors per-item `completed`. Legacy records without a
757
+ // captured state array fall back to titles-only (all open).
758
+ let items;
759
+ if (Array.isArray(states) && states.length === titles.length) {
760
+ items = titles.map((t, i) => ({ title: t, completed: states[i] === "completed" }));
761
+ if (states.some((s) => s === "canceled")) {
762
+ notes.push("canceled checklist items are restored as OPEN (the item model has no canceled-create surface)");
763
+ }
764
+ }
765
+ else {
766
+ items = titles;
767
+ notes.push("only checklist TITLES were captured for this record — states restore as open");
768
+ }
769
+ // Tier-1 precondition: wholesale undo replaces the WHOLE list, so any
770
+ // out-of-band change since the replacement blocks (decided at plan time
771
+ // against the freshly-loaded current state).
772
+ const block = current === undefined || current === null
773
+ ? null
774
+ : wholesaleChecklistConflict(record, current);
775
+ return {
776
+ target,
777
+ kind: "invertible",
778
+ steps: [
779
+ {
780
+ op: "todo.replace-checklist",
781
+ params: { uuid, items },
782
+ options: { acknowledgeChecklistReset: true, ...(block !== null && { blocked: block }) },
783
+ },
784
+ ],
785
+ notes,
786
+ };
787
+ }
788
+ case "todo.edit-checklist-item": {
789
+ if (uuid === null)
790
+ return irreversible("no target uuid recorded");
791
+ if (current === undefined || current === null || current.type !== "to-do") {
792
+ return irreversible("the item no longer exists as a to-do — its checklist can't be restored");
793
+ }
794
+ const resolved = planChecklistItemInverse(record, current);
795
+ notes.push("only the targeted item is inverted; every OTHER checklist item keeps its CURRENT state " +
796
+ "(an out-of-band edit to a different item survives the undo)");
797
+ const items = "items" in resolved ? resolved.items : currentChecklistSpecs(current); // unused: the step is blocked below
562
798
  return {
563
799
  target,
564
800
  kind: "invertible",
@@ -566,7 +802,10 @@ export function planUndo(record, now, allRecords = []) {
566
802
  {
567
803
  op: "todo.replace-checklist",
568
804
  params: { uuid, items },
569
- options: { acknowledgeChecklistReset: true },
805
+ options: {
806
+ acknowledgeChecklistReset: true,
807
+ ...("conflict" in resolved && { blocked: resolved.conflict }),
808
+ },
570
809
  },
571
810
  ],
572
811
  notes,
@@ -707,10 +946,95 @@ export function planUndo(record, now, allRecords = []) {
707
946
  notes,
708
947
  };
709
948
  }
949
+ case "todo.clear-dated-reminder": {
950
+ if (uuid === null)
951
+ return irreversible("no target uuid recorded");
952
+ // The reminder we must put back is the pre-op reminder time captured by
953
+ // the clear (atomic Shortcuts record OR the URL-bounce summary).
954
+ const preReminder = preField(record, "reminder");
955
+ if (typeof preReminder !== "string") {
956
+ return irreversible("the pre-op reminder time was not captured — cannot restore it");
957
+ }
958
+ if (current === undefined || current === null || current.type !== "to-do") {
959
+ return irreversible("the item no longer exists as a to-do — the reminder can't be restored");
960
+ }
961
+ if (isRepeatingTemplate(current)) {
962
+ return irreversible("the item is now a repeating template — a dated reminder can't be re-set on it");
963
+ }
964
+ // Re-attach to the item's CURRENT schedule, NOT the recorded date: a
965
+ // concrete date restores literally; today/evening restore via keyword
966
+ // (which keeps the reminder-set path open — R17/R18).
967
+ const startDate = current.startDate;
968
+ if (startDate === null) {
969
+ return irreversible("the item is no longer scheduled (someday/anytime/inbox) — a dated reminder has no " +
970
+ "date to attach to; re-schedule it, then re-add the reminder");
971
+ }
972
+ const when = startDate === todayIso
973
+ ? current.todaySection === "evening"
974
+ ? "evening"
975
+ : "today"
976
+ : startDate;
977
+ notes.push("the reminder is restored on the item's CURRENT schedule (not moved back to the date it " +
978
+ "was cleared from) — an out-of-band re-schedule is preserved");
979
+ return {
980
+ target,
981
+ kind: "invertible",
982
+ steps: [{ op: "todo.update", params: { uuid, when, reminder: preReminder } }],
983
+ notes,
984
+ };
985
+ }
710
986
  default:
711
987
  return irreversible(`no inverse is defined for operation "${record.op}"`);
712
988
  }
713
989
  }
990
+ // ------------------------------------------------------ precondition guard
991
+ /** Content fields an inverse can silently CLOBBER; keyed to observed 1:1. */
992
+ const CLOBBER_FIELDS = ["title", "notes", "deadline", "reminder", "tags"];
993
+ function fieldsEqual(a, b) {
994
+ if (Array.isArray(a) && Array.isArray(b))
995
+ return JSON.stringify(a) === JSON.stringify(b);
996
+ return a === b || (a === undefined && b === null) || (a === null && b === undefined);
997
+ }
998
+ function formatValue(value) {
999
+ return value === null || value === undefined ? "none" : JSON.stringify(value);
1000
+ }
1001
+ /**
1002
+ * Refuse an inverse step that would overwrite a field an out-of-band edit has
1003
+ * already moved. For every CLOBBER_FIELD the step writes AND that the audit
1004
+ * `observed` (after-state) recorded, the target's CURRENT value must still
1005
+ * equal that after-value; a divergence means the world moved underneath us, so
1006
+ * we block rather than clobber. Fields absent from `observed` are skipped (we
1007
+ * cannot confirm them but must not break ops whose observed legitimately omits
1008
+ * them). Returns a blocked result on divergence, else null.
1009
+ */
1010
+ function checkStepPrecondition(deps, step, observed) {
1011
+ if (observed === null)
1012
+ return null;
1013
+ const uuid = step.params["uuid"];
1014
+ if (typeof uuid !== "string")
1015
+ return null;
1016
+ const current = loadTarget(deps.db, uuid);
1017
+ if (current === null)
1018
+ return null; // vanished — the inverse's own verify handles it
1019
+ for (const field of CLOBBER_FIELDS) {
1020
+ if (!(field in step.params) || !(field in observed))
1021
+ continue;
1022
+ const cur = getField(current, field) ?? null;
1023
+ const after = observed[field];
1024
+ if (!fieldsEqual(cur, after)) {
1025
+ return {
1026
+ kind: "blocked",
1027
+ op: step.op,
1028
+ reason: "environment",
1029
+ detail: `${field} changed since the recorded mutation (expected ${formatValue(after)}, found ` +
1030
+ `${formatValue(cur)}) — refusing to avoid clobbering an out-of-band edit`,
1031
+ remediation: "review the item's current state; redo the change by hand if it's still wanted, or " +
1032
+ "re-run undo once the field is back to its post-change value",
1033
+ };
1034
+ }
1035
+ }
1036
+ return null;
1037
+ }
714
1038
  // ----------------------------------------------------------------- executor
715
1039
  export async function runUndo(deps, auditDirPath, options = {}, onItem) {
716
1040
  const records = readAuditRecords(auditDirPath);
@@ -718,7 +1042,10 @@ export async function runUndo(deps, auditDirPath, options = {}, onItem) {
718
1042
  const now = deps.now?.() ?? new Date();
719
1043
  const items = [];
720
1044
  for (const record of targets) {
721
- const plan = planUndo(record, now, records);
1045
+ // Fresh current state for the record's target (drives the clear-reminder
1046
+ // targeted restore, and is otherwise ignored by planUndo).
1047
+ const current = record.uuid === null ? null : loadTarget(deps.db, record.uuid);
1048
+ const plan = planUndo(record, now, records, current);
722
1049
  let item;
723
1050
  if (plan.kind === "irreversible") {
724
1051
  item = { plan, results: [], outcome: "irreversible" };
@@ -730,6 +1057,27 @@ export async function runUndo(deps, auditDirPath, options = {}, onItem) {
730
1057
  const results = [];
731
1058
  let failed = false;
732
1059
  for (const step of plan.steps) {
1060
+ // Plan-time precondition (checklist undos): the inverse was resolved
1061
+ // against the current list and found a conflict — refuse, don't clobber.
1062
+ const planBlock = step.options?.blocked;
1063
+ if (planBlock !== undefined) {
1064
+ results.push({
1065
+ kind: "blocked",
1066
+ op: step.op,
1067
+ reason: "environment",
1068
+ detail: planBlock.detail,
1069
+ remediation: planBlock.remediation,
1070
+ });
1071
+ failed = true;
1072
+ break;
1073
+ }
1074
+ // Precondition guard: never clobber a field an out-of-band edit moved.
1075
+ const precondition = checkStepPrecondition(deps, step, record.observed);
1076
+ if (precondition !== null) {
1077
+ results.push(precondition);
1078
+ failed = true;
1079
+ break;
1080
+ }
733
1081
  const needsPermanent = step.options?.dangerouslyPermanent === true;
734
1082
  if (needsPermanent && options.dangerouslyPermanent !== true) {
735
1083
  results.push({
@@ -1 +1 @@
1
- {"version":3,"file":"undo.js","sourceRoot":"","sources":["../../src/write/undo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"undo.js","sourceRoot":"","sources":["../../src/write/undo.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,9 @@
4
4
  * the lab, which runs the identical pipeline against probe vectors.
5
5
  */
6
6
  import { createAppleScriptVector } from "./applescript.js";
7
+ import { createShortcutsVector } from "./shortcuts.js";
7
8
  import { createUrlSchemeVector } from "./url-scheme.js";
8
9
  export function defaultVectors() {
9
- return [createUrlSchemeVector(), createAppleScriptVector()];
10
+ return [createUrlSchemeVector(), createAppleScriptVector(), createShortcutsVector()];
10
11
  }
11
12
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/write/vectors/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,qBAAqB,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/write/vectors/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,qBAAqB,EAAE,EAAE,uBAAuB,EAAE,EAAE,qBAAqB,EAAE,CAAC,CAAC;AACvF,CAAC"}