studiograph 1.3.48-next.145 → 1.3.48-next.147

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 (54) hide show
  1. package/dist/core/graph.d.ts +5 -2
  2. package/dist/core/graph.js +42 -13
  3. package/dist/core/graph.js.map +1 -1
  4. package/dist/mcp/tools.js +198 -7
  5. package/dist/mcp/tools.js.map +1 -1
  6. package/dist/server/routes/graph-api.js +32 -22
  7. package/dist/server/routes/graph-api.js.map +1 -1
  8. package/dist/web/_app/immutable/chunks/{IhKFXTqv2.js → 1ow6NjVe2.js} +1 -1
  9. package/dist/web/_app/immutable/chunks/{CjevW2Qq2.js → B984tsZA2.js} +1 -1
  10. package/dist/web/_app/immutable/chunks/{BuBxqVY0.js → BBAkaKIs.js} +1 -1
  11. package/dist/web/_app/immutable/chunks/{CH_BEJSU.js → BhPT_DrW.js} +1 -1
  12. package/dist/web/_app/immutable/chunks/{-i3atkp1.js → BptrpK7M.js} +1 -1
  13. package/dist/web/_app/immutable/chunks/{DoUuLNEC2.js → Bs_EeCMu2.js} +1 -1
  14. package/dist/web/_app/immutable/chunks/{B4LMKXzG2.js → BzFgXoNQ2.js} +1 -1
  15. package/dist/web/_app/immutable/chunks/{BlKNC_CG.js → C3SYwzjm.js} +1 -1
  16. package/dist/web/_app/immutable/chunks/{BhhY2h8M2.js → C806FKJ_2.js} +2 -2
  17. package/dist/web/_app/immutable/chunks/{Czpc3pHR.js → CAtYAdlS.js} +1 -1
  18. package/dist/web/_app/immutable/chunks/{DPRbQVbX2.js → CEXp1e6I2.js} +1 -1
  19. package/dist/web/_app/immutable/chunks/{eVq8Dieq.js → CGqcAagH.js} +1 -1
  20. package/dist/web/_app/immutable/chunks/{BRP4IHXa.js → CMOZvBaO.js} +1 -1
  21. package/dist/web/_app/immutable/chunks/{BxRTHrWU2.js → CV_SCu7K2.js} +1 -1
  22. package/dist/web/_app/immutable/chunks/{C6uSb-OZ.js → CYzMXeJc.js} +1 -1
  23. package/dist/web/_app/immutable/chunks/{da3Uw2WQ2.js → CdtY2xy32.js} +1 -1
  24. package/dist/web/_app/immutable/chunks/CgzDINMO.js +1 -0
  25. package/dist/web/_app/immutable/chunks/{CF70cvY5.js → CqfRErQ_.js} +1 -1
  26. package/dist/web/_app/immutable/chunks/{PArpKIbY.js → D0vXdcjv.js} +1 -1
  27. package/dist/web/_app/immutable/chunks/{DhDmlwMu2.js → DFN9WeIZ2.js} +1 -1
  28. package/dist/web/_app/immutable/chunks/{CHQKe2_W.js → DLzU5KMz.js} +1 -1
  29. package/dist/web/_app/immutable/chunks/{BzkuzYKJ.js → DdxeoCqB.js} +1 -1
  30. package/dist/web/_app/immutable/chunks/{7hkZ9OE8.js → DgAGYkR7.js} +1 -1
  31. package/dist/web/_app/immutable/chunks/{DcoJMw4J.js → MyP-Fy8f.js} +1 -1
  32. package/dist/web/_app/immutable/chunks/{zKZ_AnTh2.js → mB1bI1zb2.js} +1 -1
  33. package/dist/web/_app/immutable/chunks/{CkVu4Lc0.js → rcgf8DL-.js} +3 -3
  34. package/dist/web/_app/immutable/entry/{app.OmY159L4.js → app.DRL2y_Yh.js} +2 -2
  35. package/dist/web/_app/immutable/entry/start.BgT9j-t_.js +1 -0
  36. package/dist/web/_app/immutable/nodes/{0.DJkEJS05.js → 0.zK2C0X4Z.js} +2 -2
  37. package/dist/web/_app/immutable/nodes/{1.CMTHIX32.js → 1.B7q4Spfr.js} +1 -1
  38. package/dist/web/_app/immutable/nodes/{10.CfVVupgW.js → 10.Gptf67mh.js} +1 -1
  39. package/dist/web/_app/immutable/nodes/{11.DtBtzKlE.js → 11.BPf9A3F9.js} +1 -1
  40. package/dist/web/_app/immutable/nodes/{12.D7wYv1Ft.js → 12.iT7bzfQ1.js} +1 -1
  41. package/dist/web/_app/immutable/nodes/{13.BdHxji06.js → 13.BUNp-JQT.js} +1 -1
  42. package/dist/web/_app/immutable/nodes/{2.CuavLx3e.js → 2.BZnfR8b3.js} +4 -4
  43. package/dist/web/_app/immutable/nodes/{3.XttmvSVo.js → 3.DmGM2lWv.js} +1 -1
  44. package/dist/web/_app/immutable/nodes/{4.BcZHPVn8.js → 4.lTVzMTvk.js} +2 -2
  45. package/dist/web/_app/immutable/nodes/{5.OZrFtaeI.js → 5.C-Sk3n2I.js} +1 -1
  46. package/dist/web/_app/immutable/nodes/{6.C1sDe_hb.js → 6.ezZ3uiT_.js} +1 -1
  47. package/dist/web/_app/immutable/nodes/{7.DxZvsXL3.js → 7.B1L9Uav_.js} +1 -1
  48. package/dist/web/_app/immutable/nodes/{8.giCNe9Sc.js → 8.DXMl8_5R.js} +1 -1
  49. package/dist/web/_app/immutable/nodes/{9.Dl9cHLds.js → 9.CuvOpBZ5.js} +1 -1
  50. package/dist/web/_app/version.json +1 -1
  51. package/dist/web/index.html +12 -12
  52. package/package.json +1 -1
  53. package/dist/web/_app/immutable/chunks/D22kxnns.js +0 -1
  54. package/dist/web/_app/immutable/entry/start.DznfUinL.js +0 -1
