things-api 0.16.0 → 0.17.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 (86) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/commands/repeat-flags.d.ts +3 -3
  3. package/dist/cli/commands/repeat-flags.js +90 -33
  4. package/dist/cli/commands/repeat-flags.js.map +1 -1
  5. package/dist/cli/commands/writes.js +59 -5
  6. package/dist/cli/commands/writes.js.map +1 -1
  7. package/dist/cli/help.js +9 -2
  8. package/dist/cli/help.js.map +1 -1
  9. package/dist/cli/interrupt.d.ts +42 -0
  10. package/dist/cli/interrupt.js +105 -0
  11. package/dist/cli/interrupt.js.map +1 -0
  12. package/dist/cli/main.js +5 -0
  13. package/dist/cli/main.js.map +1 -1
  14. package/dist/client.js +3 -0
  15. package/dist/client.js.map +1 -1
  16. package/dist/config.d.ts +39 -0
  17. package/dist/config.js +16 -1
  18. package/dist/config.js.map +1 -1
  19. package/dist/contracts.d.ts +9 -2
  20. package/dist/contracts.js +1 -1
  21. package/dist/contracts.js.map +1 -1
  22. package/dist/index.d.ts +3 -0
  23. package/dist/index.js +7 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/model/occurrences.d.ts +14 -1
  26. package/dist/model/occurrences.js +20 -4
  27. package/dist/model/occurrences.js.map +1 -1
  28. package/dist/model/recurrence.d.ts +60 -9
  29. package/dist/model/recurrence.js +76 -19
  30. package/dist/model/recurrence.js.map +1 -1
  31. package/dist/paths.d.ts +8 -0
  32. package/dist/paths.js +10 -0
  33. package/dist/paths.js.map +1 -1
  34. package/dist/sync-health.js +2 -1
  35. package/dist/sync-health.js.map +1 -1
  36. package/dist/trace/tracer.d.ts +87 -0
  37. package/dist/trace/tracer.js +167 -0
  38. package/dist/trace/tracer.js.map +1 -0
  39. package/dist/write/clear-reminder.js +24 -21
  40. package/dist/write/clear-reminder.js.map +1 -1
  41. package/dist/write/commands.js +50 -45
  42. package/dist/write/commands.js.map +1 -1
  43. package/dist/write/completion-context.d.ts +57 -0
  44. package/dist/write/completion-context.js +49 -0
  45. package/dist/write/completion-context.js.map +1 -0
  46. package/dist/write/failure-hints.d.ts +10 -1
  47. package/dist/write/failure-hints.js +8 -0
  48. package/dist/write/failure-hints.js.map +1 -1
  49. package/dist/write/guards.d.ts +1 -1
  50. package/dist/write/guards.js +10 -0
  51. package/dist/write/guards.js.map +1 -1
  52. package/dist/write/operations.d.ts +12 -3
  53. package/dist/write/pipeline.d.ts +39 -0
  54. package/dist/write/pipeline.js +230 -17
  55. package/dist/write/pipeline.js.map +1 -1
  56. package/dist/write/pre-state.d.ts +1 -1
  57. package/dist/write/pre-state.js +2 -2
  58. package/dist/write/pre-state.js.map +1 -1
  59. package/dist/write/promote-clone.js +260 -13
  60. package/dist/write/promote-clone.js.map +1 -1
  61. package/dist/write/repeat-anchor.d.ts +110 -0
  62. package/dist/write/repeat-anchor.js +238 -0
  63. package/dist/write/repeat-anchor.js.map +1 -0
  64. package/dist/write/repeat-asserts.d.ts +28 -0
  65. package/dist/write/repeat-asserts.js +169 -0
  66. package/dist/write/repeat-asserts.js.map +1 -0
  67. package/dist/write/repeat-rule.js +27 -12
  68. package/dist/write/repeat-rule.js.map +1 -1
  69. package/dist/write/vectors/session-reachability.d.ts +78 -0
  70. package/dist/write/vectors/session-reachability.js +103 -0
  71. package/dist/write/vectors/session-reachability.js.map +1 -0
  72. package/dist/write/vectors/simulator.js +68 -29
  73. package/dist/write/vectors/simulator.js.map +1 -1
  74. package/dist/write/vectors/types.d.ts +117 -10
  75. package/dist/write/vectors/ui-recipes.d.ts +8 -0
  76. package/dist/write/vectors/ui-recipes.js +120 -22
  77. package/dist/write/vectors/ui-recipes.js.map +1 -1
  78. package/dist/write/vectors/ui.d.ts +79 -13
  79. package/dist/write/vectors/ui.js +415 -59
  80. package/dist/write/vectors/ui.js.map +1 -1
  81. package/dist/write/verify/delta.d.ts +12 -14
  82. package/dist/write/verify/delta.js +35 -34
  83. package/dist/write/verify/delta.js.map +1 -1
  84. package/package.json +1 -1
  85. package/schema/envelope.schema.json +22 -0
  86. package/skills/things-cli/SKILL.md +5 -2
