things-api 0.19.3 → 0.20.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 (139) hide show
  1. package/README.md +1 -1
  2. package/deputy/prebuilt/Things API Helper.app/Contents/CodeResources +0 -0
  3. package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/MacOS/things-reader +0 -0
  4. package/deputy/prebuilt/Things API Helper.app/Contents/MacOS/things-deputy +0 -0
  5. package/dist/audit/schema.d.ts +42 -10
  6. package/dist/audit/schema.js +21 -0
  7. package/dist/audit/schema.js.map +1 -1
  8. package/dist/cli/commands/doctor.js +3 -1
  9. package/dist/cli/commands/doctor.js.map +1 -1
  10. package/dist/cli/commands/op-result.js +25 -7
  11. package/dist/cli/commands/op-result.js.map +1 -1
  12. package/dist/cli/commands/repeat-flags.d.ts +19 -1
  13. package/dist/cli/commands/repeat-flags.js +71 -0
  14. package/dist/cli/commands/repeat-flags.js.map +1 -1
  15. package/dist/cli/commands/rescue.d.ts +12 -0
  16. package/dist/cli/commands/rescue.js +83 -0
  17. package/dist/cli/commands/rescue.js.map +1 -0
  18. package/dist/cli/commands/writes.js +86 -32
  19. package/dist/cli/commands/writes.js.map +1 -1
  20. package/dist/cli/help.js +25 -25
  21. package/dist/cli/help.js.map +1 -1
  22. package/dist/cli/main.js +12 -2
  23. package/dist/cli/main.js.map +1 -1
  24. package/dist/cli/resolve-invocation.d.ts +9 -1
  25. package/dist/cli/resolve-invocation.js +71 -0
  26. package/dist/cli/resolve-invocation.js.map +1 -1
  27. package/dist/cli/unknown-command.d.ts +26 -0
  28. package/dist/cli/unknown-command.js +135 -0
  29. package/dist/cli/unknown-command.js.map +1 -0
  30. package/dist/contracts.d.ts +4 -3
  31. package/dist/contracts.js +1 -1
  32. package/dist/index.d.ts +4 -2
  33. package/dist/index.js +1 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/mcp/server.js +62 -10
  36. package/dist/mcp/server.js.map +1 -1
  37. package/dist/model/entities.d.ts +11 -0
  38. package/dist/model/entities.js.map +1 -1
  39. package/dist/model/mappers.js +15 -0
  40. package/dist/model/mappers.js.map +1 -1
  41. package/dist/op-result.d.ts +24 -2
  42. package/dist/op-result.js +77 -20
  43. package/dist/op-result.js.map +1 -1
  44. package/dist/process-instance.d.ts +41 -0
  45. package/dist/process-instance.js +82 -0
  46. package/dist/process-instance.js.map +1 -0
  47. package/dist/rescue.d.ts +247 -0
  48. package/dist/rescue.js +811 -0
  49. package/dist/rescue.js.map +1 -0
  50. package/dist/session-grant.js +4 -15
  51. package/dist/session-grant.js.map +1 -1
  52. package/dist/ui-state.d.ts +8 -4
  53. package/dist/ui-state.js +8 -4
  54. package/dist/ui-state.js.map +1 -1
  55. package/dist/write/batch.js +4 -1
  56. package/dist/write/batch.js.map +1 -1
  57. package/dist/write/clone.js +12 -6
  58. package/dist/write/clone.js.map +1 -1
  59. package/dist/write/commands.d.ts +9 -0
  60. package/dist/write/commands.js +135 -50
  61. package/dist/write/commands.js.map +1 -1
  62. package/dist/write/disclosures.d.ts +275 -0
  63. package/dist/write/disclosures.js +277 -0
  64. package/dist/write/disclosures.js.map +1 -0
  65. package/dist/write/experimental.d.ts +16 -0
  66. package/dist/write/experimental.js +19 -0
  67. package/dist/write/experimental.js.map +1 -1
  68. package/dist/write/failure-hints.js +3 -2
  69. package/dist/write/failure-hints.js.map +1 -1
  70. package/dist/write/guards.d.ts +1 -1
  71. package/dist/write/guards.js +102 -3
  72. package/dist/write/guards.js.map +1 -1
  73. package/dist/write/heading.js +4 -7
  74. package/dist/write/heading.js.map +1 -1
  75. package/dist/write/lock.d.ts +85 -1
  76. package/dist/write/lock.js +121 -6
  77. package/dist/write/lock.js.map +1 -1
  78. package/dist/write/make-repeating-project.js +2 -1
  79. package/dist/write/make-repeating-project.js.map +1 -1
  80. package/dist/write/operations.d.ts +52 -6
  81. package/dist/write/operations.js +22 -0
  82. package/dist/write/operations.js.map +1 -1
  83. package/dist/write/opid.d.ts +69 -8
  84. package/dist/write/opid.js +116 -20
  85. package/dist/write/opid.js.map +1 -1
  86. package/dist/write/param-schema.js +14 -2
  87. package/dist/write/param-schema.js.map +1 -1
  88. package/dist/write/pipeline.d.ts +82 -3
  89. package/dist/write/pipeline.js +204 -60
  90. package/dist/write/pipeline.js.map +1 -1
  91. package/dist/write/planner.d.ts +7 -0
  92. package/dist/write/planner.js +12 -0
  93. package/dist/write/planner.js.map +1 -1
  94. package/dist/write/preserve-modified.d.ts +17 -8
  95. package/dist/write/preserve-modified.js.map +1 -1
  96. package/dist/write/promote-clone.js +106 -53
  97. package/dist/write/promote-clone.js.map +1 -1
  98. package/dist/write/reorder.js +45 -39
  99. package/dist/write/reorder.js.map +1 -1
  100. package/dist/write/repeat-rule.d.ts +25 -1
  101. package/dist/write/repeat-rule.js +69 -0
  102. package/dist/write/repeat-rule.js.map +1 -1
  103. package/dist/write/resolution-timestamps.js +104 -78
  104. package/dist/write/resolution-timestamps.js.map +1 -1
  105. package/dist/write/reversibility.js +2 -2
  106. package/dist/write/reversibility.js.map +1 -1
  107. package/dist/write/spawn-expectation.d.ts +135 -0
  108. package/dist/write/spawn-expectation.js +237 -0
  109. package/dist/write/spawn-expectation.js.map +1 -0
  110. package/dist/write/template-mutation.js +34 -35
  111. package/dist/write/template-mutation.js.map +1 -1
  112. package/dist/write/undo.js +45 -5
  113. package/dist/write/undo.js.map +1 -1
  114. package/dist/write/vectors/simulator.js +48 -2
  115. package/dist/write/vectors/simulator.js.map +1 -1
  116. package/dist/write/vectors/types.d.ts +12 -0
  117. package/dist/write/vectors/ui-recipes.js +11 -1
  118. package/dist/write/vectors/ui-recipes.js.map +1 -1
  119. package/dist/write/vectors/ui-state.d.ts +64 -6
  120. package/dist/write/vectors/ui-state.js +91 -4
  121. package/dist/write/vectors/ui-state.js.map +1 -1
  122. package/dist/write/vectors/ui.d.ts +69 -3
  123. package/dist/write/vectors/ui.js +293 -146
  124. package/dist/write/vectors/ui.js.map +1 -1
  125. package/dist/write/vectors/url-scheme.js +26 -0
  126. package/dist/write/vectors/url-scheme.js.map +1 -1
  127. package/dist/write/verify/delta.d.ts +17 -2
  128. package/dist/write/verify/delta.js +46 -16
  129. package/dist/write/verify/delta.js.map +1 -1
  130. package/dist/write/verify/poller.d.ts +3 -2
  131. package/dist/write/verify/poller.js +3 -1
  132. package/dist/write/verify/poller.js.map +1 -1
  133. package/package.json +1 -1
  134. package/schema/envelope.schema.json +1 -2
  135. package/skills/things-cli/SKILL.md +4 -2
  136. package/skills/things-cli/references/repeating.md +1 -1
  137. package/dist/cli/commands/ui-state.d.ts +0 -11
  138. package/dist/cli/commands/ui-state.js +0 -27
  139. package/dist/cli/commands/ui-state.js.map +0 -1
