things-api 0.9.0 → 0.10.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 (214) hide show
  1. package/README.md +30 -11
  2. package/dist/audit/log.js +56 -2
  3. package/dist/audit/log.js.map +1 -1
  4. package/dist/audit/schema.d.ts +26 -8
  5. package/dist/audit/schema.js +42 -1
  6. package/dist/audit/schema.js.map +1 -1
  7. package/dist/cli/commands/area.d.ts +26 -3
  8. package/dist/cli/commands/area.js +125 -70
  9. package/dist/cli/commands/area.js.map +1 -1
  10. package/dist/cli/commands/doctor.d.ts +1 -1
  11. package/dist/cli/commands/doctor.js +44 -5
  12. package/dist/cli/commands/doctor.js.map +1 -1
  13. package/dist/cli/commands/mcp.js +23 -4
  14. package/dist/cli/commands/mcp.js.map +1 -1
  15. package/dist/cli/commands/project.d.ts +18 -1
  16. package/dist/cli/commands/project.js +69 -31
  17. package/dist/cli/commands/project.js.map +1 -1
  18. package/dist/cli/commands/reads.js +423 -157
  19. package/dist/cli/commands/reads.js.map +1 -1
  20. package/dist/cli/commands/repeat-flags.d.ts +20 -0
  21. package/dist/cli/commands/repeat-flags.js +76 -0
  22. package/dist/cli/commands/repeat-flags.js.map +1 -0
  23. package/dist/cli/commands/setup.js +2 -3
  24. package/dist/cli/commands/setup.js.map +1 -1
  25. package/dist/cli/commands/show.js +47 -24
  26. package/dist/cli/commands/show.js.map +1 -1
  27. package/dist/cli/commands/todo.d.ts +1 -1
  28. package/dist/cli/commands/todo.js +7 -6
  29. package/dist/cli/commands/todo.js.map +1 -1
  30. package/dist/cli/commands/writes.js +378 -148
  31. package/dist/cli/commands/writes.js.map +1 -1
  32. package/dist/cli/did-you-mean.d.ts +1 -1
  33. package/dist/cli/excess-args.d.ts +15 -0
  34. package/dist/cli/excess-args.js +51 -0
  35. package/dist/cli/excess-args.js.map +1 -0
  36. package/dist/cli/glyphs.d.ts +39 -2
  37. package/dist/cli/glyphs.js +91 -21
  38. package/dist/cli/glyphs.js.map +1 -1
  39. package/dist/cli/help.d.ts +54 -0
  40. package/dist/cli/help.js +355 -0
  41. package/dist/cli/help.js.map +1 -0
  42. package/dist/cli/main.js +32 -25
  43. package/dist/cli/main.js.map +1 -1
  44. package/dist/cli/period.d.ts +7 -0
  45. package/dist/cli/period.js +12 -0
  46. package/dist/cli/period.js.map +1 -1
  47. package/dist/cli/read-driver.d.ts +26 -19
  48. package/dist/cli/read-driver.js +67 -33
  49. package/dist/cli/read-driver.js.map +1 -1
  50. package/dist/cli/render.d.ts +92 -28
  51. package/dist/cli/render.js +318 -97
  52. package/dist/cli/render.js.map +1 -1
  53. package/dist/cli/resolve-invocation.d.ts +42 -4
  54. package/dist/cli/resolve-invocation.js +97 -14
  55. package/dist/cli/resolve-invocation.js.map +1 -1
  56. package/dist/cli/tag-filters.d.ts +59 -0
  57. package/dist/cli/tag-filters.js +57 -0
  58. package/dist/cli/tag-filters.js.map +1 -0
  59. package/dist/cli/verb-hint.d.ts +25 -0
  60. package/dist/cli/verb-hint.js +138 -0
  61. package/dist/cli/verb-hint.js.map +1 -0
  62. package/dist/cli/width.d.ts +135 -0
  63. package/dist/cli/width.js +313 -0
  64. package/dist/cli/width.js.map +1 -0
  65. package/dist/client.d.ts +137 -24
  66. package/dist/client.js +105 -16
  67. package/dist/client.js.map +1 -1
  68. package/dist/config.d.ts +11 -0
  69. package/dist/config.js +3 -0
  70. package/dist/config.js.map +1 -1
  71. package/dist/contracts.d.ts +87 -17
  72. package/dist/contracts.js +44 -1
  73. package/dist/contracts.js.map +1 -1
  74. package/dist/db/fingerprint.d.ts +12 -0
  75. package/dist/db/fingerprint.js +15 -1
  76. package/dist/db/fingerprint.js.map +1 -1
  77. package/dist/db/locate.js +1 -1
  78. package/dist/db/locate.js.map +1 -1
  79. package/dist/diagnose.d.ts +63 -0
  80. package/dist/diagnose.js +38 -1
  81. package/dist/diagnose.js.map +1 -1
  82. package/dist/index.d.ts +30 -4
  83. package/dist/index.js +35 -2
  84. package/dist/index.js.map +1 -1
  85. package/dist/mcp/server.d.ts +9 -1
  86. package/dist/mcp/server.js +691 -133
  87. package/dist/mcp/server.js.map +1 -1
  88. package/dist/model/entities.d.ts +31 -7
  89. package/dist/model/entities.js.map +1 -1
  90. package/dist/model/mappers.d.ts +7 -0
  91. package/dist/model/mappers.js +7 -2
  92. package/dist/model/mappers.js.map +1 -1
  93. package/dist/model/serialize.d.ts +28 -0
  94. package/dist/model/serialize.js +80 -0
  95. package/dist/model/serialize.js.map +1 -0
  96. package/dist/model/when-sugar.d.ts +47 -0
  97. package/dist/model/when-sugar.js +45 -0
  98. package/dist/model/when-sugar.js.map +1 -0
  99. package/dist/read/area-view.d.ts +8 -1
  100. package/dist/read/area-view.js +49 -13
  101. package/dist/read/area-view.js.map +1 -1
  102. package/dist/read/filter-contract.d.ts +117 -0
  103. package/dist/read/filter-contract.js +78 -0
  104. package/dist/read/filter-contract.js.map +1 -0
  105. package/dist/read/predicates.d.ts +30 -0
  106. package/dist/read/predicates.js +30 -0
  107. package/dist/read/predicates.js.map +1 -1
  108. package/dist/read/project-view.d.ts +12 -1
  109. package/dist/read/project-view.js +39 -8
  110. package/dist/read/project-view.js.map +1 -1
  111. package/dist/read/queries.d.ts +149 -6
  112. package/dist/read/queries.js +250 -31
  113. package/dist/read/queries.js.map +1 -1
  114. package/dist/read/sections.d.ts +51 -0
  115. package/dist/read/sections.js +37 -0
  116. package/dist/read/sections.js.map +1 -0
  117. package/dist/read/sidebar-order.js +2 -1
  118. package/dist/read/sidebar-order.js.map +1 -1
  119. package/dist/read/tags.d.ts +27 -3
  120. package/dist/read/tags.js +83 -12
  121. package/dist/read/tags.js.map +1 -1
  122. package/dist/read/truncation.d.ts +71 -0
  123. package/dist/read/{pagination.js → truncation.js} +103 -94
  124. package/dist/read/truncation.js.map +1 -0
  125. package/dist/read/views.d.ts +140 -16
  126. package/dist/read/views.js +264 -67
  127. package/dist/read/views.js.map +1 -1
  128. package/dist/surface-copy.d.ts +19 -0
  129. package/dist/surface-copy.js +32 -0
  130. package/dist/surface-copy.js.map +1 -1
  131. package/dist/sync-health.d.ts +78 -0
  132. package/dist/sync-health.js +312 -0
  133. package/dist/sync-health.js.map +1 -0
  134. package/dist/write/accessibility-probe.d.ts +12 -0
  135. package/dist/write/accessibility-probe.js +63 -0
  136. package/dist/write/accessibility-probe.js.map +1 -0
  137. package/dist/write/automation-probe.d.ts +7 -0
  138. package/dist/write/automation-probe.js +8 -1
  139. package/dist/write/automation-probe.js.map +1 -1
  140. package/dist/write/batch.js +4 -2
  141. package/dist/write/batch.js.map +1 -1
  142. package/dist/write/capabilities.d.ts +8 -0
  143. package/dist/write/capabilities.js +13 -6
  144. package/dist/write/capabilities.js.map +1 -1
  145. package/dist/write/commands.d.ts +2 -0
  146. package/dist/write/commands.js +562 -48
  147. package/dist/write/commands.js.map +1 -1
  148. package/dist/write/edit-checklist.js +3 -2
  149. package/dist/write/edit-checklist.js.map +1 -1
  150. package/dist/write/guards.d.ts +2 -7
  151. package/dist/write/guards.js +64 -6
  152. package/dist/write/guards.js.map +1 -1
  153. package/dist/write/heading.js +2 -0
  154. package/dist/write/heading.js.map +1 -1
  155. package/dist/write/lock.d.ts +40 -2
  156. package/dist/write/lock.js +91 -14
  157. package/dist/write/lock.js.map +1 -1
  158. package/dist/write/make-repeating-project.d.ts +4 -0
  159. package/dist/write/make-repeating-project.js +253 -0
  160. package/dist/write/make-repeating-project.js.map +1 -0
  161. package/dist/write/operations.d.ts +145 -1
  162. package/dist/write/operations.js +48 -0
  163. package/dist/write/operations.js.map +1 -1
  164. package/dist/write/pipeline.d.ts +19 -0
  165. package/dist/write/pipeline.js +109 -26
  166. package/dist/write/pipeline.js.map +1 -1
  167. package/dist/write/pre-state.d.ts +68 -3
  168. package/dist/write/pre-state.js +102 -3
  169. package/dist/write/pre-state.js.map +1 -1
  170. package/dist/write/reopen.js +3 -2
  171. package/dist/write/reopen.js.map +1 -1
  172. package/dist/write/reorder.js +27 -17
  173. package/dist/write/reorder.js.map +1 -1
  174. package/dist/write/repeat-rule.d.ts +22 -0
  175. package/dist/write/repeat-rule.js +258 -0
  176. package/dist/write/repeat-rule.js.map +1 -0
  177. package/dist/write/reversibility.js +49 -0
  178. package/dist/write/reversibility.js.map +1 -1
  179. package/dist/write/tag-refs.d.ts +47 -0
  180. package/dist/write/tag-refs.js +126 -0
  181. package/dist/write/tag-refs.js.map +1 -0
  182. package/dist/write/undo.d.ts +74 -5
  183. package/dist/write/undo.js +493 -80
  184. package/dist/write/undo.js.map +1 -1
  185. package/dist/write/vectors/registry.d.ts +17 -1
  186. package/dist/write/vectors/registry.js +18 -2
  187. package/dist/write/vectors/registry.js.map +1 -1
  188. package/dist/write/vectors/types.d.ts +119 -3
  189. package/dist/write/vectors/ui-certification.d.ts +48 -0
  190. package/dist/write/vectors/ui-certification.js +46 -0
  191. package/dist/write/vectors/ui-certification.js.map +1 -0
  192. package/dist/write/vectors/ui-drag.d.ts +188 -0
  193. package/dist/write/vectors/ui-drag.js +1095 -0
  194. package/dist/write/vectors/ui-drag.js.map +1 -0
  195. package/dist/write/vectors/ui-recipes.d.ts +70 -0
  196. package/dist/write/vectors/ui-recipes.js +558 -0
  197. package/dist/write/vectors/ui-recipes.js.map +1 -0
  198. package/dist/write/vectors/ui.d.ts +137 -0
  199. package/dist/write/vectors/ui.js +656 -0
  200. package/dist/write/vectors/ui.js.map +1 -0
  201. package/dist/write/verify/delta.d.ts +31 -3
  202. package/dist/write/verify/delta.js +22 -6
  203. package/dist/write/verify/delta.js.map +1 -1
  204. package/dist/write/verify/poller.js +1 -0
  205. package/dist/write/verify/poller.js.map +1 -1
  206. package/package.json +1 -1
  207. package/dist/cli/exit-codes.d.ts +0 -26
  208. package/dist/cli/exit-codes.js +0 -26
  209. package/dist/cli/exit-codes.js.map +0 -1
  210. package/dist/cli/output.d.ts +0 -42
  211. package/dist/cli/output.js +0 -16
  212. package/dist/cli/output.js.map +0 -1
  213. package/dist/read/pagination.d.ts +0 -104
  214. package/dist/read/pagination.js.map +0 -1