package/dist/mcp/tools.js CHANGED
@@ -38,6 +38,87 @@ function shape(id, entityType, data, extra) {
38
38
  const { id: _id, entity_type: _et, ...rest } = data;
39
39
  return { id, type: entityType, ...rest, ...extra };
40
40
  }
41
+ /**
42
+ * Default subfolders for entity types when the caller omits `folder_path`.
43
+ * Existing entries with no folder live at the repo root; new entries of these
44
+ * types route into a typed subfolder so the repo stays organised by default.
45
+ * An explicit `folder_path: ""` (or any explicit value) overrides this map.
46
+ */
47
+ const DEFAULT_FOLDER_BY_TYPE = {
48
+ person: 'People',
49
+ organization: 'Organizations',
50
+ };
51
+ /** Convert an absolute entity path to a repo-relative POSIX path. */
52
+ function relPathOf(absPath, repoRoot) {
53
+ return absPath.startsWith(repoRoot + '/') ? absPath.slice(repoRoot.length + 1) : absPath;
54
+ }
55
+ /**
56
+ * Build the git-author / audit-trail identity for an MCP session. `handle`
57
+ * is the canonical id stamped into `created_by` / `updated_by` and used as
58
+ * the git author; falls back gracefully if a token from before the handle
59
+ * backfill is still in use.
60
+ */
61
+ function buildActor(user) {
62
+ const handle = user.handle || `user-${user.id}`;
63
+ return {
64
+ id: handle,
65
+ name: user.displayName || handle,
66
+ email: `${handle}@studiograph.local`,
67
+ };
68
+ }
69
+ /**
70
+ * EntityBaseSchema requires entity_id, created_at, updated_at, created_by,
71
+ * and updated_by. External MCP clients (Claude Desktop, Cursor, etc.)
72
+ * typically pass only type-specific data plus the top-level entity_id arg,
73
+ * so the connector seeds the rest rather than forcing every caller to know
74
+ * the convention. Caller-supplied values for created_at / created_by / etc.
75
+ * win; entity_id is always overwritten to match the top-level arg (it's
76
+ * the lookup key and cannot diverge from the filename).
77
+ */
78
+ function stampCreateBaseFields(data, entityId, actorHandle) {
79
+ const now = new Date().toISOString();
80
+ return {
81
+ created_at: now,
82
+ updated_at: now,
83
+ created_by: actorHandle,
84
+ updated_by: actorHandle,
85
+ ...data,
86
+ entity_id: entityId,
87
+ };
88
+ }
89
+ /**
90
+ * Person.status accepts only `current` | `former` per PersonSchema, but
91
+ * real-world payloads from external agents carry many synonyms. Map them
92
+ * to canonical before validation rejects the call. Unknown values fall
93
+ * through unchanged so validation surfaces them loudly.
94
+ *
95
+ * On create: defaults missing status to `current`.
96
+ * On update: only normalizes when status is supplied — don't fabricate a
97
+ * field the caller didn't ask to change.
98
+ */
99
+ const PERSON_STATUS_ALIASES = {
100
+ current: 'current',
101
+ active: 'current',
102
+ prospective: 'current',
103
+ 'prospective-contact': 'current',
104
+ 'current-contact': 'current',
105
+ former: 'former',
106
+ 'former-contact': 'former',
107
+ inactive: 'former',
108
+ past: 'former',
109
+ };
110
+ function normalizePersonStatus(data, isCreate) {
111
+ const raw = data.status;
112
+ if (raw === undefined || raw === null || raw === '') {
113
+ return isCreate ? { ...data, status: 'current' } : data;
114
+ }
115
+ if (typeof raw !== 'string')
116
+ return data;
117
+ const mapped = PERSON_STATUS_ALIASES[raw.toLowerCase()];
118
+ if (!mapped || mapped === raw)
119
+ return data;
120
+ return { ...data, status: mapped };
121
+ }
41
122
  // ── tool registration ─────────────────────────────────────────────────────────
