studiograph 1.3.48-next.151 → 1.3.48-next.152

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 (66) hide show
  1. package/dist/agent/tools/graph-tools.js +24 -47
  2. package/dist/agent/tools/graph-tools.js.map +1 -1
  3. package/dist/core/graph.d.ts +24 -66
  4. package/dist/core/graph.js +47 -76
  5. package/dist/core/graph.js.map +1 -1
  6. package/dist/core/workspace-manager.d.ts +17 -7
  7. package/dist/core/workspace-manager.js +31 -13
  8. package/dist/core/workspace-manager.js.map +1 -1
  9. package/dist/mcp/tools.js +16 -103
  10. package/dist/mcp/tools.js.map +1 -1
  11. package/dist/server/body-write-coordinator.d.ts +109 -0
  12. package/dist/server/body-write-coordinator.js +159 -0
  13. package/dist/server/body-write-coordinator.js.map +1 -0
  14. package/dist/server/index.js +10 -30
  15. package/dist/server/index.js.map +1 -1
  16. package/dist/services/entity-mutations.d.ts +91 -0
  17. package/dist/services/entity-mutations.js +142 -0
  18. package/dist/services/entity-mutations.js.map +1 -0
  19. package/dist/web/_app/immutable/chunks/{BpDsJt5A.js → B4GeChdr.js} +1 -1
  20. package/dist/web/_app/immutable/chunks/{CboE6caH.js → BETexJEo.js} +1 -1
  21. package/dist/web/_app/immutable/chunks/{BkNX_Twa.js → BIKuXIys.js} +3 -3
  22. package/dist/web/_app/immutable/chunks/{DOLCBtWg2.js → BIbpODkv2.js} +1 -1
  23. package/dist/web/_app/immutable/chunks/{D426pT9h2.js → BLCjfe2G2.js} +1 -1
  24. package/dist/web/_app/immutable/chunks/{C8zUrBNT.js → BLfmufb5.js} +1 -1
  25. package/dist/web/_app/immutable/chunks/{CLFLVu4E.js → BuD9NUs0.js} +1 -1
  26. package/dist/web/_app/immutable/chunks/{BzSYRjK02.js → C-qdFB7B2.js} +1 -1
  27. package/dist/web/_app/immutable/chunks/C6ulkM1e.js +1 -0
  28. package/dist/web/_app/immutable/chunks/{BnQoXgWh.js → CLHg6z39.js} +1 -1
  29. package/dist/web/_app/immutable/chunks/{Di5Q957p2.js → CYRgwABC2.js} +1 -1
  30. package/dist/web/_app/immutable/chunks/{tfUe-C9j2.js → CgYhJLA32.js} +1 -1
  31. package/dist/web/_app/immutable/chunks/{B66c84qs.js → CiT5n28e.js} +1 -1
  32. package/dist/web/_app/immutable/chunks/ClF-5nQ0.js +1 -0
  33. package/dist/web/_app/immutable/chunks/{BVICussD2.js → DCYuyxGC2.js} +1 -1
  34. package/dist/web/_app/immutable/chunks/{CiUoDrBV2.js → DQVMJnKy2.js} +1 -1
  35. package/dist/web/_app/immutable/chunks/{DUv9zgkq.js → DYBX1Pjj.js} +1 -1
  36. package/dist/web/_app/immutable/chunks/{CvhAoTmc2.js → DtkZAOW42.js} +1 -1
  37. package/dist/web/_app/immutable/chunks/{Ciu2ItGu2.js → Du3Sa3Kb2.js} +2 -2
  38. package/dist/web/_app/immutable/chunks/{BVQaWiGS.js → DuoHR8YE.js} +1 -1
  39. package/dist/web/_app/immutable/chunks/{ZeBd8OsK.js → KKu176Tm.js} +1 -1
  40. package/dist/web/_app/immutable/chunks/{DDw_A9d6.js → V-EmvTZA.js} +1 -1
  41. package/dist/web/_app/immutable/chunks/{DFjQOvZL2.js → fOJzgQL-2.js} +1 -1
  42. package/dist/web/_app/immutable/chunks/{BoeFTT_5.js → kU-j6fFg.js} +1 -1
  43. package/dist/web/_app/immutable/chunks/{C571A3Sm.js → l8ukJXxg.js} +1 -1
  44. package/dist/web/_app/immutable/chunks/{CxO1mcHD.js → oSSUEEiB.js} +1 -1
  45. package/dist/web/_app/immutable/entry/{app.CgoXMzXI.js → app.C0NdGli7.js} +2 -2
  46. package/dist/web/_app/immutable/entry/start.CdAt1Hl7.js +1 -0
  47. package/dist/web/_app/immutable/nodes/{0.LTi5hotg.js → 0.DRvW9XkK.js} +2 -2
  48. package/dist/web/_app/immutable/nodes/{1.IRYnOo6X.js → 1.Bs4-DC48.js} +1 -1
  49. package/dist/web/_app/immutable/nodes/{10.BkTMANqn.js → 10.WIl6Ic00.js} +1 -1
  50. package/dist/web/_app/immutable/nodes/{11.Bj5rXaSR.js → 11.B3TD7p7u.js} +1 -1
  51. package/dist/web/_app/immutable/nodes/{12.ByWL3w5m.js → 12.D-ripQ5w.js} +1 -1
  52. package/dist/web/_app/immutable/nodes/{13.JlLNmaxo.js → 13.CNByaHmv.js} +1 -1
  53. package/dist/web/_app/immutable/nodes/{2.Bsjl0f2f.js → 2.CFJxImHu.js} +4 -4
  54. package/dist/web/_app/immutable/nodes/{3.BxZjouAw.js → 3.DNDwjY_1.js} +1 -1
  55. package/dist/web/_app/immutable/nodes/{4.6wITDE05.js → 4.CtgIBlsC.js} +2 -2
  56. package/dist/web/_app/immutable/nodes/{5.E5adgwiX.js → 5.DLCCQrrM.js} +1 -1
  57. package/dist/web/_app/immutable/nodes/{6.FCKSchCd.js → 6.BwyZLLPM.js} +1 -1
  58. package/dist/web/_app/immutable/nodes/{7.CdAqOgSZ.js → 7.BqtH3ykP.js} +1 -1
  59. package/dist/web/_app/immutable/nodes/{8.BqNOx-jt.js → 8.2zeOEHxw.js} +1 -1
  60. package/dist/web/_app/immutable/nodes/{9.Ca8tvV6U.js → 9.ThYXCOh9.js} +1 -1
  61. package/dist/web/_app/version.json +1 -1
  62. package/dist/web/index.html +12 -12
  63. package/package.json +1 -1
  64. package/dist/web/_app/immutable/chunks/BzU_SVAW.js +0 -1
  65. package/dist/web/_app/immutable/chunks/CCSegW3v.js +0 -1
  66. package/dist/web/_app/immutable/entry/start.CTVVykOg.js +0 -1
