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 +1 @@
1
- {"version":3,"file":"repeat-anchor.js","sourceRoot":"","sources":["../../src/write/repeat-anchor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repeat-anchor.js","sourceRoot":"","sources":["../../src/write/repeat-anchor.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { assessOffRuleFirst } from "./repeat-anchor.js";
1
2
  import { WEEKDAYS, } from "./operations.js";
2
3
  const FREQUENCIES = ["daily", "weekly", "monthly", "yearly"];
3
4
  /** Weekday name → rule encoding (wd 0 = Sunday). */
@@ -167,6 +168,15 @@ export function assertRepeatRule(params) {
167
168
  throw new RangeError("startDaysEarlier requires a deadline (it counts days before the deadline)");
168
169
  }
169
170
  }
171
+ // DACON1: an EXPLICIT calendar anchor that disagrees with `--when` requests an
172
+ // OFF-RULE first occurrence (first on `--when`, the anchor thereafter). The app
173
+ // HONORS this for weekly/yearly (allowed — disclosed at the call sites), but a
174
+ // MONTHLY rule's dialog snaps the first occurrence to the anchor day, so that
175
+ // shape is inexpressible and fail-closed here before any mutation. On-rule
176
+ // requests and `--when`-only (derived-anchor) requests return null.
177
+ const offRule = assessOffRuleFirst(params);
178
+ if (offRule?.kind === "dishonored")
179
+ throw new RangeError(offRule.refusal);
170
180
  }
171
181
  /** The mutually-exclusive Ends bound of a decoded rule, or null if inexpressible. */
172
182
  function endsOf(rule) {
@@ -1 +1 @@
1
- {"version":3,"file":"repeat-rule.js","sourceRoot":"","sources":["../../src/write/repeat-rule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repeat-rule.js","sourceRoot":"","sources":["../../src/write/repeat-rule.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * Things launches it with focus steal (A40/A41), which the pipeline's
6
6
  * ensure-running step prevents.
7
7
  */
8
- import { execFile } from "node:child_process";
8
+ import { osaExec } from "../../deputy/osa.js";
9
9
  export const APPLESCRIPT_MATRIX = {
10
10
  "todo.add": {
11
11
  support: "yes",
@@ -238,21 +238,12 @@ export const APPLESCRIPT_MATRIX = {
238
238
  export function escapeAppleScript(value) {
239
239
  return value.replaceAll("\\", "\\\\").replaceAll('"', '\\"');
240
240
  }
241
- function runOsascript(script) {
242
- return new Promise((resolve) => {
243
- execFile("osascript", ["-e", script], { timeout: 30_000 }, (err, stdout, stderr) => {
244
- // A deadline kill (err.killed) is a distinct signal from a nonzero
245
- // exit: an osascript that never returns is the shape of an unanswered
246
- // macOS consent dialog surfaced for failure attribution.
247
- const timedOut = err !== null && err.killed === true;
248
- resolve({
249
- exitCode: err === null ? 0 : (err.code ?? 1),
250
- stdout: String(stdout),
251
- stderr: String(stderr),
252
- ...(timedOut && { timedOut: true }),
253
- });
254
- });
255
- });
241
+ async function runOsascript(script) {
242
+ // The deadline kill (timedOut) is a distinct signal from a nonzero exit: an
243
+ // osascript that never returns is the shape of an unanswered macOS consent
244
+ // dialog surfaced for failure attribution. osaExec preserves that signal
245
+ // on both the direct and the deputy-routed path.
246
+ return osaExec(script, { timeoutMs: 30_000 });
256
247
  }
257
248
  export function createAppleScriptVector() {
258
249
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"applescript.js","sourceRoot":"","sources":["../../../src/write/vectors/applescript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"applescript.js","sourceRoot":"","sources":["../../../src/write/vectors/applescript.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,24 @@ export declare const H_UI_SESSION_UNREACHABLE: HazardId;
65
65
  * One stable osascript shape returning the three window counts as "AS AX ALL".
66
66
  * Every count is wrapped so a lock-time error (a window lookup that throws on an
67
67
  * AX-blind session) degrades to -1 rather than failing the whole script.
68
+ *
69
+ * PERF1 scoping — behavior-preserving. The app-wide `allAx` walk (System Events
70
+ * enumerating every foreground process's windows) is near-free on the empty lab
71
+ * golden but seconds-long on a busy real desktop (measured 8s+ on the
72
+ * maintainer's host, 2026-08-18). Two changes cut that cost WITHOUT changing any
73
+ * verdict `interpretReachability` can produce:
74
+ * - The walk runs ONLY when `thingsAx = 0`. When Things has an AX-visible
75
+ * window (`thingsAx >= 1`, the common healthy case) the verdict is already
76
+ * "reachable" regardless of `allAx`, so the walk is pure waste — skipped, and
77
+ * `allAx` is left at -1 (never consulted on that branch). When `thingsAx < 0`
78
+ * (AX unreadable) the gate fail-opens on `thingsAx`, so the walk is likewise
79
+ * skipped and irrelevant.
80
+ * - When the walk IS needed, it SHORT-CIRCUITS on the first window-bearing app
81
+ * and reports `allAx = 1` (not the sum). The discriminator only ever tests
82
+ * `allAx === 0` vs `allAx > 0` (0 => whole session AX-blind / locked;
83
+ * > 0 => Things' window is merely on another Space or absent), so a boolean
84
+ * "any other window?" yields byte-identical verdicts while avoiding the cost
85
+ * of materializing every app's full window list.
68
86
  */
69
87
  export declare function axSessionReachabilityScript(): string;
70
88
  /** Parse the "AS AX ALL" line into counts; null when the shape is unrecognizable (probe error). */
@@ -76,3 +94,40 @@ export declare function parseReachabilityCounts(stdout: string): ReachabilityCou
76
94
  export declare function interpretReachability(counts: ReachabilityCounts | null): ReachabilityVerdict;
77
95
  /** Run the probe through the injected runner and interpret it (fail-open on transport error). */
78
96
  export declare function probeSessionReachability(run: (command: UiCommand, timeoutMs: number) => Promise<UiRunResult>, timeoutMs: number): Promise<ReachabilityVerdict>;
97
+ /**
98
+ * TTL for the intra-invocation reachability memo (PERF1). A promote composite
99
+ * probes reachability TWICE — once at the orchestrator's pre-seed gate, once at
100
+ * the in-drive gate after the reveal — ~20s apart on a busy host (both paid the
101
+ * full probe cost before this memo). 30s spans that gap with margin while
102
+ * expiring well before an unrelated later operation could reuse a stale verdict.
103
+ */
104
+ export declare const REACHABILITY_CACHE_TTL_MS = 30000;
105
+ /**
106
+ * A short-lived memo of a REACHABLE verdict, shared between a promote composite's
107
+ * pre-seed gate and its in-drive gate so the two do not both pay the full probe
108
+ * cost (PERF1). `probe` returns a still-fresh memoized reachable verdict, else
109
+ * probes live and memoizes the result when (and only when) it is reachable;
110
+ * `invalidate` drops the memo (call after any action that changes window/session
111
+ * state, e.g. a relocation).
112
+ *
113
+ * Only a `reachable` verdict is memoized: a not-reachable verdict (locked /
114
+ * wrong-Space) must ALWAYS be re-evaluated fresh, because the in-drive gate probes
115
+ * AFTER the reveal — which surfaces a window in a healthy session and so can
116
+ * legitimately turn a pre-seed "window" verdict into "reachable" (reusing a stale
117
+ * "window" would fire a spurious relocation). A reachable verdict is stable across
118
+ * the reveal; if the session DEGRADES (locks / window moves) inside the cached
119
+ * window, the drive's dialog-wait fails and the cleanup path's OWN independent
120
+ * blindness probe (clearDialog, deliberately NOT routed through this memo) handles
121
+ * it — so a memoized reachable verdict is safe. Restricting the memo to reachable
122
+ * verdicts also keeps the "refuse locked / relocate wrong-Space / disclose"
123
+ * SESSGATE behavior byte-identical: every refusal and relocation decision is still
124
+ * taken on a fresh probe.
125
+ */
126
+ export interface ReachabilityProbeCache {
127
+ /** Return a still-fresh memoized reachable verdict, else probe live and (if reachable) memoize it. */
128
+ probe(run: (command: UiCommand, timeoutMs: number) => Promise<UiRunResult>, timeoutMs: number): Promise<ReachabilityVerdict>;
129
+ /** Drop the memo (call after any action that changes window/session state, e.g. a relocation). */
130
+ invalidate(): void;
131
+ }
132
+ /** Build an intra-invocation reachability memo (PERF1). `now`/`ttlMs` are injectable for tests. */
133
+ export declare function createReachabilityCache(ttlMs?: number, now?: () => number): ReachabilityProbeCache;
@@ -6,6 +6,24 @@ const PROBE_MARKER = "-- sessgate-reachability probe";
6
6
  * One stable osascript shape returning the three window counts as "AS AX ALL".
7
7
  * Every count is wrapped so a lock-time error (a window lookup that throws on an
8
8
  * AX-blind session) degrades to -1 rather than failing the whole script.
9
+ *
10
+ * PERF1 scoping — behavior-preserving. The app-wide `allAx` walk (System Events
11
+ * enumerating every foreground process's windows) is near-free on the empty lab
12
+ * golden but seconds-long on a busy real desktop (measured 8s+ on the
13
+ * maintainer's host, 2026-08-18). Two changes cut that cost WITHOUT changing any
14
+ * verdict `interpretReachability` can produce:
15
+ * - The walk runs ONLY when `thingsAx = 0`. When Things has an AX-visible
16
+ * window (`thingsAx >= 1`, the common healthy case) the verdict is already
17
+ * "reachable" regardless of `allAx`, so the walk is pure waste — skipped, and
18
+ * `allAx` is left at -1 (never consulted on that branch). When `thingsAx < 0`
19
+ * (AX unreadable) the gate fail-opens on `thingsAx`, so the walk is likewise
20
+ * skipped and irrelevant.
21
+ * - When the walk IS needed, it SHORT-CIRCUITS on the first window-bearing app
22
+ * and reports `allAx = 1` (not the sum). The discriminator only ever tests
23
+ * `allAx === 0` vs `allAx > 0` (0 => whole session AX-blind / locked;
24
+ * > 0 => Things' window is merely on another Space or absent), so a boolean
25
+ * "any other window?" yields byte-identical verdicts while avoiding the cost
26
+ * of materializing every app's full window list.
9
27
  */
10
28
  export function axSessionReachabilityScript() {
11
29
  return `${PROBE_MARKER}
@@ -19,14 +37,19 @@ tell application "System Events"
19
37
  try
20
38
  set thingsAx to count (windows of process "Things3")
21
39
  end try
22
- try
23
- set allAx to 0
24
- repeat with proc in (application processes whose background only is false)
25
- try
26
- set allAx to allAx + (count (windows of proc))
27
- end try
28
- end repeat
29
- end try
40
+ if thingsAx is 0 then
41
+ try
42
+ set allAx to 0
43
+ repeat with proc in (application processes whose background only is false)
44
+ try
45
+ if (count (windows of proc)) > 0 then
46
+ set allAx to 1
47
+ exit repeat
48
+ end if
49
+ end try
50
+ end repeat
51
+ end try
52
+ end if
30
53
  end tell
31
54
  return ((thingsAs as integer) as text) & " " & ((thingsAx as integer) as text) & " " & ((allAx as integer) as text)`;
32
55
  }
@@ -100,4 +123,29 @@ export async function probeSessionReachability(run, timeoutMs) {
100
123
  return { reachable: true }; // fail-open: a probe transport error never blocks
101
124
  return interpretReachability(parseReachabilityCounts(res.stdout));
102
125
  }
126
+ /**
127
+ * TTL for the intra-invocation reachability memo (PERF1). A promote composite
128
+ * probes reachability TWICE — once at the orchestrator's pre-seed gate, once at
129
+ * the in-drive gate after the reveal — ~20s apart on a busy host (both paid the
130
+ * full probe cost before this memo). 30s spans that gap with margin while
131
+ * expiring well before an unrelated later operation could reuse a stale verdict.
132
+ */
133
+ export const REACHABILITY_CACHE_TTL_MS = 30_000;
134
+ /** Build an intra-invocation reachability memo (PERF1). `now`/`ttlMs` are injectable for tests. */
135
+ export function createReachabilityCache(ttlMs = REACHABILITY_CACHE_TTL_MS, now = Date.now) {
136
+ let entry = null;
137
+ return {
138
+ async probe(run, timeoutMs) {
139
+ if (entry !== null && entry.verdict.reachable && now() - entry.at < ttlMs) {
140
+ return entry.verdict;
141
+ }
142
+ const verdict = await probeSessionReachability(run, timeoutMs);
143
+ entry = { verdict, at: now() };
144
+ return verdict;
145
+ },
146
+ invalidate() {
147
+ entry = null;
148
+ },
149
+ };
150
+ }
103
151
  //# sourceMappingURL=session-reachability.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-reachability.js","sourceRoot":"","sources":["../../../src/write/vectors/session-reachability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-reachability.js","sourceRoot":"","sources":["../../../src/write/vectors/session-reachability.ts"],"names":[],"mappings":"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"}
@@ -13,10 +13,10 @@
13
13
  * run that HANGS against the deadline is the shape of an unanswered first-run
14
14
  * consent dialog (classified as consent-needed by failure-hints).
15
15
  */
16
- import { execFile } from "node:child_process";
17
16
  import { mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
18
17
  import { tmpdir } from "node:os";
19
18
  import { join } from "node:path";
19
+ import { shortcutsRunExec } from "../../deputy/shortcuts-exec.js";
20
20
  /** First-run consent can stall the run; give it generous headroom. */
21
21
  const SHORTCUTS_TIMEOUT_MS = 25_000;
22
22
  export const SHORTCUTS_MATRIX = {
@@ -46,19 +46,10 @@ export const SHORTCUTS_MATRIX = {
46
46
  },
47
47
  };
48
48
  function defaultRun(shortcut, inputPath, outputPath) {
49
- return new Promise((resolve) => {
50
- execFile("shortcuts", ["run", shortcut, "--input-path", inputPath, "--output-path", outputPath], { timeout: SHORTCUTS_TIMEOUT_MS }, (err, stdout, stderr) => {
51
- // A deadline kill (err.killed) is the signature of an unanswered
52
- // first-run consent dialog — surfaced distinctly for attribution.
53
- const timedOut = err !== null && err.killed === true;
54
- resolve({
55
- exitCode: err === null ? 0 : (err.code ?? 1),
56
- stdout: String(stdout),
57
- stderr: String(stderr),
58
- ...(timedOut && { timedOut: true }),
59
- });
60
- });
61
- });
49
+ // Deputy-routed when active (src/deputy/shortcuts-exec.ts) so the Shortcuts
50
+ // surface shares the deputy's stable identity; direct otherwise. The
51
+ // deadline-kill consent signature (timedOut) survives both paths.
52
+ return shortcutsRunExec(shortcut, inputPath, outputPath, SHORTCUTS_TIMEOUT_MS);
62
53
  }
63
54
  export function createShortcutsVector(run = defaultRun) {
64
55
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"shortcuts.js","sourceRoot":"","sources":["../../../src/write/vectors/shortcuts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shortcuts.js","sourceRoot":"","sources":["../../../src/write/vectors/shortcuts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,sEAAsE;AACtE,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAEpC,MAAM,CAAC,MAAM,gBAAgB,GAAiB;IAC5C,qBAAqB,EAAE;QACrB,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,CAAC,KAAK,CAAC;QACjB,KAAK,EACH,+EAA+E;YAC/E,kFAAkF;YAClF,oFAAoF;YACpF,oDAAoD;KACvD;IACD,2BAA2B,EAAE;QAC3B,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,KAAK,EACH,yFAAyF;YACzF,qFAAqF;YACrF,0FAA0F;YAC1F,mFAAmF;YACnF,2FAA2F;YAC3F,4FAA4F;YAC5F,4FAA4F;YAC5F,sFAAsF;KACzF;CACF,CAAC;AAaF,SAAS,UAAU,CACjB,QAAgB,EAChB,SAAiB,EACjB,UAAkB;IAElB,4EAA4E;IAC5E,qEAAqE;IACrE,kEAAkE;IAClE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAuB,UAAU;IACrE,OAAO;QACL,EAAE,EAAE,WAAW;QACf,MAAM,EAAE,gBAAgB;QACxB,KAAK,CAAC,OAAO,CAAC,UAA8B;YAC1C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;YAC5C,IAAI,CAAC;gBACH,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBACzE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC3E,uEAAuE;gBACvE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC5C,CAAC;gBAAC,MAAM,CAAC;oBACP,mEAAmE;gBACrE,CAAC;gBACD,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC;YAC/B,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -10,8 +10,23 @@ export declare function simulatorFenceReason(dbPath: string, env?: NodeJS.Proces
10
10
  * Things update bumps the real database version, the fence refuses to
11
11
  * simulate until the whole modeling chain is consciously re-verified —
12
12
  * a schema tripwire, not a compatibility claim.
13
+ *
14
+ * 27 (Things 3.23) since 2026-08-22. The 26→27 DDL delta is INDEX-ONLY (the
15
+ * fingerprint is unchanged by construction — src/db/baselines/db-v27.ts), but
16
+ * the DATA semantics moved, which is what these appliers model:
17
+ * - every TMTask row now carries all four maintained counters; the `-1`
18
+ * "uninitialised" sentinel is back-filled with a computed 0 on the classes
19
+ * that can never hold one (leaf counts on to-dos, checklist counts on
20
+ * projects/headings). Rows with real counts were untouched.
21
+ * - `rt1_nextInstanceStartDate` is TEMPLATE-SCOPED, not retired: NULL on every
22
+ * non-template row, retained byte-identical on every repeating template
23
+ * that had one.
24
+ * Both were re-measured in-lab and confirmed against a live 3.23 library
25
+ * (docs/lab/gv4-323-campaign.md §2.1/§2.2, correcting the first host reading in
26
+ * docs/lab/dbv27-migration-diff.md). The migration-time spawn-cursor rewrite the
27
+ * host appeared to show did NOT reproduce (§2.3) and is deliberately NOT modeled.
13
28
  */
14
- export declare const SIMULATED_DATABASE_VERSION = 26;
29
+ export declare const SIMULATED_DATABASE_VERSION = 27;
15
30
  /** Whether the simulator's triple fence is satisfied for `dbPath`. */
16
31
  export declare function simulatorFenceActive(dbPath: string, env?: NodeJS.ProcessEnv): boolean;
17
32
  /**
@@ -81,8 +81,23 @@ export function simulatorFenceReason(dbPath, env = process.env) {
81
81
  * Things update bumps the real database version, the fence refuses to
82
82
  * simulate until the whole modeling chain is consciously re-verified —
83
83
  * a schema tripwire, not a compatibility claim.
84
+ *
85
+ * 27 (Things 3.23) since 2026-08-22. The 26→27 DDL delta is INDEX-ONLY (the
86
+ * fingerprint is unchanged by construction — src/db/baselines/db-v27.ts), but
87
+ * the DATA semantics moved, which is what these appliers model:
88
+ * - every TMTask row now carries all four maintained counters; the `-1`
89
+ * "uninitialised" sentinel is back-filled with a computed 0 on the classes
90
+ * that can never hold one (leaf counts on to-dos, checklist counts on
91
+ * projects/headings). Rows with real counts were untouched.
92
+ * - `rt1_nextInstanceStartDate` is TEMPLATE-SCOPED, not retired: NULL on every
93
+ * non-template row, retained byte-identical on every repeating template
94
+ * that had one.
95
+ * Both were re-measured in-lab and confirmed against a live 3.23 library
96
+ * (docs/lab/gv4-323-campaign.md §2.1/§2.2, correcting the first host reading in
97
+ * docs/lab/dbv27-migration-diff.md). The migration-time spawn-cursor rewrite the
98
+ * host appeared to show did NOT reproduce (§2.3) and is deliberately NOT modeled.
84
99
  */
85
- export const SIMULATED_DATABASE_VERSION = 26;
100
+ export const SIMULATED_DATABASE_VERSION = 27;
86
101
  function fixtureDatabaseVersion(dbPath) {
87
102
  let db;
88
103
  try {
@@ -148,7 +163,18 @@ function genUuid() {
148
163
  return out;
149
164
  }
150
165
  // ---------------------------------------------------- shared appliers
151
- /** Full TMTask row insert, mirroring test/fixtures/seed.ts insertTask columns. */
166
+ /**
167
+ * Full TMTask row insert, mirroring test/fixtures/seed.ts insertTask columns.
168
+ *
169
+ * v27 counter semantics (GV4 §2.2): a fresh row carries a COMPUTED count in all
170
+ * four maintained counters — never the `-1` "uninitialised" sentinel Things ≤3.22
171
+ * left on the classes that can hold none. A newly inserted row has no leaf
172
+ * children, so `untrashed/openUntrashedLeafActionsCount` are literal 0 for every
173
+ * type; the checklist counters default to 0 and are set by the caller when the row
174
+ * is born with items. `rt1_nextInstanceStartDate` is NULL here by construction —
175
+ * this helper never inserts a repeating TEMPLATE (see insertRecurrenceRow), and
176
+ * under 27 the column is template-scoped.
177
+ */
152
178
  function insertTask(sim, type, ctx, opts) {
153
179
  sim
154
180
  .prepare(`INSERT INTO TMTask (
@@ -501,7 +527,19 @@ function addMonthsIso(iso, months) {
501
527
  function epochOfIso(iso) {
502
528
  return Math.floor(Date.parse(`${iso}T12:00:00Z`) / 1000);
503
529
  }
504
- /** Insert a template or instance row, covering the full rt1_* recurrence column set. */
530
+ /**
531
+ * Insert a template or instance row, covering the full rt1_* recurrence column set.
532
+ *
533
+ * `nextInstanceStartDate` is passed ONLY for template rows (a fixed rule's cached
534
+ * projection day); every INSTANCE this helper mints leaves it NULL. That is the
535
+ * v27 law measured in GV4 §2.1 — the 26→27 migration scopes
536
+ * `rt1_nextInstanceStartDate` to `rt1_recurrenceRule IS NOT NULL` and nulls it
537
+ * everywhere else — and it is also what the simulator already did under 26, when
538
+ * the app instead left an uninitialised `69760` on freshly minted instances (the
539
+ * `instance-next-sentinel` SIMFID tolerance; see docs/lab/simfid-results.md).
540
+ * A tp=1 (after-completion) template legitimately carries NULL: it has no
541
+ * calendar next until a completion (RDLG2e §6.1).
542
+ */
505
543
  function insertRecurrenceRow(sim, ctx, o) {
506
544
  sim
507
545
  .prepare(`INSERT INTO TMTask (
@@ -765,13 +803,26 @@ function applyMakeRepeatingFixed(sim, type, params, ctx) {
765
803
  cursorIso: addUnitsIso(todayIso, params.frequency, params.interval),
766
804
  instanceCount: 1,
767
805
  };
768
- // A PRESERVED source is relinked as the current-occurrence instance (count 1); a
769
- // DELETE-fate source spawns a fresh instance only when today is an occurrence.
770
- const sourceBecomesInstance = (type === 0 && src.deadline !== null) ||
771
- (subtree !== null && fixedProjectPreservesSource(subtree));
772
- const instanceCount = sourceBecomesInstance ? 1 : plan.instanceCount;
806
+ // A PRESERVED source (deadline / terminal-element trigger, decided per-branch below)
807
+ // is relinked in place as the current-occurrence instance; a DELETE-fate source spawns
808
+ // a fresh instance only when today is an occurrence.
809
+ // DBLSPAWN1 (docs/lab/dblspawn1-preserved-instance.md, golden-v3 / Things 3.22.14):
810
+ // the template's instance-creation COUNTER follows the plan (1 iff TODAY is the
811
+ // occurrence, else 0), NOT the source-preserve relink. When the first occurrence is
812
+ // FUTURE the app leaves icCount=0 even though the preserved source ALREADY exists as
813
+ // a materialized instance at that date — the cursor "does not know" it is
814
+ // materialized (rt1_nextInstanceStartDate == the occurrence, icCount == 0), which is
815
+ // the double-book that spawns a DUPLICATE when the date arrives (cell A/C). The prior
816
+ // model forced icCount=1 on any preserve, contradicting the observed at-rest state.
817
+ const instanceCount = plan.instanceCount;
773
818
  const spec = composeRepeatRuleSpec(params, plan.refIso, epochOfIso(plan.refIso));
774
819
  const templateUuid = genUuid();
820
+ // The template's cursor/creation-start columns store the occurrence START date. A
821
+ // DEADLINED rule DROVE the Repeat dialog's "Next:" with the DUE date (start +
822
+ // startDaysEarlier), so plan.cursorIso is that due date — back-shift it to the START
823
+ // (DACON1 DC4, golden-v3: sr = icStart = the START, not the deadline). Non-deadlined:
824
+ // unchanged (the drive date IS the start).
825
+ const templateStartIso = deadlined ? addDaysIso(plan.cursorIso, -startEarlier) : plan.cursorIso;
775
826
  // The hidden template row is identical in both fixed-project fates.
776
827
  insertRecurrenceRow(sim, ctx, {
777
828
  uuid: templateUuid,
@@ -784,8 +835,8 @@ function applyMakeRepeatingFixed(sim, type, params, ctx) {
784
835
  deadline: deadlined ? encodePackedDate(DEADLINE_SENTINEL_ISO) : null,
785
836
  recurrenceRuleXml: ruleXml(spec),
786
837
  instanceCreationCount: instanceCount,
787
- instanceCreationStartDate: encodePackedDate(plan.cursorIso),
788
- nextInstanceStartDate: encodePackedDate(plan.cursorIso),
838
+ instanceCreationStartDate: encodePackedDate(templateStartIso),
839
+ nextInstanceStartDate: encodePackedDate(templateStartIso),
789
840
  });
790
841
  copyTaskTags(sim, params.uuid, templateUuid);
791
842
  // The current occurrence date (the app dates the instance here; a preserved