things-api 0.20.1 → 0.20.2

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.
@@ -98,6 +98,26 @@ export function selectNearestNsDate(candidates, nowNsDate) {
98
98
  return null;
99
99
  return viable.reduce((best, v) => Math.abs(v - nowNsDate) < Math.abs(best - nowNsDate) ? v : best);
100
100
  }
101
+ /**
102
+ * The write-ahead log's mtime — a direct `stat(2)` on a file inside the Things
103
+ * group container, and MEASURED SAFE (APDG1 h0, macOS 15.7.7 / golden-v4).
104
+ *
105
+ * It looks like it should be gated: it is the same container the app-data class
106
+ * guards, and #664 proved that reaching into it uninvited raises a modal that
107
+ * parks the caller. But the class does not hook `stat`. From a Terminal.app
108
+ * with no Full Disk Access and no grant of any kind, this call returns the real
109
+ * mtime — no dialog, no EPERM — in the very same clone where a directory
110
+ * enumeration one call away prompts. The distinction is operation-shaped:
111
+ * enumerating or opening inside the container is gated, asking for metadata on
112
+ * a path you already hold is not.
113
+ *
114
+ * Which is why this is deliberately NOT gated. Under the helpers the path comes
115
+ * from the reader, so nothing has to be enumerated to get here; without them
116
+ * and without FDA, `diagnose` has already refused at the read gate and this
117
+ * never runs. Gating it anyway was tried and reverted: it cost the WAL signal
118
+ * on exactly the machines that have the helpers and no FDA — the shape #664 was
119
+ * reported from — to prevent a dialog that does not happen.
120
+ */
101
121
  function defaultWalMtimeMs(walPath) {
102
122
  try {
103
123
  return statSync(walPath).mtimeMs;
@@ -246,7 +266,8 @@ export function computeSyncHealth(db, dbPath, deps = {}) {
246
266
  "daemon); launch Things to resume syncing. A write launches it automatically unless " +
247
267
  "`auto-launch` is turned off",
248
268
  };
249
- // WAL freshness.
269
+ // WAL freshness (a direct `stat` on a container file — see defaultWalMtimeMs
270
+ // for why that is measured-safe and deliberately ungated).
250
271
  const walMtimeMs = (deps.walMtimeMs ?? defaultWalMtimeMs)(`${dbPath}-wal`);
251
272
  const walAge = ageSecondsFrom(nowMs, walMtimeMs);
252
273
  let wal;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-health.js","sourceRoot":"","sources":["../src/sync-health.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-health.js","sourceRoot":"","sources":["../src/sync-health.ts"],"names":[],"mappings":"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"}
@@ -61,15 +61,30 @@ export interface SidebarSnapshot {
61
61
  scroll: number | null;
62
62
  rows: SidebarRowInfo[];
63
63
  }
64
- /** Snapshot: sidebar rows (text + frames), viewport rect, scroll fraction. */
65
- export declare function jxaSidebarSnapshotScript(): string;
64
+ /**
65
+ * Snapshot: sidebar rows (text + frames), viewport rect, scroll fraction.
66
+ *
67
+ * `areaTitles` is what makes the locator semantic — the sidebar is identified as
68
+ * the list that holds the caller's own areas. It is also the ESCALATION oracle:
69
+ * every area always renders a sidebar row (AXDRAG1: even off-viewport rows
70
+ * expose valid virtualized frames), so a shallow harvest that finds fewer titles
71
+ * than the database holds is re-run at full depth before the ladder sees it.
72
+ */
73
+ export declare function jxaSidebarSnapshotScript(areaTitles: readonly string[]): string;
74
+ /**
75
+ * Show or hide the sidebar through Things' own View menu (SBRES1 normalization
76
+ * rung). English-pinned and fail-closed: a menu without the item — a localized
77
+ * app, or a Things update that moved it — refuses and names what it did find,
78
+ * rather than clicking whatever sits in that position (UIC1 precedent).
79
+ */
80
+ export declare function jxaSidebarVisibilityScript(want: "show" | "hide"): string;
66
81
  /**
67
82
  * Scroll: move the pointer over the sidebar center (wheel events target the
68
83
  * surface under the cursor), then post `clicks` line-unit wheel events.
69
84
  * Positive clicks move the CONTENT down (earlier rows return, row y grows);
70
85
  * negative clicks reveal lower rows (row y shrinks) — AXDRAG1-b.
71
86
  */
72
- export declare function jxaSidebarScrollScript(clicks: number): string;
87
+ export declare function jxaSidebarScrollScript(clicks: number, areaTitles: readonly string[]): string;
73
88
  /**
74
89
  * Drag: the NATIVE1 gesture verbatim — move, down, 3px wiggle to open the drag
75
90
  * session, ~25 interpolated drag events, a settle so the drop indicator locks,
@@ -88,7 +103,7 @@ export declare function jxaSidebarDragScript(sx: number, sy: number, tx: number,
88
103
  * Escape-aborts (AXDRAG1-d: byte-identical index vector) and reports it.
89
104
  */
90
105
  export declare function jxaSidebarHeldScrollDragScript(sx: number, sy: number, anchorTitle: string | null, // null = drop below the last row (to-last)
91
- maxTicks: number): string;
106
+ maxTicks: number, areaTitles: readonly string[]): string;
92
107
  /**
93
108
  * SBCOL1 — actuate an area row's DISCLOSURE CHEVRON.
94
109
  *
@@ -109,7 +124,7 @@ maxTicks: number): string;
109
124
  * disambiguation the rest of the driver uses; -1 means "the only row with this
110
125
  * title", and an ambiguous match refuses.
111
126
  */
112
- export declare function jxaSidebarChevronClickScript(title: string, ordinal: number): string;
127
+ export declare function jxaSidebarChevronClickScript(title: string, ordinal: number, areaTitles: readonly string[]): string;
113
128
  /** Median height of the table's spacer rows (rows with no static text). */
114
129
  export declare function medianSpacerHeight(rows: SidebarRowInfo[]): number | null;
115
130
  /**
@@ -135,7 +150,32 @@ export declare function boundaryAboveRow(allRows: SidebarRowInfo[], ref: Sidebar
135
150
  * scrollable band even when the list is pinned to the bottom.
136
151
  */
137
152
  export declare function boundaryBelowLast(allRows: SidebarRowInfo[]): number | null;
138
- export declare function parseSidebarSnapshot(stdout: string): SidebarSnapshot | null;
153
+ /**
154
+ * Why a snapshot did not come back. These were ONE sentence until SBRES1 — "the
155
+ * sidebar did not resolve (is the window open and the sidebar visible?)" — which
156
+ * is how a 30-second timeout, a locator that never matched, and a sidebar the
157
+ * user had genuinely hidden all reached the field wearing the same words, none
158
+ * of them true for two of the three cases (issues #665, #651).
159
+ */
160
+ export type SnapshotFailure = "timeout" | "dispatch-failed" | "unparsable" | "no-window" | "no-list-candidates" | "no-title-match" | "ambiguous-sidebar" | "sidebar-hidden" | "no-viewport" | "no-rows";
161
+ export interface SnapshotRefusal {
162
+ ok: false;
163
+ why: SnapshotFailure;
164
+ /** What the locator looked at, when it has something to name. */
165
+ searched?: {
166
+ frame: SidebarRect | null;
167
+ rows: number;
168
+ }[];
169
+ /** How many area titles the locator was hunting for. */
170
+ titles?: number;
171
+ /** The dispatcher's own words, for `dispatch-failed`. */
172
+ stderr?: string;
173
+ }
174
+ export type SnapshotOutcome = {
175
+ ok: true;
176
+ snapshot: SidebarSnapshot;
177
+ } | SnapshotRefusal;
178
+ export declare function parseSidebarSnapshot(stdout: string): SnapshotOutcome;
139
179
  /**
140
180
  * Does a row's static-text carry this exact title as a segment? Sidebar row
141
181
  * text concatenates descendant static texts with "|" (AXDRAG1: e.g.
@@ -302,6 +342,12 @@ export interface DragDriveResult {
302
342
  */
303
343
  restoreFailed?: string[];
304
344
  }
345
+ /**
346
+ * One honest sentence per real cause, each naming the thing to change. The
347
+ * remediation matters as much as the diagnosis: the old copy told a user with a
348
+ * plainly-open sidebar to check whether the sidebar was open.
349
+ */
350
+ export declare function describeSnapshotFailure(refusal: SnapshotRefusal): string;
305
351
  /**
306
352
  * The rung-2 anchor: every placement reduces to "drop above this area row"
307
353
  * (title) or "drop below the last row" (null). `undefined` = unresolvable.