things-api 0.19.1 → 0.19.3
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/deputy/prebuilt/Things API Helper.app/Contents/CodeResources +0 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/MacOS/things-reader +0 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/MacOS/things-deputy +0 -0
- package/dist/cli/commands/doctor.js +28 -8
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/ui-state.d.ts +11 -0
- package/dist/cli/commands/ui-state.js +27 -0
- package/dist/cli/commands/ui-state.js.map +1 -0
- package/dist/cli/help.js +2 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/main.js +2 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/contracts.d.ts +2 -2
- package/dist/contracts.js +1 -1
- package/dist/contracts.js.map +1 -1
- package/dist/deputy/osa.d.ts +42 -2
- package/dist/deputy/osa.js +79 -5
- package/dist/deputy/osa.js.map +1 -1
- package/dist/deputy/routing.d.ts +18 -0
- package/dist/deputy/routing.js +25 -0
- package/dist/deputy/routing.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ui-state.d.ts +46 -0
- package/dist/ui-state.js +107 -0
- package/dist/ui-state.js.map +1 -0
- package/dist/write/accessibility-probe.js +4 -1
- package/dist/write/accessibility-probe.js.map +1 -1
- package/dist/write/automation-probe.js +7 -1
- package/dist/write/automation-probe.js.map +1 -1
- package/dist/write/failure-hints.d.ts +7 -1
- package/dist/write/failure-hints.js +24 -0
- package/dist/write/failure-hints.js.map +1 -1
- package/dist/write/field-limits.d.ts +100 -0
- package/dist/write/field-limits.js +144 -0
- package/dist/write/field-limits.js.map +1 -0
- package/dist/write/param-schema.d.ts +17 -0
- package/dist/write/param-schema.js +64 -4
- package/dist/write/param-schema.js.map +1 -1
- package/dist/write/pipeline.js +30 -0
- package/dist/write/pipeline.js.map +1 -1
- package/dist/write/promote-clone.d.ts +26 -0
- package/dist/write/promote-clone.js +201 -23
- package/dist/write/promote-clone.js.map +1 -1
- package/dist/write/vectors/types.d.ts +25 -3
- package/dist/write/vectors/ui-state.d.ts +245 -0
- package/dist/write/vectors/ui-state.js +452 -0
- package/dist/write/vectors/ui-state.js.map +1 -0
- package/dist/write/vectors/ui.d.ts +136 -4
- package/dist/write/vectors/ui.js +665 -65
- package/dist/write/vectors/ui.js.map +1 -1
- package/package.json +1 -1
- package/schema/envelope.schema.json +1 -0
- package/skills/things-cli/SKILL.md +2 -2
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The MEASURED ceilings on Things' content fields, and the counters that
|
|
3
|
+
* measure a candidate value in the units the app actually cuts by.
|
|
4
|
+
*
|
|
5
|
+
* Why this exists (#621): a notes body a little over 10,000 characters was
|
|
6
|
+
* accepted by the app as a TRUNCATED PREFIX — cut mid-word, no error, the row
|
|
7
|
+
* mutated. The read-after-write caught the difference and reported a generic
|
|
8
|
+
* mismatch, so the caller learned that something was wrong but not that a limit
|
|
9
|
+
* existed, what it was, or that half the write had landed. Every field below is
|
|
10
|
+
* the same trap: the app never refuses an over-long value, it stores a prefix.
|
|
11
|
+
*
|
|
12
|
+
* THE LAW (NOTECAP1, [docs/lab/notecap1-notes-ceiling.md] — Things 3.23 build
|
|
13
|
+
* 32300036, golden `things-lab-golden-v4`). Two field classes, three ceilings:
|
|
14
|
+
*
|
|
15
|
+
* 1. **notes — 10,000 GRAPHEME CLUSTERS *and* 40,000 UTF-16 CODE UNITS,
|
|
16
|
+
* whichever binds first, on the URL scheme.** The cluster rule is the one
|
|
17
|
+
* ordinary text meets: 15,000 emoji cut to 10,000 emoji, 15,000 `e`+U+0301
|
|
18
|
+
* pairs cut to 10,000 pairs, and a regional-indicator flag or an emoji +
|
|
19
|
+
* skin-tone modifier each count as ONE. The unit rule only shows up in text
|
|
20
|
+
* whose clusters are unusually wide — a ZWJ emoji family is one cluster but
|
|
21
|
+
* eleven UTF-16 units — and it cuts on a surrogate-safe boundary rather than
|
|
22
|
+
* a cluster one, so it CAN leave a dangling joiner.
|
|
23
|
+
*
|
|
24
|
+
* This ceiling belongs to the URL scheme, not to the database or the app's
|
|
25
|
+
* model: AppleScript's `set notes` stores 60 KB without complaint. Every
|
|
26
|
+
* notes-carrying operation here compiles to the URL scheme (`commands.ts`
|
|
27
|
+
* refuses any other vector), so it is the ceiling every caller meets.
|
|
28
|
+
*
|
|
29
|
+
* It applies PER URL PARAMETER VALUE, not to the resulting field: an
|
|
30
|
+
* `append-notes` fragment under the ceiling joins onto an existing body and
|
|
31
|
+
* the joined result lands whole, well past 10,000. So the FRAGMENT is what
|
|
32
|
+
* must be checked — validating the JOIN would refuse writes the app performs
|
|
33
|
+
* correctly.
|
|
34
|
+
*
|
|
35
|
+
* 2. **titles and names — 4,000 UTF-16 CODE UNITS, in the app's model.** To-do
|
|
36
|
+
* titles, project titles, heading titles, checklist-item titles, area names
|
|
37
|
+
* and tag names all cut at 4,000 UTF-16 units, and unlike notes the cut is
|
|
38
|
+
* the SAME through AppleScript, so it is a property of the app rather than
|
|
39
|
+
* of a transport. The unit is UTF-16, not clusters: an emoji title cuts at
|
|
40
|
+
* 1,993 emoji (3,999 units), not 4,000 emoji. The cut lands on a cluster
|
|
41
|
+
* boundary, which is why a value can stop one unit short of the ceiling.
|
|
42
|
+
*
|
|
43
|
+
* There is **no URL-length ceiling** below either: a 1,000,100-character
|
|
44
|
+
* `things:///update` dispatches cleanly and still cuts the notes at exactly
|
|
45
|
+
* 10,000 clusters, and padding the URL with 5,000 more characters of `title`
|
|
46
|
+
* does not move that cut. The transport is not the constraint, so there is
|
|
47
|
+
* nothing here for vector selection to route around.
|
|
48
|
+
*
|
|
49
|
+
* Fields with no measured app cap carry no limit here — these are refusals
|
|
50
|
+
* against a value the app would silently mangle, not policy.
|
|
51
|
+
*/
|
|
52
|
+
/**
|
|
53
|
+
* Printable ASCII plus LF and TAB: each of these is its own cluster, so the
|
|
54
|
+
* code-unit count IS the cluster count. CR is deliberately excluded — a CR LF
|
|
55
|
+
* pair is a SINGLE cluster, and counting it as two would refuse a CRLF-heavy
|
|
56
|
+
* body about twice as early as the app would cut it.
|
|
57
|
+
*/
|
|
58
|
+
const ONE_CLUSTER_PER_UNIT = /^[\x20-\x7e\n\t]*$/;
|
|
59
|
+
let segmenter;
|
|
60
|
+
/**
|
|
61
|
+
* Count grapheme clusters — the unit the notes ceiling is expressed in.
|
|
62
|
+
*
|
|
63
|
+
* `String.prototype.length` is UTF-16 code units and would over-count every
|
|
64
|
+
* emoji and every combining pair, refusing an emoji-dense note at half the real
|
|
65
|
+
* ceiling. `Intl.Segmenter` counts extended grapheme clusters (UAX #29), which
|
|
66
|
+
* is what the measurement matched on every payload class probed.
|
|
67
|
+
*/
|
|
68
|
+
export function countGraphemes(value) {
|
|
69
|
+
// Fast path for the overwhelming majority of real values; the segmenter walk
|
|
70
|
+
// is the expensive part on a 10,000-character body.
|
|
71
|
+
if (ONE_CLUSTER_PER_UNIT.test(value))
|
|
72
|
+
return value.length;
|
|
73
|
+
segmenter ??= new Intl.Segmenter(undefined, { granularity: "grapheme" });
|
|
74
|
+
let n = 0;
|
|
75
|
+
for (const _ of segmenter.segment(value))
|
|
76
|
+
n++;
|
|
77
|
+
return n;
|
|
78
|
+
}
|
|
79
|
+
/** Notes: 10,000 grapheme clusters, and 40,000 UTF-16 units, whichever binds. */
|
|
80
|
+
export const NOTES_LIMITS = [
|
|
81
|
+
{ max: 10_000, unit: "graphemes" },
|
|
82
|
+
{ max: 40_000, unit: "utf16" },
|
|
83
|
+
];
|
|
84
|
+
/** Titles and names: 4,000 UTF-16 code units, on every vector. */
|
|
85
|
+
export const TITLE_LIMITS = [{ max: 4_000, unit: "utf16" }];
|
|
86
|
+
/**
|
|
87
|
+
* How many checklist items ONE dispatch carries (NOTECAP1 CK-COUNT). Past this
|
|
88
|
+
* Things keeps the first 100 and drops the rest — the count-axis version of the
|
|
89
|
+
* same silent partial landing, and just as invisible: the to-do is created, the
|
|
90
|
+
* items beyond 100 simply never exist.
|
|
91
|
+
*/
|
|
92
|
+
export const CHECKLIST_MAX_ITEMS = 100;
|
|
93
|
+
/** Measure a value in one ceiling's own unit. */
|
|
94
|
+
export function measure(value, unit) {
|
|
95
|
+
return unit === "utf16" ? value.length : countGraphemes(value);
|
|
96
|
+
}
|
|
97
|
+
/** How a unit is named to the caller, in the words that make the number checkable. */
|
|
98
|
+
export function unitName(unit) {
|
|
99
|
+
return unit === "utf16" ? "UTF-16 code units" : "characters";
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The refusal detail for an over-long field value, in the registry's house
|
|
103
|
+
* shape (`<path>: expected … — received …`). Names the maximum, its unit, and
|
|
104
|
+
* the size actually handed over, plus what the app would have done with it — so
|
|
105
|
+
* the caller can trim without guessing and knows why the call was not simply
|
|
106
|
+
* passed through. The FIRST exceeded ceiling is the one reported.
|
|
107
|
+
*
|
|
108
|
+
* Returns null when the value fits every ceiling.
|
|
109
|
+
*/
|
|
110
|
+
export function fieldLengthRefusal(path, value, limits) {
|
|
111
|
+
for (const limit of limits) {
|
|
112
|
+
const n = measure(value, limit.unit);
|
|
113
|
+
if (n <= limit.max)
|
|
114
|
+
continue;
|
|
115
|
+
return (`${path}: expected at most ${limit.max.toLocaleString("en-US")} ${unitName(limit.unit)} — ` +
|
|
116
|
+
`received ${n.toLocaleString("en-US")}; Things stores a longer value as a truncated ` +
|
|
117
|
+
`prefix rather than refusing it, so nothing was sent`);
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The post-write reading of a field mismatch: when what landed is a strict
|
|
123
|
+
* PREFIX of what was asked for, the app truncated rather than ignored, and the
|
|
124
|
+
* item now holds a partial value. Returns the sentence naming that — how much
|
|
125
|
+
* landed, how much was asked for — or null when the mismatch is something else
|
|
126
|
+
* (a different value, a longer one, a non-string field).
|
|
127
|
+
*/
|
|
128
|
+
export function describeTruncation(field, expected, observed) {
|
|
129
|
+
if (typeof expected !== "string" || typeof observed !== "string")
|
|
130
|
+
return null;
|
|
131
|
+
if (observed.length === 0 || observed.length >= expected.length)
|
|
132
|
+
return null;
|
|
133
|
+
if (!expected.startsWith(observed))
|
|
134
|
+
return null;
|
|
135
|
+
const ceilings = (field === "notes" ? NOTES_LIMITS : TITLE_LIMITS)
|
|
136
|
+
.map((l) => `${l.max.toLocaleString("en-US")} ${unitName(l.unit)}`)
|
|
137
|
+
.join(" / ");
|
|
138
|
+
return (`${field} was TRUNCATED, not ignored: ${observed.length.toLocaleString("en-US")} of the ` +
|
|
139
|
+
`${expected.length.toLocaleString("en-US")} UTF-16 code units requested landed, and the ` +
|
|
140
|
+
`stored value is a prefix of what was sent — the item now holds a partial value. Things ` +
|
|
141
|
+
`caps this field at ${ceilings} and stores a longer value as a prefix rather than ` +
|
|
142
|
+
`refusing it`);
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=field-limits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-limits.js","sourceRoot":"","sources":["../../src/write/field-limits.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type LengthLimit } from "./field-limits.ts";
|
|
1
2
|
import { type OperationKind, type OperationParamsMap } from "./operations.ts";
|
|
2
3
|
/**
|
|
3
4
|
* The shape vocabulary. `custom` carries a hand-written validator for the shapes
|
|
@@ -17,6 +18,22 @@ export interface FieldSpec {
|
|
|
17
18
|
values?: readonly string[];
|
|
18
19
|
/** string: reject the empty string. */
|
|
19
20
|
nonEmpty?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* string / stringArray: the field's MEASURED app ceilings
|
|
23
|
+
* ({@link TITLE_LIMITS} for a title/name, {@link NOTES_LIMITS} for a notes
|
|
24
|
+
* body). An over-long value is refused HERE rather than dispatched, because
|
|
25
|
+
* Things accepts one as a silently TRUNCATED PREFIX — the mutation
|
|
26
|
+
* half-lands and the caller learns only that verification failed (#621,
|
|
27
|
+
* NOTECAP1). For a string array each element is checked on its own.
|
|
28
|
+
*/
|
|
29
|
+
limits?: readonly LengthLimit[];
|
|
30
|
+
/**
|
|
31
|
+
* stringArray / custom: the measured cap on how many entries ONE dispatch
|
|
32
|
+
* carries ({@link CHECKLIST_MAX_ITEMS}). Past it Things keeps the first N and
|
|
33
|
+
* drops the rest silently — the same partial landing an over-long value
|
|
34
|
+
* produces, one axis over.
|
|
35
|
+
*/
|
|
36
|
+
maxItems?: number;
|
|
20
37
|
/** number: whole numbers only, and the inclusive bounds. */
|
|
21
38
|
integer?: boolean;
|
|
22
39
|
min?: number;
|
|
@@ -43,16 +43,31 @@
|
|
|
43
43
|
* plain-string field and every container `uuid`, as they must.
|
|
44
44
|
*/
|
|
45
45
|
import { RESOLUTION_TIMESTAMP_EXPECTED } from "../surface-copy.js";
|
|
46
|
+
import { CHECKLIST_MAX_ITEMS, NOTES_LIMITS, TITLE_LIMITS, fieldLengthRefusal, } from "./field-limits.js";
|
|
46
47
|
import { OPERATION_KINDS, WEEKDAYS, } from "./operations.js";
|
|
47
48
|
import { assertEndsBound, assertMonthlyAnchor } from "./repeat-rule.js";
|
|
49
|
+
// Things stores an over-long field value as a SILENT TRUNCATED PREFIX rather
|
|
50
|
+
// than refusing it (#621, NOTECAP1), so the measured ceilings ride on the
|
|
51
|
+
// shared constructors — one per field class — rather than a per-field table
|
|
52
|
+
// that could drift out of date. `str` covers every title/name a write carries
|
|
53
|
+
// (4,000 UTF-16 units, an app-model cap present on every vector); `text` covers
|
|
54
|
+
// the free-text notes bodies (10,000 grapheme clusters / 40,000 UTF-16 units,
|
|
55
|
+
// the URL scheme's cap). Neither ceiling is policy: a field the app does not
|
|
56
|
+
// cut carries no limit here.
|
|
48
57
|
const str = (describe = "a non-empty string") => ({
|
|
49
58
|
kind: "string",
|
|
50
59
|
optional: false,
|
|
51
60
|
nonEmpty: true,
|
|
61
|
+
limits: TITLE_LIMITS,
|
|
52
62
|
describe,
|
|
53
63
|
});
|
|
54
64
|
/** A string field that legitimately accepts "" (free text: notes). */
|
|
55
|
-
const text = (describe = "a string") => ({
|
|
65
|
+
const text = (describe = "a string") => ({
|
|
66
|
+
kind: "string",
|
|
67
|
+
optional: false,
|
|
68
|
+
limits: NOTES_LIMITS,
|
|
69
|
+
describe,
|
|
70
|
+
});
|
|
56
71
|
const bool = (describe = "true or false") => ({
|
|
57
72
|
kind: "boolean",
|
|
58
73
|
optional: false,
|
|
@@ -69,8 +84,17 @@ const int = (min, max, describe) => ({
|
|
|
69
84
|
const strArray = (describe = "an array of non-empty strings") => ({
|
|
70
85
|
kind: "stringArray",
|
|
71
86
|
optional: false,
|
|
87
|
+
limits: TITLE_LIMITS,
|
|
72
88
|
describe,
|
|
73
89
|
});
|
|
90
|
+
/**
|
|
91
|
+
* Checklist-item titles: title-class strings, plus the measured 100-item cap
|
|
92
|
+
* one dispatch carries (identical on `add`, `update` and the json batch).
|
|
93
|
+
*/
|
|
94
|
+
const checklistTitles = (describe = "an array of checklist item titles") => ({
|
|
95
|
+
...strArray(describe),
|
|
96
|
+
maxItems: CHECKLIST_MAX_ITEMS,
|
|
97
|
+
});
|
|
74
98
|
const enumOf = (values) => ({
|
|
75
99
|
kind: "enum",
|
|
76
100
|
optional: false,
|
|
@@ -113,6 +137,17 @@ export function describeType(value) {
|
|
|
113
137
|
function isRecord(value) {
|
|
114
138
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
115
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* The refusal for a list longer than one dispatch carries. Shares the shape and
|
|
142
|
+
* the reasoning of {@link fieldLengthRefusal}: the app takes the prefix and
|
|
143
|
+
* drops the tail silently, so the caller must be told before anything is sent.
|
|
144
|
+
*/
|
|
145
|
+
function itemCountRefusal(path, count, max) {
|
|
146
|
+
if (count <= max)
|
|
147
|
+
return null;
|
|
148
|
+
return (`${path}: expected at most ${max} items — received ${count}; Things keeps the first ` +
|
|
149
|
+
`${max} and drops the rest rather than refusing them, so nothing was sent`);
|
|
150
|
+
}
|
|
116
151
|
// --------------------------------------------------------- shared field specs
|
|
117
152
|
const ISO_DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
|
|
118
153
|
/**
|
|
@@ -260,12 +295,18 @@ const checklistItems = () => custom('an array of titles, or {"title": "…", "co
|
|
|
260
295
|
if (!Array.isArray(value)) {
|
|
261
296
|
return `${path}: expected an array of checklist items — received ${describeType(value)}`;
|
|
262
297
|
}
|
|
298
|
+
const tooMany = itemCountRefusal(path, value.length, CHECKLIST_MAX_ITEMS);
|
|
299
|
+
if (tooMany !== null)
|
|
300
|
+
return tooMany;
|
|
263
301
|
for (let i = 0; i < value.length; i++) {
|
|
264
302
|
const item = value[i];
|
|
265
303
|
const at = `${path}[${i}]`;
|
|
266
304
|
if (typeof item === "string") {
|
|
267
305
|
if (item.length === 0)
|
|
268
306
|
return `${at}: expected a non-empty title — received an empty string`;
|
|
307
|
+
const long = fieldLengthRefusal(at, item, TITLE_LIMITS);
|
|
308
|
+
if (long !== null)
|
|
309
|
+
return long;
|
|
269
310
|
continue;
|
|
270
311
|
}
|
|
271
312
|
if (!isRecord(item)) {
|
|
@@ -277,6 +318,9 @@ const checklistItems = () => custom('an array of titles, or {"title": "…", "co
|
|
|
277
318
|
if (typeof item["title"] !== "string" || item["title"].length === 0) {
|
|
278
319
|
return `${at}.title: expected a non-empty string — received ${describeType(item["title"])}`;
|
|
279
320
|
}
|
|
321
|
+
const longTitle = fieldLengthRefusal(`${at}.title`, item["title"], TITLE_LIMITS);
|
|
322
|
+
if (longTitle !== null)
|
|
323
|
+
return longTitle;
|
|
280
324
|
if (item["completed"] !== undefined && typeof item["completed"] !== "boolean") {
|
|
281
325
|
return `${at}.completed: expected true or false — received ${describeType(item["completed"])}`;
|
|
282
326
|
}
|
|
@@ -307,6 +351,9 @@ const projectItems = () => custom('an ordered array of {"kind": "to-do" | "headi
|
|
|
307
351
|
if (typeof item["title"] !== "string" || item["title"].length === 0) {
|
|
308
352
|
return `${at}.title: expected a non-empty string — received ${describeType(item["title"])}`;
|
|
309
353
|
}
|
|
354
|
+
const longTitle = fieldLengthRefusal(`${at}.title`, item["title"], TITLE_LIMITS);
|
|
355
|
+
if (longTitle !== null)
|
|
356
|
+
return longTitle;
|
|
310
357
|
if (kind === "heading")
|
|
311
358
|
continue;
|
|
312
359
|
const childSpecs = {
|
|
@@ -314,7 +361,7 @@ const projectItems = () => custom('an ordered array of {"kind": "to-do" | "headi
|
|
|
314
361
|
when: opt(whenValue()),
|
|
315
362
|
deadline: opt(isoDate()),
|
|
316
363
|
tags: opt(strArray()),
|
|
317
|
-
checklistItems: opt(
|
|
364
|
+
checklistItems: opt(checklistTitles()),
|
|
318
365
|
};
|
|
319
366
|
for (const [key, spec] of Object.entries(childSpecs)) {
|
|
320
367
|
const error = checkField(spec, item[key], `${at}.${key}`);
|
|
@@ -342,6 +389,9 @@ function checkField(spec, value, path) {
|
|
|
342
389
|
if (spec.nonEmpty === true && value.length === 0) {
|
|
343
390
|
return `${path}: expected ${spec.describe} — received an empty string`;
|
|
344
391
|
}
|
|
392
|
+
if (spec.limits !== undefined) {
|
|
393
|
+
return fieldLengthRefusal(path, value, spec.limits);
|
|
394
|
+
}
|
|
345
395
|
return null;
|
|
346
396
|
}
|
|
347
397
|
case "boolean":
|
|
@@ -365,6 +415,11 @@ function checkField(spec, value, path) {
|
|
|
365
415
|
if (!Array.isArray(value)) {
|
|
366
416
|
return `${path}: expected ${spec.describe} — received ${describeType(value)}`;
|
|
367
417
|
}
|
|
418
|
+
if (spec.maxItems !== undefined) {
|
|
419
|
+
const tooMany = itemCountRefusal(path, value.length, spec.maxItems);
|
|
420
|
+
if (tooMany !== null)
|
|
421
|
+
return tooMany;
|
|
422
|
+
}
|
|
368
423
|
for (let i = 0; i < value.length; i++) {
|
|
369
424
|
const el = value[i];
|
|
370
425
|
if (typeof el !== "string") {
|
|
@@ -373,6 +428,11 @@ function checkField(spec, value, path) {
|
|
|
373
428
|
if (el.length === 0) {
|
|
374
429
|
return `${path}[${i}]: expected a non-empty string — received an empty string`;
|
|
375
430
|
}
|
|
431
|
+
if (spec.limits !== undefined) {
|
|
432
|
+
const detail = fieldLengthRefusal(`${path}[${i}]`, el, spec.limits);
|
|
433
|
+
if (detail !== null)
|
|
434
|
+
return detail;
|
|
435
|
+
}
|
|
376
436
|
}
|
|
377
437
|
return null;
|
|
378
438
|
}
|
|
@@ -510,7 +570,7 @@ export const PARAM_SCHEMAS = {
|
|
|
510
570
|
reminder: opt(reminderTime()),
|
|
511
571
|
deadline: opt(isoDate()),
|
|
512
572
|
tags: opt(strArray("an array of tag titles")),
|
|
513
|
-
checklistItems: opt(
|
|
573
|
+
checklistItems: opt(checklistTitles()),
|
|
514
574
|
project: opt(container()),
|
|
515
575
|
area: opt(container()),
|
|
516
576
|
heading: opt(str("a heading title inside the destination project")),
|
|
@@ -660,7 +720,7 @@ export const PARAM_SCHEMAS = {
|
|
|
660
720
|
deadline: opt(isoDate()),
|
|
661
721
|
startDaysEarlier: opt(int(0, 366, "a whole number of days ≥ 0")),
|
|
662
722
|
tags: opt(strArray("an array of tag titles")),
|
|
663
|
-
checklistItems: opt(
|
|
723
|
+
checklistItems: opt(checklistTitles()),
|
|
664
724
|
project: opt(container()),
|
|
665
725
|
area: opt(container()),
|
|
666
726
|
heading: opt(str("a heading title inside the destination project")),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"param-schema.js","sourceRoot":"","sources":["../../src/write/param-schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"param-schema.js","sourceRoot":"","sources":["../../src/write/param-schema.ts"],"names":[],"mappings":"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"}
|
package/dist/write/pipeline.js
CHANGED
|
@@ -24,6 +24,7 @@ import { classifyTransportFailure, classifyVerifyFailure, } from "./failure-hint
|
|
|
24
24
|
import { evaluateGuards } from "./guards.js";
|
|
25
25
|
import { acquireMutationLock, MutationLockError, withMutationLock, } from "./lock.js";
|
|
26
26
|
import { isHeadingTargetOp, } from "./operations.js";
|
|
27
|
+
import { describeTruncation } from "./field-limits.js";
|
|
27
28
|
import { assertOperationParams } from "./param-schema.js";
|
|
28
29
|
import { computeCompletionContext } from "./completion-context.js";
|
|
29
30
|
import { assessOffRuleFirst } from "./repeat-anchor.js";
|
|
@@ -271,6 +272,29 @@ export function normalizeConsumerWhen(params, now, zone) {
|
|
|
271
272
|
`This Evening), or set this host's system time zone to the consumer's so the calendars match`,
|
|
272
273
|
};
|
|
273
274
|
}
|
|
275
|
+
/**
|
|
276
|
+
* Read a mismatch as a TRUNCATION when it is one: the app stored a strict
|
|
277
|
+
* PREFIX of the value it was handed, which is what Things does with an
|
|
278
|
+
* over-long field rather than refusing it (#621, [field-limits.ts]). A plain
|
|
279
|
+
* "the database contradicts the expected delta" hides both halves of what
|
|
280
|
+
* happened — that the write LANDED, and that the item now holds a partial
|
|
281
|
+
* value — so the specific sentence wins over the generic one.
|
|
282
|
+
*
|
|
283
|
+
* The first truncated assertion is the one described; a mutation that
|
|
284
|
+
* over-ran two fields at once has the same cause and the same remedy.
|
|
285
|
+
*/
|
|
286
|
+
function truncationDetail(delta, observed) {
|
|
287
|
+
// A `gone` delta asserts absence, not field values — nothing to read as a
|
|
288
|
+
// prefix.
|
|
289
|
+
if (observed == null || !("assert" in delta))
|
|
290
|
+
return undefined;
|
|
291
|
+
for (const assertion of delta.assert) {
|
|
292
|
+
const detail = describeTruncation(assertion.field, assertion.equals, observed[assertion.field]);
|
|
293
|
+
if (detail !== null)
|
|
294
|
+
return detail;
|
|
295
|
+
}
|
|
296
|
+
return undefined;
|
|
297
|
+
}
|
|
274
298
|
/**
|
|
275
299
|
* Run a COMPOSITE — a single verb the engine executes as several mutations —
|
|
276
300
|
* under ONE mutation lock held end-to-end, so it serializes against other
|
|
@@ -1244,6 +1268,12 @@ export async function runMutation(deps, op, params, options = {}) {
|
|
|
1244
1268
|
// The collateral verdict carries its own sentence — which field moved,
|
|
1245
1269
|
// from what to what, and why a retry is not the answer (CGRD1).
|
|
1246
1270
|
(outcome.collateral !== undefined ? describeCollateral(outcome.collateral) : undefined) ??
|
|
1271
|
+
// A field the app TRUNCATED reads as a plain mismatch, which is the
|
|
1272
|
+
// least useful thing to say about it: the write half-landed and the
|
|
1273
|
+
// item now holds a prefix. Pre-write validation refuses every length
|
|
1274
|
+
// we have measured (field-limits.ts), so reaching here means a ceiling
|
|
1275
|
+
// moved under a newer Things — worth naming precisely (#621).
|
|
1276
|
+
truncationDetail(delta, outcome.observed) ??
|
|
1247
1277
|
outcome.detail ??
|
|
1248
1278
|
(outcome.kind === "silent-noop"
|
|
1249
1279
|
? "no observable change in the database (the app accepted the command but did nothing)"
|