@@ -0,0 +1,237 @@
1
+ /**
2
+ * THE SPAWN-EXPECTATION MAP (#634) — what the app is KNOWN to do about
3
+ * materializing a repeating series' first occurrence, per rule shape × anchor
4
+ * relation, and the assertion that turns that knowledge into an honest
5
+ * post-promote disclosure.
6
+ *
7
+ * The failure this replaces: a successful after-completion monthly promote with
8
+ * a future anchor warned *"could not derive the spawned instance: no row links
9
+ * back to the new repeating template (the app may not have materialized the
10
+ * current occurrence)"* — a shrug, as though the absence were a surprise. It is
11
+ * not a surprise. The spawn laws are MEASURED per rule shape, and for that
12
+ * shape zero instances is the CORRECT and expected outcome. So:
13
+ *
14
+ * - the expectation is stated up front, from the rule and the anchor date;
15
+ * - it is ASSERTED against what the FK derivation actually found;
16
+ * - a mismatch in EITHER direction (expected-and-missing, or unexpected-found)
17
+ * is a real `warning` — something is wrong with the series;
18
+ * - the expectation MET is a matter-of-fact `note` naming when the first
19
+ * occurrence appears, or nothing at all when the instance is present and
20
+ * returned (the caller already has it).
21
+ *
22
+ * RRF1 discipline: {@link SPAWN_EXPECTATIONS} has an explicit entry for every
23
+ * (rule kind × anchor relation) cell with the evidence that pins it, and the
24
+ * compiler enforces completeness — the map is typed as a total record over both
25
+ * axes, so adding a rule kind or an anchor relation breaks the build until the
26
+ * new cells are given a verdict and a citation.
27
+ */
28
+ // ------------------------------------------------------------------- the map
29
+ /**
30
+ * EXHAUSTIVE over rule kind × anchor relation. Every cell carries a verdict and
31
+ * the campaign that measured it; the `unpinned` verdict is a first-class
32
+ * answer — the map says "we have not measured this" rather than inventing a
33
+ * behavior, and an unpinned cell asserts nothing at all.
34
+ */
35
+ export const SPAWN_EXPECTATIONS = {
36
+ // ------------------------------------------------------------------ fixed
37
+ fixed: {
38
+ today: {
39
+ verdict: "materialized",
40
+ evidence: "FGRD1 §8 (3.23/golden-v4); ANCH1 §A3 a3-today/a3-align; RSIM1",
41
+ why: "committing a rule whose first occurrence is TODAY makes the app materialize that " +
42
+ "occurrence immediately and advance the cursor to the next slot — so a fixed same-day " +
43
+ "series that has NO instance did not land the way it was asked to",
44
+ },
45
+ future: {
46
+ verdict: "pending",
47
+ evidence: "ANCH1 §A2 (5/5 cells, icCount=0); UIC8 §C4 spawn-shape law; ANCH1 Phase-B FIX2",
48
+ why: "a fixed promote whose first occurrence is in the future materializes only the template " +
49
+ "and its cursor; the occurrence is minted when the date arrives (FIX2 watched it appear " +
50
+ "on the day, with the cursor advancing by the cadence)",
51
+ },
52
+ past: {
53
+ verdict: "unpinned",
54
+ evidence: "ANCH1 §A2 law (`sr` = today, `ia` = the next match >= today) — never reachable by default",
55
+ why: "the app anchors a fixed rule to the next calendar match ON OR AFTER TODAY, so a " +
56
+ "past first occurrence is not a state the promote paths produce; no campaign has " +
57
+ "driven one deliberately, so nothing is asserted about it",
58
+ },
59
+ unknown: {
60
+ verdict: "unpinned",
61
+ evidence: "n/a — the first-occurrence date could not be read back",
62
+ why: "with no anchor date there is no expectation to assert; the derivation stays silent",
63
+ },
64
+ },
65
+ // -------------------------------------------------------- fixed, preserved
66
+ //
67
+ // The SOURCE survived the promote and was relinked as the current-occurrence
68
+ // instance (SRCFATE §P1). Its survival is the materialization, so an instance
69
+ // exists whatever the date — including the future, which is the state the app
70
+ // itself double-books from.
71
+ "fixed-preserved": {
72
+ today: {
73
+ verdict: "materialized",
74
+ evidence: "RSIM-T T-deadline (1/1); SRCFATE §P1 (2/2 every cell)",
75
+ why: "the preserved source IS the current occurrence — the app relinked it in place " +
76
+ "(`rt1_repeatingTemplate` set) and minted only the template",
77
+ },
78
+ future: {
79
+ verdict: "materialized",
80
+ evidence: "DBLSPAWN1 cell A (the double-book) + cell C (the duplicate spawn)",
81
+ why: "a preserved source dated in the FUTURE is a materialized future occurrence — a state " +
82
+ "normal spawning never creates, and the one the app later double-books on. The " +
83
+ "composite trashes the redundant occurrence itself (DBLSPAWN1 cell F), so a caller " +
84
+ "reaching this cell with no instance normally means that trash leg ran",
85
+ },
86
+ past: {
87
+ verdict: "materialized",
88
+ evidence: "DBLSPAWN1 (a today/past-dated preserved instance is the legitimate current occurrence)",
89
+ why: "the preserved row exists regardless of its date; only a FUTURE one is redundant",
90
+ },
91
+ unknown: {
92
+ verdict: "materialized",
93
+ evidence: "SRCFATE §P1 — the preserve fate is read from the source itself, not from a date",
94
+ why: "the preserve verdict is established by the source surviving and relinking, which is " +
95
+ "known even when the occurrence date is not",
96
+ },
97
+ },
98
+ // ------------------------------------------------------- after-completion
99
+ //
100
+ // The cursor-less family. CNCAC1 §7.1 measured a never-completed
101
+ // after-completion series seeded on TODAY: `next = NULL`, `icCount = 1`, one
102
+ // live occurrence. VMRES1 §1 measured the FUTURE-anchored shape on the same
103
+ // golden and found the opposite: ZERO instances, with `rt1_nextInstanceStartDate`
104
+ // holding the requested date verbatim. That split is the whole of #634's field
105
+ // report — the two cells look identical to a caller and behave oppositely.
106
+ "after-completion": {
107
+ today: {
108
+ verdict: "materialized",
109
+ evidence: "CNCAC1 §1.1/§7.1 cell N (3.23/golden-v4); CERTSWEEP1 §4 cell AC; UIC8 §C4b/C4d",
110
+ why: "an after-completion promote anchored on today spawns its first instance immediately " +
111
+ "(icCount=1, one live occurrence) and carries NO cursor until something is completed",
112
+ },
113
+ future: {
114
+ verdict: "pending",
115
+ evidence: "VMRES1 §1 (3/3 shapes, at rest); ACFUT1 cells R/R2 + control C (the spawn itself)",
116
+ why: "a future-anchored after-completion promote materializes NOTHING — every measured shape " +
117
+ "landed zero non-trashed instances — and instead populates `rt1_nextInstanceStartDate` " +
118
+ "with the requested date verbatim. ACFUT1 then rolled the clock and watched the " +
119
+ "occurrence appear ON that date, exactly once, in both creation shapes, against a " +
120
+ "fixed-rule control that spawned on the same relaunch. THIS IS THE #634 FIELD CASE: the " +
121
+ "old derivation called it a surprise; it is the measured law, and the date we name is " +
122
+ "the date the app keeps",
123
+ },
124
+ past: {
125
+ verdict: "unpinned",
126
+ evidence: "ACFUT1 cell A2b — the shape is UNREACHABLE, not unmeasured",
127
+ why: "the app normalizes a past start date to today, so a promote can never be anchored in " +
128
+ "the past; the cell stays unasserted because nothing can land in it",
129
+ },
130
+ unknown: {
131
+ verdict: "pending-until-completion",
132
+ evidence: "CNCAC1 §7.1 (a never-completed series has `next = NULL`); REPX1 §2.5",
133
+ why: "an after-completion series with no readable cursor has no calendar at all — its next " +
134
+ "date is derived from a completion, so there is no date to name",
135
+ },
136
+ },
137
+ };
138
+ /** The expectation for one cell. Total over both axes by construction. */
139
+ export function spawnExpectation(kind, relation) {
140
+ return SPAWN_EXPECTATIONS[kind][relation];
141
+ }
142
+ // ------------------------------------------------------- classifying a promote
143
+ /**
144
+ * Which cell of the map a landed promote sits in.
145
+ *
146
+ * `preserved` is the SOURCE FATE the derivation already resolved (the source
147
+ * survived and relinked), not a guess from the rule — SRCFATE's triggers are
148
+ * structural, so the fate is read, never predicted.
149
+ */
150
+ export function spawnRuleKind(input) {
151
+ if (input.afterCompletion)
152
+ return "after-completion";
153
+ return input.preserved ? "fixed-preserved" : "fixed";
154
+ }
155
+ /**
156
+ * Where a first-occurrence date sits relative to today. Both dates are local
157
+ * ISO days, so the comparison is a plain string compare — no timezone
158
+ * arithmetic, and no "same day but different instant" ambiguity.
159
+ */
160
+ export function anchorRelation(firstOccurrence, todayIso) {
161
+ if (firstOccurrence === null)
162
+ return "unknown";
163
+ if (firstOccurrence === todayIso)
164
+ return "today";
165
+ return firstOccurrence > todayIso ? "future" : "past";
166
+ }
167
+ /** Days from `from` to `to`, both local ISO days. */
168
+ function daysUntil(from, to) {
169
+ const a = Date.UTC(+from.slice(0, 4), +from.slice(5, 7) - 1, +from.slice(8, 10));
170
+ const b = Date.UTC(+to.slice(0, 4), +to.slice(5, 7) - 1, +to.slice(8, 10));
171
+ return Math.round((b - a) / 86_400_000);
172
+ }
173
+ /** "in 3 days" / "tomorrow" / "today" — the human half of the pending note. */
174
+ function whenPhrase(days) {
175
+ if (days <= 0)
176
+ return "today";
177
+ if (days === 1)
178
+ return "tomorrow";
179
+ return `in ${days} days`;
180
+ }
181
+ /**
182
+ * ASSERT the spawn expectation. Returns the single disclosure this promote
183
+ * should carry about its instance, or `null` when there is nothing to say —
184
+ * which is the common case: the expectation was "materialized" and an instance
185
+ * was found, so the caller already holds it in `repeating.instanceUuid` and a
186
+ * line restating that would be noise.
187
+ *
188
+ * Mismatches are reported in BOTH directions, because both mean the series is
189
+ * not what the measured laws say it should be.
190
+ */
191
+ export function assertSpawnExpectation(input) {
192
+ const expectation = spawnExpectation(input.kind, input.relation);
193
+ // An UNPINNED cell asserts nothing in either direction — the map refuses to
194
+ // turn "we have not measured this" into a verdict about the caller's series.
195
+ if (expectation.verdict === "unpinned")
196
+ return null;
197
+ if (expectation.verdict === "materialized") {
198
+ if (input.found)
199
+ return null; // expected and present — the caller has it
200
+ return {
201
+ id: "instance-missing",
202
+ text: "the series was created but its current occurrence is missing: this rule shape " +
203
+ `materializes an occurrence immediately (${expectation.evidence}) and no row links back ` +
204
+ "to the new template. Re-read the series before relying on it",
205
+ };
206
+ }
207
+ // PENDING (with or without a date). An instance that exists here is the
208
+ // mismatch — the app is not supposed to have minted one yet.
209
+ if (input.found) {
210
+ return {
211
+ id: "instance-unexpected",
212
+ text: "the series was created and already has a materialized occurrence, which this rule " +
213
+ `shape is not expected to produce yet (${expectation.evidence}) — re-read the series to ` +
214
+ "check it will not double-book",
215
+ };
216
+ }
217
+ if (expectation.verdict === "pending-until-completion") {
218
+ return {
219
+ id: "instance-pending",
220
+ text: "no occurrence yet — this series counts from each completion, so the first one appears " +
221
+ "once the current work is checked off",
222
+ };
223
+ }
224
+ // PENDING with a known date: name it, and say how far off it is.
225
+ if (input.firstOccurrence === null) {
226
+ return {
227
+ id: "instance-pending",
228
+ text: "no occurrence yet — the series mints its first one when its start date arrives",
229
+ };
230
+ }
231
+ const days = daysUntil(input.todayIso, input.firstOccurrence);
232
+ return {
233
+ id: "instance-pending",
234
+ text: `no occurrence yet — the first one appears ${input.firstOccurrence} (${whenPhrase(days)})`,
235
+ };
236
+ }
237
+ //# sourceMappingURL=spawn-expectation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn-expectation.js","sourceRoot":"","sources":["../../src/write/spawn-expectation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAyDH,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAoE;IACjG,2EAA2E;IAC3E,KAAK,EAAE;QACL,KAAK,EAAE;YACL,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,+DAA+D;YACzE,GAAG,EACD,mFAAmF;gBACnF,uFAAuF;gBACvF,kEAAkE;SACrE;QACD,MAAM,EAAE;YACN,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,gFAAgF;YAC1F,GAAG,EACD,yFAAyF;gBACzF,yFAAyF;gBACzF,uDAAuD;SAC1D;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,UAAU;YACnB,QAAQ,EACN,2FAA2F;YAC7F,GAAG,EACD,kFAAkF;gBAClF,kFAAkF;gBAClF,0DAA0D;SAC7D;QACD,OAAO,EAAE;YACP,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,wDAAwD;YAClE,GAAG,EAAE,oFAAoF;SAC1F;KACF;IAED,4EAA4E;IAC5E,EAAE;IACF,6EAA6E;IAC7E,8EAA8E;IAC9E,8EAA8E;IAC9E,4BAA4B;IAC5B,iBAAiB,EAAE;QACjB,KAAK,EAAE;YACL,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,uDAAuD;YACjE,GAAG,EACD,gFAAgF;gBAChF,4DAA4D;SAC/D;QACD,MAAM,EAAE;YACN,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,mEAAmE;YAC7E,GAAG,EACD,uFAAuF;gBACvF,gFAAgF;gBAChF,oFAAoF;gBACpF,uEAAuE;SAC1E;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,cAAc;YACvB,QAAQ,EACN,wFAAwF;YAC1F,GAAG,EAAE,iFAAiF;SACvF;QACD,OAAO,EAAE;YACP,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,iFAAiF;YAC3F,GAAG,EACD,sFAAsF;gBACtF,4CAA4C;SAC/C;KACF;IAED,2EAA2E;IAC3E,EAAE;IACF,iEAAiE;IACjE,6EAA6E;IAC7E,4EAA4E;IAC5E,kFAAkF;IAClF,+EAA+E;IAC/E,2EAA2E;IAC3E,kBAAkB,EAAE;QAClB,KAAK,EAAE;YACL,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,gFAAgF;YAC1F,GAAG,EACD,sFAAsF;gBACtF,qFAAqF;SACxF;QACD,MAAM,EAAE;YACN,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,mFAAmF;YAC7F,GAAG,EACD,yFAAyF;gBACzF,wFAAwF;gBACxF,iFAAiF;gBACjF,mFAAmF;gBACnF,yFAAyF;gBACzF,uFAAuF;gBACvF,wBAAwB;SAC3B;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,4DAA4D;YACtE,GAAG,EACD,uFAAuF;gBACvF,oEAAoE;SACvE;QACD,OAAO,EAAE;YACP,OAAO,EAAE,0BAA0B;YACnC,QAAQ,EAAE,sEAAsE;YAChF,GAAG,EACD,uFAAuF;gBACvF,gEAAgE;SACnE;KACF;CACF,CAAC;AAEF,0EAA0E;AAC1E,MAAM,UAAU,gBAAgB,CAAC,IAAmB,EAAE,QAAwB;IAC5E,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAG7B;IACC,IAAI,KAAK,CAAC,eAAe;QAAE,OAAO,kBAAkB,CAAC;IACrD,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,eAA+B,EAAE,QAAiB;IAC/E,IAAI,eAAe,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC/C,IAAI,eAAe,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IACjD,OAAO,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;AACxD,CAAC;AAeD,qDAAqD;AACrD,SAAS,SAAS,CAAC,IAAa,EAAE,EAAW;IAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED,+EAA+E;AAC/E,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9B,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IAClC,OAAO,MAAM,IAAI,OAAO,CAAC;AAC3B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAQtC;IACC,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEjE,4EAA4E;IAC5E,6EAA6E;IAC7E,IAAI,WAAW,CAAC,OAAO,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAEpD,IAAI,WAAW,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,CAAC,2CAA2C;QACzE,OAAO;YACL,EAAE,EAAE,kBAAkB;YACtB,IAAI,EACF,gFAAgF;gBAChF,2CAA2C,WAAW,CAAC,QAAQ,0BAA0B;gBACzF,8DAA8D;SACjE,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,6DAA6D;IAC7D,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO;YACL,EAAE,EAAE,qBAAqB;YACzB,IAAI,EACF,oFAAoF;gBACpF,yCAAyC,WAAW,CAAC,QAAQ,4BAA4B;gBACzF,+BAA+B;SAClC,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,KAAK,0BAA0B,EAAE,CAAC;QACvD,OAAO;YACL,EAAE,EAAE,kBAAkB;YACtB,IAAI,EACF,wFAAwF;gBACxF,sCAAsC;SACzC,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QACnC,OAAO;YACL,EAAE,EAAE,kBAAkB;YACtB,IAAI,EAAE,gFAAgF;SACvF,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IAC9D,OAAO;QACL,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,6CAA6C,KAAK,CAAC,eAAe,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG;KACjG,CAAC;AACJ,CAAC"}
@@ -76,6 +76,7 @@
76
76
  import { addDaysIso, decodePackedDate, localToday } from "../model/dates.js";