@@ -1,11 +1,14 @@
1
1
  import { undoToken } from "../audit/schema.js";
2
+ import { addDaysIso, decodePackedDate } from "../model/dates.js";
2
3
  import { byUuid } from "../read/detail.js";
3
4
  import { resolveProjectWriteTarget, resolveTaskUuidPrefix } from "../read/queries.js";
4
5
  import { runCloneProject, runCloneTodo } from "./clone.js";
5
6
  import { promoteProjectViaGui } from "./make-repeating-project.js";
6
7
  import { fingerprintLabel, runMutation, } from "./pipeline.js";
8
+ import { deriveFixedAnchor, isIsoDate } from "./repeat-anchor.js";
7
9
  import { assertRepeatRule, ruleToInverseParams } from "./repeat-rule.js";
8
10
  import { createDbReader } from "./verify/delta.js";
11
+ import { H_UI_SESSION_UNREACHABLE } from "./vectors/session-reachability.js";
9
12
  const PLACEMENT_NOTE = "the series' current instance lands at its container's default position — its prior slot was " +
10
13
  "not automatically restored (best-effort placement is not yet wired for this container); " +
11
14
  "reposition it with `things reorder` if the order matters";
@@ -50,8 +53,78 @@ function blockedUiDrive(op) {
50
53
  "`things config set ui-enabled true` and Accessibility granted to this process (see docs/setup.md)",
51
54
  };
52
55
  }
