things-api 0.17.0 → 0.18.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 (172) hide show
  1. package/README.md +1 -1
  2. package/deputy/VERSION +1 -0
  3. package/deputy/helpers-Info.plist +23 -0
  4. package/deputy/prebuilt/Things API Helper.app/Contents/CodeResources +0 -0
  5. package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/Info.plist +20 -0
  6. package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/MacOS/things-reader +0 -0
  7. package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/_CodeSignature/CodeResources +115 -0
  8. package/deputy/prebuilt/Things API Helper.app/Contents/Info.plist +23 -0
  9. package/deputy/prebuilt/Things API Helper.app/Contents/MacOS/things-deputy +0 -0
  10. package/deputy/prebuilt/Things API Helper.app/Contents/_CodeSignature/CodeResources +125 -0
  11. package/deputy/reader/Info.plist +20 -0
  12. package/deputy/reader/entitlements.plist +15 -0
  13. package/deputy/reader/main.swift +491 -0
  14. package/deputy/src/main.swift +133 -0
  15. package/deputy/src/osascript.swift +102 -0
  16. package/deputy/src/server.swift +350 -0
  17. package/deputy/src/sqlite.swift +121 -0
  18. package/dist/cli/commands/doctor.js +55 -2
  19. package/dist/cli/commands/doctor.js.map +1 -1
  20. package/dist/cli/commands/helpers.d.ts +17 -0
  21. package/dist/cli/commands/helpers.js +148 -0
  22. package/dist/cli/commands/helpers.js.map +1 -0
  23. package/dist/cli/commands/op-result.d.ts +15 -0
  24. package/dist/cli/commands/op-result.js +39 -0
  25. package/dist/cli/commands/op-result.js.map +1 -0
  26. package/dist/cli/commands/writes.js +22 -3
  27. package/dist/cli/commands/writes.js.map +1 -1
  28. package/dist/cli/help.js +4 -0
  29. package/dist/cli/help.js.map +1 -1
  30. package/dist/cli/helpers-check.d.ts +10 -0
  31. package/dist/cli/helpers-check.js +59 -0
  32. package/dist/cli/helpers-check.js.map +1 -0
  33. package/dist/cli/main.js +22 -1
  34. package/dist/cli/main.js.map +1 -1
  35. package/dist/client.js +16 -2
  36. package/dist/client.js.map +1 -1
  37. package/dist/config.d.ts +31 -0
  38. package/dist/config.js +9 -0
  39. package/dist/config.js.map +1 -1
  40. package/dist/contracts.d.ts +1 -1
  41. package/dist/contracts.js +1 -1
  42. package/dist/db/baselines/db-v26.js +8 -4
  43. package/dist/db/baselines/db-v26.js.map +1 -1
  44. package/dist/db/baselines/db-v27.d.ts +42 -0
  45. package/dist/db/baselines/db-v27.js +47 -0
  46. package/dist/db/baselines/db-v27.js.map +1 -0
  47. package/dist/db/baselines/index.js +2 -1
  48. package/dist/db/baselines/index.js.map +1 -1
  49. package/dist/db/locate.d.ts +4 -1
  50. package/dist/db/locate.js +3 -1
  51. package/dist/db/locate.js.map +1 -1
  52. package/dist/db/schema.d.ts +1 -1
  53. package/dist/db/schema.js +9 -0
  54. package/dist/db/schema.js.map +1 -1
  55. package/dist/deputy/bridge-worker.d.ts +1 -0
  56. package/dist/deputy/bridge-worker.js +79 -0
  57. package/dist/deputy/bridge-worker.js.map +1 -0
  58. package/dist/deputy/bridge.d.ts +14 -0
  59. package/dist/deputy/bridge.js +70 -0
  60. package/dist/deputy/bridge.js.map +1 -0
  61. package/dist/deputy/client.d.ts +19 -0
  62. package/dist/deputy/client.js +104 -0
  63. package/dist/deputy/client.js.map +1 -0
  64. package/dist/deputy/db-facade.d.ts +18 -0
  65. package/dist/deputy/db-facade.js +71 -0
  66. package/dist/deputy/db-facade.js.map +1 -0
  67. package/dist/deputy/files.d.ts +1 -0
  68. package/dist/deputy/files.js +16 -0
  69. package/dist/deputy/files.js.map +1 -0
  70. package/dist/deputy/install.d.ts +105 -0
  71. package/dist/deputy/install.js +467 -0
  72. package/dist/deputy/install.js.map +1 -0
  73. package/dist/deputy/notice.d.ts +6 -0
  74. package/dist/deputy/notice.js +28 -0
  75. package/dist/deputy/notice.js.map +1 -0
  76. package/dist/deputy/notices.d.ts +31 -0
  77. package/dist/deputy/notices.js +94 -0
  78. package/dist/deputy/notices.js.map +1 -0
  79. package/dist/deputy/osa.d.ts +21 -0
  80. package/dist/deputy/osa.js +72 -0
  81. package/dist/deputy/osa.js.map +1 -0
  82. package/dist/deputy/protocol.d.ts +86 -0
  83. package/dist/deputy/protocol.js +106 -0
  84. package/dist/deputy/protocol.js.map +1 -0
  85. package/dist/deputy/routing.d.ts +63 -0
  86. package/dist/deputy/routing.js +338 -0
  87. package/dist/deputy/routing.js.map +1 -0
  88. package/dist/deputy/shortcuts-exec.d.ts +10 -0
  89. package/dist/deputy/shortcuts-exec.js +50 -0
  90. package/dist/deputy/shortcuts-exec.js.map +1 -0
  91. package/dist/diagnose.d.ts +43 -1
  92. package/dist/diagnose.js +64 -2
  93. package/dist/diagnose.js.map +1 -1
  94. package/dist/index.d.ts +13 -2
  95. package/dist/index.js +10 -1
  96. package/dist/index.js.map +1 -1
  97. package/dist/mcp/server.js +25 -7
  98. package/dist/mcp/server.js.map +1 -1
  99. package/dist/model/mappers.d.ts +12 -3
  100. package/dist/model/mappers.js +6 -1
  101. package/dist/model/mappers.js.map +1 -1
  102. package/dist/model/recurrence.d.ts +5 -1
  103. package/dist/model/recurrence.js +19 -1
  104. package/dist/model/recurrence.js.map +1 -1
  105. package/dist/model/template-projection.d.ts +26 -0
  106. package/dist/model/template-projection.js +113 -0
  107. package/dist/model/template-projection.js.map +1 -0
  108. package/dist/op-result.d.ts +46 -0
  109. package/dist/op-result.js +156 -0
  110. package/dist/op-result.js.map +1 -0
  111. package/dist/read/detail.js +7 -1
  112. package/dist/read/detail.js.map +1 -1
  113. package/dist/read/queries.js +8 -1
  114. package/dist/read/queries.js.map +1 -1
  115. package/dist/read/views.d.ts +6 -4
  116. package/dist/read/views.js +60 -18
  117. package/dist/read/views.js.map +1 -1
  118. package/dist/sync-health.js +6 -2
  119. package/dist/sync-health.js.map +1 -1
  120. package/dist/write/accessibility-probe.js +4 -2
  121. package/dist/write/accessibility-probe.js.map +1 -1
  122. package/dist/write/automation-probe.js +5 -1
  123. package/dist/write/automation-probe.js.map +1 -1
  124. package/dist/write/availability.js +7 -3
  125. package/dist/write/availability.js.map +1 -1
  126. package/dist/write/commands.js +58 -13
  127. package/dist/write/commands.js.map +1 -1
  128. package/dist/write/experimental.d.ts +19 -0
  129. package/dist/write/experimental.js +50 -0
  130. package/dist/write/experimental.js.map +1 -1
  131. package/dist/write/move.js +14 -6
  132. package/dist/write/move.js.map +1 -1
  133. package/dist/write/operations.d.ts +28 -4
  134. package/dist/write/pipeline.d.ts +2 -0
  135. package/dist/write/pipeline.js +59 -2
  136. package/dist/write/pipeline.js.map +1 -1
  137. package/dist/write/pre-state.js +33 -15
  138. package/dist/write/pre-state.js.map +1 -1
  139. package/dist/write/promote-clone.js +187 -19
  140. package/dist/write/promote-clone.js.map +1 -1
  141. package/dist/write/reorder.js +76 -27
  142. package/dist/write/reorder.js.map +1 -1
  143. package/dist/write/repeat-anchor.d.ts +30 -0
  144. package/dist/write/repeat-anchor.js +166 -1
  145. package/dist/write/repeat-anchor.js.map +1 -1
  146. package/dist/write/repeat-rule.js +10 -0
  147. package/dist/write/repeat-rule.js.map +1 -1
  148. package/dist/write/vectors/applescript.js +7 -16
  149. package/dist/write/vectors/applescript.js.map +1 -1
  150. package/dist/write/vectors/session-reachability.d.ts +55 -0
  151. package/dist/write/vectors/session-reachability.js +56 -8
  152. package/dist/write/vectors/session-reachability.js.map +1 -1
  153. package/dist/write/vectors/shortcuts.js +5 -14
  154. package/dist/write/vectors/shortcuts.js.map +1 -1
  155. package/dist/write/vectors/simulator.d.ts +16 -1
  156. package/dist/write/vectors/simulator.js +61 -10
  157. package/dist/write/vectors/simulator.js.map +1 -1
  158. package/dist/write/vectors/types.d.ts +67 -1
  159. package/dist/write/vectors/ui-recipes.js +128 -38
  160. package/dist/write/vectors/ui-recipes.js.map +1 -1
  161. package/dist/write/vectors/ui.d.ts +76 -0
  162. package/dist/write/vectors/ui.js +443 -37
  163. package/dist/write/vectors/ui.js.map +1 -1
  164. package/dist/write/verify/poller.d.ts +13 -0
  165. package/dist/write/verify/poller.js +38 -0
  166. package/dist/write/verify/poller.js.map +1 -1
  167. package/package.json +8 -1
  168. package/scripts/build-helpers.sh +104 -0
  169. package/scripts/deputy-cert-setup.sh +60 -0
  170. package/skills/things-cli/SKILL.md +8 -3
  171. package/skills/things-cli/references/errors.md +4 -0
  172. package/skills/things-cli/references/repeating.md +69 -0
