things-api 0.7.0 → 0.8.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.
- package/README.md +3 -1
- package/dist/cli/commands/area.d.ts +14 -0
- package/dist/cli/commands/area.js +107 -33
- package/dist/cli/commands/area.js.map +1 -1
- package/dist/cli/commands/project.d.ts +14 -0
- package/dist/cli/commands/project.js +114 -30
- package/dist/cli/commands/project.js.map +1 -1
- package/dist/cli/commands/reads.d.ts +90 -12
- package/dist/cli/commands/reads.js +534 -74
- package/dist/cli/commands/reads.js.map +1 -1
- package/dist/cli/commands/show.d.ts +9 -0
- package/dist/cli/commands/show.js +41 -0
- package/dist/cli/commands/show.js.map +1 -0
- package/dist/cli/commands/todo.d.ts +9 -0
- package/dist/cli/commands/todo.js +89 -15
- package/dist/cli/commands/todo.js.map +1 -1
- package/dist/cli/commands/writes.js +55 -1
- package/dist/cli/commands/writes.js.map +1 -1
- package/dist/cli/glyphs.d.ts +72 -0
- package/dist/cli/glyphs.js +169 -0
- package/dist/cli/glyphs.js.map +1 -0
- package/dist/cli/main.js +2 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/style.d.ts +5 -0
- package/dist/cli/style.js +5 -0
- package/dist/cli/style.js.map +1 -1
- package/dist/client.d.ts +33 -36
- package/dist/client.js +9 -73
- package/dist/client.js.map +1 -1
- package/dist/contracts.d.ts +1 -1
- package/dist/contracts.js +1 -1
- package/dist/db/baselines/db-v26.js +7 -5
- package/dist/db/baselines/db-v26.js.map +1 -1
- package/dist/db/schema.d.ts +1 -1
- package/dist/db/schema.js +7 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/mcp/server.js +19 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/model/entities.d.ts +12 -0
- package/dist/model/entities.js.map +1 -1
- package/dist/model/mappers.js +4 -0
- package/dist/model/mappers.js.map +1 -1
- package/dist/model/occurrences.js +4 -1
- package/dist/model/occurrences.js.map +1 -1
- package/dist/model/recurrence.d.ts +21 -2
- package/dist/model/recurrence.js +20 -0
- package/dist/model/recurrence.js.map +1 -1
- package/dist/read/area-view.js +21 -5
- package/dist/read/area-view.js.map +1 -1
- package/dist/read/detail.js +12 -2
- package/dist/read/detail.js.map +1 -1
- package/dist/read/log-boundary.d.ts +24 -0
- package/dist/read/log-boundary.js +38 -0
- package/dist/read/log-boundary.js.map +1 -0
- package/dist/read/project-view.js +28 -3
- package/dist/read/project-view.js.map +1 -1
- package/dist/read/queries.d.ts +14 -1
- package/dist/read/queries.js +25 -2
- package/dist/read/queries.js.map +1 -1
- package/dist/read/show-target.d.ts +16 -0
- package/dist/read/show-target.js +32 -0
- package/dist/read/show-target.js.map +1 -0
- package/dist/read/snapshot.js +2 -0
- package/dist/read/snapshot.js.map +1 -1
- package/dist/read/views.d.ts +25 -3
- package/dist/read/views.js +176 -21
- package/dist/read/views.js.map +1 -1
- package/dist/write/automation-probe.js +14 -6
- package/dist/write/automation-probe.js.map +1 -1
- package/dist/write/capabilities.d.ts +3 -0
- package/dist/write/capabilities.js +2 -0
- package/dist/write/capabilities.js.map +1 -1
- package/dist/write/checklist.d.ts +50 -0
- package/dist/write/checklist.js +61 -0
- package/dist/write/checklist.js.map +1 -0
- package/dist/write/clear-reminder.d.ts +3 -0
- package/dist/write/clear-reminder.js +205 -0
- package/dist/write/clear-reminder.js.map +1 -0
- package/dist/write/commands.js +122 -8
- package/dist/write/commands.js.map +1 -1
- package/dist/write/edit-checklist.d.ts +3 -0
- package/dist/write/edit-checklist.js +184 -0
- package/dist/write/edit-checklist.js.map +1 -0
- package/dist/write/failure-hints.d.ts +7 -0
- package/dist/write/failure-hints.js +25 -2
- package/dist/write/failure-hints.js.map +1 -1
- package/dist/write/guards.d.ts +1 -1
- package/dist/write/guards.js +16 -0
- package/dist/write/guards.js.map +1 -1
- package/dist/write/operations.d.ts +32 -1
- package/dist/write/operations.js +3 -0
- package/dist/write/operations.js.map +1 -1
- package/dist/write/pipeline.d.ts +3 -0
- package/dist/write/pipeline.js +23 -1
- package/dist/write/pipeline.js.map +1 -1
- package/dist/write/reversibility.d.ts +46 -0
- package/dist/write/reversibility.js +164 -0
- package/dist/write/reversibility.js.map +1 -0
- package/dist/write/undo.d.ts +29 -2
- package/dist/write/undo.js +356 -9
- package/dist/write/undo.js.map +1 -1
- package/dist/write/vectors/registry.js +2 -1
- package/dist/write/vectors/registry.js.map +1 -1
- package/dist/write/vectors/shortcuts.d.ts +9 -0
- package/dist/write/vectors/shortcuts.js +90 -0
- package/dist/write/vectors/shortcuts.js.map +1 -0
- package/dist/write/vectors/types.d.ts +11 -3
- package/dist/write/vectors/url-scheme.js +16 -0
- package/dist/write/vectors/url-scheme.js.map +1 -1
- package/dist/write/verify/delta.d.ts +1 -1
- package/dist/write/verify/delta.js +1 -1
- package/dist/write/verify/delta.js.map +1 -1
- package/package.json +1 -1
- package/shortcuts/things-proxy-find-items.shortcut +0 -0
package/dist/write/undo.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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,171 @@ function scheduleSteps(uuid, record, todayIso, op = "todo.update") {
|
|
|
141
168
|
}
|
|
142
169
|
return { steps: [{ op, params }], notes };
|
|
143
170
|
}
|
|
144
|
-
/**
|
|
145
|
-
|
|
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
|
+
const next = items.map((c) => ({ ...c }));
|
|
295
|
+
const [moved] = next.splice(i, 1);
|
|
296
|
+
next.splice(Math.max(0, Math.min(next.length, oldPos - 1)), 0, moved);
|
|
297
|
+
return { items: next };
|
|
298
|
+
}
|
|
299
|
+
default:
|
|
300
|
+
return conflict(`unknown checklist action "${String(action)}"`);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Tier-1 precondition for a WHOLESALE checklist undo: the current list
|
|
305
|
+
* (titles + states, ordered) must still equal the recorded OBSERVED (post)
|
|
306
|
+
* snapshot. ANY out-of-band difference blocks (monolith semantics — unlike the
|
|
307
|
+
* granular path, which tolerates edits to other items). Returns the block
|
|
308
|
+
* payload, or null when it passes / cannot be checked (legacy record).
|
|
309
|
+
*/
|
|
310
|
+
function wholesaleChecklistConflict(record, current) {
|
|
311
|
+
const obsTitles = record.observed?.["checklistTitles"];
|
|
312
|
+
const obsStates = record.observed?.["checklistStates"];
|
|
313
|
+
if (!Array.isArray(obsTitles) || !Array.isArray(obsStates))
|
|
314
|
+
return null; // legacy: can't verify
|
|
315
|
+
const curTitles = currentChecklistSpecs(current).map((c) => c.title);
|
|
316
|
+
const curStates = currentChecklistStatuses(current);
|
|
317
|
+
if (arraysEqual(curTitles, obsTitles) && arraysEqual(curStates, obsStates))
|
|
318
|
+
return null;
|
|
319
|
+
return {
|
|
320
|
+
detail: "the checklist changed since the recorded replacement — refusing to avoid clobbering an " +
|
|
321
|
+
"out-of-band edit (wholesale undo restores the whole list, so ANY difference blocks)",
|
|
322
|
+
remediation: "review the current checklist; redo the change by hand if still wanted, or re-run undo " +
|
|
323
|
+
"once the checklist matches its post-replacement state",
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Build the inverse plan for one audit record. Pure — unit-testable.
|
|
328
|
+
*
|
|
329
|
+
* `current` is the target's CURRENT decoded state (runUndo loads it fresh).
|
|
330
|
+
* Most ops invert from the recorded `pre`/`observed` alone and ignore it; the
|
|
331
|
+
* exception is `todo.clear-dated-reminder`, whose inverse re-attaches the
|
|
332
|
+
* cleared reminder to wherever the item is scheduled RIGHT NOW (not the date
|
|
333
|
+
* it was cleared from), so it must read the live schedule.
|
|
334
|
+
*/
|
|
335
|
+
export function planUndo(record, now, allRecords = [], current) {
|
|
146
336
|
const target = { ts: record.ts, op: record.op, uuid: record.uuid, actor: record.actor };
|
|
147
337
|
const todayIso = localToday(now);
|
|
148
338
|
const notes = [];
|
|
@@ -555,10 +745,55 @@ export function planUndo(record, now, allRecords = []) {
|
|
|
555
745
|
case "todo.replace-checklist": {
|
|
556
746
|
if (uuid === null)
|
|
557
747
|
return irreversible("no target uuid recorded");
|
|
558
|
-
const
|
|
559
|
-
if (!Array.isArray(
|
|
748
|
+
const titles = preField(record, "checklistTitles");
|
|
749
|
+
if (!Array.isArray(titles))
|
|
560
750
|
return irreversible("the pre-op checklist was not captured");
|
|
561
|
-
|
|
751
|
+
const states = preField(record, "checklistStates");
|
|
752
|
+
// Restore titles AND per-item completion via the things:///json form
|
|
753
|
+
// (P18) — the "state is unrecoverable (T07)" caveat is retired: T07 only
|
|
754
|
+
// describes the classic `checklist-items=` form, which recreates items
|
|
755
|
+
// open; json honors per-item `completed`. Legacy records without a
|
|
756
|
+
// captured state array fall back to titles-only (all open).
|
|
757
|
+
let items;
|
|
758
|
+
if (Array.isArray(states) && states.length === titles.length) {
|
|
759
|
+
items = titles.map((t, i) => ({ title: t, completed: states[i] === "completed" }));
|
|
760
|
+
if (states.some((s) => s === "canceled")) {
|
|
761
|
+
notes.push("canceled checklist items are restored as OPEN (the item model has no canceled-create surface)");
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
else {
|
|
765
|
+
items = titles;
|
|
766
|
+
notes.push("only checklist TITLES were captured for this record — states restore as open");
|
|
767
|
+
}
|
|
768
|
+
// Tier-1 precondition: wholesale undo replaces the WHOLE list, so any
|
|
769
|
+
// out-of-band change since the replacement blocks (decided at plan time
|
|
770
|
+
// against the freshly-loaded current state).
|
|
771
|
+
const block = current === undefined || current === null
|
|
772
|
+
? null
|
|
773
|
+
: wholesaleChecklistConflict(record, current);
|
|
774
|
+
return {
|
|
775
|
+
target,
|
|
776
|
+
kind: "invertible",
|
|
777
|
+
steps: [
|
|
778
|
+
{
|
|
779
|
+
op: "todo.replace-checklist",
|
|
780
|
+
params: { uuid, items },
|
|
781
|
+
options: { acknowledgeChecklistReset: true, ...(block !== null && { blocked: block }) },
|
|
782
|
+
},
|
|
783
|
+
],
|
|
784
|
+
notes,
|
|
785
|
+
};
|
|
786
|
+
}
|
|
787
|
+
case "todo.edit-checklist-item": {
|
|
788
|
+
if (uuid === null)
|
|
789
|
+
return irreversible("no target uuid recorded");
|
|
790
|
+
if (current === undefined || current === null || current.type !== "to-do") {
|
|
791
|
+
return irreversible("the item no longer exists as a to-do — its checklist can't be restored");
|
|
792
|
+
}
|
|
793
|
+
const resolved = planChecklistItemInverse(record, current);
|
|
794
|
+
notes.push("only the targeted item is inverted; every OTHER checklist item keeps its CURRENT state " +
|
|
795
|
+
"(an out-of-band edit to a different item survives the undo)");
|
|
796
|
+
const items = "items" in resolved ? resolved.items : currentChecklistSpecs(current); // unused: the step is blocked below
|
|
562
797
|
return {
|
|
563
798
|
target,
|
|
564
799
|
kind: "invertible",
|
|
@@ -566,7 +801,10 @@ export function planUndo(record, now, allRecords = []) {
|
|
|
566
801
|
{
|
|
567
802
|
op: "todo.replace-checklist",
|
|
568
803
|
params: { uuid, items },
|
|
569
|
-
options: {
|
|
804
|
+
options: {
|
|
805
|
+
acknowledgeChecklistReset: true,
|
|
806
|
+
...("conflict" in resolved && { blocked: resolved.conflict }),
|
|
807
|
+
},
|
|
570
808
|
},
|
|
571
809
|
],
|
|
572
810
|
notes,
|
|
@@ -707,10 +945,95 @@ export function planUndo(record, now, allRecords = []) {
|
|
|
707
945
|
notes,
|
|
708
946
|
};
|
|
709
947
|
}
|
|
948
|
+
case "todo.clear-dated-reminder": {
|
|
949
|
+
if (uuid === null)
|
|
950
|
+
return irreversible("no target uuid recorded");
|
|
951
|
+
// The reminder we must put back is the pre-op reminder time captured by
|
|
952
|
+
// the clear (atomic Shortcuts record OR the URL-bounce summary).
|
|
953
|
+
const preReminder = preField(record, "reminder");
|
|
954
|
+
if (typeof preReminder !== "string") {
|
|
955
|
+
return irreversible("the pre-op reminder time was not captured — cannot restore it");
|
|
956
|
+
}
|
|
957
|
+
if (current === undefined || current === null || current.type !== "to-do") {
|
|
958
|
+
return irreversible("the item no longer exists as a to-do — the reminder can't be restored");
|
|
959
|
+
}
|
|
960
|
+
if (isRepeatingTemplate(current)) {
|
|
961
|
+
return irreversible("the item is now a repeating template — a dated reminder can't be re-set on it");
|
|
962
|
+
}
|
|
963
|
+
// Re-attach to the item's CURRENT schedule, NOT the recorded date: a
|
|
964
|
+
// concrete date restores literally; today/evening restore via keyword
|
|
965
|
+
// (which keeps the reminder-set path open — R17/R18).
|
|
966
|
+
const startDate = current.startDate;
|
|
967
|
+
if (startDate === null) {
|
|
968
|
+
return irreversible("the item is no longer scheduled (someday/anytime/inbox) — a dated reminder has no " +
|
|
969
|
+
"date to attach to; re-schedule it, then re-add the reminder");
|
|
970
|
+
}
|
|
971
|
+
const when = startDate === todayIso
|
|
972
|
+
? current.todaySection === "evening"
|
|
973
|
+
? "evening"
|
|
974
|
+
: "today"
|
|
975
|
+
: startDate;
|
|
976
|
+
notes.push("the reminder is restored on the item's CURRENT schedule (not moved back to the date it " +
|
|
977
|
+
"was cleared from) — an out-of-band re-schedule is preserved");
|
|
978
|
+
return {
|
|
979
|
+
target,
|
|
980
|
+
kind: "invertible",
|
|
981
|
+
steps: [{ op: "todo.update", params: { uuid, when, reminder: preReminder } }],
|
|
982
|
+
notes,
|
|
983
|
+
};
|
|
984
|
+
}
|
|
710
985
|
default:
|
|
711
986
|
return irreversible(`no inverse is defined for operation "${record.op}"`);
|
|
712
987
|
}
|
|
713
988
|
}
|
|
989
|
+
// ------------------------------------------------------ precondition guard
|
|
990
|
+
/** Content fields an inverse can silently CLOBBER; keyed to observed 1:1. */
|
|
991
|
+
const CLOBBER_FIELDS = ["title", "notes", "deadline", "reminder", "tags"];
|
|
992
|
+
function fieldsEqual(a, b) {
|
|
993
|
+
if (Array.isArray(a) && Array.isArray(b))
|
|
994
|
+
return JSON.stringify(a) === JSON.stringify(b);
|
|
995
|
+
return a === b || (a === undefined && b === null) || (a === null && b === undefined);
|
|
996
|
+
}
|
|
997
|
+
function formatValue(value) {
|
|
998
|
+
return value === null || value === undefined ? "none" : JSON.stringify(value);
|
|
999
|
+
}
|
|
1000
|
+
/**
|
|
1001
|
+
* Refuse an inverse step that would overwrite a field an out-of-band edit has
|
|
1002
|
+
* already moved. For every CLOBBER_FIELD the step writes AND that the audit
|
|
1003
|
+
* `observed` (after-state) recorded, the target's CURRENT value must still
|
|
1004
|
+
* equal that after-value; a divergence means the world moved underneath us, so
|
|
1005
|
+
* we block rather than clobber. Fields absent from `observed` are skipped (we
|
|
1006
|
+
* cannot confirm them but must not break ops whose observed legitimately omits
|
|
1007
|
+
* them). Returns a blocked result on divergence, else null.
|
|
1008
|
+
*/
|
|
1009
|
+
function checkStepPrecondition(deps, step, observed) {
|
|
1010
|
+
if (observed === null)
|
|
1011
|
+
return null;
|
|
1012
|
+
const uuid = step.params["uuid"];
|
|
1013
|
+
if (typeof uuid !== "string")
|
|
1014
|
+
return null;
|
|
1015
|
+
const current = loadTarget(deps.db, uuid);
|
|
1016
|
+
if (current === null)
|
|
1017
|
+
return null; // vanished — the inverse's own verify handles it
|
|
1018
|
+
for (const field of CLOBBER_FIELDS) {
|
|
1019
|
+
if (!(field in step.params) || !(field in observed))
|
|
1020
|
+
continue;
|
|
1021
|
+
const cur = getField(current, field) ?? null;
|
|
1022
|
+
const after = observed[field];
|
|
1023
|
+
if (!fieldsEqual(cur, after)) {
|
|
1024
|
+
return {
|
|
1025
|
+
kind: "blocked",
|
|
1026
|
+
op: step.op,
|
|
1027
|
+
reason: "environment",
|
|
1028
|
+
detail: `${field} changed since the recorded mutation (expected ${formatValue(after)}, found ` +
|
|
1029
|
+
`${formatValue(cur)}) — refusing to avoid clobbering an out-of-band edit`,
|
|
1030
|
+
remediation: "review the item's current state; redo the change by hand if it's still wanted, or " +
|
|
1031
|
+
"re-run undo once the field is back to its post-change value",
|
|
1032
|
+
};
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
return null;
|
|
1036
|
+
}
|
|
714
1037
|
// ----------------------------------------------------------------- executor
|
|
715
1038
|
export async function runUndo(deps, auditDirPath, options = {}, onItem) {
|
|
716
1039
|
const records = readAuditRecords(auditDirPath);
|
|
@@ -718,7 +1041,10 @@ export async function runUndo(deps, auditDirPath, options = {}, onItem) {
|
|
|
718
1041
|
const now = deps.now?.() ?? new Date();
|
|
719
1042
|
const items = [];
|
|
720
1043
|
for (const record of targets) {
|
|
721
|
-
|
|
1044
|
+
// Fresh current state for the record's target (drives the clear-reminder
|
|
1045
|
+
// targeted restore, and is otherwise ignored by planUndo).
|
|
1046
|
+
const current = record.uuid === null ? null : loadTarget(deps.db, record.uuid);
|
|
1047
|
+
const plan = planUndo(record, now, records, current);
|
|
722
1048
|
let item;
|
|
723
1049
|
if (plan.kind === "irreversible") {
|
|
724
1050
|
item = { plan, results: [], outcome: "irreversible" };
|
|
@@ -730,6 +1056,27 @@ export async function runUndo(deps, auditDirPath, options = {}, onItem) {
|
|
|
730
1056
|
const results = [];
|
|
731
1057
|
let failed = false;
|
|
732
1058
|
for (const step of plan.steps) {
|
|
1059
|
+
// Plan-time precondition (checklist undos): the inverse was resolved
|
|
1060
|
+
// against the current list and found a conflict — refuse, don't clobber.
|
|
1061
|
+
const planBlock = step.options?.blocked;
|
|
1062
|
+
if (planBlock !== undefined) {
|
|
1063
|
+
results.push({
|
|
1064
|
+
kind: "blocked",
|
|
1065
|
+
op: step.op,
|
|
1066
|
+
reason: "environment",
|
|
1067
|
+
detail: planBlock.detail,
|
|
1068
|
+
remediation: planBlock.remediation,
|
|
1069
|
+
});
|
|
1070
|
+
failed = true;
|
|
1071
|
+
break;
|
|
1072
|
+
}
|
|
1073
|
+
// Precondition guard: never clobber a field an out-of-band edit moved.
|
|
1074
|
+
const precondition = checkStepPrecondition(deps, step, record.observed);
|
|
1075
|
+
if (precondition !== null) {
|
|
1076
|
+
results.push(precondition);
|
|
1077
|
+
failed = true;
|
|
1078
|
+
break;
|
|
1079
|
+
}
|
|
733
1080
|
const needsPermanent = step.options?.dangerouslyPermanent === true;
|
|
734
1081
|
if (needsPermanent && options.dangerouslyPermanent !== true) {
|
|
735
1082
|
results.push({
|
package/dist/write/undo.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ExecuteResult, VectorMatrix, WriteVector } from "./types.ts";
|
|
2
|
+
export declare const SHORTCUTS_MATRIX: VectorMatrix;
|
|
3
|
+
/**
|
|
4
|
+
* Low-level `shortcuts run` seam. Injectable so the executor's temp-file
|
|
5
|
+
* orchestration is unit-testable WITHOUT ever running a mutating proxy (the
|
|
6
|
+
* production DB is never a valid target — see CLAUDE.md safety rails).
|
|
7
|
+
*/
|
|
8
|
+
export type ShortcutsRunner = (shortcut: string, inputPath: string, outputPath: string) => Promise<ExecuteResult>;
|
|
9
|
+
export declare function createShortcutsVector(run?: ShortcutsRunner): WriteVector;
|