77
77
  import { projectOccurrences } from "../model/occurrences.js";
78
78
  import { byUuid } from "../read/detail.js";
79
+ import { attach, disclose, disclosuresOf } from "./disclosures.js";
79
80
  import { replayIfApplied } from "./opid.js";
80
81
  import { appendCompositeSummary, runComposite, runMutation, } from "./pipeline.js";
81
82
  /** How far ahead the collision check will look for a live slot. */
@@ -377,7 +378,13 @@ runStatusLeg, options = {}) {
377
378
  ...(ambiguousOccurrence !== undefined && { occurrence: ambiguousOccurrence }),
378
379
  options,
379
380
  });
380
- });
381
+ },
382
+ // No oracle on the in-flight marker: at this point the composite does not yet
383
+ // know whether it will resolve an already-open occurrence or MINT one, and
384
+ // the two need different assertions (the ambiguous summary picks the right
385
+ // one later, once the timeout point knows). A holder that dies before that is
386
+ // told so honestly rather than reconciled against a guess.
387
+ { options, startedAt: now, txnId, uuid, requested: { uuid } });
381
388
  async function statusBody() {
382
389
  const state = readSeriesState(deps, uuid);
383
390
  if (state === null)
@@ -444,25 +451,18 @@ runStatusLeg, options = {}) {
444
451
  });
