@cello-protocol/daemon 0.0.152 → 0.0.154

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.
@@ -28,7 +28,8 @@ import * as Y from "yjs";
28
28
  import { encodeDocumentProposal, buildDocumentProposalTbs, documentIdFromProposal, seamViolation, ASSURANCE_TIER_V1, TOPOLOGY_V1, DOCUMENT_FEATURE_VERSION, encodeDocumentProposalAck, buildDocumentProposalAckTbs, DOCUMENT_PROPOSAL_ACK_VERSION, MAX_PROPOSAL_REFUSAL_REASON_LENGTH, } from "@cello-protocol/protocol-types";
29
29
  import { lineHunks, isSupportedDocumentType, SUPPORTED_DOCUMENT_TYPES } from "./document-write-path.js";
30
30
  import { openingNoticeFor, rootForDocumentType } from "./document-types.js";
31
- import { projectDocumentText, parseJsonDocument, jsonKeyOperations } from "./document-json.js";
31
+ import { projectDocumentText, parseJsonDocument, applyJsonToMap } from "./document-json.js";
32
+ import { classifyRemovals } from "./document-write-guard.js";
32
33
  import { profileViolation } from "./document-profile.js";
33
34
  import { screenText, SCREEN_RULE_ID } from "./document-screen.js";
34
35
  /** Document types the notification/diff path understands. Anything else is stored, not diffed. */
@@ -223,9 +224,7 @@ export function registerDocumentHandlers(deps) {
223
224
  `Nothing was created, so there is nothing to clean up.`,
224
225
  };
225
226
  }
226
- const map = seed.getMap("data");
227
- for (const [key, value] of Object.entries(seeded.value))
228
- map.set(key, value);
227
+ applyJsonToMap(seed.getMap("data"), seeded.value, seed);
229
228
  }
230
229
  else {
231
230
  seed.getText("content").insert(0, startingText);
@@ -835,6 +834,54 @@ export function registerDocumentHandlers(deps) {
835
834
  detail: JSON.stringify(profileFault),
836
835
  };
837
836
  }
837
+ // DOD-DOC-STALE-WRITE-1 — WOULD THIS WRITE DELETE SOMETHING THE AUTHOR NEVER SAW?
838
+ //
839
+ // `content` is the COMPLETE text, so anything absent from it is a deletion. That contract is
840
+ // right — a patch API means stale offsets, which in a CRDT is permanent corruption both sides
841
+ // converge on — but it cannot distinguish "I read their paragraph and do not want it" from
842
+ // "their paragraph arrived while I was typing". Both are the same bytes.
843
+ //
844
+ // Measured live 2026-08-09: a peer's paragraph admitted at 12:35:41.807 was destroyed by a write
845
+ // published at 12:35:42.033. The lost text was the smaller harm — the signed record cannot tell
846
+ // the two apart either, so the accident is permanently attributed as a deliberate rejection of
847
+ // the counterparty's work.
848
+ //
849
+ // The read mark holds the exact text last read, durably, which is enough to tell them apart.
850
+ // Refusal is conditioned on REMOVAL, never on staleness alone: a write that only ADDS is never
851
+ // refused, or proposing a document and writing to it before reading would refuse for nothing.
852
+ // GATED ON WHETHER THE DOCUMENT MOVED UNDER THEM. If no peer update has been admitted since
853
+ // this agent last looked, its view IS current by construction and every removal in its text is
854
+ // something it put there or read — nothing to protect, and refusing would be pure friction.
855
+ //
856
+ // This is what makes the guard quiet. The first version asked only "was this line in your last
857
+ // read", which refused every EDIT of an existing line by an author who had not called read —
858
+ // changing a line removes the old line's text. Two existing tests caught it.
859
+ const unreadFromPeer = layer.notifications.unreadFromPeer(who.ownerAgentId, documentId);
860
+ const verdict = unreadFromPeer > 0
861
+ ? classifyRemovals(before, content, layer.notifications.knownTexts(who.ownerAgentId, documentId))
862
+ : { removed: [], deliberate: [], unseen: [], refuse: false };
863
+ if (verdict.refuse) {
864
+ // The diff travels WITH the refusal. This is the moment the author can still act: they are
865
+ // about to destroy it, rather than the peer discovering it gone hours later — and unlike the
866
+ // peer, the author can tell whether they meant it.
867
+ logger.info("document.write.refused.unseen_removal", {
868
+ documentId,
869
+ unseen: verdict.unseen.length,
870
+ unreadFromPeer,
871
+ });
872
+ return {
873
+ ok: false,
874
+ reason: "document_write_would_delete_unseen",
875
+ currentContent: before,
876
+ unseenRemovals: verdict.unseen,
877
+ guidance: `This write would delete ${verdict.unseen.length} line(s) you have not read — your ` +
878
+ `counterparty changed the document after you last looked at it. Nothing was changed. ` +
879
+ `The current text is in 'currentContent' and what you would have removed is in ` +
880
+ `'unseenRemovals'. Re-apply your edit on top of the current text and write again. If you ` +
881
+ `DO want those lines gone, read the document first — a removal you have read is recorded ` +
882
+ `as a deliberate act rather than refused.`,
883
+ };
884
+ }
838
885
  // LINE HUNKS, never a whole-text replace — and this is not a preference, it is measured.