42
123
  export function registerTools(server, wm, authService, ctx) {
43
124
  const { user, wsHub, apiTokenName, commentService } = ctx;
@@ -235,11 +316,27 @@ export function registerTools(server, wm, authService, ctx) {
235
316
  repo: z.string().describe('Folder name'),
236
317
  entity_type: createEntityTypeSchema.describe(`Entity type. Allowed: ${mcpAllowedCreateTypes.join(', ')}.`),
237
318
  entity_id: z.string().describe('Entity ID (kebab-case slug)'),
238
- data: z.record(z.string(), z.unknown()).describe('Frontmatter fields as a JSON object'),
319
+ data: z.record(z.string(), z.unknown()).describe('Type-specific frontmatter fields (e.g. for person: name, email, organization, role). ' +
320
+ 'Base fields (entity_id, entity_type, created_at, updated_at, created_by, updated_by) ' +
321
+ 'are stamped automatically — do not include them.'),
239
322
  content: z.string().optional().describe('Markdown body content'),
323
+ folder_path: z.string().optional().describe('Repo-relative subfolder to place the entry in (e.g. "People", "clients/acme"). ' +
324
+ 'Omit to use the per-type default (person → People, organization → Organizations); ' +
325
+ 'pass an empty string to force the repo root. Parent folders are auto-created.'),
240
326
  });