@@ -16,6 +16,7 @@ import * as access from '../../services/access-control.js';
16
16
  import { isCuratedEntityType } from '../../core/entity-types-catalog.js';
17
17
  import { getAgentAllowedEntityTypes } from '../prompts/entity-types-section.js';
18
18
  import { BridgeError, assertCanChangeUserHandle, validateUserHandleInPayload } from '../../services/user-person-bridge.js';
19
+ import { buildActor, prepareCreatePayload, prepareUpdatePayload, } from '../../services/entity-mutations.js';
19
20
  /**
20
21
  * Helper to wrap tool results in AgentToolResult format
21
22
  */
@@ -90,20 +91,15 @@ onAgentActivity) {
90
91
  /**
91
92
  * Resolve the identity to stamp on writes. If the tool call is running on
92
93
  * behalf of a real user (chat / quick-capture from the web), credit them
93
- * by their handle a stable email-free slug. The fake-domain email keeps
94
- * git commit metadata well-formed without putting real addresses into
95
- * workspace history. Fall back to the orchestrator-level gitUser for
96
- * unauthenticated contexts (CLI, tests, server-only automations).
94
+ * by their handle via the shared `buildActor` so MCP and agent surfaces
95
+ * produce byte-identical git authors for the same user. Fall back to the
96
+ * orchestrator-level gitUser for unauthenticated contexts (CLI, tests,
97
+ * server-only automations).
97
98
  */
98
99
  function effectiveGitUser() {
99
100
  const user = getUser();
100
- if (user?.handle) {
101
- return {
102
- id: user.handle,
103
- name: user.displayName ?? user.handle,
104
- email: `${user.handle}@studiograph.local`,
105
- };
106
- }
101
+ if (user?.handle)
102
+ return buildActor(user);
107
103
  return gitUser;
108
104
  }
109
105
  /** Resolve "private" or "entries" to the current user's actual private folder name. */
@@ -209,17 +205,7 @@ onAgentActivity) {
209
205
  if (existing && existing.repoName !== repoName) {
210
206
  return wrapToolResult({ success: false, error: `An entity with ID "${params.entityId}" already exists in the "${existing.repoName}" folder (type: ${existing.data?.entity_type}). Use a unique ID or link to the existing entity with [[${params.entityId}]].` });
211
207
  }
212
- // Add timestamps and user info
213
208
  const actor = effectiveGitUser();
214
- const now = new Date().toISOString();
215
- const dataWithMeta = {
216
- ...params.data,
217
- entity_id: params.entityId,
218
- created_at: now,
219
- updated_at: now,
220
- created_by: actor.id,
221
- updated_by: actor.id,
222
- };
223
209
  const sanitizedContent = sanitizeLlmContent(params.content);
224
210
  // Workspace-wide uniqueness check for `user_handle` on person
225
211
  // entities (one user ↔ one person, workspace-wide), plus owner-
@@ -240,20 +226,20 @@ onAgentActivity) {
240
226
  throw err;
241
227
  }