445
452
  const verb = op === "todo.complete" ? "checked off" : "canceled";
446
453
  const nextDate = nextOccurrenceAfter(deps, state.templateUuid);
447
- const disclosure = [
448
- `${verb} ${occurrenceLabel(occurrenceDate)} of "${state.title}"` +
449
- (minted ? " (created just now, because the series had no unfinished copy)" : ""),
450
- nextDate === null
451
- ? "the series has no further scheduled occurrence"
452
- : state.afterCompletion
453
- ? `the next occurrence is ${nextDate} — this series counts from each completion, so ` +
454
- "resolving it now restarted the interval from today"
455
- : `the next occurrence is ${nextDate}`,
456
- ];
454
+ const bag = disclosuresOf(write);
455
+ disclose(bag, "occurrence-resolved", `${verb} ${occurrenceLabel(occurrenceDate)} of "${state.title}"` +
456
+ (minted ? " (created just now, because the series had no unfinished copy)" : ""));
457
+ disclose(bag, "occurrence-next", nextDate === null
458
+ ? "the series has no further scheduled occurrence"
459
+ : state.afterCompletion
460
+ ? `the next occurrence is ${nextDate} — this series counts from each completion, so ` +
461
+ "resolving it now restarted the interval from today"
462
+ : `the next occurrence is ${nextDate}`);
457
463
  if (minted)