@@ -1,11 +1,11 @@
1
1
  import { undoToken } from "../audit/schema.js";
2
- import { addDaysIso, decodePackedDate } from "../model/dates.js";
2
+ import { addDaysIso, decodePackedDate, localToday } from "../model/dates.js";
3
3
  import { byUuid } from "../read/detail.js";
4
4
  import { resolveProjectWriteTarget, resolveTaskUuidPrefix } from "../read/queries.js";
5
5
  import { runCloneProject, runCloneTodo } from "./clone.js";
6
6
  import { promoteProjectViaGui } from "./make-repeating-project.js";
7
7
  import { fingerprintLabel, runMutation, } from "./pipeline.js";
8
- import { deriveFixedAnchor, isIsoDate } from "./repeat-anchor.js";
8
+ import { assessOffRuleFirst, daysBetweenIso, deriveFixedAnchor, isIsoDate, } from "./repeat-anchor.js";
9
9
  import { assertRepeatRule, ruleToInverseParams } from "./repeat-rule.js";
10
10
  import { createDbReader } from "./verify/delta.js";
11
11
  import { H_UI_SESSION_UNREACHABLE } from "./vectors/session-reachability.js";
@@ -182,6 +182,18 @@ function landedRuleEcho(rule, startIso) {
182
182
  : "";
183
183
  return `landed: the series repeats ${cadence}${first}${deadlineNote}`;
184
184
  }