241
- server.registerTool('create_entity', { description: 'Create a new entity in a folder. Commits to git automatically.', inputSchema: createSchema }, async (args) => {
242
- const { repo, entity_type, entity_id, data, content } = createSchema.parse(args);
327
+ server.registerTool('create_entity', {
328
+ description: 'Create a new entity in a folder. Commits to git automatically. ' +
329
+ 'Base frontmatter (entity_id, created_at, updated_at, created_by, updated_by) is ' +
330
+ 'stamped automatically — `data` should only carry type-specific fields. ' +
331
+ 'For person entries, `status` accepts synonyms (active/prospective/inactive/past/etc.) ' +
332
+ 'and normalizes to `current` | `former`; defaults to `current` when omitted. ' +
333
+ 'Without `folder_path`, person entries route to People/ and organization entries to Organizations/; ' +
334
+ 'other types land at the repo root. Pass `folder_path: ""` to force the repo root, ' +
335
+ 'or any subfolder string (e.g. "Clients/Acme") to place it explicitly. ' +
336
+ 'Response includes the final repo-relative `path`.',
337
+ inputSchema: createSchema,
338
+ }, async (args) => {
339
+ const { repo, entity_type, entity_id, data, content, folder_path } = createSchema.parse(args);
243
340
  if (!hasRepoAccess(user, repo, wm, authService))
244
341
  return notFound(repo);
245
342
  if (!canWriteRepo(user, repo, wm, authService)) {
@@ -257,16 +354,40 @@ export function registerTools(server, wm, authService, ctx) {
257
354
  : ` Allowed: ${mcpAllowedCreateTypes.join(', ')}.`;
258
355
  return fail(new Error(`Entity type "${entity_type}" is not a known canonical or workspace custom type.${hint}`));
259
356
  }
357
+ // Explicit folder_path (including "") wins; otherwise apply the per-type
358
+ // default so the agent doesn't have to know the workspace convention.
359
+ const effectiveFolder = folder_path !== undefined
360
+ ? folder_path
361
+ : (DEFAULT_FOLDER_BY_TYPE[entity_type] ?? '');
362
+ const actor = buildActor(user);
363
+ // Stamp base fields (entity_id / created_at / updated_at / created_by /
364
+ // updated_by) so external MCP clients don't have to know the schema's
365
+ // required-frontmatter contract. Then normalize person status synonyms
366
+ // and default missing status to 'current' on create.
367
+ let payload = stampCreateBaseFields(data, entity_id, actor.id);
368
+ if (entity_type === 'person') {
369
+ payload = normalizePersonStatus(payload, true);
370
+ }
260
371
  return withAgentActivity(repo, 'creating', async () => {
261
372
  try {
262
- const entity = await wm.getGraph(repo).create({
373
+ const graph = wm.getGraph(repo);
374
+ const entity = await graph.create({
263
375
  entityType: entity_type,
264
376
  entityId: entity_id,
265
- data: data,
377
+ data: payload,
266
378
  content,
379
+ folderPath: effectiveFolder || undefined,
380
+ user: actor,
267
381
  });
268
382
  emitEntityChange('created', repo, entity.entityType, entity.id);
269
- return ok({ success: true, id: entity.id, type: entity.entityType });
383
+ return ok({
384
+ success: true,
385
+ id: entity.id,
386
+ type: entity.entityType,
387
+ repo,
388
+ path: relPathOf(entity.path, graph.getRepoPath()),
389
+ folder_path: entity.folder_path,
390
+ });
270
391
  }
271
392
  catch (err) {
272
393
  return fail(err);
@@ -330,6 +451,9 @@ export function registerTools(server, wm, authService, ctx) {
330
451
  }
331
452
  server.registerTool('update_entity', {
332
453
  description: 'Update an existing entity. Data fields are merged with existing frontmatter; content replaces the markdown body. ' +
454
+ 'Callers do not need to resend immutable base fields (entity_id, created_at, created_by) — they are preserved from disk. ' +
455
+ '`updated_at` and `updated_by` are stamped automatically. ' +
456
+ 'For person entries, `status` synonyms are normalized to `current` | `former` when supplied. ' +
333
457
  'Returns the post-write entity snapshot plus diagnostic flags (frontmatter_changed, content_changed, noop, commit) ' +
334
458
  'so the caller can verify the change landed without a separate get_entity call.',
335
459
  inputSchema: updateSchema,
@@ -343,6 +467,19 @@ export function registerTools(server, wm, authService, ctx) {
343
467
  if (data === undefined && content === undefined) {
344
468
  return fail(new Error('update_entity requires at least one of `data` or `content`'));
345
469
  }
470
+ const actor = buildActor(user);
471
+ // Defensive: if data is supplied, ensure entity_id matches the top-level
472
+ // arg (overwriting any caller-sent value that disagrees with the
473
+ // filename) and normalize person status synonyms when present. graph.update
474
+ // handles created_by / created_at preservation and updated_at / updated_by
475
+ // stamping itself via the merge with existing.data.
476
+ let mergedData;
477
+ if (data !== undefined) {
478
+ mergedData = { ...data, entity_id };
479
+ if (entity_type === 'person') {
480
+ mergedData = normalizePersonStatus(mergedData, false);
481
+ }
482
+ }
346
483
  return withAgentActivity(repo, 'editing', async () => {
347
484
  try {
348
485
  const graph = wm.getGraph(repo);
@@ -367,12 +504,13 @@ export function registerTools(server, wm, authService, ctx) {
367
504
  const entity = await graph.update({
368
505
  entityType: entity_type,
369
506
  entityId: entity_id,
370
- data: data,
507
+ data: mergedData,
371
508
  content,
372
509
  source: content !== undefined
373
510
  ? (yjsAwareEnabled ? 'server-yjs-aware' : 'legacy-direct')
374
511
  : undefined,
375
512
  yjsAware: yjsAwareEnabled && content !== undefined,
513
+ user: actor,
376
514
  });
377
515
  const afterFrontmatter = semanticFrontmatter(entity.data);
378
516
  const afterContent = entity.document.content;
@@ -437,6 +575,59 @@ export function registerTools(server, wm, authService, ctx) {
437
575
  }
438
576
  });
439
577
  });
578
+ // ── move_entity ───────────────────────────────────────────────────────────
579
+ //
580
+ // Relocate an entity to a different folder within the same repo. Wraps
581
+ // graph.move() which renames the file on disk and commits the rename so
582
+ // git's similarity detection preserves history. The (type, id) identity
583
+ // is unchanged — get_entity, search, list, validate_wikilinks, and the
584
+ // history tools all walk the entire repo tree and continue to find the
585
+ // entry at its new path. For cross-repo transfers, the web UI's bulk-move
586
+ // dialog or POST /api/repos/:repo/transfer is the right surface.
587
+ const moveEntitySchema = z.object({
588
+ repo: z.string().describe('Folder name containing the entry'),
589
+ entity_type: z.string().describe('Entity type'),
590
+ entity_id: z.string().describe('Entity ID'),
591
+ folder_path: z.string().describe('Target repo-relative folder path (e.g. "People", "Clients/Acme"). ' +
592
+ 'Empty string moves the entry to the repo root. Parent folders are auto-created.'),
593
+ overwrite: z.boolean().optional().describe('When true, replace an existing entry at the destination. The occupant ' +
594
+ 'must itself be a parseable entity — README/.gitkeep/etc. are never ' +
595
+ 'clobbered. Defaults to false; the call errors with "Path already ' +
596
+ 'occupied" when the destination is taken.'),
597
+ });
598
+ server.registerTool('move_entity', {
599
+ description: 'Move an existing entry to a different folder within the same folder/repo. ' +
600
+ 'Preserves frontmatter, markdown content, entity ID, and git history (file is renamed, not rewritten). ' +
601
+ 'Use this to organise entries into subfolders after creation — e.g. moving a person into People/. ' +
602
+ 'By default, errors if the destination already has an entry; pass `overwrite: true` to replace.',
603
+ inputSchema: moveEntitySchema,
604
+ }, async (args) => {
605
+ const { repo, entity_type, entity_id, folder_path, overwrite } = moveEntitySchema.parse(args);
606
+ if (!hasRepoAccess(user, repo, wm, authService))
607
+ return notFound(repo);
608
+ if (!canWriteRepo(user, repo, wm, authService)) {
609
+ return fail(new Error(`You do not have write access to folder "${repo}"`));
610
+ }
611
+ const actor = buildActor(user);
612
+ return withAgentActivity(repo, 'editing', async () => {
613
+ try {
614
+ const graph = wm.getGraph(repo);
615
+ const moved = await graph.move(entity_type, entity_id, folder_path, undefined, actor, overwrite);
616
+ emitEntityChange('updated', repo, moved.entityType, moved.id);
617
+ return ok({
618
+ success: true,
619
+ id: moved.id,
620
+ type: moved.entityType,
621
+ repo,
622
+ path: relPathOf(moved.path, graph.getRepoPath()),
623
+ folder_path: moved.folder_path,
624
+ });
625
+ }
626
+ catch (err) {
627
+ return fail(err);
628
+ }
629
+ });
630
+ });
440
631
  // ── validate_wikilinks ────────────────────────────────────────────────────
441
632
  const validateWikilinksSchema = z.object({
442
633
  repo: z.string().describe('Folder name'),
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,8 @@ import { WorkspaceAccessService } from '../../services/workspace-access.js';
10
10
  import { Workspace } from '../../core/workspace.js';
11
11
  import { createSharedFolder, FolderCreationError } from '../../services/folder-creation.js';
12
12
  import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'fs';
13
- import { createHash } from 'node:crypto';
14
13
  import { dirname, join } from 'path';
14
+ import { StaleBaseRevisionError } from '../../core/graph.js';
15
15
  import { checkEagerSkillPermission, filterWikilinks, getAccessibleEntityIds, getAccessibleRepos, graphForAdmin as resolveGraphForAdmin, graphForRead as resolveGraphForRead, graphForWrite as resolveGraphForWrite, isFolderAdminOrOwner, reqGitUser, reqUser, } from './graph-api-access.js';
16
16
  import { BridgeError, assertCanChangeUserHandle, validateUserHandleInPayload } from '../../services/user-person-bridge.js';
17
17
  import { log } from '../../utils/log.js';
@@ -584,29 +584,21 @@ export async function registerGraphApiRoutes(fastify, workspaceManager, authServ
584
584
  if (eagerError)
585
585
  return reply.status(403).send({ error: eagerError });
586
586
  try {
587
- // Optimistic concurrency. Phase 3 prefers exact body-hash precondition
588
- // via `X-Studiograph-Base-Body-Hash` (sha256 hex of the body the
589
- // client last loaded) HTTP-date `If-Unmodified-Since` is RFC-7231
590
- // second-precision and aliases sub-millisecond writes. Falls back to
591
- // the legacy header when the new one is absent so non-web clients
592
- // keep working.
587
+ // Optimistic concurrency. Two preconditions:
588
+ // - `X-Studiograph-Base-Body-Hash` (Phase 3a): sha256 hex of the
589
+ // body the client last loaded. Enforced INSIDE the per-doc lock
590
+ // by graph.update via `baseRevision`, so it composes with
591
+ // serialization two body-writing PUTs from the same baseline
592
+ // can't both pass and back-stomp each other.
593
+ // - `If-Unmodified-Since` (legacy): kept for non-web clients;
594
+ // RFC-7231 second-precision so aliases sub-millisecond writes,
595
+ // which is why the body-hash form is preferred.
596
+ // Body-hash header is IGNORED on metadata-only PUTs — a stale body
597
+ // baseline is irrelevant when the PUT doesn't touch the body, and
598
+ // enforcing it would cause spurious 412s after an agent body-write.
593
599
  const baseBodyHash = req.headers['x-studiograph-base-body-hash'];
594
600
  const ifUnmodifiedSince = req.headers['if-unmodified-since'];
595
- if (baseBodyHash) {
596
- const current = graph.get(type, id);
597
- const currentBodyHash = createHash('sha256')
598
- .update(current?.document?.content ?? '', 'utf-8')
599
- .digest('hex');
600
- if (currentBodyHash !== baseBodyHash) {
601
- return reply.status(412).send({
602
- error: 'Precondition Failed: body was modified',
603
- code: 'STALE_BODY_HASH',
604
- currentBodyHash,
605
- entity: current,
606
- });
607
- }
608
- }
609
- else if (ifUnmodifiedSince) {
601
+ if (ifUnmodifiedSince && !baseBodyHash) {
610
602
  const current = graph.get(type, id);
611
603
  const entityUpdatedAt = current?.data?.updated_at;
612
604
  if (entityUpdatedAt && new Date(entityUpdatedAt) > new Date(ifUnmodifiedSince)) {
@@ -654,6 +646,11 @@ export async function registerGraphApiRoutes(fastify, workspaceManager, authServ
654
646
  // and the Y.Doc picks up their writes.
655
647
  skipYjsSync: true,
656
648
  source: 'autosave',
649
+ // Forward the body-hash precondition into graph.update so the
650
+ // check runs INSIDE the per-doc lock — see Phase 3 P1 fix.
651
+ // Only meaningful for body writes; ignored when content is
652
+ // undefined (graph.update gates on content !== undefined too).
653
+ baseRevision: req.body.content !== undefined ? baseBodyHash : undefined,
657
654
  });
658
655
  if (sessionManager && gitUser) {
659
656
  sessionManager.markDirty(repo, gitUser, type, id, updated.path);
@@ -666,6 +663,19 @@ export async function registerGraphApiRoutes(fastify, workspaceManager, authServ
666
663
  return reply.send(updated);
667
664
  }
668
665
  catch (err) {
666
+ // Translate the locked-section baseRevision mismatch into the
667
+ // same 412 shape the route used to emit pre-lock. Preserves the
668
+ // client-side contract (code: STALE_BODY_HASH + currentBodyHash
669
+ // + entity).
670
+ if (err instanceof StaleBaseRevisionError) {
671
+ const current = graph.get(type, id);
672
+ return reply.status(412).send({
673
+ error: 'Precondition Failed: body was modified',
674
+ code: 'STALE_BODY_HASH',
675
+ currentBodyHash: err.actual,
676
+ entity: current,
677
+ });
678
+ }
669
679
  return reply.status(400).send({ error: err.message });
670
680
  }
671
681
  });