458
- disclosure.push(IRREVERSIBLE_NOTE);
459
- return {
460
- ...write,
461
- op,
462
- occurrence,
463
- undoToken,
464
- warnings: [...(write.warnings ?? []), ...disclosure],
465
- };
464
+ disclose(bag, "occurrence-mint-irreversible", IRREVERSIBLE_NOTE);
465
+ return attach({ ...write, op, occurrence, undoToken }, bag);
466
466
  }
467
467
  }
468
468
  // --------------------------------------------------------- exception writes
@@ -507,7 +507,13 @@ export async function runTemplateExceptionWrite(deps, uuid, patch, options = {})
507
507
  ...(ambiguousOccurrence !== undefined && { occurrence: ambiguousOccurrence }),
508
508
  options,
509
509
  });
510
- });
510
+ },
511
+ // The in-flight marker carries NO oracle, deliberately — the same reasoning
512
+ // that makes this verb's ambiguous summary refuse (see above). It always
513
+ // mints, so a holder that died mid-mint leaves a state where any satisfiable
514
+ // assertion would claim an exception that does not exist. The retry gets the
515
+ // honest `blocked:reconcile` refusal and a pointer at `op-result`.
516
+ { options, startedAt: now, txnId, uuid, requested: { uuid, ...patch } });
511
517
  async function exceptionBody() {
512
518
  const state = readSeriesState(deps, uuid);
513
519
  if (state === null)
@@ -577,21 +583,14 @@ export async function runTemplateExceptionWrite(deps, uuid, patch, options = {})
577
583
  options,
578
584
  });
579
585
  const nextDate = nextOccurrenceAfter(deps, state.templateUuid);
580
- return {
581
- ...write,
582
- op,
583
- occurrence,
584
- undoToken,
585
- warnings: [
586
- ...(write.warnings ?? []),
587
- `changed only ${occurrenceLabel(state.cursor)} of "${state.title}" the series itself is ` +
588
- "unchanged",
589
- nextDate === null
590
- ? "the series has no further scheduled occurrence"
591
- : `the next occurrence is ${nextDate}`,
592
- IRREVERSIBLE_NOTE,
593
- ],
594
- };
586
+ const bag = disclosuresOf(write);
587
+ disclose(bag, "occurrence-exception-scope", `changed only ${occurrenceLabel(state.cursor)} of "${state.title}" — the series itself is ` +
588
+ "unchanged");
589
+ disclose(bag, "occurrence-next", nextDate === null
590
+ ? "the series has no further scheduled occurrence"
591
+ : `the next occurrence is ${nextDate}`);
592
+ disclose(bag, "occurrence-mint-irreversible", IRREVERSIBLE_NOTE);
593
+ return attach({ ...write, op, occurrence, undoToken }, bag);
595
594
  }