185
+ /**
186
+ * The DACON1 off-rule-first disclosure line, or null when the request is on-rule.
187
+ * When an explicit anchor disagrees with `--when` (deadline-shift-aware) the app
188
+ * lands an OFF-RULE first occurrence (honored for weekly/yearly); this states both
189
+ * halves of the landed pattern so the caller can eyeball the two-phase series.
190
+ * The dishonored monthly shape is refused upstream (assertRepeatRule), so only the
191
+ * honored disclosure ever reaches here.
192
+ */
193
+ function offRuleFirstNote(params) {
194
+ const assessment = assessOffRuleFirst(params);
195
+ return assessment?.kind === "honored" ? assessment.disclosure.message : null;
196
+ }
185
197
  /**
186
198
  * The template's app-materialized first occurrence (`rt1_instanceCreationStartDate`
187
199
  * = the date the current instance is dated at) as an ISO date, for the post-drive
@@ -195,6 +207,60 @@ function firstOccurrenceOf(db, templateUuid) {
195
207
  return null;
196
208
  return decodePackedDate(row.ic);
197
209
  }
210
+ /** A repeating instance's own scheduled start date (`startDate`) as ISO, or null. */
211
+ function instanceStartDate(db, instanceUuid) {
212
+ const row = db.prepare("SELECT startDate AS s FROM TMTask WHERE uuid = ?").get(instanceUuid);
213
+ if (row === undefined || row.s === null)
214
+ return null;
215
+ return decodePackedDate(row.s);
216
+ }
217
+ /**
218
+ * DBLSPAWN1 (docs/lab/dblspawn1-preserved-instance.md, golden-v3 / Things 3.22.14):
219
+ * a promote whose source is PRESERVED (SRCFATE deadline / terminal-element trigger)
220
+ * relinks that source IN PLACE as the current-occurrence instance. When the first
221
+ * occurrence is FUTURE-dated this double-books: the hidden template's cursor
222
+ * (`rt1_nextInstanceStartDate`) points at the SAME occurrence with
223
+ * `rt1_instanceCreationCount = 0` — the cursor does not know the occurrence is already
224
+ * materialized — so when the date ARRIVES the app spawns a SECOND instance alongside
225
+ * the preserved one (cell C: two rows dated the same day, icCount 0→1). A genuine
226
+ * duplicate factory, not cosmetic.
227
+ *
228
+ * So a promote composite trashes the redundant preserved FUTURE instance inside the
229
+ * txn: its content mirrors the template, and the cursor will mint the single real
230
+ * occurrence when the date arrives (matching a normal future-first series, which holds
231
+ * no materialized instance until then). A today/past-dated preserved instance is the
232
+ * LEGITIMATE current occurrence (the cursor has already advanced past it) — left
233
+ * untouched. Returns the disclosure warning (and the trashed uuid) or null when the
234
+ * promote did not preserve a future instance. Best-effort: a failed trash is reported
235
+ * in the warning rather than failing the whole compound (the series is already sound).
236
+ */
237
+ async function trashRedundantFuturePreservedInstance(deps, kind, promote, options, txnId, now) {
238
+ const rep = promote.repeating;
239
+ // Preserved iff the native promote relinked the source (replacedUuid === null) AND
240
+ // there is a materialized instance. A DELETE-fate promote reports replacedUuid !==
241
+ // null and never leaves a future instance to double-book.
242
+ if (rep === undefined || rep.replacedUuid !== null || rep.instanceUuid === null)
243
+ return null;
244
+ const instanceUuid = rep.instanceUuid;
245
+ const startIso = instanceStartDate(deps.db, instanceUuid);
246
+ if (startIso === null)
247
+ return null;
248
+ const todayIso = localToday(now, deps.zone);
249
+ if (daysBetweenIso(todayIso, startIso) <= 0)
250
+ return null; // today or past — legitimate
251
+ const trashOp = kind === "project" ? "project.delete" : "todo.delete";
252
+ const trashed = await runMutation(deps, trashOp, { uuid: instanceUuid }, legOptions(options, txnId));
253
+ const kindWord = kind === "project" ? "project" : "to-do";
254
+ const warning = trashed.kind === "ok"
255
+ ? `the source ${kindWord} was kept by the app as a pre-materialized first occurrence dated ` +
256
+ `${startIso}; because that date is in the future the series would have spawned a DUPLICATE ` +
257
+ `there, so the redundant occurrence was moved to the Trash — the series mints a single ` +
258
+ `occurrence when ${startIso} arrives`
259
+ : `the app kept the source ${kindWord} as a pre-materialized first occurrence dated ${startIso} ` +
260
+ `(a future date the series would DUPLICATE), and it could NOT be auto-trashed — remove it ` +
261
+ `with \`things ${kind} delete ${instanceUuid}\``;
262
+ return { warning, trashedUuid: instanceUuid };
263
+ }
198
264
  /**
199
265
  * The verify-failed result when the driven "Next:" first occurrence did not land
200
266
  * (issue #476, ANCH2). The series exists but on the wrong phase — report it
@@ -441,7 +507,8 @@ async function makeRepeatingViaClone(deps, kind, params, options) {
441
507
  : {}),
442
508
  };
443
509
  }
444
- const { templateUuid, instanceUuid } = discoveryOf(promote);
510
+ const { templateUuid } = discoveryOf(promote);
511
+ let { instanceUuid } = discoveryOf(promote);
445
512
  // Post-drive verify (ANCH2 + YANCH1): the instance START must have landed on the
446
513
  // requested `--when` — for a deadlined rule the driven Next is the deadline
447
514
  // (when + startDaysEarlier) and the app back-shifts the start to `--when`, so the
@@ -459,6 +526,18 @@ async function makeRepeatingViaClone(deps, kind, params, options) {
459
526
  "removes the new series (trash-both) and restores it",
460
527
  PLACEMENT_NOTE,
461
528
  ];
529
+ // DBLSPAWN1: if the promote PRESERVED the source (deadline / terminal-element
530
+ // trigger) as a FUTURE-dated instance, the app would spawn a duplicate on that date
531
+ // — trash the redundant occurrence and disclose (cursor mints the single real one).
532
+ const dbl = await trashRedundantFuturePreservedInstance(deps, kind, promote, options, txnId, now);
533
+ if (dbl !== null) {
534
+ warnings.push(dbl.warning);
535
+ if (instanceUuid === dbl.trashedUuid)
536
+ instanceUuid = null;
537
+ }
538
+ const offRule = offRuleFirstNote(effParams);
539
+ if (offRule !== null)
540
+ warnings.push(offRule);
462
541
  if (promote.warnings !== undefined)
463
542
  warnings.push(...promote.warnings);
464
543
  appendPromoteSummary(deps, {
@@ -504,9 +583,24 @@ async function addRepeatingViaCreate(deps, kind, addParams, rule, title, options
504
583
  // explicit anchor was given, and drive the anchor pop-ups — otherwise the
505
584
  // recurring rule keeps the dialog's untouched default (weekly Sunday, monthly
506
585
  // 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) };
586
+ //
587
+ // DEADLINE-MODE (DBLSPAWN1): a deadlined rule anchors on the DEADLINE, and each
588
+ // instance's START = deadline startDaysEarlier (DACON1 DC4). `--when` is the
589
+ // scheduled START, so the date the dialog's "Next:" field + anchor pop-ups must
590
+ // carry is when + startDaysEarlier (the deadline); the app back-shifts the start to
591
+ // `--when`. `runAddRepeatingTodo` maps a concrete item-level `--deadline` into the
592
+ // rule's deadline/startDaysEarlier here (and strips it from the seed, so the source
593
+ // is not SRCFATE-preserved as a double-booking future instance). For a non-deadlined
594
+ // rule the shift is 0 and the drive date equals `--when` (unchanged).
595
+ const whenIso = isIsoDate(addParams["when"]) ? addParams["when"] : null;
596
+ const deadlineShift = rule.deadline === true || (rule.startDaysEarlier ?? 0) > 0 ? (rule.startDaysEarlier ?? 0) : 0;
597
+ const driveIso = whenIso !== null ? addDaysIso(whenIso, deadlineShift) : null;
598
+ const nextIso = driveIso ?? undefined;
599
+ const expectedStartIso = whenIso ?? undefined;
600
+ const effRule = {
601
+ ...rule,
602
+ ...deriveFixedAnchor(rule, driveIso),
603
+ };
510
604
  // ADR1 (issue #480, requested behavior #3): carry the base to-do's --reminder
511
605
  // onto the SERIES. The create leg sets a one-off reminderTime on the seed, but
512
606
  // the Repeat-dialog conversion does NOT preserve it — the dialog OWNS the repeat
@@ -588,20 +682,35 @@ async function addRepeatingViaCreate(deps, kind, addParams, rule, title, options
588
682
  const patch = await cleanupSeed(deps, kind, createdUuid, promote, options, txnId);
589
683
  return { ...promote, op, ...patch };
590
684
  }
591
- const { templateUuid, instanceUuid } = discoveryOf(promote);
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) {
685
+ const { templateUuid } = discoveryOf(promote);
686
+ let { instanceUuid } = discoveryOf(promote);
687
+ // Post-drive verify (ANCH2 + DBLSPAWN1): the instance START must have landed on the
688
+ // requested `--when` for a deadlined rule the driven Next is the deadline (when +
689
+ // startDaysEarlier) and the app back-shifts the start to `--when`, so the check is
690
+ // against `expectedStartIso`, not the raw drive date. Fail closed on mismatch rather
691
+ // than report a wrong-phase ok. The series EXISTS here (promote landed) but on the
692
+ // wrong phase, so this is a genuine partial success, NOT a seed to trash.
693
+ if (expectedStartIso !== undefined) {
597
694
  const landed = firstOccurrenceOf(deps.db, templateUuid);
598
- if (landed !== nextIso)
599
- return nextMismatch(op, templateUuid, nextIso, landed);
695
+ if (landed !== expectedStartIso)
696
+ return nextMismatch(op, templateUuid, expectedStartIso, landed);
600
697
  }
601
698
  const warnings = [
602
- landedRuleEcho(ruleParams, nextIso ?? firstOccurrenceOf(deps.db, templateUuid)),
699
+ landedRuleEcho(ruleParams, expectedStartIso ?? firstOccurrenceOf(deps.db, templateUuid)),
603
700
  PLACEMENT_NOTE,
604
701
  ];
702
+ // DBLSPAWN1 backstop: the deadline-mapping above keeps the seed deadline-free (no
703
+ // SRCFATE preserve), but any OTHER preserve trigger reaching the seed (defensive)
704
+ // would double-book a future first occurrence — trash the redundant instance.
705
+ const dbl = await trashRedundantFuturePreservedInstance(deps, kind, promote, options, txnId, startedAt);
706
+ if (dbl !== null) {
707
+ warnings.push(dbl.warning);
708
+ if (instanceUuid === dbl.trashedUuid)
709
+ instanceUuid = null;
710
+ }
711
+ const offRule = offRuleFirstNote(ruleParams);
712
+ if (offRule !== null)
713
+ warnings.push(offRule);
605
714
  if (promote.warnings !== undefined)
606
715
  warnings.push(...promote.warnings);
607
716
  appendPromoteSummary(deps, {
@@ -623,9 +732,9 @@ async function addRepeatingViaCreate(deps, kind, addParams, rule, title, options
623
732
  warnings,
624
733
  });
625
734
  }
626
- export function runAddRepeatingTodo(deps, params, options = {}) {
627
- const { frequency, interval, afterCompletion, weekdays, monthly, yearly, ends, ...add } = params;
628
- const rule = {
735
+ export async function runAddRepeatingTodo(deps, params, options = {}) {
736
+ const { frequency, interval, afterCompletion, weekdays, monthly, yearly, ends, startDaysEarlier, ...add } = params;
737
+ const baseRule = {
629
738
  frequency,
630
739
  interval,
631
740
  ...(afterCompletion !== undefined && { afterCompletion }),
@@ -634,12 +743,71 @@ export function runAddRepeatingTodo(deps, params, options = {}) {
634
743
  ...(yearly !== undefined && { yearly }),
635
744
  ...(ends !== undefined && { ends }),
636
745
  };
746
+ // DBLSPAWN1 (docs/lab/dblspawn1-preserved-instance.md): a concrete item-level
747
+ // `--deadline <date>` on add-repeating maps to the RULE's deadline — each occurrence
748
+ // is due `deadline − when` days after its start (the "Add deadlines" + "start N days
749
+ // earlier" dialog fields). This is the deadline the series actually wants, and it
750
+ // keeps the SEED deadline-free: a seed carrying a deadline is SRCFATE-preserved as a
751
+ // materialized instance, and when that first occurrence is future-dated the app
752
+ // DOUBLE-BOOKS it against the template cursor and spawns a duplicate on the date
753
+ // (cell C). The seed owning the deadline was the two-step dance the live agent hit
754
+ // (add-repeating dropped the rule deadline, forcing a follow-up reschedule-repeat);
755
+ // mapping it up front makes that unnecessary. A deadline needs a concrete `--when`
756
+ // (the per-occurrence offset is deadline − start) and must be on/after it.
757
+ //
758
+ // DEADLINE/OFFSET AGREEMENT (ruling 2026-08-18): the same rule-global offset can be
759
+ // named two ways — a concrete `--deadline <date>` (offset = deadline − when) OR an
760
+ // explicit `--start-days-earlier N` (offset = N, deadline derived as when + N). The
761
+ // geometry when/deadline/N is OVER-DETERMINED: the dialog's start-offset is
762
+ // rule-global and the first occurrence's start is derived as due − N, so there is no
763
+ // per-first-instance gap to absorb a disagreement (unlike DACON1's off-rule-first
764
+ // calendar freedom). So when BOTH are given they must AGREE (`deadline − when == N`)
765
+ // — an exact match is harmless redundancy, a mismatch is inexpressible and refused
766
+ // fast (zero mutation). Either input ALONE maps to the rule and keeps the seed
767
+ // deadline-free.
768
+ let rule = baseRule;
769
+ let seedDeadline = add.deadline;
770
+ if ((add.deadline !== undefined || startDaysEarlier !== undefined) && afterCompletion !== true) {
771
+ if (!isIsoDate(add.when)) {
772
+ throw new RangeError("a repeating --deadline or --start-days-earlier needs a concrete --when date (the deadline " +
773
+ "offset is measured from each occurrence's start) — schedule the series on a YYYY-MM-DD " +
774
+ "--when, or drop --deadline / --start-days-earlier");
775
+ }
776
+ let startEarlier;
777
+ if (add.deadline !== undefined) {
778
+ const derived = daysBetweenIso(add.when, add.deadline);
779
+ if (derived < 0) {
780
+ throw new RangeError(`--deadline (${add.deadline}) must be on or after --when (${add.when}) — a deadline cannot ` +
781
+ "precede the occurrence's own start");
782
+ }
783
+ if (startDaysEarlier !== undefined && startDaysEarlier !== derived) {
784
+ throw new RangeError(`--deadline (${add.deadline}) puts each occurrence's due date ${derived} day` +
785
+ `${derived === 1 ? "" : "s"} after its start (--when ${add.when}), but ` +
786
+ `--start-days-earlier says ${startDaysEarlier} — these disagree. Drop one, or make them ` +
787
+ `agree (--start-days-earlier ${derived}, or --deadline ${addDaysIso(add.when, startDaysEarlier)}).`);
788
+ }
789
+ startEarlier = derived;
790
+ }
791
+ else {
792
+ // `--start-days-earlier N` alone: the deadline is derived as when + N. A bad N
793
+ // (non-integer / negative) is refused by assertRepeatRule once mapped.
794
+ startEarlier = startDaysEarlier;
795
+ }
796
+ rule = { ...baseRule, deadline: true, startDaysEarlier: startEarlier };
797
+ seedDeadline = undefined; // the RULE owns the deadline; the seed carries none
798
+ }
799
+ else if (startDaysEarlier !== undefined) {
800
+ // afterCompletion === true here: an after-completion repeat has no calendar
801
+ // start to count a deadline back from — refuse rather than silently drop it.
802
+ throw new RangeError("--start-days-earlier applies only to a fixed-schedule deadline — an after-completion repeat " +
803
+ "has no calendar start to count back from; drop --after-completion or --start-days-earlier");
804
+ }
637
805
  const addParams = {
638
806
  title: add.title,
639
807
  ...(add.notes !== undefined && { notes: add.notes }),
640
808
  ...(add.when !== undefined && { when: add.when }),
641
809
  ...(add.reminder !== undefined && { reminder: add.reminder }),
642
- ...(add.deadline !== undefined && { deadline: add.deadline }),
810
+ ...(seedDeadline !== undefined && { deadline: seedDeadline }),
643
811
  ...(add.tags !== undefined && { tags: add.tags }),
644
812
  ...(add.checklistItems !== undefined && { checklistItems: add.checklistItems }),
645
813
  ...(add.project !== undefined && { project: add.project }),
@@ -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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"}
@@ -46,9 +46,10 @@
46
46
  */