53
- /** Pick the rule fields (frequency/interval + calendar anchors) as a RepeatRuleParams. */
54
- function ruleParamsFor(uuid, rule) {
56
+ /**
57
+ * SESSGATE (#480) pre-seed reachability gate. A promote composite is NOT atomic:
58
+ * it SEEDS a row (clone / add) before the GUI promote leg drives the dialog. If
59
+ * the Mac's session is AX-blind (screen locked / full-screen Space), the dialog
60
+ * would open on an unreachable window and the drive would fail — leaving an
61
+ * orphan seed. So probe the live session BEFORE seeding and refuse fast (zero
62
+ * mutation) on the certain-failure LOCKED signature. Only "session" scope refuses
63
+ * here: a window merely on another Space is left for the in-drive relocation (the
64
+ * reveal has not run yet, so refusing before the seed would be a false positive).
65
+ * No ui vector (simulator / bench), ui disabled, or a fail-open probe → proceed
66
+ * (the promote leg's own gate + cleanup remain the backstop).
67
+ */
68
+ async function gateSessionReachability(deps, op) {
69
+ if (!deps.config.ui.enabled)
70
+ return null;
71
+ const ui = deps.vectors.find((v) => v.probeReachability !== undefined);
72
+ if (ui?.probeReachability === undefined)
73
+ return null;
74
+ const verdict = await ui.probeReachability();
75
+ if (verdict.reachable || verdict.scope !== "session")
76
+ return null;
77
+ return {
78
+ kind: "blocked",
79
+ op,
80
+ reason: "hazard",
81
+ hazard: H_UI_SESSION_UNREACHABLE,
82
+ detail: verdict.detail,
83
+ remediation: verdict.remediation,
84
+ };
85
+ }
86
+ /**
87
+ * Auto-trash a promote composite's own seeded item after its promote leg failed
88
+ * (RATIFIED RULING 2026-08-15, issue #480). The add/add-repeating legs are NOT
89
+ * atomic: the seed persists even when the promote no-ops. The seed is OUR
90
+ * artifact — recreatable verbatim from the command args — and the Trash is
91
+ * recoverable, so we trash it inside the same txn and disclose it. The
92
+ * distinction the failure MUST make honest: an auto-trash that SUCCEEDS points
93
+ * the caller at `restore` (the row is in the Trash); one that FAILS points at
94
+ * `delete` with the seed's REAL, resolvable uuid (never a buried, non-actionable
95
+ * uuid — the #480 second bug). Returns a `detail` patch appended to the promote
96
+ * result's own message (best-effort: a non-`detail` result shape is left as-is).
97
+ */
98
+ async function cleanupSeed(deps, kind, createdUuid, promote, options, txnId) {
99
+ const expectedType = kind === "project" ? "project" : "to-do";
100
+ const trashOp = kind === "project" ? "project.delete" : "todo.delete";
101
+ const trashed = await runMutation(deps, trashOp, { uuid: createdUuid }, legOptions(options, txnId));
102
+ const cleanupNote = trashed.kind === "ok"
103
+ ? `the seeded ${expectedType} (uuid ${createdUuid}) was created but the promote did not land, ` +
104
+ `so it was moved to the Trash — recreate it from the command args, or restore it with ` +
105
+ `\`things ${kind} restore ${createdUuid}\``
106
+ : `the seeded ${expectedType} (uuid ${createdUuid}) was created but the promote did not land, ` +
107
+ `and it could NOT be auto-trashed — remove it with \`things ${kind} delete ${createdUuid}\``;
108
+ return "detail" in promote
109
+ ? { detail: `${promote.detail} — ${cleanupNote}` }
110
+ : {};
111
+ }
112
+ /**
113
+ * Pick the rule fields (frequency/interval + calendar anchors + deadline offset)
114
+ * as a RepeatRuleParams, plus the requested first-occurrence date to drive into
115
+ * the dialog's "Next:" field (ANCH2, issue #476). `nextIso` is the item's
116
+ * scheduled date; omitted (or after-completion) leaves Next at the app default.
117
+ *
118
+ * The `rule` bag is the SUPERSET the make/add legs actually carry: make-repeating
119
+ * passes a full {@link RepeatRuleParams} (rule-level `deadline`/`startDaysEarlier`
120
+ * included), add-repeating an {@link AddRepeatingRuleFields} (which OMITS those —
121
+ * the base add owns the item's own deadline). Every field is copied THROUGH so
122
+ * neither is silently dropped: an earlier version keyed the param type to
123
+ * AddRepeatingRuleFields and stripped `deadline`/`startDaysEarlier` from the
124
+ * make-repeating promote entirely (the same class as the RRX1 reminder drop —
125
+ * a deadlined make-repeating produced a NON-deadlined template, YANCH1 #493).
126
+ */
127
+ function ruleParamsFor(uuid, rule, nextIso) {
55
128
  return {
56
129
  uuid,
57
130
  frequency: rule.frequency,
@@ -61,6 +134,82 @@ function ruleParamsFor(uuid, rule) {
61
134
  ...(rule.monthly !== undefined && { monthly: rule.monthly }),
62
135
  ...(rule.yearly !== undefined && { yearly: rule.yearly }),
63
136
  ...(rule.ends !== undefined && { ends: rule.ends }),
137
+ // The repeat reminder picker is drivable (ANCH2). make-repeating carries a
138
+ // rule-level reminder through; add-repeating threads the base to-do's
139
+ // --reminder here too (ADR1 #480), since the dialog conversion otherwise drops
140
+ // the seed's one-off reminder from the series.
141
+ ...(rule.reminder !== undefined && { reminder: rule.reminder }),
142
+ // The deadline offset is a rule-level field on make-repeating (the "Add
143
+ // deadlines" checkbox + "start N days earlier"); it must ride the promote or a
144
+ // `make-repeating --deadline` lands a non-deadlined series (YANCH1 #493).
145
+ ...(rule.deadline !== undefined && { deadline: rule.deadline }),
146
+ ...(rule.startDaysEarlier !== undefined && { startDaysEarlier: rule.startDaysEarlier }),
147
+ ...(nextIso !== undefined && rule.afterCompletion !== true && { next: nextIso }),
148
+ };
149
+ }
150
+ const UNIT_SINGULAR = {
151
+ daily: "day",
152
+ weekly: "week",
153
+ monthly: "month",
154
+ yearly: "year",
155
+ };
156
+ const UNIT_PLURAL = {
157
+ daily: "days",
158
+ weekly: "weeks",
159
+ monthly: "months",
160
+ yearly: "years",
161
+ };
162
+ /**
163
+ * A one-line echo of the LANDED series so a caller can eyeball what actually
164
+ * committed — the cadence, the verified first-occurrence START, and the deadline
165
+ * offset (YANCH1 #493 item 5). It rides the verified data (the anchor is asserted
166
+ * == requested by the post-drive verify), so it describes the START date rather
167
+ * than the internal deadline anchor, which for a deadlined rule is N days later.
168
+ */
169
+ function landedRuleEcho(rule, startIso) {
170
+ const cadence = rule.interval === 1
171
+ ? `every ${UNIT_SINGULAR[rule.frequency]}`
172
+ : `every ${rule.interval} ${UNIT_PLURAL[rule.frequency]}`;
173
+ if (rule.afterCompletion === true) {
174
+ return `landed: the series repeats ${cadence} after each occurrence is completed`;
175
+ }
176
+ const first = startIso !== null ? `; the first occurrence is ${startIso}` : "";
177
+ const offset = rule.startDaysEarlier ?? 0;
178
+ const deadlineNote = offset > 0
179
+ ? `, with a deadline ${offset} day${offset === 1 ? "" : "s"} later`
180
+ : rule.deadline === true
181
+ ? ", with a deadline on each occurrence"
182
+ : "";
183
+ return `landed: the series repeats ${cadence}${first}${deadlineNote}`;
184
+ }
185
+ /**
186
+ * The template's app-materialized first occurrence (`rt1_instanceCreationStartDate`
187
+ * = the date the current instance is dated at) as an ISO date, for the post-drive
188
+ * Next-honored check. `null` when the row/date is absent.
189
+ */
190
+ function firstOccurrenceOf(db, templateUuid) {
191
+ const row = db
192
+ .prepare("SELECT rt1_instanceCreationStartDate AS ic FROM TMTask WHERE uuid = ?")
193
+ .get(templateUuid);
194
+ if (row === undefined || row.ic === null)
195
+ return null;
196
+ return decodePackedDate(row.ic);
197
+ }
198
+ /**
199
+ * The verify-failed result when the driven "Next:" first occurrence did not land
200
+ * (issue #476, ANCH2). The series exists but on the wrong phase — report it
201
+ * fail-closed rather than as a silent ok.
202
+ */
203
+ function nextMismatch(op, templateUuid, requestedIso, landedIso) {
204
+ return {
205
+ kind: "verify-failed",
206
+ op,
207
+ reason: "mismatch",
208
+ expected: { mode: "update", uuid: templateUuid, assert: [] },
209
+ observed: null,
210
+ detail: `the repeating series was created but its first occurrence landed on ` +
211
+ `${landedIso ?? "an undetermined date"}, not the requested ${requestedIso} — the Next-field ` +
212
+ "drive did not take; the series exists and can be corrected with `things reschedule-repeat`",
64
213
  };
65
214
  }
66
215
  /** The discovered template/instance from a promote leg's result. */
@@ -159,6 +308,33 @@ async function makeRepeatingViaClone(deps, kind, params, options) {
159
308
  : "verify the uuid with `things show <uuid>`, or use `things project make-repeating` for a project",
160
309
  };
161
310
  }
311
+ // ANCH2 (issue #476): the app's Repeat dialog HAS a "Next:" first-occurrence
312
+ // field; its default is the today-anchored next match, but it is editable and
313
+ // honored (docs/lab/anch2-next-field.md). Drive it with the requested first
314
+ // occurrence — an explicit `--when` if given, else the item's own scheduled
315
+ // date. YANCH1 (issue #493): also DERIVE the calendar anchor (weekly weekday /
316
+ // monthly day / yearly month+day) from that date when no explicit anchor was
317
+ // given, and drive the anchor pop-ups — otherwise the recurring rule keeps the
318
+ // dialog's untouched default (weekly Sunday, monthly 1st, yearly January 1) and
319
+ // only the first occurrence is correct (the #493 anchor-drop).
320
+ //
321
+ // DEADLINE-MODE ANCHORING (YANCH1 #493, in-lab golden-v3): a deadlined rule
322
+ // anchors on the DEADLINE, and each instance's START = anchor − startDaysEarlier
323
+ // (probe: anchor+Next driven to Oct-16 with start-14 → of=[Oct-16], instance
324
+ // start = Oct-02). `--when` is the scheduled START, so the date the dialog's
325
+ // anchor pop-ups + "Next:" field must carry is when + startDaysEarlier (the
326
+ // deadline); the app then back-shifts the start to `when`. For a non-deadlined
327
+ // rule the shift is 0 and the drive date equals `--when` (unchanged).
328
+ const whenIso = isIsoDate(params.next) ? params.next : src.startDate;
329
+ const deadlineShift = params.deadline === true || (params.startDaysEarlier ?? 0) > 0
330
+ ? (params.startDaysEarlier ?? 0)
331
+ : 0;
332
+ const driveIso = isIsoDate(whenIso) ? addDaysIso(whenIso, deadlineShift) : undefined;
333
+ // The dialog is driven with the deadline-adjusted date; the verify below expects
334
+ // the START to land back on the requested `--when`.
335
+ const nextIso = driveIso;
336
+ const expectedStartIso = isIsoDate(whenIso) ? whenIso : undefined;
337
+ const effParams = { ...params, ...deriveFixedAnchor(params, driveIso) };
162
338
  // The promote leg drives the GUI — block before minting a clone if the ack is missing.
163
339
  if (options.dangerouslyDriveGui !== true && options.dryRun !== true) {
164
340
  return blockedUiDrive(op);
@@ -172,7 +348,7 @@ async function makeRepeatingViaClone(deps, kind, params, options) {
172
348
  vector: "ui",
173
349
  tier: 3,
174
350
  invocation: `clone ${srcUuid} (--preserve-created) → make-repeating the clone (Repeat… → ` +
175
- `frequency=${params.frequency}, interval=${params.interval}) → trash the original ${srcUuid}`,
351
+ `frequency=${effParams.frequency}, interval=${effParams.interval}) → trash the original ${srcUuid}`,
176
352
  expectedDelta: {
177
353
  mode: "create",
178
354
  probe: { title: src.title, type: expectedType, sinceEpoch: 0 },
@@ -182,6 +358,12 @@ async function makeRepeatingViaClone(deps, kind, params, options) {
182
358
  },
183
359
  };
184
360
  }
361
+ // SESSGATE (#480): refuse a locked / full-screen session BEFORE minting a clone
362
+ // — otherwise the promote's dialog opens on an unreachable window and the whole
363
+ // compound fails, stranding a disposable clone. Zero mutation on refusal.
364
+ const gate = await gateSessionReachability(deps, op);
365
+ if (gate !== null)
366
+ return gate;
185
367
  const startedAt = now;
186
368
  const txnId = newTxnId(startedAt);
187
369
  // 1. Clone the source as a disposable, embedded leg (--preserve-created). The
@@ -235,8 +417,8 @@ async function makeRepeatingViaClone(deps, kind, params, options) {
235
417
  : {}),
236
418
  };
237
419
  }
