things-api 0.16.0 → 0.17.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.
- package/README.md +1 -1
- package/dist/cli/commands/repeat-flags.d.ts +3 -3
- package/dist/cli/commands/repeat-flags.js +90 -33
- package/dist/cli/commands/repeat-flags.js.map +1 -1
- package/dist/cli/commands/writes.js +59 -5
- package/dist/cli/commands/writes.js.map +1 -1
- package/dist/cli/help.js +9 -2
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/interrupt.d.ts +42 -0
- package/dist/cli/interrupt.js +105 -0
- package/dist/cli/interrupt.js.map +1 -0
- package/dist/cli/main.js +5 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/client.js +3 -0
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +39 -0
- package/dist/config.js +16 -1
- package/dist/config.js.map +1 -1
- package/dist/contracts.d.ts +9 -2
- package/dist/contracts.js +1 -1
- package/dist/contracts.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/model/occurrences.d.ts +14 -1
- package/dist/model/occurrences.js +20 -4
- package/dist/model/occurrences.js.map +1 -1
- package/dist/model/recurrence.d.ts +60 -9
- package/dist/model/recurrence.js +76 -19
- package/dist/model/recurrence.js.map +1 -1
- package/dist/paths.d.ts +8 -0
- package/dist/paths.js +10 -0
- package/dist/paths.js.map +1 -1
- package/dist/sync-health.js +2 -1
- package/dist/sync-health.js.map +1 -1
- package/dist/trace/tracer.d.ts +87 -0
- package/dist/trace/tracer.js +167 -0
- package/dist/trace/tracer.js.map +1 -0
- package/dist/write/clear-reminder.js +24 -21
- package/dist/write/clear-reminder.js.map +1 -1
- package/dist/write/commands.js +50 -45
- package/dist/write/commands.js.map +1 -1
- package/dist/write/completion-context.d.ts +57 -0
- package/dist/write/completion-context.js +49 -0
- package/dist/write/completion-context.js.map +1 -0
- package/dist/write/failure-hints.d.ts +10 -1
- package/dist/write/failure-hints.js +8 -0
- package/dist/write/failure-hints.js.map +1 -1
- package/dist/write/guards.d.ts +1 -1
- package/dist/write/guards.js +10 -0
- package/dist/write/guards.js.map +1 -1
- package/dist/write/operations.d.ts +12 -3
- package/dist/write/pipeline.d.ts +39 -0
- package/dist/write/pipeline.js +230 -17
- package/dist/write/pipeline.js.map +1 -1
- package/dist/write/pre-state.d.ts +1 -1
- package/dist/write/pre-state.js +2 -2
- package/dist/write/pre-state.js.map +1 -1
- package/dist/write/promote-clone.js +260 -13
- package/dist/write/promote-clone.js.map +1 -1
- package/dist/write/repeat-anchor.d.ts +110 -0
- package/dist/write/repeat-anchor.js +238 -0
- package/dist/write/repeat-anchor.js.map +1 -0
- package/dist/write/repeat-asserts.d.ts +28 -0
- package/dist/write/repeat-asserts.js +169 -0
- package/dist/write/repeat-asserts.js.map +1 -0
- package/dist/write/repeat-rule.js +27 -12
- package/dist/write/repeat-rule.js.map +1 -1
- package/dist/write/vectors/session-reachability.d.ts +78 -0
- package/dist/write/vectors/session-reachability.js +103 -0
- package/dist/write/vectors/session-reachability.js.map +1 -0
- package/dist/write/vectors/simulator.js +68 -29
- package/dist/write/vectors/simulator.js.map +1 -1
- package/dist/write/vectors/types.d.ts +117 -10
- package/dist/write/vectors/ui-recipes.d.ts +8 -0
- package/dist/write/vectors/ui-recipes.js +120 -22
- package/dist/write/vectors/ui-recipes.js.map +1 -1
- package/dist/write/vectors/ui.d.ts +79 -13
- package/dist/write/vectors/ui.js +415 -59
- package/dist/write/vectors/ui.js.map +1 -1
- package/dist/write/verify/delta.d.ts +12 -14
- package/dist/write/verify/delta.js +35 -34
- package/dist/write/verify/delta.js.map +1 -1
- package/package.json +1 -1
- package/schema/envelope.schema.json +22 -0
- package/skills/things-cli/SKILL.md +5 -2
package/dist/write/guards.js
CHANGED
|
@@ -27,6 +27,12 @@ export const HAZARD_IDS = [
|
|
|
27
27
|
"H-UI-DRIVE",
|
|
28
28
|
"H-PROJECT-REPEAT",
|
|
29
29
|
"H-CLONE-SOURCE",
|
|
30
|
+
// A RUNTIME gate, not a pre-read guard: a dialog-class ui-drive op refuses when
|
|
31
|
+
// the Mac's session is AX-blind (screen locked / full-screen Space) so the
|
|
32
|
+
// Repeat/confirm sheet would open on an unreachable window (SESSGATE, #480). It
|
|
33
|
+
// is enforced in the ui vector and the promote orchestrators — never here — and
|
|
34
|
+
// listed only so the HazardId type accepts it on the blocked result it produces.
|
|
35
|
+
"H-UI-SESSION-UNREACHABLE",
|
|
30
36
|
];
|
|
31
37
|
/**
|
|
32
38
|
* Ops where a schedule/status-class write on a repeating template is destructive.
|
|
@@ -550,6 +556,10 @@ const GUARDS = {
|
|
|
550
556
|
// pipeline's evaluateGuards — so this guard is a no-op here (the id exists for
|
|
551
557
|
// the blocked-result taxonomy, not for a pre-read predicate).
|
|
552
558
|
"H-CLONE-SOURCE": () => null,
|
|
559
|
+
// A RUNTIME reachability gate (SESSGATE, #480), not a pre-read predicate: the
|
|
560
|
+
// ui vector's drive and the promote orchestrators probe the live session and
|
|
561
|
+
// raise this DIRECTLY. No-op here (the id exists for the blocked-result taxonomy).
|
|
562
|
+
"H-UI-SESSION-UNREACHABLE": () => null,
|
|
553
563
|
};
|
|
554
564
|
export function evaluateGuards(hazards, input) {
|
|
555
565
|
for (const id of hazards) {
|
package/dist/write/guards.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/write/guards.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/write/guards.ts"],"names":[],"mappings":"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"}
|
|
@@ -522,15 +522,24 @@ export interface RepeatRuleParams {
|
|
|
522
522
|
* implies `deadline` (a start offset only exists on a deadlined template).
|
|
523
523
|
*/
|
|
524
524
|
startDaysEarlier?: number;
|
|
525
|
+
/**
|
|
526
|
+
* The requested FIRST occurrence (ISO `YYYY-MM-DD`), driven into the Repeat
|
|
527
|
+
* dialog's "Next:" date field (ANCH2, issue #476). Overwrites the app's
|
|
528
|
+
* today-anchored default so the series starts on this date verbatim (later
|
|
529
|
+
* occurrences follow the rule). The promote verbs set this from the item's
|
|
530
|
+
* scheduled date; reschedule-repeat sets it from `--when`. Not applicable to
|
|
531
|
+
* after-completion (no calendar).
|
|
532
|
+
*/
|
|
533
|
+
next?: IsoDate;
|
|
525
534
|
}
|
|
526
535
|
/**
|
|
527
536
|
* The calendar-anchor subset of the Repeat-dialog rule vocabulary the
|
|
528
537
|
* add-repeating composites carry on their PROMOTE leg (frequency/interval plus
|
|
529
538
|
* the after-completion + weekly/monthly/yearly/ends anchors). The deadline-
|
|
530
539
|
* coupled rule fields (rule `deadline`, `startDaysEarlier`) and the rule-level
|
|
531
|
-
* `reminder`
|
|
532
|
-
*
|
|
533
|
-
*
|
|
540
|
+
* `reminder` are intentionally EXCLUDED here — they collide with the base add's
|
|
541
|
+
* own concrete `deadline`/`reminder` (the created item owns those), and a
|
|
542
|
+
* deadlined repeat is set with a follow-up `reschedule-repeat`.
|
|
534
543
|
*/
|
|
535
544
|
export interface AddRepeatingRuleFields {
|
|
536
545
|
frequency: RepeatFrequency;
|
package/dist/write/pipeline.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import { type EnvironmentTracker } from "./environment.ts";
|
|
|
9
9
|
import { type LikelyCause } from "./failure-hints.ts";
|
|
10
10
|
import { type HazardId } from "./guards.ts";
|
|
11
11
|
import { type Acknowledgements, type OperationKind, type OperationParamsMap } from "./operations.ts";
|
|
12
|
+
import { type CompletionContext } from "./completion-context.ts";
|
|
12
13
|
import { type PreserveModifiedFailure } from "./preserve-modified.ts";
|
|
13
14
|
import type { VectorId, WriteVector } from "./vectors/types.ts";
|
|
14
15
|
import { type DeltaSpec, type RepeatingDiscovery } from "./verify/delta.ts";
|
|
@@ -168,6 +169,20 @@ export type MutationResult = {
|
|
|
168
169
|
* disclosed, never fatal. Absent when every restore leg succeeded.
|
|
169
170
|
*/
|
|
170
171
|
preserveFailures?: PreserveModifiedFailure[];
|
|
172
|
+
/**
|
|
173
|
+
* HINTS1 completion-context (ADDITIVE, presence-keyed): on a successful
|
|
174
|
+
* `todo.complete` / `todo.cancel` only, the remaining OPEN work in the
|
|
175
|
+
* to-do's container(s), computed from a cheap post-verify re-read so an
|
|
176
|
+
* agent can notice an emptied project/Today without a second read.
|
|
177
|
+
* `project` is present when the to-do was in a project (directly or under a
|
|
178
|
+
* heading) and carries its `uuid`, `title`, and the OPEN, untrashed,
|
|
179
|
+
* non-template to-dos remaining in it (heading children included; `0` = the
|
|
180
|
+
* project's open work is now empty). `today` is present when the to-do was
|
|
181
|
+
* a Today member at mutation time and carries the OPEN Today members
|
|
182
|
+
* remaining. The hint INFORMS, never auto-acts; absent when neither applies
|
|
183
|
+
* (and on every other op). See {@link CompletionContext}.
|
|
184
|
+
*/
|
|
185
|
+
context?: CompletionContext;
|
|
171
186
|
} | {
|
|
172
187
|
kind: "verify-failed";
|
|
173
188
|
op: OperationKind;
|
|
@@ -178,6 +193,16 @@ export type MutationResult = {
|
|
|
178
193
|
/** Advisory attribution when the failure signals point somewhere. */
|
|
179
194
|
likelyCause?: LikelyCause;
|
|
180
195
|
hint?: string;
|
|
196
|
+
/**
|
|
197
|
+
* The outcome is genuinely UNCERTAIN, not confirmed-failed (TRACE1, #487):
|
|
198
|
+
* a UI drive was aborted by the watchdog (or the process was interrupted)
|
|
199
|
+
* while the app might have been mid-commit, so the caller must re-check
|
|
200
|
+
* with `things show <uuid>` rather than assume nothing changed. Present
|
|
201
|
+
* only on the ui-drive watchdog timeout.
|
|
202
|
+
*/
|
|
203
|
+
uncertain?: true;
|
|
204
|
+
/** The local trace file reconstructing this drive's timeline (TRACE1). */
|
|
205
|
+
tracePath?: string;
|
|
181
206
|
} | {
|
|
182
207
|
kind: "blocked";
|
|
183
208
|
op: OperationKind;
|
|
@@ -208,6 +233,20 @@ export interface WriteDeps {
|
|
|
208
233
|
/** Injectable for tests/lab: returns true when Things is up (launching if needed). */
|
|
209
234
|
ensureRunning?: (alreadyRunning: boolean) => Promise<boolean>;
|
|
210
235
|
isAppRunning?: () => boolean;
|
|
236
|
+
/**
|
|
237
|
+
* Seam for the default launch: the consent-free launch-readiness probe polled
|
|
238
|
+
* after a background launch, before dispatch (past the startup URL-drop
|
|
239
|
+
* window, #486). Only consulted by the default {@link ensureRunning}; ignored
|
|
240
|
+
* when a test injects its own `ensureRunning`.
|
|
241
|
+
*/
|
|
242
|
+
appReady?: () => boolean;
|
|
243
|
+
/**
|
|
244
|
+
* The resolved on-disk database path (client-wired from the located DB). The
|
|
245
|
+
* default launch uses `${dbPath}-wal` as its consent-free readiness signal
|
|
246
|
+
* (the app has written since we launched it, #486). Absent = fall back to the
|
|
247
|
+
* LaunchServices launch-completion label.
|
|
248
|
+
*/
|
|
249
|
+
dbPath?: string;
|
|
211
250
|
/** Canary seam: does the installed sdef still declare the private command? */
|
|
212
251
|
sdefProbe?: () => boolean;
|
|
213
252
|
/** Consent-churn tripwire: tuple recorded per verified mutation (client wires the default). */
|
package/dist/write/pipeline.js
CHANGED
|
@@ -7,12 +7,14 @@
|
|
|
7
7
|
* after verify.
|
|
8
8
|
*/
|
|
9
9
|
import { execFile, execFileSync } from "node:child_process";
|
|
10
|
+
import { statSync } from "node:fs";
|
|
10
11
|
import { undoToken } from "../audit/schema.js";
|
|
11
12
|
import { blockedCode, verifyFailedCode } from "../contracts.js";
|
|
12
13
|
import { localToday } from "../model/dates.js";
|
|
13
14
|
import { liveSeriesInstances, resolveProjectWriteTarget, resolveTaskUuidPrefix, } from "../read/queries.js";
|
|
14
15
|
import { namedProjectClause, taskMembershipClause } from "../read/scope.js";
|
|
15
16
|
import { evaluateScope } from "./scope-guard.js";
|
|
17
|
+
import { isThingsRunning } from "./automation-probe.js";
|
|
16
18
|
import { readShortcutProxies, readUrlSchemeEnabled } from "./availability.js";
|
|
17
19
|
import { COMMANDS } from "./commands.js";
|
|
18
20
|
import { describeEnvironmentChanges, diffEnvironment, } from "./environment.js";
|
|
@@ -21,6 +23,7 @@ import { classifyTransportFailure, classifyVerifyFailure, } from "./failure-hint
|
|
|
21
23
|
import { evaluateGuards } from "./guards.js";
|
|
22
24
|
import { acquireMutationLock, MutationLockError } from "./lock.js";
|
|
23
25
|
import { isHeadingTargetOp, } from "./operations.js";
|
|
26
|
+
import { computeCompletionContext } from "./completion-context.js";
|
|
24
27
|
import { planVector } from "./planner.js";
|
|
25
28
|
import { isRepeatingTemplate } from "./pre-state.js";
|
|
26
29
|
import { restoreModDates, } from "./preserve-modified.js";
|
|
@@ -28,6 +31,7 @@ import { REVERSIBILITY } from "./reversibility.js";
|
|
|
28
31
|
import { certificationOf } from "./vectors/ui-certification.js";
|
|
29
32
|
import { createDbReader, evaluateDelta, getField, } from "./verify/delta.js";
|
|
30
33
|
import { pollUntilVerified } from "./verify/poller.js";
|
|
34
|
+
import { setInflight, trace } from "../trace/tracer.js";
|
|
31
35
|
/**
|
|
32
36
|
* Bounded backoff for the post-transport-failure re-verify (0½ defect (a)): a
|
|
33
37
|
* GUI drive can abort part-way yet still have LANDED the change, so a nonzero
|
|
@@ -43,33 +47,108 @@ export function readAuthToken(db) {
|
|
|
43
47
|
return null;
|
|
44
48
|
}
|
|
45
49
|
}
|
|
46
|
-
|
|
50
|
+
/**
|
|
51
|
+
* The ONE process-presence signal (shared with `doctor`/sync-health via
|
|
52
|
+
* automation-probe.ts) — a single stable `pgrep -x Things3` shape so macOS
|
|
53
|
+
* never sees a second command form.
|
|
54
|
+
*/
|
|
55
|
+
const defaultIsAppRunning = isThingsRunning;
|
|
56
|
+
/** Poll interval for the launch waits. */
|
|
57
|
+
const LAUNCH_POLL_INTERVAL_MS = 200;
|
|
58
|
+
/** Cap on how long we wait for the launched PROCESS to appear. */
|
|
59
|
+
const LAUNCH_PROCESS_TIMEOUT_MS = 20_000;
|
|
60
|
+
/**
|
|
61
|
+
* Cap on how long we wait — after the process appears — for the app to become
|
|
62
|
+
* READY to land a write. A freshly launched Things registers its URL handler
|
|
63
|
+
* before it can actually apply a command: a command dispatched into that
|
|
64
|
+
* startup window is accepted and silently dropped (issue #486). We poll a cheap
|
|
65
|
+
* consent-free readiness signal past that window before dispatching.
|
|
66
|
+
*/
|
|
67
|
+
const LAUNCH_READY_TIMEOUT_MS = 12_000;
|
|
68
|
+
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
69
|
+
/** The write-ahead-log's mtime in ms, or null when it cannot be read. */
|
|
70
|
+
function walMtimeMs(walPath) {
|
|
71
|
+
try {
|
|
72
|
+
return statSync(walPath).mtimeMs;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Consent-free launch-completion signal via LaunchServices — the fallback used
|
|
80
|
+
* only when the database path is unknown. NOT an Apple Event, so it never drags
|
|
81
|
+
* Automation consent onto the consent-free URL path. `lsappinfo` reports a
|
|
82
|
+
* process still coming up as `"Not Finished Launching"`; anything else is
|
|
83
|
+
* treated as launched. False on any error (treated as "not ready yet").
|
|
84
|
+
*/
|
|
85
|
+
function lsappinfoLaunched() {
|
|
47
86
|
try {
|
|
48
|
-
execFileSync("
|
|
87
|
+
const out = execFileSync("lsappinfo", ["info", "-only", "StatusLabel", "-app", "com.culturedcode.ThingsMac"], { encoding: "utf8", timeout: 3000 });
|
|
88
|
+
if (out.trim() === "" || /Not Finished Launching/i.test(out))
|
|
89
|
+
return false;
|
|
49
90
|
return true;
|
|
50
91
|
}
|
|
51
92
|
catch {
|
|
52
93
|
return false;
|
|
53
94
|
}
|
|
54
95
|
}
|
|
55
|
-
/**
|
|
56
|
-
|
|
96
|
+
/**
|
|
97
|
+
* Consent-free launch-readiness signal — a DB-write-capability probe. A freshly
|
|
98
|
+
* launched Things recomputes its Today/repeat state and writes to its database
|
|
99
|
+
* shortly after launch; a URL command applied BEFORE the app is truly up is at
|
|
100
|
+
* risk of being dropped in the startup window (issue #486). Reading a file mtime
|
|
101
|
+
* needs no Apple Event, so this never triggers a consent prompt. "Ready" = the
|
|
102
|
+
* write-ahead log has advanced past the pre-launch baseline (the app has written
|
|
103
|
+
* since we launched it). APPRUN1 (golden-v3, Things 3.22.14): the WAL advanced
|
|
104
|
+
* ~0.9s after `open -g` — a real post-launch signal — while the process appeared
|
|
105
|
+
* at ~0.03s; the drop window itself did not reproduce in a clean airgapped clone
|
|
106
|
+
* (first URL landed immediately), so this wait is a defensive floor, and any
|
|
107
|
+
* residual drop is caught by verify and attributed `app-not-running`. Falls back
|
|
108
|
+
* to the LaunchServices label when the DB path is unknown. See
|
|
109
|
+
* docs/lab/apprun1-launch-readiness.md.
|
|
110
|
+
*/
|
|
111
|
+
function walAdvancedSince(walPath, baseline) {
|
|
112
|
+
if (walPath === undefined)
|
|
113
|
+
return lsappinfoLaunched();
|
|
114
|
+
const m = walMtimeMs(walPath);
|
|
115
|
+
return m !== null && (baseline === null || m > baseline);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Background-launch Things (tier 1, by policy — `open -g` keeps it off the
|
|
119
|
+
* foreground) and wait CLOSED-LOOP for it to become ready to land a write:
|
|
120
|
+
* first for the process to appear, then for the readiness signal to trip (past
|
|
121
|
+
* the startup URL-drop window, #486). Returns false only if the process never
|
|
122
|
+
* appears within {@link LAUNCH_PROCESS_TIMEOUT_MS}; once it is up we proceed
|
|
123
|
+
* after readiness trips OR the readiness cap elapses (best-effort — a residual
|
|
124
|
+
* drop is then caught by verify + attributed "app was not running").
|
|
125
|
+
*/
|
|
126
|
+
async function defaultEnsureRunning(alreadyRunning, opts = {}) {
|
|
57
127
|
if (alreadyRunning)
|
|
58
128
|
return true;
|
|
129
|
+
// Capture the readiness baseline BEFORE launching, so "the app has written
|
|
130
|
+
// since we launched it" is judged against the pre-launch WAL state.
|
|
131
|
+
const walPath = opts.dbPath !== undefined ? `${opts.dbPath}-wal` : undefined;
|
|
132
|
+
const walBaseline = walPath !== undefined ? walMtimeMs(walPath) : null;
|
|
133
|
+
const appReady = opts.appReady ?? (() => walAdvancedSince(walPath, walBaseline));
|
|
59
134
|
await new Promise((resolve) => {
|
|
60
135
|
execFile("open", ["-g", "-a", "Things3"], () => resolve());
|
|
61
136
|
});
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
// launch-detection retries are inherently sequential polling of the same process state
|
|
70
|
-
await new Promise((r) => setTimeout(r, 250));
|
|
137
|
+
// Phase 1: wait for the process to exist.
|
|
138
|
+
const processDeadline = Date.now() + LAUNCH_PROCESS_TIMEOUT_MS;
|
|
139
|
+
while (!defaultIsAppRunning()) {
|
|
140
|
+
if (Date.now() >= processDeadline)
|
|
141
|
+
return false;
|
|
142
|
+
await sleep(LAUNCH_POLL_INTERVAL_MS);
|
|
71
143
|
}
|
|
72
|
-
|
|
144
|
+
// Phase 2: wait for launch-readiness (past the URL-drop window).
|
|
145
|
+
const readyDeadline = Date.now() + LAUNCH_READY_TIMEOUT_MS;
|
|
146
|
+
while (!appReady()) {
|
|
147
|
+
if (Date.now() >= readyDeadline)
|
|
148
|
+
break; // best-effort: proceed and let verify judge
|
|
149
|
+
await sleep(LAUNCH_POLL_INTERVAL_MS);
|
|
150
|
+
}
|
|
151
|
+
return true;
|
|
73
152
|
}
|
|
74
153
|
/** Capture pre-values of asserted fields + movement tripwires for the spec. */
|
|
75
154
|
function capturePre(spec, deps, pre) {
|
|
@@ -516,14 +595,35 @@ export async function runMutation(deps, op, params, options = {}) {
|
|
|
516
595
|
// plain opens and AppleEvents to a closed Things steal focus (A40/A41).
|
|
517
596
|
// A simulating vector applies SQL to a fixture DB and never touches the
|
|
518
597
|
// real app, so it neither needs nor may trigger the background launch.
|
|
519
|
-
|
|
520
|
-
|
|
598
|
+
// A write can only land through a real transport when Things is up (a
|
|
599
|
+
// command dispatched into a closed app is silently dropped, #486), so a
|
|
600
|
+
// closed app is either launched-and-readied here or — when auto-launch is
|
|
601
|
+
// disabled — refused BEFORE dispatch with a plain environment error.
|
|
602
|
+
if (vector.simulates !== true && !appRunning) {
|
|
603
|
+
if (!config.autoLaunch) {
|
|
604
|
+
audit({ result: blockedCode({ reason: "environment" }) });
|
|
605
|
+
return {
|
|
606
|
+
kind: "blocked",
|
|
607
|
+
op,
|
|
608
|
+
reason: "environment",
|
|
609
|
+
likelyCause: "app-not-running",
|
|
610
|
+
detail: "Things is not running, and auto-launch is turned off",
|
|
611
|
+
remediation: "open Things (or run `things config set auto-launch true` to let writes launch it), " +
|
|
612
|
+
"then retry",
|
|
613
|
+
};
|
|
614
|
+
}
|
|
615
|
+
const running = await (deps.ensureRunning ??
|
|
616
|
+
((ar) => defaultEnsureRunning(ar, {
|
|
617
|
+
...(deps.dbPath !== undefined && { dbPath: deps.dbPath }),
|
|
618
|
+
...(deps.appReady !== undefined && { appReady: deps.appReady }),
|
|
619
|
+
})))(appRunning);
|
|
521
620
|
if (!running) {
|
|
522
621
|
audit({ result: blockedCode({ reason: "environment" }) });
|
|
523
622
|
return {
|
|
524
623
|
kind: "blocked",
|
|
525
624
|
op,
|
|
526
625
|
reason: "environment",
|
|
626
|
+
likelyCause: "app-not-running",
|
|
527
627
|
detail: "Things did not become available after a background launch attempt",
|
|
528
628
|
remediation: "launch Things manually and retry",
|
|
529
629
|
};
|
|
@@ -556,7 +656,54 @@ export async function runMutation(deps, op, params, options = {}) {
|
|
|
556
656
|
pre: flattenPreFields(preCapture.fields),
|
|
557
657
|
uuid: intentUuid,
|
|
558
658
|
});
|
|
559
|
-
|
|
659
|
+
// Mark the write as touching the app (read by the CLI's signal handler so a
|
|
660
|
+
// SIGTERM/SIGINT can name the exact op — and last UI step — it interrupted,
|
|
661
|
+
// TRACE1 #487) and open the execute stage in the trace. Cleared the moment
|
|
662
|
+
// execute returns, whatever the outcome.
|
|
663
|
+
setInflight({
|
|
664
|
+
op,
|
|
665
|
+
uuid: intentUuid,
|
|
666
|
+
vector: vector.id,
|
|
667
|
+
uiDrive: vector.id === "ui",
|
|
668
|
+
startedAt: (deps.now?.() ?? new Date()).getTime(),
|
|
669
|
+
});
|
|
670
|
+
trace(() => ({
|
|
671
|
+
phase: "stage",
|
|
672
|
+
stage: "execute-start",
|
|
673
|
+
op,
|
|
674
|
+
vector: vector.id,
|
|
675
|
+
tier: effectiveTier,
|
|
676
|
+
}));
|
|
677
|
+
let executeResult;
|
|
678
|
+
try {
|
|
679
|
+
executeResult = await vector.execute(invocation);
|
|
680
|
+
}
|
|
681
|
+
finally {
|
|
682
|
+
setInflight(null);
|
|
683
|
+
}
|
|
684
|
+
trace(() => ({
|
|
685
|
+
phase: "stage",
|
|
686
|
+
stage: "execute-done",
|
|
687
|
+
op,
|
|
688
|
+
exitCode: executeResult.exitCode,
|
|
689
|
+
timedOut: executeResult.timedOut === true,
|
|
690
|
+
...(executeResult.watchdog !== undefined && { watchdog: executeResult.watchdog }),
|
|
691
|
+
}));
|
|
692
|
+
// A vector that REFUSED at runtime before touching the app (the ui vector's
|
|
693
|
+
// session-reachability gate: a locked / full-screen session leaves no
|
|
694
|
+
// AX-reachable Things window for the dialog, SESSGATE #480). Nothing was
|
|
695
|
+
// mutated → a `blocked` outcome (exit 4), never a transport failure.
|
|
696
|
+
if (executeResult.blocked !== undefined) {
|
|
697
|
+
const { hazard, detail, remediation } = executeResult.blocked;
|
|
698
|
+
audit({
|
|
699
|
+
result: blockedCode({ hazard, reason: "hazard" }),
|
|
700
|
+
vector: vector.id,
|
|
701
|
+
disruption: effectiveTier,
|
|
702
|
+
invocation: invocation.redactedPayload,
|
|
703
|
+
pre: flattenPreFields(preCapture.fields),
|
|
704
|
+
});
|
|
705
|
+
return { kind: "blocked", op, reason: "hazard", hazard, detail, remediation };
|
|
706
|
+
}
|
|
560
707
|
// Verify under the injected clock (deps.now/deps.zone), never the wall
|
|
561
708
|
// clock: an `evening`/`today` write dated pinned-today must read back IN
|
|
562
709
|
// Today at verify time, or its today/evening marker assertion fails under a
|
|
@@ -578,6 +725,46 @@ export async function runMutation(deps, op, params, options = {}) {
|
|
|
578
725
|
// with bounded backoff and treat a landed target state as SUCCESS.
|
|
579
726
|
const recovery = await pollUntilVerified(() => evaluateDelta(delta, reader, preCapture), RECOVERY_VERIFY_TIMEOUT_MS, deps.poller ?? {});
|
|
580
727
|
if (recovery.kind !== "ok") {
|
|
728
|
+
// The ui-drive WATCHDOG timeout is its own honest outcome (TRACE1 #487):
|
|
729
|
+
// the CLI gave up first and cleared the dialog, but a drive aborted while
|
|
730
|
+
// the OK was possibly mid-commit cannot promise the app is untouched — so
|
|
731
|
+
// it is reported UNCERTAIN with the trace path and a "re-check first"
|
|
732
|
+
// remediation, distinct from a plain transport failure with no landed change.
|
|
733
|
+
const wd = executeResult.watchdog;
|
|
734
|
+
if (wd !== undefined) {
|
|
735
|
+
audit({
|
|
736
|
+
result: verifyFailedCode({ reason: "timeout" }),
|
|
737
|
+
vector: vector.id,
|
|
738
|
+
disruption: effectiveTier,
|
|
739
|
+
invocation: invocation.redactedPayload,
|
|
740
|
+
pre: flattenPreFields(preCapture.fields),
|
|
741
|
+
observed: recovery.observed,
|
|
742
|
+
});
|
|
743
|
+
const budgetS = Math.round(wd.budgetMs / 1000);
|
|
744
|
+
const elapsedS = Math.round(wd.elapsedMs / 1000);
|
|
745
|
+
const cleared = wd.clear === "dismissed"
|
|
746
|
+
? "the open dialog was dismissed"
|
|
747
|
+
: wd.clear === "cleared-blind"
|
|
748
|
+
? "the Things window was closed and reopened to clear the open dialog"
|
|
749
|
+
: "a dialog may still be open in Things";
|
|
750
|
+
const traceNote = wd.tracePath != null && wd.tracePath !== ""
|
|
751
|
+
? ` The step timeline is at ${wd.tracePath}.`
|
|
752
|
+
: "";
|
|
753
|
+
return {
|
|
754
|
+
kind: "verify-failed",
|
|
755
|
+
op,
|
|
756
|
+
reason: "timeout",
|
|
757
|
+
expected: delta,
|
|
758
|
+
observed: recovery.observed,
|
|
759
|
+
detail: `the GUI drive ran past its ${budgetS}s budget at step "${wd.lastStep}" (after ` +
|
|
760
|
+
`~${elapsedS}s) and the CLI stopped it before the change could be confirmed; ` +
|
|
761
|
+
`${cleared}. The outcome is UNCERTAIN — a rule committed at the last moment could ` +
|
|
762
|
+
`still appear — so re-check with \`things show ${intentUuid ?? "<uuid>"}\` before ` +
|
|
763
|
+
`retrying (retrying could create a duplicate series).${traceNote}`,
|
|
764
|
+
uncertain: true,
|
|
765
|
+
...(wd.tracePath != null && wd.tracePath !== "" && { tracePath: wd.tracePath }),
|
|
766
|
+
};
|
|
767
|
+
}
|
|
581
768
|
audit({
|
|
582
769
|
result: verifyFailedCode({ reason: "silent-noop" }),
|
|
583
770
|
vector: vector.id,
|
|
@@ -614,6 +801,15 @@ export async function runMutation(deps, op, params, options = {}) {
|
|
|
614
801
|
else {
|
|
615
802
|
outcome = await pollUntilVerified(() => evaluateDelta(delta, reader, preCapture), timeoutMs, deps.poller ?? {});
|
|
616
803
|
}
|
|
804
|
+
trace(() => ({
|
|
805
|
+
phase: "stage",
|
|
806
|
+
stage: "verify",
|
|
807
|
+
op,
|
|
808
|
+
kind: outcome.kind,
|
|
809
|
+
attempts: outcome.attempts,
|
|
810
|
+
elapsedMs: outcome.elapsedMs,
|
|
811
|
+
recovered: transportRecovered,
|
|
812
|
+
}));
|
|
617
813
|
const auditCommon = {
|
|
618
814
|
vector: vector.id,
|
|
619
815
|
disruption: effectiveTier,
|
|
@@ -686,6 +882,12 @@ export async function runMutation(deps, op, params, options = {}) {
|
|
|
686
882
|
...(options.txn !== undefined && { txn: options.txn }),
|
|
687
883
|
});
|
|
688
884
|
const warnings = [];
|
|
885
|
+
// Auto-launch disclosure (#486): the app was not running when this write
|
|
886
|
+
// started, so it was background-launched for the write. Never silent — a
|
|
887
|
+
// side effect the caller should see (a simulating vector never launches).
|
|
888
|
+
if (!appRunning && vector.simulates !== true) {
|
|
889
|
+
warnings.push("Things was not running, so it was launched in the background for this write");
|
|
890
|
+
}
|
|
689
891
|
// Template-delete disclosure (public deletes only — internal trash-both legs
|
|
690
892
|
// run under a txn and aggregate their own result). The series stops, its live
|
|
691
893
|
// instances are left in place (count + name the current occurrence), and the
|
|
@@ -734,6 +936,15 @@ export async function runMutation(deps, op, params, options = {}) {
|
|
|
734
936
|
`${describeEnvironmentChanges(envChanges)} — the first use of another ` +
|
|
735
937
|
`capability may show a macOS consent prompt`);
|
|
736
938
|
}
|
|
939
|
+
// HINTS1 completion-context: on a verified complete/cancel of a to-do,
|
|
940
|
+
// attach the remaining OPEN work in its project and/or Today. Applicability
|
|
941
|
+
// is read off the captured pre-state, so a to-do in neither costs no extra
|
|
942
|
+
// reads; the counts are a cheap post-verify re-read via the library's own
|
|
943
|
+
// read paths.
|
|
944
|
+
const completionContext = op === "todo.complete" || op === "todo.cancel"
|
|
945
|
+
? computeCompletionContext(deps.db, pre.target, deps.now?.() ?? new Date(), deps.zone)
|
|
946
|
+
: undefined;
|
|
947
|
+
trace(() => ({ phase: "result", op, kind: "ok", uuid, vector: vector.id }));
|
|
737
948
|
return {
|
|
738
949
|
kind: "ok",
|
|
739
950
|
op,
|
|
@@ -757,6 +968,7 @@ export async function runMutation(deps, op, params, options = {}) {
|
|
|
757
968
|
}),
|
|
758
969
|
...(preserve !== null &&
|
|
759
970
|
preserve.failures.length > 0 && { preserveFailures: preserve.failures }),
|
|
971
|
+
...(completionContext !== undefined && { context: completionContext }),
|
|
760
972
|
...(warnings.length > 0 && { warnings }),
|
|
761
973
|
};
|
|
762
974
|
}
|
|
@@ -777,6 +989,7 @@ export async function runMutation(deps, op, params, options = {}) {
|
|
|
777
989
|
reason: outcome.kind,
|
|
778
990
|
vector: vector.id,
|
|
779
991
|
urlSchemeEnabled: (deps.urlSchemeEnabled ?? (() => readUrlSchemeEnabled().enabled))(),
|
|
992
|
+
appWasRunning: appRunning,
|
|
780
993
|
environmentChanges: envChanges,
|
|
781
994
|
}));
|
|
782
995
|
}
|