242
228
  }
229
+ const options = prepareCreatePayload({
230
+ entityType: params.entityType,
231
+ entityId: params.entityId,
232
+ data: params.data ?? {},
233
+ content: sanitizedContent,
234
+ folderPath: params.folder_path,
235
+ commitMessage: params.commitMessage,
236
+ }, actor);
243
237
  // Surface a live "<user>'s agent is acting" chip in the sidebar for
244
238
  // the duration of the mutation. `leave` is always emitted via the
245
239
  // inner finally so a thrown error doesn't leave the chip stuck.
246
240
  onAgentActivity?.('enter', repoName);
247
241
  try {
248
- const entity = await graph.create({
249
- entityType: params.entityType,
250
- entityId: params.entityId,
251
- data: dataWithMeta,
252
- content: sanitizedContent,
253
- commitMessage: params.commitMessage,
254
- user: actor,
255
- folderPath: params.folder_path,
256
- });
242
+ const entity = await graph.create(options);
257
243
  onMutation?.({ action: 'created', repo: repoName, entityType: params.entityType, entityId: params.entityId });
258
244
  return wrapToolResult({
259
245
  success: true,
@@ -360,15 +346,7 @@ onAgentActivity) {
360
346
  if (eagerError)
361
347
  return wrapToolResult({ success: false, error: eagerError });
362
348
  const graph = workspaceManager.getGraph(repoName);
363
- // Add update metadata
364
349
  const actor = effectiveGitUser();
365
- const dataWithMeta = params.data
366
- ? {
367
- ...params.data,
368
- updated_at: new Date().toISOString(),
369
- updated_by: actor.id,
370
- }
371
- : undefined;
372
350
  const sanitizedContent = params.content !== undefined
373
351
  ? sanitizeLlmContent(params.content)
374
352
  : params.content;
@@ -397,17 +375,16 @@ onAgentActivity) {
397
375
  throw err;
398
376
  }
399
377
  }
378
+ const options = prepareUpdatePayload({
379
+ entityType: params.entityType,
380
+ entityId: params.entityId,
381
+ data: params.data,
382
+ content: sanitizedContent,
383
+ commitMessage: params.commitMessage,
384
+ }, actor);
400
385
  onAgentActivity?.('enter', repoName);
401
386
  try {
402
- const entity = await graph.update({
403
- entityType: params.entityType,
404
- entityId: params.entityId,
405
- data: dataWithMeta,
406
- content: sanitizedContent,
407
- commitMessage: params.commitMessage,
408
- user: actor,
409
- source: sanitizedContent !== undefined ? 'server-write' : undefined,
410
- });
387
+ const entity = await graph.update(options);
411
388
  onMutation?.({ action: 'updated', repo: repoName, entityType: params.entityType, entityId: params.entityId });
412
389
  return wrapToolResult({
413
390
  success: true,
@@ -1 +1 @@
1
- {"version":3,"file":"graph-tools.js","sourceRoot":"","sources":["../../../src/agent/tools/graph-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-tools.js","sourceRoot":"","sources":["../../../src/agent/tools/graph-tools.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import { GitService, GitUser } from '../services/git.js';
8
8
  import { MarkdownDocument } from '../services/markdown.js';
9
+ import type { BodyWriteCoordinator } from '../server/body-write-coordinator.js';
9
10
  import { AssetInfo, AssetRecord, AssetConfig } from '../services/assets/index.js';
10
11
  import { EntityType, type EntityData } from './validation.js';
11
12
  import { SchemaRegistry } from './schema-registry.js';
@@ -159,70 +160,17 @@ export declare class StaleBaseRevisionError extends Error {
159
160
  * Hooked at this layer because the four mutation methods (delete, rename,
160
161
  * changeType, plus cross-repo create+delete via /transfer) are the canonical
161
162
  * mutation surface — every code path that moves an entity goes through them.
163
+ *
164
+ * Body-write hooks (onBodyWritten, applyAgentContent, withDocLock,
165
+ * assertWritable, onCommitFailedDirty) used to live here too. Phase 4
166
+ * extracted them into {@link BodyWriteCoordinator} — different concurrency
167
+ * profile, single critical section. This interface now covers ONLY the
168
+ * structural-mutation notifications that drive snapshot bookkeeping.
162
169
  */
163
- export interface GraphMutationCallbacks {
170
+ export interface GraphPersistenceCallbacks {
164
171
  onDelete?(repo: string, entityType: string, entityId: string): void | Promise<void>;
165
172
  onRename?(repo: string, entityType: string, oldId: string, newId: string): void | Promise<void>;
166
173
  onChangeType?(repo: string, entityId: string, fromType: string, toType: string): void | Promise<void>;
167
- /**
168
- * Fires after every successful body write. Wired to
169
- * `yjsManager.recordDiskBody(docName, body)` which updates the live
170
- * `entry.mdRevisionHash` so the next persistence flush captures the
171
- * post-write state.
172
- *
173
- * Sync. Skipped when `content === undefined` (frontmatter-only write).
174
- */
175
- onBodyWritten?(repo: string, entityType: string, entityId: string, body: string): void;
176
- /**
177
- * Pre-write guard. Throws if broadcast is disabled and the doc has active
178
- * editors and the operator hasn't opted into degraded-mode writes via
179
- * `STUDIOGRAPH_ALLOW_DEGRADED_WRITES`. Wired to
180
- * `yjsManager.assertWritable`. Called from `graph.update` BEFORE the
181
- * markdown write when `content !== undefined && source === 'server-write'` —
182
- * autosaves are the client's own write and must not be refused.
183
- *
184
- * Throwing here aborts the update with no side effects, surfacing the
185
- * fail-closed mode to the caller (MCP / agent / event processor) as a
186
- * typed error rather than silently letting the Y.Doc diverge.
187
- */
188
- assertWritable?(repo: string, entityType: string, entityId: string): void;
189
- /**
190
- * Apply a server-write target body to the live Y.Doc after disk and
191
- * commit have succeeded. Wired to `yjsManager.applyAgentContent`.
192
- * Returns one of:
193
- * - `'ok'`: the diff was applied and broadcast to live clients.
194
- * - `'no-doc'`: no Y.Doc loaded (no live editors). Caller already
195
- * wrote disk; nothing to broadcast. Next client connect seeds from disk.
196
- * - `'unseeded'`: Y.Doc is in the 500 ms seed-wait window. Caller
197
- * already wrote disk; the seed timer will pick up the new content.
198
- *
199
- * Called only when `source === 'server-write' && content !== undefined`.
200
- * Autosave does NOT trigger this — its content originated in the live
201
- * Y.Doc; re-applying would race in-flight keystrokes.
202
- */
203
- applyAgentContent?(repo: string, entityType: string, entityId: string, body: string): 'ok' | 'no-doc' | 'unseeded';
204
- /**
205
- * Per-doc lock. graph.update wraps its body-write critical section in
206
- * this callback for every body write (both autosave and server-write).
207
- * Wired to `yjsManager.withDocLock`.
208
- *
209
- * The lock also causes inbound client MSG_SYNC frames for the same doc
210
- * to queue (handled inside yjsManager) so the Codex pass-3 #1
211
- * keystroke-deletion race is prevented.
212
- *
213
- * Frontmatter-only writes don't acquire — they have no body-race surface.
214
- */
215
- withDocLock?<T>(repo: string, entityType: string, entityId: string, fn: () => Promise<T>): Promise<T>;
216
- /**
217
- * Phase 2h — invoked when `graph.update` is about to throw
218
- * {@link CommitFailedDirtyError}. Wired to sessionManager.markDirty so
219
- * the existing dirty-flush mechanism (which periodically retries
220
- * pending commits) has a chance to recover the partial write.
221
- *
222
- * The typed error still propagates to the caller — this callback is
223
- * "tell sessionManager too," not "swallow the error."
224
- */
225
- onCommitFailedDirty?(repo: string, entityType: string, entityId: string, path: string, user: GitUser): void;
226
174
  }
227
175
  /**
228
176
  * Thrown by `restoreFile` when the path the recreate would land at is
@@ -253,7 +201,8 @@ export declare class BaseGraphManager {
253
201
  private vectorService?;
254
202
  private schemaRegistry?;
255
203
  private workspaceRoot?;
256
- private mutationCallbacks?;
204
+ private persistenceCallbacks?;
205
+ private bodyWriteCoordinator?;
257
206
  constructor(config: GraphConfig);
258
207
  /** Expose git service for deferred commit operations (SessionManager). */
259
208
  getGitService(): GitService | undefined;
@@ -277,12 +226,21 @@ export declare class BaseGraphManager {
277
226
  * `.studiograph/assets/` directory the local backend uses). */
278
227
  getWorkspaceRoot(): string | undefined;
279
228
  /**
280
- * Install post-mutation callbacks. Called once after construction by the
281
- * server bootstrap (or test setup) so the Yjs persistence layer can react
282
- * to structural mutations without route-layer code calling persistence
283
- * APIs directly.
229
+ * Install structural-mutation callbacks. Called once after construction by
230
+ * the server bootstrap (or test setup) so the Yjs persistence layer can
231
+ * react to rename/delete/changeType without route-layer code calling
232
+ * persistence APIs directly.
233
+ */
234
+ setPersistenceCallbacks(callbacks: GraphPersistenceCallbacks | undefined): void;
235
+ /**
236
+ * Install the body-write coordinator. graph.update delegates the body-write
237
+ * critical section (lock, base-hash, atomic disk write, commit, broadcast,
238
+ * mdRevisionHash bookkeeping, assertWritable) to the coordinator. When
239
+ * unset (test fixtures without a Y.Doc layer), body writes fall back to a
240
+ * direct disk-write + commit path with no lock/broadcast — preserves the
241
+ * legacy "no callbacks" behavior some test setups rely on.
284
242
  */
285
- setMutationCallbacks(callbacks: GraphMutationCallbacks | undefined): void;
243
+ setBodyWriteCoordinator(coordinator: BodyWriteCoordinator | undefined): void;
286
244
  /**
287
245
  * Ensure repository exists
288
246
  */
@@ -103,7 +103,8 @@ export class BaseGraphManager {
103
103
  vectorService;
104
104
  schemaRegistry;
105
105
  workspaceRoot;
106
- mutationCallbacks;
106
+ persistenceCallbacks;
107
+ bodyWriteCoordinator;
107
108
  constructor(config) {
108
109
  this.repoPath = config.repoPath;
109
110
  this.repoName = config.repoName;
@@ -151,13 +152,24 @@ export class BaseGraphManager {
151
152
  return this.workspaceRoot;
152
153
  }
153
154
  /**
154
- * Install post-mutation callbacks. Called once after construction by the
155
- * server bootstrap (or test setup) so the Yjs persistence layer can react
156
- * to structural mutations without route-layer code calling persistence
157
- * APIs directly.
155
+ * Install structural-mutation callbacks. Called once after construction by
156
+ * the server bootstrap (or test setup) so the Yjs persistence layer can
157
+ * react to rename/delete/changeType without route-layer code calling
158
+ * persistence APIs directly.
158
159
  */
159
- setMutationCallbacks(callbacks) {
160
- this.mutationCallbacks = callbacks;
160
+ setPersistenceCallbacks(callbacks) {
161
+ this.persistenceCallbacks = callbacks;
162
+ }
163
+ /**
164
+ * Install the body-write coordinator. graph.update delegates the body-write
165
+ * critical section (lock, base-hash, atomic disk write, commit, broadcast,
166
+ * mdRevisionHash bookkeeping, assertWritable) to the coordinator. When
167
+ * unset (test fixtures without a Y.Doc layer), body writes fall back to a
168
+ * direct disk-write + commit path with no lock/broadcast — preserves the
169
+ * legacy "no callbacks" behavior some test setups rely on.
170
+ */
171
+ setBodyWriteCoordinator(coordinator) {
172
+ this.bodyWriteCoordinator = coordinator;
161
173
  }
162
174
  /**
163
175
  * Ensure repository exists
@@ -581,28 +593,33 @@ export class BaseGraphManager {
581
593
  }
582
594
  // Merge content (if provided)
583
595
  const mergedContent = content !== undefined ? content : existing.document.content;
584
- // Fail-closed guard: refuse server-side body writes when the broadcast
585
- // observer is disabled and the doc has live editors. The wired check
586
- // (yjsManager.assertWritable) throws BroadcastDisabledLiveClientsError
587
- // so the caller gets a clear signal instead of silently diverging from
588
- // connected clients. Autosave is exempt — it IS the client write.
589
- if (content !== undefined && source === 'server-write' && this.mutationCallbacks?.assertWritable) {
590
- this.mutationCallbacks.assertWritable(this.repoName, entityType, entityId);
591
- }
592
596
  // Update in place — write to wherever the entry already lives, not
593
597
  // wherever a fresh getEntityPath() computation would put it. Otherwise
594
598
  // an entry in a nested folder gets duplicated to the legacy plural-type
595
599
  // dir on first update.
596
600
  const entityPath = existing.path;
597
- // Every body write autosave and server-write — serializes via the
598
- // per-doc lock. Frontmatter-only writes have no body-race surface and
599
- // bypass the lock.
600
- const needsDocLock = content !== undefined && !!this.mutationCallbacks?.withDocLock;
601
- const criticalSection = async () => {
602
- // Optimistic-concurrency check, inside the lock so it composes with
603
- // the per-doc serialization. Re-reading from disk inside the lock
604
- // guarantees we see the result of any prior locked write before
605
- // deciding.
601
+ if (content !== undefined && this.bodyWriteCoordinator) {
602
+ // Body write: delegate the critical section to the coordinator.
603
+ // assertWritable, per-doc lock, base-hash precondition, atomic write,
604
+ // commit, dirty-recovery, and post-commit applyAgentContent all live
605
+ // there now.
606
+ await this.bodyWriteCoordinator.writeBody({ repo: this.repoName, entityType, entityId, entityPath }, mergedContent, {
607
+ frontmatter: validatedData,
608
+ baseHash: baseRevision,
609
+ source: source ?? 'server-write',
610
+ actor: user ?? this.gitUser,
611
+ skipCommit,
612
+ commitMessage,
613
+ });
614
+ }
615
+ else {
616
+ // Frontmatter-only write (content === undefined) OR a test fixture
617
+ // running without a coordinator. Both go through the simple path:
618
+ // direct disk write + commit, no lock, no broadcast.
619
+ //
620
+ // baseRevision is meaningless without a body change; coordinator-less
621
+ // setups exist solely for tests that don't exercise the autosave 412
622
+ // contract.
606
623
  if (baseRevision !== undefined && content !== undefined) {
607
624
  const currentBody = this.markdownService.parseFile(entityPath).content;
608
625
  const currentHash = sha256OfBody(currentBody);
@@ -615,17 +632,6 @@ export class BaseGraphManager {
615
632
  content: mergedContent,
616
633
  wikilinks: this.markdownService.extractWikilinks(mergedContent, validatedData),
617
634
  });
618
- // Fire onBodyWritten on every body write. Wired to
619
- // yjsManager.recordDiskBody so the live entry.mdRevisionHash tracks
620
- // disk state.
621
- if (content !== undefined && this.mutationCallbacks?.onBodyWritten) {
622
- try {
623
- this.mutationCallbacks.onBodyWritten(this.repoName, entityType, entityId, mergedContent);
624
- }
625
- catch (err) {
626
- console.warn(`[graph] onBodyWritten callback failed for ${entityType}/${entityId}:`, err);
627
- }
628
- }
629
635
  if (this.gitService && !skipCommit) {
630
636
  const transaction = this.gitService.createTransaction();
631
637
  transaction.add({
@@ -639,44 +645,9 @@ export class BaseGraphManager {
639
645
  await transaction.commit(user ?? this.gitUser, message);
640
646
  }
641
647
  catch (err) {
642
- // Phase 2h: disk write already landed; commit failed. Register
643
- // the dirty file with sessionManager (if wired) so the existing
644
- // dirty-flush retry has a chance to recover. Then surface a
645
- // typed error so the caller knows the repo is dirty.
646
- try {
647
- this.mutationCallbacks?.onCommitFailedDirty?.(this.repoName, entityType, entityId, entityPath, user ?? this.gitUser);
648
- }
649
- catch (registerErr) {
650
- console.warn(`[graph] onCommitFailedDirty callback failed for ${entityType}/${entityId}:`, registerErr);
651
- }
652
648
  throw new CommitFailedDirtyError(entityType, entityId, entityPath, err);
653
649
  }
654
650
  }
655
- // Server-write body updates apply to the Y.Doc AFTER commit succeeds.
656
- // Live clients only see the change once it's durable on disk + in git.
657
- // Returns 'no-doc' or 'unseeded' when there's no live editor — caller's
658
- // disk write is the only side effect, which is correct.
659
- // Autosave does NOT re-apply: its content originated in the live Y.Doc,
660
- // and re-applying would race in-flight keystrokes typed during the
661
- // PUT round-trip.
662
- if (source === 'server-write' && content !== undefined && this.mutationCallbacks?.applyAgentContent) {
663
- try {
664
- this.mutationCallbacks.applyAgentContent(this.repoName, entityType, entityId, mergedContent);
665
- }
666
- catch (err) {
667
- // applyAgentContent already sent a doc_conflict frame to clients.
668
- // Log but do not rethrow — disk + git are authoritative; surfacing
669
- // the error to the caller would suggest the write failed when in
670
- // fact it succeeded; the Y.Doc just couldn't broadcast.
671
- console.warn(`[graph] applyAgentContent failed post-commit for ${entityType}/${entityId} — clients notified via doc_conflict`, err);
672
- }
673
- }
674
- };
675
- if (needsDocLock) {
676
- await this.mutationCallbacks.withDocLock(this.repoName, entityType, entityId, criticalSection);
677
- }
678
- else {
679
- await criticalSection();
680
651
  }
681
652
  // The on-disk frontmatter has changed, so the parsed-EntityFile cache
682
653
  // that list() serves from is stale until invalidated. Without this, the
@@ -866,9 +837,9 @@ export class BaseGraphManager {
866
837
  // delete callback fired async, it could race the new entity's snapshot and
867
838
  // unlink it after creation. Failures are logged but don't throw — orphaned
868
839
  // snapshot files are a leak, not a correctness issue.
869
- if (this.mutationCallbacks?.onDelete) {
840
+ if (this.persistenceCallbacks?.onDelete) {
870
841
  try {
871
- await this.mutationCallbacks.onDelete(this.repoName, entityType, entityId);
842
+ await this.persistenceCallbacks.onDelete(this.repoName, entityType, entityId);
872
843
  }
873
844
  catch (err) {
874
845
  console.warn(`[graph] onDelete callback failed for ${entityType}/${entityId}:`, err);
@@ -913,9 +884,9 @@ export class BaseGraphManager {
913
884
  // Notify Yjs persistence to rename the snapshot file alongside. Awaited
914
885
  // because rename oldId→newId followed by creating a new entity at oldId
915
886
  // would otherwise let the async rename clobber the new oldId snapshot.
916
- if (this.mutationCallbacks?.onRename) {
887
+ if (this.persistenceCallbacks?.onRename) {
917
888
  try {
918
- await this.mutationCallbacks.onRename(this.repoName, entityType, oldId, newId);
889
+ await this.persistenceCallbacks.onRename(this.repoName, entityType, oldId, newId);
919
890
  }
920
891
  catch (err) {
921
892
  console.warn(`[graph] onRename callback failed for ${entityType}/${oldId}→${newId}:`, err);
@@ -1016,9 +987,9 @@ export class BaseGraphManager {
1016
987
  // the new one (the docName changes, so the snapshot path changes). Awaited
1017
988
  // for the same reason as rename — preserves ordering when types are
1018
989
  // changed back and forth quickly.
1019
- if (this.mutationCallbacks?.onChangeType) {
990
+ if (this.persistenceCallbacks?.onChangeType) {
1020
991
  try {
1021
- await this.mutationCallbacks.onChangeType(this.repoName, entityId, fromType, toType);
992
+ await this.persistenceCallbacks.onChangeType(this.repoName, entityId, fromType, toType);
1022
993
  }
1023
994
  catch (err) {
1024
995
  console.warn(`[graph] onChangeType callback failed for ${entityId} (${fromType}→${toType}):`, err);