47
47
  import { randomBytes } from "node:crypto";
48
48
  import { addDaysIso, decodePackedDate, localToday, encodePackedDate } from "../model/dates.js";
49
+ import { TEMPLATE_PROJECTION_COLUMNS, templateProjectionDay, } from "../model/template-projection.js";
49
50
  import { resolveTaskUuidPrefix } from "../read/queries.js";
50
51
  import { computeReorderPre, resolveArea, resolveProject, todayEveningFlagOf } from "./pre-state.js";
51
- import { sdefDeclaresPrivateReorder } from "./experimental.js";
52
+ import { privateReorderIsNoOp, sdefDeclaresPrivateReorder } from "./experimental.js";
52
53
  import { fingerprintLabel, readAuthToken, runMutation, } from "./pipeline.js";
53
54
  import { simFenceActive } from "./vectors/simulator.js";
54
55
  import { createDbReader, evaluateDelta } from "./verify/delta.js";
@@ -265,15 +266,38 @@ function discloseTodayCohortRestamp(result, n) {
265
266
  }
266
267
  return { ...result, plan: { ...result.plan, invocation: `${result.plan.invocation} — ${note}` } };
267
268
  }
269
+ /**
270
+ * The installed Things marketing version, from the environment tuple the client
271
+ * already captures per write (write/environment.ts — memoized for the process).
272
+ * Null when the tracker is not wired or the app version is unreadable.
273
+ */
274
+ function installedThingsVersion(deps) {
275
+ return deps.environment?.capture().thingsVersion ?? null;
276
+ }
277
+ /**
278
+ * True when the native path is off because the installed Things executes the
279
+ * private reorder command as a silent no-op (3.23+) — the arm whose remedy is
280
+ * NEITHER `allow-experimental` NOR an app update.
281
+ */
282
+ function nativeVersionGated(deps) {
283
+ if (simFenceActive())
284
+ return false;
285
+ return privateReorderIsNoOp(installedThingsVersion(deps));
286
+ }
268
287
  /**
269
288
  * Why the native `_private_experimental_ reorder` command is unavailable, for the
270
- * fallback disclosure note. Either the config gate is off or the sdef canary
271
- * failed the two triggers {@link resolveStrategy} routes a fallback for.
289
+ * fallback disclosure note. The config gate is off, the installed Things applies
290
+ * the command as a silent no-op, or the sdef canary failed the three triggers
291
+ * {@link resolveStrategy} routes a fallback for.
272
292
  */
