things-api 0.16.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 (208) 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/repeat-flags.d.ts +3 -3
  27. package/dist/cli/commands/repeat-flags.js +90 -33
  28. package/dist/cli/commands/repeat-flags.js.map +1 -1
  29. package/dist/cli/commands/writes.js +79 -6
  30. package/dist/cli/commands/writes.js.map +1 -1
  31. package/dist/cli/help.js +13 -2
  32. package/dist/cli/help.js.map +1 -1
  33. package/dist/cli/helpers-check.d.ts +10 -0
  34. package/dist/cli/helpers-check.js +59 -0
  35. package/dist/cli/helpers-check.js.map +1 -0
  36. package/dist/cli/interrupt.d.ts +42 -0
  37. package/dist/cli/interrupt.js +105 -0
  38. package/dist/cli/interrupt.js.map +1 -0
  39. package/dist/cli/main.js +27 -1
  40. package/dist/cli/main.js.map +1 -1
  41. package/dist/client.js +19 -2
  42. package/dist/client.js.map +1 -1
  43. package/dist/config.d.ts +70 -0
  44. package/dist/config.js +25 -1
  45. package/dist/config.js.map +1 -1
  46. package/dist/contracts.d.ts +9 -2
  47. package/dist/contracts.js +1 -1
  48. package/dist/contracts.js.map +1 -1
  49. package/dist/db/baselines/db-v26.js +8 -4
  50. package/dist/db/baselines/db-v26.js.map +1 -1
  51. package/dist/db/baselines/db-v27.d.ts +42 -0
  52. package/dist/db/baselines/db-v27.js +47 -0
  53. package/dist/db/baselines/db-v27.js.map +1 -0
  54. package/dist/db/baselines/index.js +2 -1
  55. package/dist/db/baselines/index.js.map +1 -1
  56. package/dist/db/locate.d.ts +4 -1
  57. package/dist/db/locate.js +3 -1
  58. package/dist/db/locate.js.map +1 -1
  59. package/dist/db/schema.d.ts +1 -1
  60. package/dist/db/schema.js +9 -0
  61. package/dist/db/schema.js.map +1 -1
  62. package/dist/deputy/bridge-worker.d.ts +1 -0
  63. package/dist/deputy/bridge-worker.js +79 -0
  64. package/dist/deputy/bridge-worker.js.map +1 -0
  65. package/dist/deputy/bridge.d.ts +14 -0
  66. package/dist/deputy/bridge.js +70 -0
  67. package/dist/deputy/bridge.js.map +1 -0
  68. package/dist/deputy/client.d.ts +19 -0
  69. package/dist/deputy/client.js +104 -0
  70. package/dist/deputy/client.js.map +1 -0
  71. package/dist/deputy/db-facade.d.ts +18 -0
  72. package/dist/deputy/db-facade.js +71 -0
  73. package/dist/deputy/db-facade.js.map +1 -0
  74. package/dist/deputy/files.d.ts +1 -0
  75. package/dist/deputy/files.js +16 -0
  76. package/dist/deputy/files.js.map +1 -0
  77. package/dist/deputy/install.d.ts +105 -0
  78. package/dist/deputy/install.js +467 -0
  79. package/dist/deputy/install.js.map +1 -0
  80. package/dist/deputy/notice.d.ts +6 -0
  81. package/dist/deputy/notice.js +28 -0
  82. package/dist/deputy/notice.js.map +1 -0
  83. package/dist/deputy/notices.d.ts +31 -0
  84. package/dist/deputy/notices.js +94 -0
  85. package/dist/deputy/notices.js.map +1 -0
  86. package/dist/deputy/osa.d.ts +21 -0
  87. package/dist/deputy/osa.js +72 -0
  88. package/dist/deputy/osa.js.map +1 -0
  89. package/dist/deputy/protocol.d.ts +86 -0
  90. package/dist/deputy/protocol.js +106 -0
  91. package/dist/deputy/protocol.js.map +1 -0
  92. package/dist/deputy/routing.d.ts +63 -0
  93. package/dist/deputy/routing.js +338 -0
  94. package/dist/deputy/routing.js.map +1 -0
  95. package/dist/deputy/shortcuts-exec.d.ts +10 -0
  96. package/dist/deputy/shortcuts-exec.js +50 -0
  97. package/dist/deputy/shortcuts-exec.js.map +1 -0
  98. package/dist/diagnose.d.ts +43 -1
  99. package/dist/diagnose.js +64 -2
  100. package/dist/diagnose.js.map +1 -1
  101. package/dist/index.d.ts +16 -2
  102. package/dist/index.js +17 -1
  103. package/dist/index.js.map +1 -1
  104. package/dist/mcp/server.js +25 -7
  105. package/dist/mcp/server.js.map +1 -1
  106. package/dist/model/mappers.d.ts +12 -3
  107. package/dist/model/mappers.js +6 -1
  108. package/dist/model/mappers.js.map +1 -1
  109. package/dist/model/occurrences.d.ts +14 -1
  110. package/dist/model/occurrences.js +20 -4
  111. package/dist/model/occurrences.js.map +1 -1
  112. package/dist/model/recurrence.d.ts +64 -9
  113. package/dist/model/recurrence.js +94 -19
  114. package/dist/model/recurrence.js.map +1 -1
  115. package/dist/model/template-projection.d.ts +26 -0
  116. package/dist/model/template-projection.js +113 -0
  117. package/dist/model/template-projection.js.map +1 -0
  118. package/dist/op-result.d.ts +46 -0
  119. package/dist/op-result.js +156 -0
  120. package/dist/op-result.js.map +1 -0
  121. package/dist/paths.d.ts +8 -0
  122. package/dist/paths.js +10 -0
  123. package/dist/paths.js.map +1 -1
  124. package/dist/read/detail.js +7 -1
  125. package/dist/read/detail.js.map +1 -1
  126. package/dist/read/queries.js +8 -1
  127. package/dist/read/queries.js.map +1 -1
  128. package/dist/read/views.d.ts +6 -4
  129. package/dist/read/views.js +60 -18
  130. package/dist/read/views.js.map +1 -1
  131. package/dist/sync-health.js +8 -3
  132. package/dist/sync-health.js.map +1 -1
  133. package/dist/trace/tracer.d.ts +87 -0
  134. package/dist/trace/tracer.js +167 -0
  135. package/dist/trace/tracer.js.map +1 -0
  136. package/dist/write/accessibility-probe.js +4 -2
  137. package/dist/write/accessibility-probe.js.map +1 -1
  138. package/dist/write/automation-probe.js +5 -1
  139. package/dist/write/automation-probe.js.map +1 -1
  140. package/dist/write/availability.js +7 -3
  141. package/dist/write/availability.js.map +1 -1
  142. package/dist/write/clear-reminder.js +24 -21
  143. package/dist/write/clear-reminder.js.map +1 -1
  144. package/dist/write/commands.js +95 -45
  145. package/dist/write/commands.js.map +1 -1
  146. package/dist/write/completion-context.d.ts +57 -0
  147. package/dist/write/completion-context.js +49 -0
  148. package/dist/write/completion-context.js.map +1 -0
  149. package/dist/write/experimental.d.ts +19 -0
  150. package/dist/write/experimental.js +50 -0
  151. package/dist/write/experimental.js.map +1 -1
  152. package/dist/write/failure-hints.d.ts +10 -1
  153. package/dist/write/failure-hints.js +8 -0
  154. package/dist/write/failure-hints.js.map +1 -1
  155. package/dist/write/guards.d.ts +1 -1
  156. package/dist/write/guards.js +10 -0
  157. package/dist/write/guards.js.map +1 -1
  158. package/dist/write/move.js +14 -6
  159. package/dist/write/move.js.map +1 -1
  160. package/dist/write/operations.d.ts +40 -7
  161. package/dist/write/pipeline.d.ts +41 -0
  162. package/dist/write/pipeline.js +289 -19
  163. package/dist/write/pipeline.js.map +1 -1
  164. package/dist/write/pre-state.d.ts +1 -1
  165. package/dist/write/pre-state.js +35 -17
  166. package/dist/write/pre-state.js.map +1 -1
  167. package/dist/write/promote-clone.js +434 -19
  168. package/dist/write/promote-clone.js.map +1 -1
  169. package/dist/write/reorder.js +76 -27
  170. package/dist/write/reorder.js.map +1 -1
  171. package/dist/write/repeat-anchor.d.ts +140 -0
  172. package/dist/write/repeat-anchor.js +403 -0
  173. package/dist/write/repeat-anchor.js.map +1 -0
  174. package/dist/write/repeat-asserts.d.ts +28 -0
  175. package/dist/write/repeat-asserts.js +169 -0
  176. package/dist/write/repeat-asserts.js.map +1 -0
  177. package/dist/write/repeat-rule.js +37 -12
  178. package/dist/write/repeat-rule.js.map +1 -1
  179. package/dist/write/vectors/applescript.js +7 -16
  180. package/dist/write/vectors/applescript.js.map +1 -1
  181. package/dist/write/vectors/session-reachability.d.ts +133 -0
  182. package/dist/write/vectors/session-reachability.js +151 -0
  183. package/dist/write/vectors/session-reachability.js.map +1 -0
  184. package/dist/write/vectors/shortcuts.js +5 -14
  185. package/dist/write/vectors/shortcuts.js.map +1 -1
  186. package/dist/write/vectors/simulator.d.ts +16 -1
  187. package/dist/write/vectors/simulator.js +122 -32
  188. package/dist/write/vectors/simulator.js.map +1 -1
  189. package/dist/write/vectors/types.d.ts +183 -10
  190. package/dist/write/vectors/ui-recipes.d.ts +8 -0
  191. package/dist/write/vectors/ui-recipes.js +246 -58
  192. package/dist/write/vectors/ui-recipes.js.map +1 -1
  193. package/dist/write/vectors/ui.d.ts +156 -14
  194. package/dist/write/vectors/ui.js +846 -84
  195. package/dist/write/vectors/ui.js.map +1 -1
  196. package/dist/write/verify/delta.d.ts +12 -14
  197. package/dist/write/verify/delta.js +35 -34
  198. package/dist/write/verify/delta.js.map +1 -1
  199. package/dist/write/verify/poller.d.ts +13 -0
  200. package/dist/write/verify/poller.js +38 -0
  201. package/dist/write/verify/poller.js.map +1 -1
  202. package/package.json +8 -1
  203. package/schema/envelope.schema.json +22 -0
  204. package/scripts/build-helpers.sh +104 -0
  205. package/scripts/deputy-cert-setup.sh +60 -0
  206. package/skills/things-cli/SKILL.md +11 -3
  207. package/skills/things-cli/references/errors.md +4 -0
  208. package/skills/things-cli/references/repeating.md +69 -0