@@ -3,7 +3,7 @@
3
3
  * world BEFORE a mutation. One read pass, snapshot semantics per statement.
4
4
  */
5
5
  import type { DatabaseSync } from "node:sqlite";
6
- import type { AnyTask, Project, TaskStatus, Todo } from "../model/entities.ts";
6
+ import type { AnyTask, Project, TaskStatus, TaskType, Todo } from "../model/entities.ts";
7
7
  import type { ContainerRef, ReorderParams } from "./operations.ts";
8
8
  export interface ResolvedContainer {
9
9
  uuid: string;
@@ -56,8 +56,14 @@ export interface PreState {
56
56
  destArea: ContainerResolution | null;
57
57
  /** Heading resolution inside the destination (or target's) project. */
58
58
  destHeading: ContainerResolution | null;
59
- /** Requested tag titles absent from TMTag (case-insensitive). */
59
+ /** Requested tag refs that resolve to no tag (unknown tags). */
60
60
  missingTags: string[];
61
+ /**
62
+ * Resolved leaf titles for the tag SET ops (todo.add/set-tags,
63
+ * project.set-tags, area.add/update) — name/path refs de-duplicated. What
64
+ * actually gets applied (by name, app-resolved) + asserted.
65
+ */
66
+ resolvedTagTitles: string[];
61
67
  /** tag.add parent resolution. */
62
68
  parentTag: ContainerResolution | null;
63
69
  /** area.delete / tag.delete target resolution (TMArea/TMTag). */
@@ -76,15 +82,74 @@ export interface PreState {
76
82
  sameTitleUuids: string[];
77
83
  /** Scope membership + wire list for the reorder operation. */
78
84
  reorder: ReorderPre | null;
85
+ /**
86
+ * area.reorder: the FULL area uuid list ordered by TMArea."index"
87
+ * (the canonical area order once materialized) — feeds the ordering delta's
88
+ * capture list so undo can restore the exact previous position.
89
+ */
90
+ areaOrder: string[] | null;
91
+ /** project.make-repeating: the row-selection taxonomy (UIC4-f). */
92
+ projectRepeat: ProjectRepeatTaxonomy | null;
79
93
  }
94
+ /**
95
+ * Row-selection taxonomy for `project.make-repeating` (UIC4-f). A project is
96
+ * made repeating by selecting it as a content-table ROW (settable
97
+ * AXSelectedRows), reachable in its AREA view or the SOMEDAY view but NOT the
98
+ * Anytime view (an area-less anytime project renders as a header there). The
99
+ * classifier resolves which view reveals a selectable row, or refuses.
100
+ */
101
+ export type ProjectRepeatRefusal = "not-a-project" | "trashed" | "logged" | "already-repeating" | "ambiguous-row" | "unexpected-start";
102
+ export type ProjectRepeatTaxonomy = {
103
+ /** Selectable row in the project's AREA view — reveal the area, then select the row. */
104
+ kind: "area";
105
+ /** The area uuid revealed via things:///show?id= to render the row. */
106
+ containerReveal: string;
107
+ title: string;
108
+ } | {
109
+ /** Area-less someday project — a selectable row in the SOMEDAY view. */
110
+ kind: "someday";
111
+ /** Literal "someday" (things:///show?id=someday). */
112
+ containerReveal: "someday";
113
+ title: string;
114
+ } | {
115
+ /**
116
+ * Area-less ANYTIME project — no selectable row in the Anytime view
117
+ * (renders as a header, UIC4-d). Reachable only after a cleanup-free
118
+ * coercion to Someday; the orchestrator does that leg, never the drive.
119
+ */
120
+ kind: "anytime";
121
+ title: string;
122
+ } | {
123
+ kind: "refuse";
124
+ refusal: ProjectRepeatRefusal;
125
+ detail: string;
126
+ };
80
127
  export declare function emptyPreState(): PreState;
128
+ /**
129
+ * Classify a project for `project.make-repeating`'s pure-AX row-selection
130
+ * recipe (UIC4-f), or refuse. Reads DB truth (area / start / template / status)
131
+ * — the orchestrator uses it to decide the Someday coercion; the command spec
132
+ * uses it (post-coercion) to build the reveal + row-select recipe.
133
+ */
134
+ export declare function classifyProjectRepeat(db: DatabaseSync, target: AnyTask | null): ProjectRepeatTaxonomy;
81
135
  export declare function resolveArea(db: DatabaseSync, ref: ContainerRef): ContainerResolution;
82
136
  export declare function resolveProject(db: DatabaseSync, ref: ContainerRef): ContainerResolution;
83
137
  export declare function resolveHeading(db: DatabaseSync, projectUuid: string, headingTitle: string): ContainerResolution;
84
138
  export declare function projectStatus(db: DatabaseSync, uuid: string): TaskStatus | null;
85
- export declare function missingTagTitles(db: DatabaseSync, titles: string[]): string[];
86
139
  export declare function resolveTag(db: DatabaseSync, ref: string): ContainerResolution;
87
140
  export declare function loadTarget(db: DatabaseSync, uuid: string): AnyTask | null;
141
+ /**
142
+ * Uuids of pre-existing TMTask rows matching a create-probe's (title, type),
143
+ * captured in the pre-read and threaded into the probe as `excludeUuids`.
144
+ * Create-mode verification discovers the row the app just made by (title,
145
+ * type); without this exclusion the probe could bind to a DIFFERENT same-title
146
+ * row that merely appeared in the trailing sinceEpoch window (a concurrent add,
147
+ * a repeat-template spawn, a sync insert), recording the wrong discoveredUuid —
148
+ * and a later undo would then trash the wrong item. Matches `findCreated`'s
149
+ * exact `title = ? AND type = ?` filter (case-sensitive) so the captured set is
150
+ * precisely the pre-existing rows that discovery would otherwise consider.
151
+ */
152
+ export declare function sameTitleTaskUuids(db: DatabaseSync, title: string, type: TaskType): string[];
88
153
  export declare function projectChildren(db: DatabaseSync, projectUuid: string): Todo[];
89
154
  /**
90
155
  * Titles of every DESCENDANT tag under the given tag (excluding itself).
@@ -10,6 +10,7 @@ export function emptyPreState() {
10
10
  destArea: null,
11
11
  destHeading: null,
12
12
  missingTags: [],
13
+ resolvedTagTitles: [],
13
14
  parentTag: null,
14
15
  entityTarget: null,
15
16
  childTags: [],
@@ -21,6 +22,92 @@ export function emptyPreState() {
21
22
  existingEntityUuids: [],
22
23
  sameTitleUuids: [],
23
24
  reorder: null,
25
+ areaOrder: null,
26
+ projectRepeat: null,
27
+ };
28
+ }
29
+ /**
30
+ * Count non-trashed projects with the given title that share the target's
31
+ * row-selection container, EXCLUDING the target itself. A non-zero count is a
32
+ * row-selection ambiguity: the AREA/SOMEDAY row exposes no title text or uuid
33
+ * to disambiguate (UIC4-b), so two same-titled projects cannot be told apart —
34
+ * the drive refuses fail-closed rather than guess which row to select.
35
+ */
36
+ function sameTitleRowCount(db, title, excludeUuid, container) {
37
+ const containerWhere = "areaUuid" in container ? "area = ?" : "area IS NULL AND start = 2 AND startDate IS NULL";
38
+ const binds = "areaUuid" in container ? [title, excludeUuid, container.areaUuid] : [title, excludeUuid];
39
+ const row = db
40
+ .prepare(`SELECT COUNT(*) AS n FROM TMTask
41
+ WHERE type = 1 AND trashed = 0 AND title = ? COLLATE NOCASE AND uuid != ? AND ${containerWhere}`)
42
+ .get(...binds);
43
+ return row.n;
44
+ }
45
+ /**
46
+ * Classify a project for `project.make-repeating`'s pure-AX row-selection
47
+ * recipe (UIC4-f), or refuse. Reads DB truth (area / start / template / status)
48
+ * — the orchestrator uses it to decide the Someday coercion; the command spec
49
+ * uses it (post-coercion) to build the reveal + row-select recipe.
50
+ */
51
+ export function classifyProjectRepeat(db, target) {
52
+ if (target === null || target.type !== "project") {
53
+ return { kind: "refuse", refusal: "not-a-project", detail: "target is not a project" };
54
+ }
55
+ if (target.trashed) {
56
+ return { kind: "refuse", refusal: "trashed", detail: "the project is in the Trash" };
57
+ }
58
+ if (target.status !== "open" || target.logged) {
59
+ return {
60
+ kind: "refuse",
61
+ refusal: "logged",
62
+ detail: `the project is ${target.logged ? "logged" : target.status} — only an open project can be made repeating`,
63
+ };
64
+ }
65
+ if (target.repeating.isTemplate) {
66
+ return {
67
+ kind: "refuse",
68
+ refusal: "already-repeating",
69
+ detail: "the project is already a repeating template",
70
+ };
71
+ }
72
+ const title = target.title;
73
+ if (target.area !== null) {
74
+ const areaUuid = target.area.uuid;
75
+ if (sameTitleRowCount(db, title, target.uuid, { areaUuid }) > 0) {
76
+ return {
77
+ kind: "refuse",
78
+ refusal: "ambiguous-row",
79
+ detail: `another project titled "${title}" shares this area — its selectable row cannot be disambiguated`,
80
+ };
81
+ }
82
+ return { kind: "area", containerReveal: areaUuid, title };
83
+ }
84
+ // Area-less: someday renders a selectable row; anytime needs coercion first.
85
+ if (target.start === "someday") {
86
+ if (sameTitleRowCount(db, title, target.uuid, { somedayAreaLess: true }) > 0) {
87
+ return {
88
+ kind: "refuse",
89
+ refusal: "ambiguous-row",
90
+ detail: `another area-less Someday project titled "${title}" exists — its row cannot be disambiguated`,
91
+ };
92
+ }
93
+ return { kind: "someday", containerReveal: "someday", title };
94
+ }
95
+ if (target.start === "active") {
96
+ // Post-coercion the project joins the Someday cohort; refuse if that would
97
+ // collide with an existing same-titled area-less Someday project.
98
+ if (sameTitleRowCount(db, title, target.uuid, { somedayAreaLess: true }) > 0) {
99
+ return {
100
+ kind: "refuse",
101
+ refusal: "ambiguous-row",
102
+ detail: `an area-less Someday project titled "${title}" already exists — coercing this one there would make its row ambiguous`,
103
+ };
104
+ }
105
+ return { kind: "anytime", title };
106
+ }
107
+ return {
108
+ kind: "refuse",
109
+ refusal: "unexpected-start",
110
+ detail: `the project has an unexpected schedule state (${target.start}) with no area — cannot resolve a selectable row`,
24
111
  };
25
112
  }
26
113
  export function resolveArea(db, ref) {
@@ -45,15 +132,27 @@ export function projectStatus(db, uuid) {
45
132
  return null;
46
133
  return TASK_STATUS_FROM_DB[row.status] ?? null;
47
134
  }
48
- export function missingTagTitles(db, titles) {
49
- return titles.filter((t) => db.prepare("SELECT 1 FROM TMTag WHERE title = ? COLLATE NOCASE").get(t) === undefined);
50
- }
51
135
  export function resolveTag(db, ref) {
52
136
  return resolveNamedRef(db, "TMTag", "1=1", [], ref);
53
137
  }
54
138
  export function loadTarget(db, uuid) {
55
139
  return byUuid(db, uuid);
56
140
  }
141
+ /**
142
+ * Uuids of pre-existing TMTask rows matching a create-probe's (title, type),
143
+ * captured in the pre-read and threaded into the probe as `excludeUuids`.
144
+ * Create-mode verification discovers the row the app just made by (title,
145
+ * type); without this exclusion the probe could bind to a DIFFERENT same-title
146
+ * row that merely appeared in the trailing sinceEpoch window (a concurrent add,
147
+ * a repeat-template spawn, a sync insert), recording the wrong discoveredUuid —
148
+ * and a later undo would then trash the wrong item. Matches `findCreated`'s
149
+ * exact `title = ? AND type = ?` filter (case-sensitive) so the captured set is
150
+ * precisely the pre-existing rows that discovery would otherwise consider.
151
+ */
152
+ export function sameTitleTaskUuids(db, title, type) {
153
+ const dbType = type === "project" ? 1 : type === "heading" ? 2 : 0;
154
+ return db.prepare("SELECT uuid FROM TMTask WHERE title = ? AND type = ?").all(title, dbType).map((r) => r.uuid);
155
+ }
57
156
  export function projectChildren(db, projectUuid) {
58
157
  const rows = db
59
158
  .prepare("SELECT uuid FROM TMTask WHERE type = 0 AND trashed = 0 AND (project = ? OR heading IN " +
@@ -1 +1 @@
1
- {"version":3,"file":"pre-state.js","sourceRoot":"","sources":["../../src/write/pre-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pre-state.js","sourceRoot":"","sources":["../../src/write/pre-state.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * as the project and a stopDate within CASCADE_WINDOW_SECONDS of the
7
7
  * project's. Each child reopen is a full verified mutation.
8
8
  */
9
- import { resolveTaskUuidPrefix } from "../read/queries.js";
9
+ import { resolveProjectWriteTarget } from "../read/queries.js";
10
10
  import { runMutation } from "./pipeline.js";
11
11
  /** P03: cascade writes stamp children within <2s of the project row. */
12
12
  export const CASCADE_WINDOW_SECONDS = 2;
@@ -22,7 +22,7 @@ function cascadeCandidates(deps, projectUuid) {
22
22
  .all(projectUuid, CASCADE_WINDOW_SECONDS);
23
23
  }
24
24
  export async function runProjectReopen(deps, uuid, options = {}) {
25
- uuid = resolveTaskUuidPrefix(deps.db, uuid);
25
+ uuid = resolveProjectWriteTarget(deps.db, uuid);
26
26
  const { restoreChildren, ...writeOptions } = options;
27
27
  // Candidates must be computed BEFORE the reopen clears the project's
28
28
  // stopDate (the window is relative to it).
@@ -54,6 +54,7 @@ export async function runProjectReopen(deps, uuid, options = {}) {
54
54
  });
55
55
  continue;
56
56
  }
57
+ // child reopens must land one at a time (mutation lock + create-probe verification must never race); an early failure also needs to stop the remaining legs
57
58
  const result = await runMutation(deps, "todo.reopen", { uuid: child.uuid }, writeOptions);
58
59
  children.push({ uuid: child.uuid, title: child.title, result });
59
60
  if (result.kind !== "ok")
@@ -1 +1 @@
1
- {"version":3,"file":"reopen.js","sourceRoot":"","sources":["../../src/write/reopen.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAA0D,MAAM,eAAe,CAAC;AAEpG,wEAAwE;AACxE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAsBxC,SAAS,iBAAiB,CAAC,IAAe,EAAE,WAAmB;IAC7D,OAAO,IAAI,CAAC,EAAE;SACX,OAAO,CACN;;;;;;6EAMuE,CACxE;SACA,GAAG,CAAC,WAAW,EAAE,sBAAsB,CAAkC,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAe,EACf,IAAY,EACZ,UAAgC,EAAE;IAElC,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,EAAE,eAAe,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IACrD,qEAAqE;IACrE,2CAA2C;IAC3C,MAAM,UAAU,GAAG,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAoC,EAAE,CAAC;IACrD,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACxD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE;wBACN,IAAI,EAAE,SAAS;wBACf,EAAE,EAAE,aAAa;wBACjB,IAAI,EAAE;4BACJ,EAAE,EAAE,aAAa;4BACjB,MAAM,EAAE,aAAa;4BACrB,IAAI,EAAE,CAAC;4BACP,UAAU,EAAE,4BAA4B,KAAK,CAAC,KAAK,EAAE;4BACrD,aAAa,EAAE;gCACb,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,KAAK,CAAC,IAAI;gCAChB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;6BAC9C;4BACD,cAAc,EAAE,EAAE;yBACnB;qBACF;iBACF,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;YAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAChE,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;gBAAE,MAAM,CAAC,mCAAmC;QACtE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"reopen.js","sourceRoot":"","sources":["../../src/write/reopen.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAA0D,MAAM,eAAe,CAAC;AAEpG,wEAAwE;AACxE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAsBxC,SAAS,iBAAiB,CAAC,IAAe,EAAE,WAAmB;IAC7D,OAAO,IAAI,CAAC,EAAE;SACX,OAAO,CACN;;;;;;6EAMuE,CACxE;SACA,GAAG,CAAC,WAAW,EAAE,sBAAsB,CAAkC,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAe,EACf,IAAY,EACZ,UAAgC,EAAE;IAElC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,EAAE,eAAe,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IACrD,qEAAqE;IACrE,2CAA2C;IAC3C,MAAM,UAAU,GAAG,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAoC,EAAE,CAAC;IACrD,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACxD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE;wBACN,IAAI,EAAE,SAAS;wBACf,EAAE,EAAE,aAAa;wBACjB,IAAI,EAAE;4BACJ,EAAE,EAAE,aAAa;4BACjB,MAAM,EAAE,aAAa;4BACrB,IAAI,EAAE,CAAC;4BACP,UAAU,EAAE,4BAA4B,KAAK,CAAC,KAAK,EAAE;4BACrD,aAAa,EAAE;gCACb,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,KAAK,CAAC,IAAI;gCAChB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;6BAC9C;4BACD,cAAc,EAAE,EAAE;yBACnB;qBACF;iBACF,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,4JAA4J;YAC5J,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;YAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAChE,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;gBAAE,MAAM,CAAC,mCAAmC;QACtE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
@@ -10,6 +10,19 @@ import { pollUntilVerified } from "./verify/poller.js";
10
10
  * should use the native strategy and the evening scope should be re-thought.
11
11
  */
12
12
  export const BOUNCE_MAX_ITEMS = 10;
13
+ function blocked(detail, remediation) {
14
+ return {
15
+ kind: "blocked",
16
+ result: {
17
+ kind: "blocked",
18
+ op: "reorder",
19
+ reason: "hazard",
20
+ hazard: "H-REORDER-SCOPE",
21
+ detail,
22
+ remediation,
23
+ },
24
+ };
25
+ }
13
26
  export async function runReorder(deps, params, options = {}) {
14
27
  params = { ...params, uuids: params.uuids.map((u) => resolveTaskUuidPrefix(deps.db, u)) };
15
28
  const strategy = resolveStrategy(deps, params);
@@ -21,17 +34,6 @@ export async function runReorder(deps, params, options = {}) {
21
34
  return runBounce(deps, params, options);
22
35
  }
23
36
  function resolveStrategy(deps, params) {
24
- const blocked = (detail, remediation) => ({
25
- kind: "blocked",
26
- result: {
27
- kind: "blocked",
28
- op: "reorder",
29
- reason: "hazard",
30
- hazard: "H-REORDER-SCOPE",
31
- detail,
32
- remediation,
33
- },
34
- });
35
37
  const nativeAvailable = deps.config.allowExperimental && (deps.sdefProbe ?? sdefDeclaresPrivateReorder)();
36
38
  if (params.strategy === "native") {
37
39
  if (params.scope === "evening") {
@@ -76,6 +78,7 @@ function resolveStrategy(deps, params) {
76
78
  async function runBounce(deps, params, options) {
77
79
  const startedAt = deps.now?.() ?? new Date();
78
80
  const now = deps.now ?? (() => new Date());
81
+ const actor = options.actor ?? deps.config.actor;
79
82
  const scope = params.scope;
80
83
  const rankKey = scope === "projects" ? "index" : "todayIndex";
81
84
  const legOp = scope === "projects" ? "project.update" : "todo.update";
@@ -119,6 +122,7 @@ async function runBounce(deps, params, options) {
119
122
  auditSummary(deps, params, startedAt, "blocked:H-REORDER-SCOPE", null, {
120
123
  pre: preRanks,
121
124
  txnId,
125
+ actor,
122
126
  });
123
127
  return result;
124
128
  }
@@ -150,7 +154,7 @@ async function runBounce(deps, params, options) {
150
154
  if (memberProblem !== null) {
151
155
  const detail = `aborted before bouncing ${uuid}: ${memberProblem} (Things was likely edited ` +
152
156
  "concurrently); already-placed items keep their new positions";
153
- auditSummary(deps, params, startedAt, "verify-failed:mismatch", { placed: [...placed] }, { pre: preRanks, txnId });
157
+ auditSummary(deps, params, startedAt, "verify-failed:mismatch", { placed: [...placed] }, { pre: preRanks, txnId, actor });
154
158
  return {
155
159
  kind: "bounce-aborted",
156
160
  op: "reorder",
@@ -160,9 +164,10 @@ async function runBounce(deps, params, options) {
160
164
  cause: null,
161
165
  };
162
166
  }
167
+ // bounce legs must land in strict reverse order for the front-insert trick (O07/O08) to produce the requested top-first sequence
163
168
  const leg1 = await runMutation(deps, legOp, { uuid, when: away }, legOptions(options, txnId));
164
169
  if (leg1.kind !== "ok") {
165
- auditSummary(deps, params, startedAt, "verify-failed:mismatch", { placed: [...placed] }, { pre: preRanks, txnId });
170
+ auditSummary(deps, params, startedAt, "verify-failed:mismatch", { placed: [...placed] }, { pre: preRanks, txnId, actor });
166
171
  return {
167
172
  kind: "bounce-aborted",
168
173
  op: "reorder",
@@ -172,9 +177,10 @@ async function runBounce(deps, params, options) {
172
177
  cause: leg1,
173
178
  };
174
179
  }
180
+ // leg 2 must follow leg 1's committed state for the same item before the next item's bounce begins
175
181
  const leg2 = await runMutation(deps, legOp, { uuid, when: back }, legOptions(options, txnId));
176
182
  if (leg2.kind !== "ok") {
177
- auditSummary(deps, params, startedAt, "verify-failed:mismatch", { placed: [...placed] }, { pre: preRanks, txnId });
183
+ auditSummary(deps, params, startedAt, "verify-failed:mismatch", { placed: [...placed] }, { pre: preRanks, txnId, actor });
178
184
  return {
179
185
  kind: "bounce-aborted",
180
186
  op: "reorder",
@@ -188,9 +194,10 @@ async function runBounce(deps, params, options) {
188
194
  placed.unshift(uuid);
189
195
  // Placed-prefix invariant: everything bounced so far must read back in
190
196
  // requested relative order — anything else means a concurrent reshuffle.
197
+ // the placed-prefix must be verified after each item before bouncing the next, so a concurrent reshuffle is caught immediately rather than compounded
191
198
  const prefixCheck = await pollUntilVerified(() => evaluateDelta({ mode: "ordering", key: rankKey, sequence: [...placed] }, createDbReader(deps.db), { modDates: {}, fields: {} }), options.verifyTimeoutMs ?? 4000, deps.poller ?? {});
192
199
  if (prefixCheck.kind !== "ok") {
193
- auditSummary(deps, params, startedAt, "verify-failed:mismatch", { placed: [...placed] }, { pre: preRanks, txnId });
200
+ auditSummary(deps, params, startedAt, "verify-failed:mismatch", { placed: [...placed] }, { pre: preRanks, txnId, actor });
194
201
  return {
195
202
  kind: "bounce-aborted",
196
203
  op: "reorder",
@@ -206,7 +213,7 @@ async function runBounce(deps, params, options) {
206
213
  const observed = {};
207
214
  for (const uuid of params.uuids)
208
215
  observed[uuid] = reader.rankOf(uuid, rankKey);
209
- auditSummary(deps, params, startedAt, "ok", observed, { pre: preRanks, txnId });
216
+ auditSummary(deps, params, startedAt, "ok", observed, { pre: preRanks, txnId, actor });
210
217
  return {
211
218
  kind: "ok",
212
219
  op: "reorder",
@@ -214,6 +221,9 @@ async function runBounce(deps, params, options) {
214
221
  observed,
215
222
  vector: "url-scheme",
216
223
  tier: 0,
224
+ // A bounce reorder is a summary txn, so its token is the txn id (matches
225
+ // the audit record's undoToken); pass it to `things undo --txn <token>`.
226
+ undoToken: txnId,
217
227
  };
218
228
  }
219
229
  function legOptions(options, txnId) {
@@ -274,7 +284,7 @@ function auditSummary(deps, params, startedAt, result, observed, extras) {
274
284
  const record = {
275
285
  v: 1,
276
286
  ts: startedAt.toISOString(),
277
- actor: deps.config.actor,
287
+ actor: extras?.actor ?? deps.config.actor,
278
288
  host: deps.config.host,
279
289
  op: "reorder",
280
290
  uuid: null,
@@ -1 +1 @@
1
- {"version":3,"file":"reorder.js","sourceRoot":"","sources":["../../src/write/reorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reorder.js","sourceRoot":"","sources":["../../src/write/reorder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { RepeatRule } from "../model/recurrence.ts";
2
+ import { type RepeatRuleParams, type Weekday } from "./operations.ts";
3
+ /** Weekday name → rule encoding (wd 0 = Sunday). */
4
+ export declare const WEEKDAY_TO_WD: Record<Weekday, number>;
5
+ /** Rule encoding (wd 0..6) → weekday name. */
6
+ export declare const WD_TO_WEEKDAY: Record<number, Weekday>;
7
+ /**
8
+ * Validate the full extended rule vocabulary. The base `{ frequency, interval }`
9
+ * is always checked; every optional field is checked and REFUSED when it does
10
+ * not apply to the chosen frequency (or contradicts another field). Throws a
11
+ * RangeError with a behavioral message on any violation.
12
+ */
13
+ export declare function assertRepeatRule(params: Omit<RepeatRuleParams, "uuid">): void;
14
+ export type InverseRuleFields = Omit<RepeatRuleParams, "uuid">;
15
+ /**
16
+ * Map a decoded prior rule (+ the template's deadline flag) back onto the
17
+ * extended vocabulary, or return null when the rule falls OUTSIDE what the
18
+ * Repeat dialog can express (the faithfulness boundary — see reversibility.ts).
19
+ * `reminder` is NOT part of the rule blob, so it is never restored here (a
20
+ * documented limitation of the reschedule inverse).
21
+ */
22
+ export declare function ruleToInverseParams(rule: RepeatRule, deadlined: boolean): InverseRuleFields | null;