238
- // 3. Native-promote the clone.
239
- const rule = ruleParamsFor(cloneUuid, params);
420
+ // 3. Native-promote the clone (with the ANCH2 Next drive + derived weekday).
421
+ const rule = ruleParamsFor(cloneUuid, effParams, nextIso);
240
422
  const promote = kind === "project"
241
423
  ? await promoteProjectViaGui(deps, rule, legOptions(options, txnId, "ui"))
242
424
  : await runMutation(deps, "todo.make-repeating", rule, legOptions(options, txnId, "ui"));
@@ -260,7 +442,19 @@ async function makeRepeatingViaClone(deps, kind, params, options) {
260
442
  };
261
443
  }
262
444
  const { templateUuid, instanceUuid } = discoveryOf(promote);
445
+ // Post-drive verify (ANCH2 + YANCH1): the instance START must have landed on the
446
+ // requested `--when` — for a deadlined rule the driven Next is the deadline
447
+ // (when + startDaysEarlier) and the app back-shifts the start to `--when`, so the
448
+ // check is against `expectedStartIso`, not the raw drive date. Fail closed on
449
+ // mismatch rather than report a wrong-phase ok.
450
+ if (expectedStartIso !== undefined) {
451
+ const landed = firstOccurrenceOf(deps.db, templateUuid);
452
+ if (landed !== expectedStartIso) {
453
+ return nextMismatch(op, templateUuid, expectedStartIso, landed);
454
+ }
455
+ }
263
456
  const warnings = [
457
+ landedRuleEcho(effParams, expectedStartIso ?? firstOccurrenceOf(deps.db, templateUuid)),
264
458
  `the original ${expectedType} (uuid ${srcUuid}) was moved to the Trash; \`things undo\` ` +
265
459
  "removes the new series (trash-both) and restores it",
266
460
  PLACEMENT_NOTE,
@@ -275,7 +469,7 @@ async function makeRepeatingViaClone(deps, kind, params, options) {
275
469
  instanceUuid,
276
470
  originalUuid: srcUuid,
277
471
  invocation: `${op}: clone ${srcUuid} → trash ${srcUuid} → promote ${cloneUuid} → template ${templateUuid}`,
278
- requested: params,
472
+ requested: effParams,
279
473
  ...(preserveModified && preUmd !== null && { preModDates: { [srcUuid]: preUmd } }),
280
474
  });