@@ -32,6 +32,23 @@ function menuPress(label, path, canaryPath) {
32
32
  };
33
33
  }
34
34
  const REPEAT_SUBMENU_ANCHOR = `menu item "Repeat" of ${ITEMS_MENU}`;
35
+ /**
36
+ * Assert the reveal landed an eligible selection before pressing a menu item
37
+ * (ADR1, issue #480). `menuItemPath` is the item whose `AXEnabled` gates the
38
+ * action. Dynamic (its verdict depends on the runtime selection the reveal
39
+ * produced), so it is never canaried; the driver surfaces a non-OK verdict as an
40
+ * early, named failure instead of a downstream dialog-wait timeout.
41
+ */
42
+ function assertEligible(targetUuid, menuItemPath) {
43
+ return {
44
+ primitive: "assert-eligible",
45
+ label: "confirm the target to-do is selected and Items ▸ Repeat… is enabled",
46
+ value: targetUuid,
47
+ path: menuItemPath,
48
+ dynamic: true,
49
+ addressing: "title",
50
+ };
51
+ }
35
52
  /** Wait for a dynamic element (sheet/popover) to appear, then abort on timeout. */
36
53
  function waitFor(label, path, timeoutMs = 5000) {
37
54
  return { primitive: "wait", label, path, timeoutMs, dynamic: true, addressing: "title" };
@@ -61,6 +78,7 @@ export function convertToProjectRecipe(op, targetUuid) {
61
78
  return {
62
79
  op,
63
80
  targetUuid,
81
+ needsWindowReachability: true,
64
82
  steps: [
65
83
  ...preamble(targetUuid),
66
84
  menuPress("Items ▸ Convert to Project…", `menu item "Convert to Project…" of ${ITEMS_MENU}`),
@@ -93,6 +111,7 @@ export function headingConvertToProjectRecipe(projectUuid, ordinal) {
93
111
  return {
94
112
  op: "project.promote-heading",
95
113
  targetUuid: projectUuid,
114
+ needsWindowReachability: true,
96
115
  steps: [
97
116
  {
98
117
  primitive: "reveal",
@@ -169,30 +188,46 @@ const DIALOG_FREQUENCY = dualForm("pop up button 1");
169
188
  const DIALOG_INTERVAL = dualForm("text field 1 of group 1");
170
189
  /** OK button. */
171
190
  const DIALOG_OK = dualForm(`button "OK"`);
172
- // --- UIC6-CERTIFIED controls (corrected from the field-map best-guess) ---
191
+ // --- UIC6-CERTIFIED controls, RE-INDEXED PER DIALOG SHAPE (RDLG2) ----------
173
192
  // The dialog's rule controls (except the reminder/end-date pickers) all live in
174
193
  // the cadence AXGroup (`group 1`); UIC6 sat the live tree and fixed the
175
- // provisional structural indices. The invariant that made them addressable:
176
- // the "Ends" pop-up is ALWAYS `pop up button 1 of group 1`, so the per-frequency
177
- // pop-ups follow it (weekday=2; monthly mode=2/ordinal=3; yearly month=2/mode=3/
178
- // ordinal=4). Titles/`_NS:` ids are never used (both drift). See
179
- // docs/lab/uic6-rule-vocabulary.md for the per-control evidence.
180
- /** After-completion cadence unit pop-up — the ONLY group pop-up in that mode. */
194
+ // provisional structural indices, and RDLG2 re-derived them for Things 3.23.
195
+ // The invariant that makes them addressable is unchanged the "Ends" pop-up is
196
+ // ALWAYS `pop up button 1 of group 1` and the per-frequency pop-ups follow it
197
+ // but 3.23 inserted the new `Next:` occurrence pop-up between the two, shifting
198
+ // every per-frequency index by +1. Both index sets ship, keyed to the SHAPE the
199
+ // driver measures in the open dialog (`probe-dialog-shape`), never to the app
200
+ // version. Titles/`_NS:` ids are never used (both drift). Evidence:
201
+ // docs/lab/uic6-rule-vocabulary.md (≤3.22) and docs/lab/rdlg2-323-recipe-cert.md.
202
+ /** After-completion cadence unit pop-up — the ONLY group pop-up in that mode (both shapes). */
181
203
  const DIALOG_AC_UNIT = dualForm("pop up button 1 of group 1");
182
- /** Weekly day-of-week pop-up — pop up button 2 (Ends is pop up button 1). */
183
- const DIALOG_WEEKDAY = dualForm("pop up button 2 of group 1");
184
- /** Weekly "+" button that adds a weekday row (title-less AXButton — button 1 of the group). */
185
- const DIALOG_ADD_WEEKDAY = dualForm("button 1 of group 1");
186
- /** Monthly MODE pop-up (`day` · Sunday…Saturday) — pop up button 2. */
187
- const DIALOG_MONTH_MODE = dualForm("pop up button 2 of group 1");
188
- /** Monthly ORDINAL pop-up (`last` · 1st…31st) — pop up button 3. */
189
- const DIALOG_MONTH_ORDINAL = dualForm("pop up button 3 of group 1");
190
- /** Yearly MONTH pop-up — pop up button 2 (Ends 1, then month/mode/ordinal). */
191
- const DIALOG_YEAR_MONTH = dualForm("pop up button 2 of group 1");
192
- const DIALOG_YEAR_MODE = dualForm("pop up button 3 of group 1");
193
- const DIALOG_YEAR_ORDINAL = dualForm("pop up button 4 of group 1");
194
204
  /** "Ends" bound pop-up (`never` · `after` · `on date`) — always pop up button 1 of the group. */
195
205
  const DIALOG_ENDS = dualForm("pop up button 1 of group 1");
206
+ /** The cadence group itself — the handle the shape probe and the weekday converge address. */
207
+ const DIALOG_GROUP = dualForm("group 1");
208
+ /** The 3.23 `Next:` first-occurrence pop-up — group pop-up 2 (this shape only). */
209
+ const DIALOG_NEXT_POPUP = dualForm("pop up button 2 of group 1");
210
+ /** A group pop-up addressed at DIFFERENT indices in the two dialog shapes (RDLG2). */
211
+ function shapedPopup(nextPopupIndex, legacyIndex) {
212
+ return {
213
+ "next-popup": { pathCandidates: dualForm(`pop up button ${nextPopupIndex} of group 1`) },
214
+ legacy: { pathCandidates: dualForm(`pop up button ${legacyIndex} of group 1`) },
215
+ };
216
+ }
217
+ /** Monthly MODE pop-up (`day` · Sunday…Saturday) — after Ends (+ Next on 3.23). */
218
+ const DIALOG_MONTH_MODE = shapedPopup(3, 2);
219
+ /** Monthly ORDINAL pop-up (`last` · 1st…31st). */
220
+ const DIALOG_MONTH_ORDINAL = shapedPopup(4, 3);
221
+ /** Yearly MONTH pop-up, then its mode + ordinal. */
222
+ const DIALOG_YEAR_MONTH = shapedPopup(3, 2);
223
+ const DIALOG_YEAR_MODE = shapedPopup(4, 3);
224
+ const DIALOG_YEAR_ORDINAL = shapedPopup(5, 4);
225
+ /**
226
+ * The group pop-up index of the FIRST weekday row, per shape — the one input the
227
+ * weekday-converge loop needs beyond the target set (it derives the row count and
228
+ * the add button from live structure).
229
+ */
230
+ const WEEKDAY_BASE = { "next-popup": 3, legacy: 2 };
196
231
  /** "Ends after [n]" count field — becomes text field 1 of the group once shown (interval was set earlier while it was the sole field). */
197
232
  const DIALOG_ENDS_COUNT = dualForm("text field 1 of group 1");
198
233
  /** "Add reminders" checkbox (sheet-level, title-pinned). The time is an AXDateTimeArea driven by set-datetime. */
@@ -260,6 +295,14 @@ function selectPopup(label, pathCandidates, value) {
260
295
  addressing: "title",
261
296
  };
262
297
  }
298
+ /**
299
+ * A select-popup whose group INDEX depends on the dialog shape (RDLG2) — the
300
+ * driver substitutes the measured shape's candidates before dispatch, and refuses
301
+ * if the shape was never measured.
302
+ */
303
+ function selectPopupShaped(label, shaped, value) {
304
+ return { primitive: "select-popup", label, shaped, value, dynamic: true, addressing: "title" };
305
+ }
263
306
  /**
264
307
  * A select-popup that clicks the FIRST of several candidate menu-item LABELS
265
308
  * that exists (the after-completion unit's singular/plural pair — defect (c)).
@@ -288,26 +331,54 @@ function pressControl(label, pathCandidates) {
288
331
  return { primitive: "press", label, pathCandidates, dynamic: true, addressing: "title" };
289
332
  }
290
333
  /**
291
- * Set the dialog's date/time picker (reminder time / end-date bound). The
292
- * control is an `AXDateTimeArea` located by role within the front dialog (UIC6),
293
- * so it carries no element path the driver's set-datetime primitive finds it.
294
- * `spec` is `time:HH:mm` or `date:YYYY-MM-DD`.
334
+ * Converge a dialog checkbox to `target` via the deterministic closed-loop
335
+ * ensure-checkbox primitive (RRD1) read, press only on a mismatch, confirm.
336
+ * Replaces the old blind `pressControl`, which flipped an already-correct box on a
337
+ * PRE-POPULATED reschedule dialog (the live bug: a blind "Add deadlines" press
338
+ * unchecked an already-deadlined rule, hiding the start-earlier field). Emitted
339
+ * ONLY for a checkbox the caller actually addressed; an unspecified deadline/
340
+ * reminder emits no step, so the pre-populated state is preserved (#492).
341
+ */
342
+ function ensureCheckbox(label, pathCandidates, target) {
343
+ return {
344
+ primitive: "ensure-checkbox",
345
+ label,
346
+ pathCandidates,
347
+ checkboxTarget: target,
348
+ dynamic: true,
349
+ addressing: "title",
350
+ };
351
+ }
352
+ /**
353
+ * Set ONE of the dialog's date/time pickers (Next first-occurrence / end-date
354
+ * bound / reminder time). Each is an `AXDateTimeArea` located by role within the
355
+ * front dialog, so it carries no element path — the driver's set-datetime
356
+ * primitive selects DETERMINISTICALLY by `target` (ANCH2: reminder = the
357
+ * time-bearing area; next = top midnight picker; ends = bottom midnight picker),
358
+ * never "the first area by role". `spec` is `time:HH:mm` or `date:YYYY-MM-DD`.
295
359
  */
296
- function setDateTime(label, spec) {
297
- return { primitive: "set-datetime", label, value: spec, dynamic: true, addressing: "title" };
360
+ function setDateTime(label, spec, target) {
361
+ return {
362
+ primitive: "set-datetime",
363
+ label,
364
+ value: spec,
365
+ dtTarget: target,
366
+ dynamic: true,
367
+ addressing: "title",
368
+ };
298
369
  }
299
370
  /** Steps that drive the day anchor of a monthly rule into the mode + ordinal pop-ups. */
300
371
  function monthlyAnchorSteps(anchor, mode, ordinal) {
301
372
  if ("day" in anchor) {
302
373
  // mode = "day"; ordinal names the day-of-month (or "last").
303
374
  return [
304
- selectPopup("monthly mode = day", mode, "day"),
305
- selectPopup(`monthly day = ${anchor.day}`, ordinal, anchor.day === "last" ? "last" : ORDINAL_TITLE_ANY(anchor.day)),
375
+ selectPopupShaped("monthly mode = day", mode, "day"),
376
+ selectPopupShaped(`monthly day = ${anchor.day}`, ordinal, anchor.day === "last" ? "last" : ORDINAL_TITLE_ANY(anchor.day)),
306
377
  ];
307
378
  }
308
379
  return [
309
- selectPopup(`monthly weekday = ${anchor.weekday}`, mode, WEEKDAY_TITLE[anchor.weekday]),
310
- selectPopup(`monthly ordinal = ${anchor.ordinal}`, ordinal, ordinalTitle(anchor.ordinal)),
380
+ selectPopupShaped(`monthly weekday = ${anchor.weekday}`, mode, WEEKDAY_TITLE[anchor.weekday]),
381
+ selectPopupShaped(`monthly ordinal = ${anchor.ordinal}`, ordinal, ordinalTitle(anchor.ordinal)),
311
382
  ];
312
383
  }
313
384
  /** Day-of-month ordinal display (1st…31st). */
@@ -353,46 +424,131 @@ function repeatDialogEntry(rule) {
353
424
  steps.push(selectPopup(`frequency = ${rule.frequency}`, DIALOG_FREQUENCY, rule.frequency));
354
425
  }
355
426
  steps.push(setField(`interval = ${rule.interval}`, DIALOG_INTERVAL, String(rule.interval)));
427
+ // MEASURE the dialog before touching any control the 3.23 redesign moved
428
+ // (RDLG2). Emitted only when such a control is actually addressed, so the
429
+ // certified two-control path (frequency + interval + OK) costs no extra hop —
430
+ // and so an after-completion rule, whose cadence group has neither an Ends nor
431
+ // a Next label to measure, never runs a probe that could only say "unknown".
432
+ const needsShape = rule.afterCompletion !== true &&
433
+ ((rule.weekdays !== undefined && rule.weekdays.length > 0) ||
434
+ rule.monthly !== undefined ||
435
+ rule.yearly !== undefined ||
436
+ rule.next !== undefined);
437
+ if (needsShape) {
438
+ steps.push({
439
+ primitive: "probe-dialog-shape",
440
+ label: "measure the Repeat dialog's shape (an occurrence pop-up on the Next: row, or a date field)",
441
+ pathCandidates: DIALOG_GROUP,
442
+ dynamic: true,
443
+ addressing: "title",
444
+ });
445
+ }
356
446
  if (rule.weekdays !== undefined && rule.weekdays.length > 0) {
357
- const [first, ...rest] = rule.weekdays;
358
- if (first !== undefined) {
359
- steps.push(selectPopup(`weekday = ${first}`, DIALOG_WEEKDAY, WEEKDAY_TITLE[first]));
360
- }
361
- // Each additional weekday: press "+" to add a row, then the new pop-up. The
362
- // added pop-up's index shifts per row; UIC6 confirms the exact addressing —
363
- // provisionally the same DIALOG_WEEKDAY pop-up re-driven after the add.
364
- for (const day of rest) {
365
- steps.push(pressControl(`add weekday row (${day})`, DIALOG_ADD_WEEKDAY));
366
- steps.push(selectPopup(`weekday += ${day}`, DIALOG_WEEKDAY, WEEKDAY_TITLE[day]));
367
- }
447
+ // ONE closed-loop converge (RRD1 fix) rather than "set row 1, then press +
448
+ // and re-drive the same index": the old shape left a PRE-POPULATED dialog's
449
+ // existing weekdays in the rule and could never shrink a set. The driver
450
+ // reads the live rows, grows to the target count, assigns every row from the
451
+ // target set (cycling), and reads them all back. See ui.ts
452
+ // axConvergeWeekdaysScript for the loop and its evidence.
453
+ const titles = rule.weekdays.map((day) => WEEKDAY_TITLE[day]).join(",");
454
+ steps.push({
455
+ primitive: "converge-weekdays",
456
+ label: `weekdays = ${rule.weekdays.join(", ")}`,
457
+ pathCandidates: DIALOG_GROUP,
458
+ shaped: {
459
+ "next-popup": { value: `${WEEKDAY_BASE["next-popup"]}|${titles}` },
460
+ legacy: { value: `${WEEKDAY_BASE.legacy}|${titles}` },
461
+ },
462
+ dynamic: true,
463
+ addressing: "title",
464
+ });
368
465
  }
369
466
  if (rule.monthly !== undefined) {
370
467
  steps.push(...monthlyAnchorSteps(rule.monthly, DIALOG_MONTH_MODE, DIALOG_MONTH_ORDINAL));
371
468
  }
372
469
  if (rule.yearly !== undefined) {
373
470
  const y = rule.yearly;
374
- steps.push(selectPopup(`yearly month = ${y.month}`, DIALOG_YEAR_MONTH, MONTH_TITLE[y.month - 1] ?? ""));
471
+ steps.push(selectPopupShaped(`yearly month = ${y.month}`, DIALOG_YEAR_MONTH, MONTH_TITLE[y.month - 1] ?? ""));
375
472
  steps.push(...monthlyAnchorSteps(y, DIALOG_YEAR_MODE, DIALOG_YEAR_ORDINAL));
376
473
  }
377
- if (rule.ends !== undefined && rule.ends.kind !== "never") {
378
- if (rule.ends.kind === "after") {
379
- steps.push(selectPopup("ends = after", DIALOG_ENDS, "after"));
380
- steps.push(setField(`ends after = ${rule.ends.count}`, DIALOG_ENDS_COUNT, String(rule.ends.count)));
381
- }
382
- else {
383
- steps.push(selectPopup("ends = on date", DIALOG_ENDS, "on date"));
384
- steps.push(setDateTime(`ends on = ${rule.ends.date}`, `date:${rule.ends.date}`));
474
+ // "Add deadlines" / "start N days earlier" — DEADLINE MODE, converged (RRD1)
475
+ // BEFORE the "Next:" field is driven below. In deadline mode the "Next:" field IS
476
+ // the deadline date and the instance start = deadline startDaysEarlier (YANCH1
477
+ // #493), so the deadline-date shift `deadlineDriveNext` computes must be applied
478
+ // against the CONVERGED checkbox state; a box flipped AFTER Next was driven (the
479
+ // old order) changed Next's meaning under an already-committed value — the live
480
+ // bug where a blind press on an already-deadlined reschedule dialog UNCHECKED the
481
+ // box and hid the start-earlier field. Converging the checkbox reveals only a
482
+ // NUMBER field ("start N days earlier"), never a date area (YANCH1 census), so it
483
+ // does not perturb the date-area targeting the ends/Next drives below rely on.
484
+ //
485
+ // Target (requested-fields-only, #492): an explicit `deadline` converges to it; a
486
+ // bare `startDaysEarlier > 0` implies deadline:true; an UNSPECIFIED deadline emits
487
+ // NO step, PRESERVING the pre-populated checkbox state (a reschedule that does not
488
+ // address the deadline leaves it exactly as it was).
489
+ const deadlineTarget = rule.deadline !== undefined
490
+ ? rule.deadline
491
+ : (rule.startDaysEarlier ?? 0) > 0
492
+ ? true
493
+ : undefined;
494
+ if (deadlineTarget !== undefined) {
495
+ steps.push(ensureCheckbox("Add deadlines", DIALOG_ADD_DEADLINES, deadlineTarget));
496
+ // startDaysEarlier is requested-fields-only too: drive the offset field only
497
+ // when it was given (>0), else leave it at its pre-populated value.
498
+ if (deadlineTarget && (rule.startDaysEarlier ?? 0) > 0) {
499
+ steps.push(setField(`start ${rule.startDaysEarlier} days earlier`, DIALOG_START_EARLIER, String(rule.startDaysEarlier)));
385
500
  }
386
501
  }
387
- if (rule.reminder !== undefined) {
388
- steps.push(pressControl("check Add reminders", DIALOG_ADD_REMINDERS));
389
- steps.push(setDateTime(`reminder = ${rule.reminder}`, `time:${rule.reminder}`));
502
+ // Ends bound + "Next:" first-occurrence field (ANCH2, issue #476). ORDER MATTERS:
503
+ // select "Ends: on date" FIRST (revealing its date area) BEFORE driving Next, so
504
+ // both date areas already exist when each is set through its own deterministic
505
+ // target. Driving Next while it is the SOLE date area and THEN adding the ends
506
+ // area collapses the whole series to the ends date (ANCH2 RC4); selecting the
507
+ // ends bound first — the proven-clean order (cell d) — keeps them distinct.
508
+ const endsOnDate = rule.ends !== undefined && rule.ends.kind === "on-date" ? rule.ends : null;
509
+ if (rule.ends !== undefined && rule.ends.kind === "after") {
510
+ steps.push(selectPopup("ends = after", DIALOG_ENDS, "after"));
511
+ steps.push(setField(`ends after = ${rule.ends.count}`, DIALOG_ENDS_COUNT, String(rule.ends.count)));
390
512
  }
391
- if (rule.deadline === true || (rule.startDaysEarlier ?? 0) > 0) {
392
- steps.push(pressControl("check Add deadlines", DIALOG_ADD_DEADLINES));
393
- if ((rule.startDaysEarlier ?? 0) > 0) {
394
- steps.push(setField(`start ${rule.startDaysEarlier} days earlier`, DIALOG_START_EARLIER, String(rule.startDaysEarlier)));
395
- }
513
+ else if (endsOnDate !== null) {
514
+ steps.push(selectPopup("ends = on date", DIALOG_ENDS, "on date"));
515
+ }
516
+ // After-completion has no calendar, so no Next. The control's CLASS differs by
517
+ // dialog shape, so BOTH drives are emitted and the driver runs the one that
518
+ // matches what it measured (RDLG2):
519
+ // - legacy (≤3.22): a free-form `AXDateTimeArea` — ANY date, on-rule or not;
520
+ // - next-popup (3.23+): a bounded MENU of the rule's own occurrences, so an
521
+ // off-rule first occurrence is UNREACHABLE and the step fails closed with
522
+ // the reason (the app removed the affordance; we do not fake it by picking
523
+ // a neighbouring date).
524
+ if (rule.next !== undefined && rule.afterCompletion !== true) {
525
+ steps.push({
526
+ ...setDateTime(`Next (first occurrence) = ${rule.next}`, `date:${rule.next}`, "next"),
527
+ onlyShape: "legacy",
528
+ });
529
+ steps.push({
530
+ primitive: "select-next-occurrence",
531
+ label: `Next (first occurrence) = ${rule.next}`,
532
+ pathCandidates: DIALOG_NEXT_POPUP,
533
+ value: rule.next,
534
+ onlyShape: "next-popup",
535
+ dynamic: true,
536
+ addressing: "title",
537
+ });
538
+ }
539
+ if (endsOnDate !== null) {
540
+ steps.push(setDateTime(`ends on = ${endsOnDate.date}`, `date:${endsOnDate.date}`, "ends"));
541
+ }
542
+ // "Add reminders" — converged (RRD1), then its time driven. Kept AFTER the Next/
543
+ // ends date drives (its ANCH2-certified position): a freshly-checked reminder
544
+ // area defaults to a NON-midnight 12:00 (ANCH2 census), so the set-datetime
545
+ // tod discriminator never confuses it with the midnight Next/ends pickers,
546
+ // whatever the creation order. Requested-fields-only (#492): an unspecified
547
+ // reminder emits NO step, PRESERVING the pre-populated checkbox + time. (The rule
548
+ // vocabulary carries no "reminder off", so the only requested target is checked.)
549
+ if (rule.reminder !== undefined) {
550
+ steps.push(ensureCheckbox("Add reminders", DIALOG_ADD_REMINDERS, true));
551
+ steps.push(setDateTime(`reminder = ${rule.reminder}`, `time:${rule.reminder}`, "reminder"));
396
552
  }
397
553
  steps.push(pressControl('press "OK"', DIALOG_OK));
398
554
  return steps;
@@ -401,8 +557,15 @@ export function makeRepeatingRecipe(targetUuid, frequency, interval, extras = {}
401
557
  return {
402
558
  op: "todo.make-repeating",
403
559
  targetUuid,
560
+ needsWindowReachability: true,
404
561
  steps: [
405
562
  ...preamble(targetUuid),
563
+ // ADR1 (#480): the reveal is assumed to select the to-do row, but on some
564
+ // surfaces it can navigate without selecting — and an AXPress on the
565
+ // resulting DISABLED Repeat… item silently no-ops, so the dialog never
566
+ // opens and the drive died opaquely at the dialog-wait timeout. Assert the
567
+ // eligible selection FIRST, failing early + named on a miss.
568
+ assertEligible(targetUuid, `menu item "Repeat…" of ${ITEMS_MENU}`),
406
569
  menuPress("Items ▸ Repeat…", `menu item "Repeat…" of ${ITEMS_MENU}`),
407
570
  ...repeatDialogEntry({ frequency, interval, ...extras }),
408
571
  ],
@@ -430,6 +593,7 @@ export function projectMakeRepeatingRecipe(containerReveal, projectUuid, title,
430
593
  return {
431
594
  op: "project.make-repeating",
432
595
  targetUuid: projectUuid,
596
+ needsWindowReachability: true,
433
597
  steps: [
434
598
  {
435
599
  primitive: "reveal",
@@ -474,9 +638,31 @@ export function rescheduleRepeatRecipe(targetUuid, frequency, interval, extras =
474
638
  return {
475
639
  op: "todo.reschedule-repeat",
476
640
  targetUuid,
641
+ needsWindowReachability: true,
477
642
  steps: [
478
643
  ...preamble(targetUuid),
479
- menuPress("Items Repeat Reschedule…", `menu item "Reschedule…" of menu 1 of menu item "Repeat" of ${ITEMS_MENU}`, REPEAT_SUBMENU_ANCHOR),
644
+ // The submenu itself is still canaried (it only materializes on a selected
645
+ // TEMPLATE, so its presence is the real precondition) …
646
+ {
647
+ primitive: "resolve",
648
+ label: "Items ▸ Repeat submenu",
649
+ path: REPEAT_SUBMENU_ANCHOR,
650
+ addressing: "title",
651
+ },
652
+ // … but the ITEM was RENAMED: `Reschedule…` through Things 3.22, `Edit
653
+ // Rule…` from 3.23 (RDLG1). Both spellings ship as candidates so the drive
654
+ // self-selects on whichever the installed app offers; neither present is a
655
+ // fail-closed miss naming the step.
656
+ {
657
+ primitive: "press",
658
+ label: "Items ▸ Repeat ▸ Edit Rule… (Reschedule… on Things ≤ 3.22)",
659
+ pathCandidates: [
660
+ `menu item "Edit Rule…" of menu 1 of menu item "Repeat" of ${ITEMS_MENU}`,
661
+ `menu item "Reschedule…" of menu 1 of menu item "Repeat" of ${ITEMS_MENU}`,
662
+ ],
663
+ dynamic: true,
664
+ addressing: "title",
665
+ },
480
666
  ...repeatDialogEntry({ frequency, interval, ...extras }),
481
667
  ],
482
668
  };
@@ -584,6 +770,7 @@ export function projectRescheduleRepeatRecipe(targetUuid, frequency, interval, e
584
770
  return {
585
771
  op: "project.reschedule-repeat",
586
772
  targetUuid,
773
+ needsWindowReachability: true,
587
774
  steps: [
588
775
  ...projectPreamble(targetUuid),
589
776
  openProjectRepeatPopover(),
@@ -633,6 +820,7 @@ export function moveHeadingToProjectRecipe(sourceProjectUuid, headingTitle, dest
633
820
  return {
634
821
  op: "project.move-heading-to-project",
635
822
  targetUuid: sourceProjectUuid,
823
+ needsWindowReachability: true,
636
824
  steps: [
637
825
  {
638
826
  primitive: "reveal",
@@ -1 +1 @@
1
- {"version":3,"file":"ui-recipes.js","sourceRoot":"","sources":["../../../src/write/vectors/ui-recipes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-recipes.js","sourceRoot":"","sources":["../../../src/write/vectors/ui-recipes.ts"],"names":[],"mappings":"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"}