273
293
  function nativeUnavailableReason(deps) {
274
- return deps.config.allowExperimental
275
- ? "the app no longer declares the private reorder command (sdef canary failed)"
276
- : "allow-experimental is off";
294
+ if (!deps.config.allowExperimental)
295
+ return "allow-experimental is off";
296
+ if (nativeVersionGated(deps)) {
297
+ return (`Things ${installedThingsVersion(deps) ?? "on this host"} applies the private reorder ` +
298
+ "command without changing anything, so the native path is disabled");
299
+ }
300
+ return "the app no longer declares the private reorder command (sdef canary failed)";
277
301
  }
278
302
  /** The fallback disclosure warning — which protocol ran, and why native could not. */
279
303
  function fallbackNoteFor(deps, protocol) {
@@ -281,7 +305,10 @@ function fallbackNoteFor(deps, protocol) {
281
305
  `is unavailable (${nativeUnavailableReason(deps)})`);
282
306
  }
283
307
  /** A blocked result for a move-based SIT7 fallback while the shared move gate is off. */
284
- function moveFallbackDisabled(what) {
308
+ function moveFallbackDisabled(deps, what) {
309
+ // Turning allow-experimental back on is only a remedy when the config gate is
310
+ // what took the native path away — under the version gate it changes nothing.
311
+ const nativeRemedy = nativeVersionGated(deps) ? "" : ", or turn allow-experimental back on";
285
312
  return {
286
313
  kind: "blocked",
287
314
  result: {
@@ -292,14 +319,14 @@ function moveFallbackDisabled(what) {
292
319
  "unavailable), which shares the bounce gate and is disabled (bounce-enabled=false) — " +
293
320
  "it was NOT attempted (no destructive or unverified fallback exists)",
294
321
  remediation: "re-enable it with `things config set bounce-enabled true`" +
295
- " (each moved item costs a park + re-enter leg), or turn allow-experimental back on",
322
+ ` (each moved item costs a park + re-enter leg)${nativeRemedy}`,
296
323
  },
297
324
  };
298
325
  }
299
326
  /** Gate a move-based SIT7 fallback on bounce-enabled (the shared multi-leg move gate). */
300
327
  function fallbackOk(deps, what, kind, protocol) {
301
328
  if (!deps.config.bounceEnabled)
302
- return moveFallbackDisabled(what);
329
+ return moveFallbackDisabled(deps, what);
303
330
  return {
304
331
  kind: "ok",
305
332
  strategy: "fallback",
@@ -340,7 +367,8 @@ function bounceFallbackOk(deps, what, kind, protocol) {
340
367
  }
341
368
  /**
342
369
  * Whether the native `_private_experimental_ reorder` command is available — the
343
- * config gate is on AND the app still declares it in its sdef (the canary). The
370
+ * config gate is on, the installed Things still APPLIES the command (the GV4
371
+ * version gate), AND the app still declares it in its sdef (the canary). The
344
372
  * `day`-scope template leg family gates on this too: a repeating TO-DO template's
345
373
  * only safe day-block placement is the native single-id `list "Upcoming"` front-
346
374
  * insert (a dated when= leg CRASHES a template, §1), so a day-group carrying any
@@ -351,13 +379,21 @@ function nativeReorderAvailable(deps) {
351
379
  return false;
352
380
  // Under the bench simulator fence the simulator STANDS IN for the private
353
381
  // reorder surface (its `reorder` applier performs the native index re-rank
354
- // directly), so the real-app sdef canary is neither reachable nor relevant —
355
- // treat the command as declared. This keeps native-scope reorders hermetic and
356
- // host-independent, mirroring planner.ts letting a simulating vector satisfy a
357
- // forced vector and the accessibility/automation probes short-circuiting on the
358
- // fence. Production (fence inactive) still consults the real sdef canary.
382
+ // directly), so neither the real-app sdef canary nor the installed app's
383
+ // version is reachable or relevant — treat the command as declared and
384
+ // working. This keeps native-scope reorders hermetic and host-independent
385
+ // (the bench must behave the same on a 3.22 and a 3.23 host), mirroring
386
+ // planner.ts letting a simulating vector satisfy a forced vector and the
387
+ // accessibility/automation probes short-circuiting on the fence. Production
388
+ // (fence inactive) still consults the version gate and the real sdef canary.
359
389
  if (simFenceActive())
360
390
  return true;
391
+ // GV4 version gate: 3.23 and later accept the private command and change
392
+ // nothing (docs/lab/gv4-323-campaign.md §3.1). The sdef still declares it, so
393
+ // the declaration canary below cannot see the breakage — hence a version gate
394
+ // until the behavioral canary lands.
395
+ if (privateReorderIsNoOp(installedThingsVersion(deps)))
396
+ return false;
361
397
  return (deps.sdefProbe ?? sdefDeclaresPrivateReorder)();
362
398
  }
363
399
  function resolveStrategy(deps, params) {
@@ -697,19 +733,21 @@ async function runBounce(deps, params, bounceKind, options) {
697
733
  const firstUuid = params.uuids[0];
698
734
  const firstRow = firstUuid !== undefined
699
735
  ? deps.db
700
- .prepare("SELECT startDate, startBucket, deadline, start, rt1_nextInstanceStartDate AS proj, " +
736
+ .prepare("SELECT startDate, startBucket, deadline, start, " +
737
+ `${TEMPLATE_PROJECTION_COLUMNS}, ` +
701
738
  "(rt1_recurrenceRule IS NOT NULL OR repeater IS NOT NULL) AS isTemplate " +
702
739
  "FROM TMTask WHERE uuid = ?")
703
740
  .get(firstUuid)
704
741
  : undefined;
705
- // The day D: a template's PROJECTION day (rt1_nextInstanceStartDate), else a
706
- // scheduled row's startDate, else a forecast row's deadline (mirrors
742
+ // The day D: a template's PROJECTION day (its cached rt1_nextInstanceStartDate
743
+ // where it has one, else derived from the rule + spawn cursor),
744
+ // else a scheduled row's startDate, else a forecast row's deadline (mirrors
707
745
  // computeReorderPre so the when= legs and the member set agree on D).
708
746
  dayPacked =
709
747
  firstRow === undefined
710
748
  ? null
711
749
  : firstRow.isTemplate === 1
712
- ? firstRow.proj
750
+ ? templateProjectionDay(firstRow)
713
751
  : firstRow.startDate !== null && firstRow.startBucket === 0
714
752
  ? firstRow.startDate
715
753
  : firstRow.startDate === null && (firstRow.start === 1 || firstRow.start === 2)
@@ -831,9 +869,17 @@ async function runBounce(deps, params, bounceKind, options) {
831
869
  for (const r of pre.rejected)
832
870
  problems.push(`${r.uuid} ${r.reason}`);
833
871
  if (legOp === "todo.update") {
872
+ // The bounce re-schedules via `todo.update`, validated for to-dos only: a
873
+ // project row's daytime `when=today` landing is mid-pack, not the front-insert
874
+ // this protocol needs (ORD-12 / SIT3 EVEPROJ). The native wire is the only one
875
+ // that carries a project row on this axis (O12) — so when the version gate has
876
+ // taken the native path away, name THAT rather than advise an unreachable one.
877
+ const projectRemedy = nativeVersionGated(deps)
878
+ ? `and the native path that carries a project row here is unavailable (${nativeUnavailableReason(deps)}), so this set has no working order surface — reorder it without the project row, or arrange it in the app`
879
+ : "use the native strategy for Today lists containing projects";
834
880
  for (const uuid of pre.projectMembers) {
835
881
  problems.push(`${uuid} is a project — bounce re-schedules via todo.update, which is only validated ` +
836
- "for to-dos; use the native strategy for Today lists containing projects");
882
+ `for to-dos; ${projectRemedy}`);
837
883
  }
838
884
  }
839
885
  if (coBounce.length > cap) {
@@ -903,8 +949,10 @@ async function runBounce(deps, params, bounceKind, options) {
903
949
  const tmpls = coBounce.filter(isTmpl);
904
950
  return templateRefusal(`the ${dayIso} day-group contains repeating template(s) [${tmpls.join(", ")}] whose ` +
905
951
  "day-block placement needs the native private reorder surface (a dated when= leg CRASHES " +
906
- `a template — §1/§9e), but it is unavailable (${nativeUnavailableReason(deps)})`, "enable it with `things config set allow-experimental true` (and keep Things updated so the " +
907
- "sdef canary passes), or reorder the day-group without the template(s)");
952
+ `a template — §1/§9e), but it is unavailable (${nativeUnavailableReason(deps)})`, nativeVersionGated(deps)
953
+ ? "reorder the day-group without the template(s)"
954
+ : "enable it with `things config set allow-experimental true` (and keep Things updated " +
955
+ "so the sdef canary passes), or reorder the day-group without the template(s)");
908
956
  }
909
957
  // PROJECT-template SUFFIX RULE.
910
958
  const projectTemplates = coBounce.filter(isProjectTemplate);
@@ -2236,8 +2284,7 @@ function checkStillMember(deps, uuid, bounceKind, containerUuid, now, dayPacked)
2236
2284
  const packedToday = encodePackedDate(localToday(now));
2237
2285
  const row = deps.db
2238
2286
  .prepare("SELECT status, trashed, startBucket, startDate, start, type, area, project, heading, deadline, " +
2239
- "rt1_recurrenceRule AS rule, repeater, rt1_nextInstanceStartDate AS proj " +
2240
- "FROM TMTask WHERE uuid = ?")
2287
+ `repeater, ${TEMPLATE_PROJECTION_COLUMNS} FROM TMTask WHERE uuid = ?`)
2241
2288
  .get(uuid);
2242
2289
  if (row === undefined)
2243
2290
  return "the item no longer exists";
@@ -2328,9 +2375,11 @@ function checkStillMember(deps, uuid, bounceKind, containerUuid, now, dayPacked)
2328
2375
  if (row.type !== 0 && row.type !== 1)
2329
2376
  return "the item is not a to-do or project";
2330
2377
  // A repeating TEMPLATE stays a day-block member via its PROJECTION day
2331
- // (rt1_nextInstanceStartDate — TMPLSORT/PTMPL), not startDate/deadline.
2332
- if (row.rule !== null || row.repeater !== null) {
2333
- return row.proj === dayPacked
2378
+ // (TMPLSORT/PTMPL), not startDate/deadline. A now-null projection (the rule
2379
+ // was paused/ended out from under us) ejects it like any other day change.
2380
+ if (row.tpRule !== null || row.repeater !== null) {
2381
+ const proj = templateProjectionDay(row);
2382
+ return proj !== null && proj === dayPacked
2334
2383
  ? null
2335
2384
  : "the template's projection day changed (its recurrence rule was edited)";
2336
2385
  }