281
475
  return promoteOk({
@@ -303,6 +497,27 @@ export function runMakeRepeatingProject(deps, params, options = {}) {
303
497
  async function addRepeatingViaCreate(deps, kind, addParams, rule, title, options) {
304
498
  const op = kind === "project" ? "project.add-repeating" : "todo.add-repeating";
305
499
  assertRepeatRule(rule);
500
+ // ANCH2 (issue #476): drive the Repeat dialog's "Next:" field with --when so the
501
+ // series starts on the requested date (the field's default is today-anchored but
502
+ // it is editable and honored). YANCH1 (issue #493): also DERIVE the calendar
503
+ // anchor (weekly weekday / monthly day / yearly month+day) from --when when no
504
+ // explicit anchor was given, and drive the anchor pop-ups — otherwise the
505
+ // recurring rule keeps the dialog's untouched default (weekly Sunday, monthly
506
+ // 1st, yearly January 1) and only the first occurrence is correct.
507
+ const anchorIso = isIsoDate(addParams["when"]) ? addParams["when"] : null;
508
+ const nextIso = anchorIso ?? undefined;
509
+ const effRule = { ...rule, ...deriveFixedAnchor(rule, anchorIso) };
510
+ // ADR1 (issue #480, requested behavior #3): carry the base to-do's --reminder
511
+ // onto the SERIES. The create leg sets a one-off reminderTime on the seed, but
512
+ // the Repeat-dialog conversion does NOT preserve it — the dialog OWNS the repeat
513
+ // reminder via its "Add reminders" control — so a base reminder was silently
514
+ // dropped from the template (verified empty on golden-v2,
515
+ // docs/lab/adr1-add-repeating-reveal.md). Drive the dialog's reminder with the
516
+ // base time so every spawned occurrence carries it (ANCH2: the reminder picker
517
+ // commits reminderTime deterministically). Projects have no reminder vocabulary,
518
+ // so addParams never carries one there.
519
+ const baseReminder = typeof addParams["reminder"] === "string" ? addParams["reminder"] : undefined;
520
+ const effRuleWithReminder = baseReminder !== undefined ? { ...effRule, reminder: baseReminder } : effRule;
306
521
  // The promote leg drives the GUI — block before creating anything if the ack is missing.
307
522
  if (options.dangerouslyDriveGui !== true && options.dryRun !== true) {
308
523
  return blockedUiDrive(op);
@@ -327,6 +542,12 @@ async function addRepeatingViaCreate(deps, kind, addParams, rule, title, options
327
542
  },
328
543
  };
329
544
  }
545
+ // SESSGATE (#480): refuse a locked / full-screen session BEFORE seeding the row
546
+ // (the two legs are not atomic — a doomed promote would strand the seed). Zero
547
+ // mutation on refusal; a window merely on another Space is relocated in-drive.
548
+ const gate = await gateSessionReachability(deps, op);
549
+ if (gate !== null)
550
+ return gate;
330
551
  const startedAt = deps.now?.() ?? new Date();
331
552
  const txnId = newTxnId(startedAt);
332
553
  // 1. Create the item (full add vocabulary) as an embedded leg.
@@ -349,17 +570,38 @@ async function addRepeatingViaCreate(deps, kind, addParams, rule, title, options
349
570
  : { ...add, op };
350
571
  }
351
572
  const createdUuid = add.uuid;
352
- // 2. Native-promote the fresh row.
353
- const ruleParams = ruleParamsFor(createdUuid, rule);
573
+ // 2. Native-promote the fresh row (ANCH2 Next drive + derived weekday + the
574
+ // base reminder driven onto the series, ADR1).
575
+ const ruleParams = ruleParamsFor(createdUuid, effRuleWithReminder, nextIso);
354
576
  const promote = kind === "project"
355
577
  ? await promoteProjectViaGui(deps, ruleParams, legOptions(options, txnId, "ui"))
356
578
  : await runMutation(deps, "todo.make-repeating", ruleParams, legOptions(options, txnId, "ui"));
357
579
  if (promote.kind !== "ok") {
358
- // Honest: the item was created (and persists) but the promote did not land.
359
- return { ...promote, op };
580
+ // The seed persists (the two legs are not atomic) but the promote did not
581
+ // land. RATIFIED RULING (2026-08-15, issue #480): auto-trash our OWN seed
582
+ // inside the txn — it is our artifact, recreatable verbatim from the command
583
+ // args, and the Trash is recoverable — then disclose it. If the auto-trash
584
+ // itself fails, the result carries the seed's REAL, resolvable uuid with a
585
+ // working `delete` remediation, so cleanup is never ambiguous (the #480
586
+ // second bug: a failed add-repeating left a residue whose reported uuid was
587
+ // not actionable).
588
+ const patch = await cleanupSeed(deps, kind, createdUuid, promote, options, txnId);
589
+ return { ...promote, op, ...patch };
360
590
  }
361
591
  const { templateUuid, instanceUuid } = discoveryOf(promote);
362
- const warnings = [PLACEMENT_NOTE];
592
+ // Post-drive verify (ANCH2): the driven Next must have landed as the first
593
+ // occurrence — fail closed on mismatch rather than report a wrong-phase ok.
594
+ // The series EXISTS here (promote landed) but on the wrong phase, so this is a
595
+ // genuine partial success, NOT a seed to trash — reported for correction.
596
+ if (nextIso !== undefined) {
597
+ const landed = firstOccurrenceOf(deps.db, templateUuid);
598
+ if (landed !== nextIso)
599
+ return nextMismatch(op, templateUuid, nextIso, landed);
600
+ }
601
+ const warnings = [
602
+ landedRuleEcho(ruleParams, nextIso ?? firstOccurrenceOf(deps.db, templateUuid)),
603
+ PLACEMENT_NOTE,
604
+ ];
363
605
  if (promote.warnings !== undefined)
364
606
  warnings.push(...promote.warnings);
365
607
  appendPromoteSummary(deps, {
@@ -369,7 +611,7 @@ async function addRepeatingViaCreate(deps, kind, addParams, rule, title, options
369
611
  templateUuid,
370
612
  instanceUuid,
371
613
  invocation: `${op}: add "${title}" ${createdUuid} → template ${templateUuid}`,
372
- requested: { title, ...rule },
614
+ requested: { title, ...effRule },
373
615
  });
374
616
  return promoteOk({
375
617
  op,
@@ -453,7 +695,7 @@ function blockedCloneSource(op, detail, remediation) {
453
695
  * produce: two simultaneous end bounds, and a multi-anchor month/year rule.
454
696
  */
455
697
  function inexpressibleReason(rule) {
456
- if (rule.endDate !== null && rule.remainingCount !== null) {
698
+ if (rule.endDate !== null && rule.occurrenceCount !== null) {
457
699
  return ("the source rule ends on BOTH a date and an occurrence count, which the repeat vocabulary " +
458
700
  "cannot express (its Ends bound is a single choice)");
459
701
  }
@@ -531,6 +773,11 @@ export async function cloneTemplateViaRepromote(deps, kind, src, srcUuid, params
531
773
  },
532
774
  };
533
775
  }
776
+ // SESSGATE (#480): refuse a locked / full-screen session BEFORE minting the
777
+ // plain clone (a doomed promote would strand it). Zero mutation on refusal.
778
+ const gate = await gateSessionReachability(deps, op);
779
+ if (gate !== null)
780
+ return gate;
534
781
  const startedAt = deps.now?.() ?? new Date();
535
782
  const txnId = newTxnId(startedAt);
536
783
  // 4. Mint the plain clone as an embedded leg — cloneTemplateAsPlain reaches the
@@ -1 +1 @@
1
- {"version":3,"file":"promote-clone.js","sourceRoot":"","sources":["../../src/write/promote-clone.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promote-clone.js","sourceRoot":"","sources":["../../src/write/promote-clone.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * The FIXED-recurrence DEFAULT-anchor law + the weekly-weekday derivation the
3
+ * promote verbs use (issue #476; evidence: docs/lab/anch2-next-field.md +
4
+ * anch1-repeat-anchor.md, golden-v2 / Things 3.22.12).
5
+ *
6
+ * DEFAULT LAW (ANCH1, still valid as the DEFAULT). Left untouched, the Repeat
7
+ * dialog's "Next:" field defaults the first occurrence to the next calendar match
8
+ * ON OR AFTER TODAY (interval-independent), and a weekday-less weekly rule
9
+ * defaults to SUNDAY. ANCH2 then showed the "Next:" field is EDITABLE and honored
10
+ * (docs/lab/anch2-next-field.md) — so the promote verbs DRIVE it with the item's
11
+ * scheduled date rather than refuse a wrong-phase series. This module no longer
12
+ * carries a phase-refusal (the ANCH1 `H-REPEAT-ANCHOR` premise — "no drivable
13
+ * first-occurrence control" — was false).
14
+ *
15
+ * What it still provides:
16
+ * 1. {@link deriveWeeklyWeekdays} — when a weekly rule omits `weekdays` but a
17
+ * concrete anchor date is known, derive the recurring weekday FROM that date
18
+ * so the series fires on the intended weekday (not the app's Sunday default).
19
+ * Driving "Next:" fixes the FIRST occurrence; this fixes the recurring day.
20
+ * 2. {@link fixedSpawnPlan} — the DEFAULT spawn shape (used by the simulator
21
+ * when no explicit first occurrence is requested): first occurrence = next
22
+ * match ≥ today, an instance spawns only when today is itself an occurrence.
23
+ *
24
+ * Daily/weekly follow the probed default law; monthly/yearly keep the caller's
25
+ * today+interval model for the default (their default-anchor law is unprobed).
26
+ */
27
+ import { type IsoDate } from "../model/dates.ts";
28
+ import type { MonthlyAnchor, RepeatRuleParams, Weekday, YearlyAnchor } from "./operations.ts";
29
+ /** True iff `v` is a concrete `YYYY-MM-DD` date (not a list keyword / undefined). */
30
+ export declare function isIsoDate(v: unknown): v is IsoDate;
31
+ /** Weekday of an ISO date, 0 = Sunday … 6 = Saturday (evaluated at UTC noon, tz-invariant). */
32
+ export declare function weekdayOfIso(iso: IsoDate): number;
33
+ /**
34
+ * When a WEEKLY rule omits its weekday set but a concrete anchor date is known,
35
+ * the weekday to drive explicitly (so the series fires on the anchor date's
36
+ * weekday, not the app's Sunday default). Returns `undefined` when nothing should
37
+ * change (non-weekly, weekdays already given, or no concrete anchor date).
38
+ */
39
+ export declare function deriveWeeklyWeekdays(rule: Pick<RepeatRuleParams, "frequency" | "interval" | "weekdays" | "afterCompletion">, anchorIso: IsoDate | null | undefined): Weekday[] | undefined;
40
+ /**
41
+ * When a MONTHLY rule omits its day anchor but a concrete first-occurrence date
42
+ * is known, the day-of-month anchor to drive EXPLICITLY (so the series recurs on
43
+ * that day, not the Repeat dialog's untouched default). Returns `undefined` when
44
+ * nothing should change (non-monthly, an explicit anchor already given, or no
45
+ * concrete date). Mirrors {@link deriveWeeklyWeekdays} for the monthly unit —
46
+ * the same day-of-month the read-path decoder / composeOffsets derives from the
47
+ * occurrence date, so the derived anchor is byte-consistent with the rule blob.
48
+ */
49
+ export declare function deriveMonthlyAnchor(rule: Pick<RepeatRuleParams, "frequency" | "monthly" | "afterCompletion">, anchorIso: IsoDate | null | undefined): MonthlyAnchor | undefined;
50
+ /**
51
+ * When a YEARLY rule omits its month+day anchor but a concrete first-occurrence
52
+ * date is known, the {month, day} anchor to drive EXPLICITLY (so the series recurs
53
+ * on that month/day, not the dialog's untouched January-1 default — the ANCH2-c /
54
+ * issue #493 anchor-drop). Returns `undefined` when nothing should change
55
+ * (non-yearly, an explicit anchor already given, or no concrete date).
56
+ */
57
+ export declare function deriveYearlyAnchor(rule: Pick<RepeatRuleParams, "frequency" | "yearly" | "afterCompletion">, anchorIso: IsoDate | null | undefined): YearlyAnchor | undefined;
58
+ /**
59
+ * The date to drive into the Repeat dialog's "Next:" field for a rule whose
60
+ * `next` is the scheduled START (`--when`). A DEADLINED rule anchors on the
61
+ * DEADLINE — the dialog's "Next:" is the next deadline and the instance START =
62
+ * deadline − startDaysEarlier — so it is driven with `next + startDaysEarlier` and
63
+ * the app back-shifts the start to `next` (YANCH1 #493, golden-v3 probe: Next
64
+ * driven to a date with start-N lands the instance start N days earlier). A
65
+ * non-deadlined rule (or one with no concrete `next`) drives `next` verbatim.
66
+ * Returns `undefined` when `next` is absent/non-concrete.
67
+ */
68
+ export declare function deadlineDriveNext(p: Pick<RepeatRuleParams, "next" | "deadline" | "startDaysEarlier">): IsoDate | undefined;
69
+ /**
70
+ * The calendar-anchor fields to drive EXPLICITLY for a fixed weekly/monthly/yearly
71
+ * rule when the caller supplied a concrete first-occurrence date but NO explicit
72
+ * anchor — each derived from that date by the SAME refIso law composeOffsets uses
73
+ * (weekly → weekday, monthly → day-of-month, yearly → month+day). Driving the
74
+ * anchor pop-ups makes the series RECUR on the intended calendar placement;
75
+ * leaving the anchor to the "Next:" first-occurrence field alone fixes only the
76
+ * FIRST occurrence and leaves the dialog's untouched default as the recurring rule
77
+ * (weekly → Sunday, monthly → 1st, yearly → January 1 — ANCH2 cell c / issue
78
+ * #493). Returns only the fields that need driving; an explicit anchor, an
79
+ * after-completion rule, daily, or no concrete date yields an empty patch. This
80
+ * completes the derive-and-drive family the weekly weekday-derivation began
81
+ * post-ANCH1 (decisions.md).
82
+ */
83
+ export declare function deriveFixedAnchor(rule: Pick<RepeatRuleParams, "frequency" | "interval" | "weekdays" | "monthly" | "yearly" | "afterCompletion">, anchorIso: IsoDate | null | undefined): Partial<Pick<RepeatRuleParams, "weekdays" | "monthly" | "yearly">>;
84
+ /**
85
+ * The app's first occurrence of a FIXED daily/weekly rule = the next calendar
86
+ * match on or after today. `null` for after-completion (no calendar) or an
87
+ * unguarded frequency (monthly/yearly). Weekly uses `weekdays` (caller should
88
+ * pass the DERIVED set); with no weekdays it falls back to the app's Sunday default.
89
+ */
90
+ export declare function fixedFirstOccurrence(rule: Pick<RepeatRuleParams, "frequency" | "interval" | "weekdays" | "afterCompletion">, todayIso: IsoDate): IsoDate | null;
91
+ /**
92
+ * The smallest occurrence STRICTLY AFTER today (the template's cursor,
93
+ * rt1_nextInstanceStartDate). Daily/weekly only. Returns `null` for other
94
+ * frequencies / after-completion.
95
+ */
96
+ export declare function nextFixedOccurrenceAfter(rule: Pick<RepeatRuleParams, "frequency" | "interval" | "weekdays" | "afterCompletion">, todayIso: IsoDate): IsoDate | null;
97
+ /**
98
+ * The spawn shape a FIXED daily/weekly `make-repeating` produces under the ANCH1
99
+ * law: the calendar-offset reference date, the current-occurrence instance start
100
+ * (null when today is not an occurrence → no instance spawns), the template
101
+ * cursor (next occurrence strictly after today), and the instance-creation count.
102
+ * MONTHLY/YEARLY are unprobed — callers keep their prior today+interval model.
103
+ */
104
+ export interface FixedSpawnPlan {
105
+ refIso: IsoDate;
106
+ instanceStartIso: IsoDate | null;
107
+ cursorIso: IsoDate;
108
+ instanceCount: 0 | 1;
109
+ }
110
+ export declare function fixedSpawnPlan(rule: Pick<RepeatRuleParams, "frequency" | "interval" | "weekdays" | "afterCompletion">, todayIso: IsoDate): FixedSpawnPlan;