596
595
  }
597
596
  export { PROJECT_REFUSAL, PROJECT_REMEDIATION };
@@ -1 +1 @@
1
- {"version":3,"file":"template-mutation.js","sourceRoot":"","sources":["../../src/write/template-mutation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-mutation.js","sourceRoot":"","sources":["../../src/write/template-mutation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AACH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAgB,MAAM,mBAAmB,CAAC;AAE3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,WAAW,GAIZ,MAAM,eAAe,CAAC;AAGvB,mEAAmE;AACnE,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,MAAM,iBAAiB,GACrB,gGAAgG;IAChG,2EAA2E,CAAC;AAE9E,MAAM,eAAe,GACnB,6FAA6F,CAAC;AAEhG,MAAM,mBAAmB,GACvB,8FAA8F;IAC9F,iBAAiB,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,kBAAkB,GACtB,gGAAgG;IAChG,sCAAsC,CAAC;AAiBzC,SAAS,OAAO,CAAC,EAAiB,EAAE,MAAc,EAAE,WAAmB;IACrE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAe,EAAE,IAAY;IAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC9F,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;SACjB,OAAO,CACN,qFAAqF;QACnF,iDAAiD,CACpD;SACA,GAAG,CAAC,IAAI,CAAiD,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO;QACL,YAAY,EAAE,IAAI;QAClB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI;QAC/C,IAAI;QACJ,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,KAAK,IAAI;QAC9C,eAAe,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB;QAClE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,IAAI;QACxC,YAAY,EACV,KAAK,KAAK,SAAS;YACjB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;KACzE,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAkB,EAAE,KAAc;IACnE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC/B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACzE,IAAI,KAAK,IAAI,MAAM;QAAE,OAAO,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,kBAAkB,CAClC,IAAI,EACJ,MAAM,EACN,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,EAChC,KAAK,CAAC,SAAS,CAChB,CAAC;IACF,yEAAyE;IACzE,qEAAqE;IACrE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,IAAwB,EAAE,QAAiB;IAChE,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5D,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACxD,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,EAAiB,EAAE,KAAkB;IAC7D,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,OAAO,CACZ,EAAE,EACF,6EAA6E,EAC7E,wDAAwD,CACzD,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,EAAE,EAAE,kBAAkB,EAAE,yCAAyC,CAAC,CAAC;AACpF,CAAC;AAED,yEAAyE;AACzE,SAAS,eAAe,CAAC,IAAoB;IAC3C,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,OAAO,IAAI,aAAa,CAAC;AAC7E,CAAC;AAED,yEAAyE;AACzE,SAAS,mBAAmB,CAAC,IAAe,EAAE,YAAoB;IAChE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAC7C,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC9D,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,qBAAqB,CAClC,IAAe,EACf,EAAiB,EACjB,YAAoB,EACpB,OAAqB,EACrB,KAAa;IAEb,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,IAAI,EACJ,uBAAuB,EACvB,EAAE,IAAI,EAAE,YAAY,EAAE,EACtB;QACE,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;QAC7B,MAAM,EAAE,IAAI;QACZ,0EAA0E;QAC1E,qEAAqE;QACrE,qEAAqE;QACrE,yEAAyE;QACzE,2EAA2E;QAC3E,qEAAqE;QACrE,sEAAsE;QACtE,qEAAqE;QACrE,yEAAyE;QACzE,wDAAwD;QACxD,mBAAmB,EAAE,IAAI;KAC1B,CACF,CAAC;IACF,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC7C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE;gBACN,GAAG,IAAI;gBACP,EAAE;gBACF,GAAG,CAAC,QAAQ,IAAI,IAAI;oBAClB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,sDAAsD,EAAE;oBAClF,CAAC,CAAC,EAAE,CAAC;aACU;SACpB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,QAAQ,CAAC,GAAS;IACzB,OAAO,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AACzE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,OAAqB,EAAE,KAAa;IACtD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACzC,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,eAAe,CACtB,IAAe,EACf,IAQC;IAED,OAAO,sBAAsB,CAAC,IAAI,EAAE;QAClC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc;QACpC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,UAAU,EACR,GAAG,IAAI,CAAC,EAAE,wBAAwB,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI;YAClE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;QACrG,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM;QAC7D,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI;QAC5D,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAC;AACL,CAAC;AAED,6EAA6E;AAE7E;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,MAAsB;IACjD,OAAO,MAAM,CAAC,IAAI,KAAK,eAAe,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QACnE,CAAC,CAAC,MAAM,CAAC,QAAQ;QACjB,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,sBAAsB,CAC7B,YAAmC,EACnC,MAAwB;IAExB,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACnF,OAAO,EAAE,GAAG,YAAY,EAAE,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,wBAAwB,CAC/B,IAAe,EACf,OAAuB,EACvB,IAWC;IAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACpD,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACrF,sBAAsB,CAAC,IAAI,EAAE;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QACrE,SAAS,EAAE,IAAI,CAAC,QAAQ;KACzB,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6EAA6E;AAE7E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAe,EACf,EAAmC,EACnC,IAAY;AACZ;;;;;GAKG;AACH,YAA2F,EAC3F,UAAwB,EAAE;IAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,cAAc,GAAG,EAAE,KAAK,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IAEzE,4EAA4E;IAC5E,6EAA6E;IAC7E,8EAA8E;IAC9E,2EAA2E;IAC3E,2EAA2E;IAC3E,IAAI,SAAS,GAAc,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC/D,IAAI,aAAa,GAAG,IAAI,CAAC;IACzB,IAAI,mBAAqD,CAAC;IAE1D,OAAO,YAAY,CACjB,IAAI,EACJ,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;QACnC,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE;YAC7C,EAAE;YACF,SAAS,EAAE,GAAG;YACd,KAAK;YACL,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,GAAG,EAAE,wBAAwB,IAAI,eAAe;YAC5D,SAAS,EAAE,EAAE,IAAI,EAAE;YACnB,QAAQ,EAAE,SAAS;YACnB,GAAG,CAAC,mBAAmB,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;YAC7E,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IACD,8EAA8E;IAC9E,2EAA2E;IAC3E,2EAA2E;IAC3E,8EAA8E;IAC9E,2DAA2D;IAC3D,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,CAC9D,CAAC;IAEF,KAAK,UAAU,UAAU;QACvB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC,EAAE,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;QAE9F,IAAI,UAAkB,CAAC;QACvB,IAAI,cAA8B,CAAC;QACnC,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAChC,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC;YACrC,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;gBAAE,OAAO,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACvF,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,wEAAwE;gBACxE,wEAAwE;gBACxE,wEAAwE;gBACxE,oEAAoE;gBACpE,sEAAsE;gBACtE,qEAAqE;gBACrE,uDAAuD;gBACvD,SAAS;oBACP,sBAAsB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;wBACvD,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;qBAC5C,CAAC,IAAI,SAAS,CAAC;gBAClB,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,CAAC;YACD,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC;YAC9B,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,UAAU,GAAyB;YACvC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,cAAc,EAAE,UAAU;YAC1B,MAAM;YACN,IAAI,EAAE,cAAc;SACrB,CAAC;QACF,yEAAyE;QACzE,6EAA6E;QAC7E,aAAa,GAAG,UAAU,CAAC;QAC3B,mBAAmB,GAAG,UAAU,CAAC;QACjC,SAAS,GAAG;YACV,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;SACtD,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACzE,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxB,6EAA6E;YAC7E,yDAAyD;YACzD,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;YACpD,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAoB,CAAC;QAC5C,CAAC;QAED,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE;YACtC,EAAE;YACF,SAAS,EAAE,GAAG;YACd,KAAK;YACL,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE;YACvC,UAAU;YACV,SAAS,EAAE,KAAK;YAChB,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,EAAE,KAAK,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;QACjE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACjC,QAAQ,CACN,GAAG,EACH,qBAAqB,EACrB,GAAG,IAAI,IAAI,eAAe,CAAC,cAAc,CAAC,QAAQ,KAAK,CAAC,KAAK,GAAG;YAC9D,CAAC,MAAM,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC,EAAE,CAAC,CACnF,CAAC;QACF,QAAQ,CACN,GAAG,EACH,iBAAiB,EACjB,QAAQ,KAAK,IAAI;YACf,CAAC,CAAC,gDAAgD;YAClD,CAAC,CAAC,KAAK,CAAC,eAAe;gBACrB,CAAC,CAAC,0BAA0B,QAAQ,iDAAiD;oBACnF,oDAAoD;gBACtD,CAAC,CAAC,0BAA0B,QAAQ,EAAE,CAC3C,CAAC;QACF,IAAI,MAAM;YAAE,QAAQ,CAAC,GAAG,EAAE,8BAA8B,EAAE,iBAAiB,CAAC,CAAC;QAC7E,OAAO,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,6EAA6E;AAE7E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAe,EACf,IAAY,EACZ,KAA6C,EAC7C,UAAwB,EAAE;IAE1B,MAAM,EAAE,GAAkB,aAAa,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,+EAA+E;IAC/E,6EAA6E;IAC7E,0EAA0E;IAC1E,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE5B,8EAA8E;IAC9E,4EAA4E;IAC5E,4EAA4E;IAC5E,8EAA8E;IAC9E,6EAA6E;IAC7E,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IAC5E,iEAAiE;IACjE,IAAI,SAAS,GAAc,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC/D,IAAI,aAAa,GAAG,IAAI,CAAC;IACzB,IAAI,mBAAqD,CAAC;IAE1D,OAAO,YAAY,CACjB,IAAI,EACJ,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;QACtC,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE;YAC7C,EAAE;YACF,SAAS,EAAE,GAAG;YACd,KAAK;YACL,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,GAAG,EAAE,oCAAoC,IAAI,eAAe;YACxE,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE;YAC7B,QAAQ,EAAE,SAAS;YACnB,GAAG,CAAC,mBAAmB,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;YAC7E,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IACD,4EAA4E;IAC5E,yEAAyE;IACzE,6EAA6E;IAC7E,6EAA6E;IAC7E,mEAAmE;IACnE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,CACxE,CAAC;IAEF,KAAK,UAAU,aAAa;QAC1B,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC,EAAE,EAAE,4CAA4C,EAAE,OAAO,CAAC,CAAC;QAE9F,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAE9D,6EAA6E;QAC7E,4EAA4E;QAC5E,MAAM,SAAS,GAAG,aAAa,CAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAC7D,QAAQ,CACT,CAAC;QACF,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YACjD,2EAA2E;YAC3E,2EAA2E;YAC3E,uEAAuE;YACvE,0CAA0C;YAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACvD,OAAO,OAAO,CACZ,EAAE,EACF,2EAA2E;oBACzE,GAAG,SAAS,+BAA+B,EAC7C,yEAAyE;oBACvE,uCAAuC,CAC1C,CAAC;YACJ,CAAC;YACD,IAAI,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7D,OAAO,OAAO,CACZ,EAAE,EACF,IAAI,KAAK,CAAC,KAAK,sBAAsB,SAAS,wCAAwC;oBACpF,+DAA+D,EACjE,kFAAkF;oBAChF,uCAAuC,CAC1C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACvF,wEAAwE;QACxE,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QAEjC,MAAM,UAAU,GAAyB;YACvC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,cAAc,EAAE,IAAI,CAAC,IAAI;YACzB,wEAAwE;YACxE,oDAAoD;YACpD,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,KAAK,CAAC,MAAM;SACnB,CAAC;QACF,6EAA6E;QAC7E,6EAA6E;QAC7E,4EAA4E;QAC5E,uEAAuE;QACvE,yEAAyE;QACzE,oDAAoD;QACpD,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,mBAAmB,GAAG,UAAU,CAAC;QAEjC,MAAM,KAAK,GAAG,MAAM,WAAW,CAC7B,IAAI,EACJ,aAAa,EACb,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,EAC7B,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAC3B,CAAC;QACF,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxB,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;YACpD,OAAO;gBACL,GAAG,KAAK;gBACR,EAAE;gBACF,GAAG,CAAC,QAAQ,IAAI,KAAK;oBACnB,CAAC,CAAC;wBACE,MAAM,EACJ,GAAG,KAAK,CAAC,MAAM,UAAU,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,uBAAuB;4BAC7E,2DAA2D,IAAI,CAAC,IAAI,GAAG;qBAC1E;oBACH,CAAC,CAAC,EAAE,CAAC;aACU,CAAC;QACtB,CAAC;QAED,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE;YACtC,EAAE;YACF,SAAS,EAAE,GAAG;YACd,KAAK;YACL,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,KAAK,EAAE;YACjD,UAAU;YACV,SAAS,EAAE,KAAK;YAChB,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACjC,QAAQ,CACN,GAAG,EACH,4BAA4B,EAC5B,gBAAgB,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC,KAAK,2BAA2B;YACzF,WAAW,CACd,CAAC;QACF,QAAQ,CACN,GAAG,EACH,iBAAiB,EACjB,QAAQ,KAAK,IAAI;YACf,CAAC,CAAC,gDAAgD;YAClD,CAAC,CAAC,0BAA0B,QAAQ,EAAE,CACzC,CAAC;QACF,QAAQ,CAAC,GAAG,EAAE,8BAA8B,EAAE,iBAAiB,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,CAAC"}
@@ -45,7 +45,7 @@ import { isUuidInScope } from "../read/scope.js";
45
45
  import { localToday } from "../model/dates.js";
46
46
  import { getField } from "./verify/delta.js";
47
47
  import { isRepeatingTemplate, loadTarget } from "./pre-state.js";
48
- import { isUiDriveOp } from "./operations.js";
48
+ import { isRepeatReanchor, isUiDriveOp, } from "./operations.js";
49
49
  import { restoreModDates } from "./preserve-modified.js";
50
50
  import { ruleToInverseParams } from "./repeat-rule.js";
51
51
  import { updateRestoreParams } from "./update-fields.js";
@@ -110,7 +110,16 @@ export function readAuditRecords(dir) {
110
110
  * filter `result === "ok"`, so they skip intent records too.
111
111
  */
112
112
  function undoableRecords(records) {
113
- return records.filter((r) => r.result === "ok" && !r.actor.startsWith("undo:") && r.txn?.role !== "leg");
113
+ return records.filter((r) => r.result === "ok" &&
114
+ !r.actor.startsWith("undo:") &&
115
+ r.txn?.role !== "leg" &&
116
+ // …and never a RESCUE action (issue #640). `rescue dismiss` / `rescue
117
+ // relaunch` are recorded because a verb that destroys in-flight work
118
+ // should leave a trace, but they change no task data and have no inverse:
119
+ // a closed dialog cannot be re-opened with what was typed into it, and a
120
+ // relaunched app cannot be un-relaunched. Without this they would show up
121
+ // as the newest undo target and `undo` would have nothing to compile.
122
+ !r.op.startsWith("rescue."));
114
123
  }
115
124
  /** Pairing key for an intent and its final record (both derive from startedAt). */
116
125
  function intentKey(r) {
@@ -1472,6 +1481,16 @@ export function planUndo(record, now, allRecords = [], current) {
1472
1481
  case "project.reschedule-repeat": {
1473
1482
  if (uuid === null)
1474
1483
  return irreversible("no target uuid recorded");
1484
+ // The RE-ANCHOR spelling has NO inverse (REANCH1 §8). Moving the series
1485
+ // back would mean writing its OLD date — which is by then today or in the
1486
+ // past on the very machine the write lands on, and that write kills the
1487
+ // app (§5). The rule anchor could be re-driven through the dialog, but the
1488
+ // cursor could not, so an "undo" would leave the series somewhere neither
1489
+ // the caller nor the app chose. Refused whole, with the app's own ⌘Z named.
1490
+ if (isRepeatReanchor(record.requested)) {
1491
+ return irreversible("moving a repeating series' next occurrence cannot be undone here — move it to another " +
1492
+ "future date, or use the Things app's own undo");
1493
+ }
1475
1494
  const priorRule = decodedRuleOf(record);
1476
1495
  if (priorRule === null) {
1477
1496
  return irreversible("the prior recurrence rule was not captured (or could not be decoded) — reschedule again by hand");
@@ -1765,9 +1784,30 @@ export async function runUndo(deps, auditDirPath, options = {}, onItem) {
1765
1784
  // --preserve-modified recorded each touched row's pre-write
1766
1785
  // userModificationDate on `preModDates`. After the inverse legs land, put
1767
1786
  // those umd values back (floor(preUmd)) so the UNDO is ALSO off the
1768
- // changes/watch timeline — matching the forward op's silence. Best-effort:
1769
- // a failed restore is disclosed, never fatal (the inverse already stands).
1770
- // Records without preModDates (the default) are untouched.
1787
+ // changes/watch timeline — matching the forward op's silence.
1788
+ //
1789
+ // This is NATIVE PARITY, not a convenience: UMDZ1 (2026-08-28, golden-v4 /
1790
+ // Things 3.23, docs/lab/umdz1-undo-umd.md) measured the app's own ⌘Z
1791
+ // RESTORING umd to its exact pre-edit value — the stored float, sub-second
1792
+ // included — on every undoable class it could drive: a completion, a
1793
+ // move-to-trash, and (REPX3 §4.2) a template rule edit. The app treats an
1794
+ // undo as a restoration of the record, not as a fresh compensating edit.
1795
+ // Our one divergence is resolution: AppleScript's `date` has no sub-second,
1796
+ // so we land on floor(preUmd) — always ≤ the app's value, which is the safe
1797
+ // direction for `changes --since` (a restored row never re-surfaces).
1798
+ // The same campaign confirmed our writes can never ride that undo (a
1799
+ // URL-scheme update leaves Edit ▸ Undo disabled and ⌘Z inert), which is why
1800
+ // we mirror the behavior here instead of delegating to it.
1801
+ //
1802
+ // CLASSIFICATION INVARIANT (maintainer ruling, 2026-08-28): the restore is
1803
+ // best-effort and purely ADDITIVE — a failed leg, or no AppleScript vector
1804
+ // to run one at all, is disclosed and the undo still reports `ok`. An
1805
+ // operation is NEVER classed irreversible merely because a modification
1806
+ // date cannot be restored; `planUndo` accordingly never reads preModDates.
1807
+ // Locked by test/engine/write-undo.test.ts.
1808
+ //
1809
+ // Records without preModDates (the default) are untouched — their undo is
1810
+ // an honest timeline entry.
1771
1811
  if (!failed && record.preModDates !== undefined) {
1772
1812
  const umdTargets = Object.entries(record.preModDates)
1773
1813
  .filter((e) => typeof e[1] === "number")