839
886
  //
840
887
  // `delete(0, len); insert(0, content)` can only delete the items THIS side has seen. A peer's
@@ -878,23 +925,15 @@ export function registerDocumentHandlers(deps) {
878
925
  // ONE TRANSACTION either way, so the whole edit is a single Yjs update rather than several — a
879
926
  // peer applying them separately would pass through states no operator ever wrote.
880
927
  if (parsedWrite !== null && parsedWrite.ok) {
881
- // PER KEY, which is the whole reason a JSON document uses the map root. Two agents editing
882
- // different fields produce disjoint key sets and both survive; line-merging the serialized
883
- // form would have them rewriting the same lines and interleaving into invalid JSON.
928
+ // PER KEY AND AT EVERY DEPTH, which is the whole reason a JSON document uses the map root.
929
+ // Two agents editing different fields produce disjoint operations and both survive including
930
+ // two fields inside the SAME nested object, which was the defect: a nested object stored as a
931
+ // plain value is one item, so two writes to it are two writes to one item and one is lost.
884
932
  //
885
- // Untouched keys are not rewritten at all see `jsonKeyOperations`. Writing a key back with
886
- // an identical value is still a CRDT operation and would clobber a peer's concurrent edit to
887
- // a field this agent never looked at.
888
- const map = doc.getMap("data");
889
- const ops = jsonKeyOperations(map, parsedWrite.value);
890
- doc.transact(() => {
891
- for (const [key, value] of ops) {
892
- if (value === undefined)
893
- map.delete(key);
894
- else
895
- map.set(key, value);
896
- }
897
- });
933
+ // Untouched keys are not rewritten at any depth. Writing a key back with an identical value is
934
+ // still a CRDT operation and would clobber a peer's concurrent edit to a field this agent
935
+ // never looked at.
936
+ applyJsonToMap(doc.getMap("data"), parsedWrite.value, doc);
898
937
  }
899
938
  else {
900
939
  const hunks = lineHunks(before, content);
@@ -929,6 +968,14 @@ export function registerDocumentHandlers(deps) {
929
968
  // back to us as "what changed since I looked" — which the tool description frames as the
930
969
  // COUNTERPARTY's contribution — and `overlap` has nothing to separate mine from theirs.
931
970
  unpublishedEdits.delete(unpublishedKey(who.ownerAgentId, documentId));
971
+ // A removal the author HAD read is the "second refusal" — a deliberate editorial act. Recorded
972
+ // as one, so it is distinguishable later from the accident this guard now prevents.
973
+ if (verdict.deliberate.length > 0) {
974
+ logger.info("document.write.removal.deliberate", {
975
+ documentId,
976
+ lines: verdict.deliberate.length,
977
+ });
978
+ }
932
979
  layer.notifications.markWritten(who.ownerAgentId, documentId, content);
933
980
  // AND THE FILE. `cello_doc_write` changes the document; without this the operator's own
934
981
  // projection on disk is stale the moment they use it, and the two surfaces disagree about the
@@ -1 +1 @@
1
- {"version":3,"file":"document-handlers.js","sourceRoot":"","sources":["../src/document-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-handlers.js","sourceRoot":"","sources":["../src/document-handlers.ts"],"names":[],"mappings":"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"}
@@ -53,26 +53,49 @@ export type ParsedJsonDocument = {
53
53
  */
54
54
  export declare function parseJsonDocument(text: string): ParsedJsonDocument;
55
55
  /**
56
- * The minimal set of key operations that turns `current` into `next`, as `[key, value]` pairs where
57
- * a `value` of `undefined` means delete.
56
+ * Apply `next` to `map` as the MINIMAL set of key operations, recursing into nested objects.
58
57
  *
59
- * **This is the per-key merge, and it is the whole point of the map root.** Two agents editing
60
- * different fields of a shared plan produce disjoint key sets, so both survive; a line merge of the
61
- * serialized form would have them rewriting the same lines and interleaving into broken JSON.
58
+ * **This is the per-key merge, and depth is the whole point of it.** Two actors editing two
59
+ * different fields of a shared record must both survive. Storing a nested object as a plain value
60
+ * makes it ONE item, so two writes to two fields inside it are two writes to the same item and last
61
+ * writer wins — measured on the reference workflow: one actor raising `settlement_failed` and
62
+ * another clearing `insufficient_funds` in the same minute ended with the raise gone from both
63
+ * machines, silently.
64
+ *
65
+ * That was dangerous rather than merely limited, because `jsonDiff` reports full dotted paths. Every
66
+ * surface said the structure was understood at path granularity, so a schema nests precisely where
67
+ * several actors write — and afterwards the diff names the field that vanished.
68
+ *
69
+ * **Untouched keys are not written at all**, at any depth. Writing a key back with an identical
70
+ * value is still a CRDT operation and would clobber a peer's concurrent edit to a field this author
71
+ * never looked at. A nested object that already exists is REUSED rather than replaced, for the same
72
+ * reason — replacing it is exactly the bug.
73
+ *
74
+ * **Arrays are stored whole, deliberately.** Element-level merge of two concurrent array edits
75
+ * interleaves into an order neither party wrote, and an array's order is content: a ranked list, a
76
+ * sequence of steps. Last-writer-wins on a whole array beats a silently reordered one. The
77
+ * consequence, recorded rather than hidden: a JOURNAL must not be an array, because two concurrent
78
+ * appends lose one. Key it as a map and this function carries it at any depth.
62
79
  *
63
80
  * Values are compared on their CANONICAL rendering. Plain `JSON.stringify` is order-sensitive for a
64
81
  * nested object, so re-ordering a nested block — which any formatter may do — would count as a
65
- * changed value, publish a change nobody made, and beat the peer's real edit to that key.
82
+ * changed value, publish a change nobody made, and beat a peer's real edit to that key.
66
83
  *
67
- * Untouched keys are not written at all. Writing a key back with an identical value is still a CRDT
68
- * operation, and it would clobber a peer's concurrent edit to a field this agent never looked at.
84
+ * Returns the dotted paths actually written, for the overlap flag.
69
85
  */
70
- export declare function jsonKeyOperations(current: ReadonlyMap<string, unknown> | {
86
+ export declare function applyJsonToMap(map: YMapLike, next: {
87
+ [key: string]: JsonValue;
88
+ }, doc: {
89
+ transact(fn: () => void): void;
90
+ }, prefix?: string): string[];
91
+ /** A `Y.Map`-shaped thing, kept structural so this module does not import the engine. */
92
+ export interface YMapLike {
71
93
  get(key: string): unknown;
94
+ set(key: string, value: unknown): unknown;
95
+ delete(key: string): void;
72
96
  keys(): Iterable<string>;
73
- }, next: {
74
- [key: string]: JsonValue;
75
- }): Array<[string, JsonValue | undefined]>;
97
+ toJSON(): unknown;
98
+ }
76
99
  /**
77
100
  * The document's content as the text an agent reads and writes back — whichever root it lives in.
78
101
  *
@@ -1 +1 @@
1
- {"version":3,"file":"document-json.d.ts","sourceRoot":"","sources":["../src/document-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAiBtG;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAE9D;AAED,kEAAkE;AAClE,MAAM,MAAM,kBAAkB,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAA;CAAE,GACjD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAWlE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;CAAE,EAC/F,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACjC,KAAK,CAAC,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC,CAexC;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAK/E;AAMD,mFAAmF;AACnF,UAAU,QAAQ;IAChB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,MAAM,IAAI,OAAO,CAAA;KAAE,CAAC;IAC5C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,CAAC;CAC/C"}
1
+ {"version":3,"file":"document-json.d.ts","sourceRoot":"","sources":["../src/document-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAiBtG;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAE9D;AAED,kEAAkE;AAClE,MAAM,MAAM,kBAAkB,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAA;CAAE,GACjD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAWlE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAClC,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;CAAE,EACvC,MAAM,SAAK,GACV,MAAM,EAAE,CAsCV;AAED,yFAAyF;AACzF,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,IAAI,OAAO,CAAC;CACnB;AAiCD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAK/E;AAMD,mFAAmF;AACnF,UAAU,QAAQ;IAChB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,MAAM,IAAI,OAAO,CAAA;KAAE,CAAC;IAC5C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,CAAC;CAC/C"}
@@ -73,34 +73,100 @@ export function parseJsonDocument(text) {
73
73
  return { ok: true, value: parsed };
74
74
  }
75
75
  /**
76
- * The minimal set of key operations that turns `current` into `next`, as `[key, value]` pairs where
77
- * a `value` of `undefined` means delete.
76
+ * Apply `next` to `map` as the MINIMAL set of key operations, recursing into nested objects.
78
77
  *
79
- * **This is the per-key merge, and it is the whole point of the map root.** Two agents editing
80
- * different fields of a shared plan produce disjoint key sets, so both survive; a line merge of the
81
- * serialized form would have them rewriting the same lines and interleaving into broken JSON.
78
+ * **This is the per-key merge, and depth is the whole point of it.** Two actors editing two
79
+ * different fields of a shared record must both survive. Storing a nested object as a plain value
80
+ * makes it ONE item, so two writes to two fields inside it are two writes to the same item and last
81
+ * writer wins — measured on the reference workflow: one actor raising `settlement_failed` and
82
+ * another clearing `insufficient_funds` in the same minute ended with the raise gone from both
83
+ * machines, silently.
84
+ *
85
+ * That was dangerous rather than merely limited, because `jsonDiff` reports full dotted paths. Every
86
+ * surface said the structure was understood at path granularity, so a schema nests precisely where
87
+ * several actors write — and afterwards the diff names the field that vanished.
88
+ *
89
+ * **Untouched keys are not written at all**, at any depth. Writing a key back with an identical
90
+ * value is still a CRDT operation and would clobber a peer's concurrent edit to a field this author
91
+ * never looked at. A nested object that already exists is REUSED rather than replaced, for the same
92
+ * reason — replacing it is exactly the bug.
93
+ *
94
+ * **Arrays are stored whole, deliberately.** Element-level merge of two concurrent array edits
95
+ * interleaves into an order neither party wrote, and an array's order is content: a ranked list, a
96
+ * sequence of steps. Last-writer-wins on a whole array beats a silently reordered one. The
97
+ * consequence, recorded rather than hidden: a JOURNAL must not be an array, because two concurrent
98
+ * appends lose one. Key it as a map and this function carries it at any depth.
82
99
  *
83
100
  * Values are compared on their CANONICAL rendering. Plain `JSON.stringify` is order-sensitive for a
84
101
  * nested object, so re-ordering a nested block — which any formatter may do — would count as a
85
- * changed value, publish a change nobody made, and beat the peer's real edit to that key.
102
+ * changed value, publish a change nobody made, and beat a peer's real edit to that key.
86
103
  *
87
- * Untouched keys are not written at all. Writing a key back with an identical value is still a CRDT
88
- * operation, and it would clobber a peer's concurrent edit to a field this agent never looked at.
104
+ * Returns the dotted paths actually written, for the overlap flag.
89
105
  */
90
- export function jsonKeyOperations(current, next) {
91
- const ops = [];
92
- for (const [key, value] of Object.entries(next)) {
93
- const before = current.get(key);
94
- if (before === undefined ||
95
- serializeJsonDocument(before) !== serializeJsonDocument(value)) {
96
- ops.push([key, value]);
106
+ export function applyJsonToMap(map, next, doc, prefix = "") {
107
+ const written = [];
108
+ const apply = () => {
109
+ for (const [key, value] of Object.entries(next)) {
110
+ const path = prefix === "" ? key : `${prefix}.${key}`;
111
+ const before = map.get(key);
112
+ const nestable = isPlainObject(value);
113
+ if (nestable && isYMap(before)) {
114
+ // RECURSE into the existing nested map. Never replace it — replacing is what destroys a
115
+ // peer's concurrent edit to a sibling key.
116
+ written.push(...applyJsonToMap(before, value, doc, path));
117
+ continue;
118
+ }
119
+ if (nestable) {
120
+ // Either absent, or a legacy PLAIN object written before nesting existed. Both become a
121
+ // nested map here; that is the whole migration, and it happens on first touch.
122
+ const child = newYMap(map);
123
+ map.set(key, child);
124
+ written.push(...applyJsonToMap(child, value, doc, path));
125
+ continue;
126
+ }
127
+ if (before === undefined || serializeJsonDocument(toJson(before)) !== serializeJsonDocument(value)) {
128
+ map.set(key, value);
129
+ written.push(path);
130
+ }
97
131
  }
98
- }
99
- for (const key of [...current.keys()]) {
100
- if (!(key in next))
101
- ops.push([key, undefined]);
102
- }
103
- return ops;
132
+ for (const key of [...map.keys()]) {
133
+ if (!(key in next)) {
134
+ map.delete(key);
135
+ written.push(prefix === "" ? key : `${prefix}.${key}`);
136
+ }
137
+ }
138
+ };
139
+ // One transaction for the whole tree, so the edit is a single update rather than one per depth.
140
+ if (prefix === "")
141
+ doc.transact(apply);
142
+ else
143
+ apply();
144
+ return written;
145
+ }
146
+ function isPlainObject(v) {
147
+ return v !== null && typeof v === "object" && !Array.isArray(v);
148
+ }
149
+ /** True for a Yjs map. Detected by shape — `toJSON` plus `keys` plus `delete`. */
150
+ function isYMap(v) {
151
+ return (v !== null &&
152
+ typeof v === "object" &&
153
+ typeof v.get === "function" &&
154
+ typeof v.keys === "function" &&
155
+ typeof v.toJSON === "function");
156
+ }
157
+ /** A stored value as plain JSON, whether it is a nested map or an ordinary value. */
158
+ function toJson(v) {
159
+ return (isYMap(v) ? v.toJSON() : v);
160
+ }
161
+ /**
162
+ * A new nested map of the SAME class as its parent.
163
+ *
164
+ * Constructed from the parent's own constructor rather than importing `yjs` here, so this module
165
+ * stays free of the engine and the write path keeps one source of the Yjs dependency.
166
+ */
167
+ function newYMap(sibling) {
168
+ const Ctor = sibling.constructor;
169
+ return new Ctor();
104
170
  }
105
171
  /**
106
172
  * The document's content as the text an agent reads and writes back — whichever root it lives in.
@@ -1 +1 @@
1
- {"version":3,"file":"document-json.js","sourceRoot":"","sources":["../src/document-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-json.js","sourceRoot":"","sources":["../src/document-json.ts"],"names":[],"mappings":"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"}
@@ -101,6 +101,15 @@ export declare class DocumentNotifications {
101
101
  * against, and inventing one would make the first diff after a write report the whole document as
102
102
  * a conflict.
103
103
  */
104
+ /**
105
+ * Every text this agent demonstrably held for this document — what it last READ and what it last
106
+ * WROTE, in no particular order, with nulls dropped.
107
+ *
108
+ * Used by the stale-write guard to answer "could this author have seen the thing their write
109
+ * removes?". Both sources are needed: a read establishes a baseline, and a write is text the
110
+ * author obviously saw because they composed it.
111
+ */
112
+ knownTexts(agentId: string, documentId: string): string[];
104
113
  markWritten(agentId: string, documentId: string, text: string): void;
105
114
  /**
106
115
  * The lines WE edited since the last read, 1-based, in the baseline's coordinate space — or null
@@ -1 +1 @@
1
- {"version":3,"file":"document-notify.d.ts","sourceRoot":"","sources":["../src/document-notify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-notify.d.ts","sourceRoot":"","sources":["../src/document-notify.ts"],"names":[],"mappings":"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"}
@@ -125,6 +125,20 @@ export class DocumentNotifications {
125
125
  * against, and inventing one would make the first diff after a write report the whole document as
126
126
  * a conflict.
127
127
  */
128
+ /**
129
+ * Every text this agent demonstrably held for this document — what it last READ and what it last
130
+ * WROTE, in no particular order, with nulls dropped.
131
+ *
132
+ * Used by the stale-write guard to answer "could this author have seen the thing their write
133
+ * removes?". Both sources are needed: a read establishes a baseline, and a write is text the
134
+ * author obviously saw because they composed it.
135
+ */
136
+ knownTexts(agentId, documentId) {
137
+ const row = this.#store.rawDb
138
+ .prepare("SELECT seen_text, my_text FROM document_read_marks WHERE agent_id = ? AND document_id = ?")
139
+ .get(agentId, documentId);
140
+ return [row?.seen_text ?? null, row?.my_text ?? null].filter((t) => t !== null);
141
+ }
128
142
  markWritten(agentId, documentId, text) {
129
143
  this.#store.rawDb
130
144
  .prepare("UPDATE document_read_marks SET my_text = ? WHERE agent_id = ? AND document_id = ?")