understanding-graph 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -175,7 +175,7 @@ Isolated graphs for different contexts. Each project has its own SQLite database
175
175
  ### Batch Operations
176
176
  | Tool | Purpose |
177
177
  |------|---------|
178
- | `graph_batch` | Execute multiple operations sequentially in one call, with a required commit message. Stops on first error by default; operations executed before the error are persisted (not transactional). |
178
+ | `graph_batch` | Execute multiple operations as an **atomic commit** with a required `commit_message`. Wrapped in a SQLite transaction: if any operation fails, the entire batch is rolled back. The `commit_message` is preserved as the node's *Origin Story* — future agents reading those nodes see not just the content but the intent that created it. |
179
179
 
180
180
  ### Concept & Node Management
181
181
  | Tool | Purpose |
package/bin/cli.js CHANGED
@@ -220,7 +220,7 @@ Start each session with these three calls:
220
220
 
221
221
  ## Rules
222
222
 
223
- - **All mutations go through \`graph_batch\`** with a \`commit_message\` explaining intent. graph_batch runs operations sequentially and stops on the first error; operations executed before an error are persisted (it is *not* a transaction). Make commits small and focused so partial failure is recoverable.
223
+ - **All mutations go through \`graph_batch\`** with a \`commit_message\` explaining intent. graph_batch is an **atomic commit**: if any operation in the batch fails, the entire batch is rolled back as if it never ran — the graph stays in exactly the state it was in before. The \`commit_message\` is preserved as each node's *Origin Story* so future agents see the intent that created it, not just the result.
224
224
  - **Include your name** in commit messages (e.g., "Backend Agent: mapped auth flow") so teammates can follow your reasoning trail.
225
225
  - **Check before creating** — call \`graph_semantic_search\` first to avoid creating duplicates of existing concepts.
226
226
  - **Never delete, only supersede** — use \`graph_supersede\` when understanding evolves. The old node stays in history.
@@ -288,6 +288,6 @@ For tasks that span multiple sessions or need async handoff between specialist a
288
288
  - \`solver_delegate\` — post a task to the queue
289
289
  - \`solver_claim_task\` — pick up pending work
290
290
  - \`solver_complete_task\` — submit results
291
- - \`solver_lock\` / \`solver_unlock\` — *advisory* (cooperative) lock on resources. NOT a mutex: nothing in the mutation path enforces it. Use only when cooperating agents agree to honor the lock.
291
+ - \`solver_lock\` / \`solver_unlock\` — cooperative *subtree-partition* locks for parallel cognition. Use \`scope: "subtree"\` to claim an entire branch (e.g. one agent locks the "Economics" subtree, another locks "Ethics", and they refactor in parallel without colliding). Storage-layer advisory: cooperating agents check before mutating; the mutation path does not enforce the lock against an adversary.
292
292
  `;
293
293
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@understanding-graph/core",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Core business logic for understanding graph",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1 +1 @@
1
- {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/tools/batch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAM/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAiC5D,eAAO,MAAM,UAAU,EAAE,IAAI,EA4E5B,CAAC;AAkTF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC,CAyZlB"}
1
+ {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/tools/batch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAO/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AA6C5D,eAAO,MAAM,UAAU,EAAE,IAAI,EAsF5B,CAAC;AAkTF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC,CA8blB"}
@@ -1,6 +1,19 @@
1
1
  import path from 'node:path';
2
- import { createCommit, createDocumentWriter, getGraphStore, } from '@understanding-graph/core';
2
+ import { createCommit, createDocumentWriter, getGraphStore, sqlite, } from '@understanding-graph/core';
3
3
  import { handleToolCall } from './index.js';
4
+ // Sentinel error class used by handleBatchTools to bubble an
5
+ // "intentional early return with payload" out of a transactional block
6
+ // and force the surrounding catch handler to ROLLBACK before returning
7
+ // the carried payload. We can't `return` directly from inside the
8
+ // transaction without also calling COMMIT, so we throw and recover.
9
+ class BatchEarlyExit extends Error {
10
+ payload;
11
+ constructor(payload) {
12
+ super('__batch_early_exit__');
13
+ this.payload = payload;
14
+ this.name = 'BatchEarlyExit';
15
+ }
16
+ }
4
17
  // Tools that create nodes and need immediate embedding generation
5
18
  const NODE_CREATING_TOOLS = [
6
19
  'graph_add_concept',
@@ -21,13 +34,23 @@ const DOC_MUTATION_TOOLS = [
21
34
  export const batchTools = [
22
35
  {
23
36
  name: 'graph_batch',
24
- description: `Execute multiple graph operations in a single call.
37
+ description: `Execute multiple graph operations as an ATOMIC COMMIT.
38
+
39
+ The entire batch is wrapped in a SQLite transaction. If any operation
40
+ fails, the entire batch is rolled back as if it never ran — there is no
41
+ half-state to clean up. This is the system's "Atomic Commit" primitive
42
+ from the paper: it lets you branch and revert cognitive states cleanly.
43
+
44
+ The required commit_message becomes the Origin Story attached to every
45
+ node and edge created in the batch. Future agents reading those nodes see
46
+ the intent that created them, not just the content. The commit stream is
47
+ the metacognitive log of how the graph evolved.
25
48
 
26
49
  Use for:
27
50
  - Document splitting (create children + clear parent)
28
51
  - Creating hierarchies (root + multiple children)
29
52
  - Bulk concept/connection creation
30
- - Any multi-step modifications
53
+ - Any multi-step modification that should land all-or-nothing
31
54
 
32
55
  EDGE QUALITY REMINDER: When using graph_connect, edges should aid cognition — help future agents think better. Don't create edges for bureaucracy or "completeness". Each edge should answer: "When reasoning about X, why should I consider Y?"
33
56
 
@@ -452,135 +475,238 @@ export async function handleBatchTools(name, args, contextManager) {
452
475
  return false;
453
476
  }
454
477
  })();
455
- for (let i = 0; i < operations.length; i++) {
456
- const op = operations[i];
457
- try {
458
- // Resolve any variable references in params
459
- const resolvedParams = resolveReferences(op.params, results);
460
- // Pre-execution check: doc_create with parentId but no afterId
461
- if (op.tool === 'doc_create' &&
462
- resolvedParams.parentId &&
463
- !resolvedParams.afterId &&
464
- !allowUnorderedDocs) {
465
- const store = getGraphStore();
466
- const parentId = resolvedParams.parentId;
467
- const existingSiblings = store.getChildren(parentId);
468
- if (existingSiblings.length > 0) {
469
- const siblingNames = existingSiblings.map((s) => s.title).join(', ');
470
- throw new Error(`doc_create requires afterId when parent already has children. ` +
471
- `Parent "${parentId}" has siblings: [${siblingNames}]. ` +
472
- `Use afterId to specify position, or set allowUnorderedDocs: true to allow arbitrary ordering.`);
478
+ // Hoisted out of the try block below so the post-commit return statement
479
+ // can read them. `commit` is set inside the transaction, `hasErrors` is
480
+ // computed after the loop but still inside the transactional section.
481
+ let commit;
482
+ let hasErrors = false;
483
+ // ATOMICITY: wrap the entire batch in a SQLite transaction so that a
484
+ // mid-batch failure (op N throws, an orphan is detected, etc.) leaves
485
+ // the graph in EXACTLY the state it was in before the batch ran.
486
+ //
487
+ // The paper's "Atomic Commits" framing makes this load-bearing — agents
488
+ // need to be able to revert a failed reasoning step cleanly. The earlier
489
+ // version had no transaction wrapping; ops 1..N-1 were persisted when op
490
+ // N failed, and the manual cleanup only handled the special case of
491
+ // "orphaned concept nodes". Connected nodes from prior ops survived
492
+ // failures, so a half-finished commit could land in the graph.
493
+ //
494
+ // Implementation notes:
495
+ // * better-sqlite3's `db.transaction(fn)` requires fn to be sync.
496
+ // Our batch loop awaits the embedding service, so we use manual
497
+ // BEGIN/COMMIT/ROLLBACK instead. This is safe because the MCP server
498
+ // handles requests serially against a single per-project connection.
499
+ // * Early-return cases (mid-loop error with stopOnError, orphan-sweep
500
+ // failure) are signalled via the BatchEarlyExit sentinel so the
501
+ // catch block can ROLLBACK before returning the payload.
502
+ // * Doc auto-regeneration writes files (not the DB), so it happens
503
+ // AFTER commit. Score-hint computation is read-only, also after.
504
+ const txnDb = sqlite.getDb();
505
+ txnDb.exec('BEGIN');
506
+ let txnCommitted = false;
507
+ try {
508
+ for (let i = 0; i < operations.length; i++) {
509
+ const op = operations[i];
510
+ try {
511
+ // Resolve any variable references in params
512
+ const resolvedParams = resolveReferences(op.params, results);
513
+ // Pre-execution check: doc_create with parentId but no afterId
514
+ if (op.tool === 'doc_create' &&
515
+ resolvedParams.parentId &&
516
+ !resolvedParams.afterId &&
517
+ !allowUnorderedDocs) {
518
+ const store = getGraphStore();
519
+ const parentId = resolvedParams.parentId;
520
+ const existingSiblings = store.getChildren(parentId);
521
+ if (existingSiblings.length > 0) {
522
+ const siblingNames = existingSiblings.map((s) => s.title).join(', ');
523
+ throw new Error(`doc_create requires afterId when parent already has children. ` +
524
+ `Parent "${parentId}" has siblings: [${siblingNames}]. ` +
525
+ `Use afterId to specify position, or set allowUnorderedDocs: true to allow arbitrary ordering.`);
526
+ }
473
527
  }
474
- }
475
- // Execute the tool
476
- const result = await handleToolCall(op.tool, resolvedParams, contextManager);
477
- results.push(result);
478
- // Track affected node/edge IDs for commit
479
- const resultObj = result;
480
- if (resultObj.id && typeof resultObj.id === 'string') {
481
- if (resultObj.id.startsWith('e_')) {
482
- affectedEdgeIds.push(resultObj.id);
528
+ // Execute the tool
529
+ const result = await handleToolCall(op.tool, resolvedParams, contextManager);
530
+ results.push(result);
531
+ // Track affected node/edge IDs for commit
532
+ const resultObj = result;
533
+ if (resultObj.id && typeof resultObj.id === 'string') {
534
+ if (resultObj.id.startsWith('e_')) {
535
+ affectedEdgeIds.push(resultObj.id);
536
+ }
537
+ else if (resultObj.id.startsWith('n_')) {
538
+ affectedNodeIds.push(resultObj.id);
539
+ }
483
540
  }
484
- else if (resultObj.id.startsWith('n_')) {
485
- affectedNodeIds.push(resultObj.id);
541
+ // Some tools return nodeId instead of id
542
+ if (resultObj.nodeId && typeof resultObj.nodeId === 'string') {
543
+ affectedNodeIds.push(resultObj.nodeId);
486
544
  }
487
- }
488
- // Some tools return nodeId instead of id
489
- if (resultObj.nodeId && typeof resultObj.nodeId === 'string') {
490
- affectedNodeIds.push(resultObj.nodeId);
491
- }
492
- // graph_revise returns the updated node id
493
- if (resultObj.newId && typeof resultObj.newId === 'string') {
494
- affectedNodeIds.push(resultObj.newId);
495
- }
496
- // Generate embedding immediately for node-creating tools
497
- // This ensures duplicate detection works within the same batch
498
- if (NODE_CREATING_TOOLS.includes(op.tool)) {
499
- const nodeId = result.id ||
500
- result.newId;
501
- if (nodeId && typeof nodeId === 'string') {
502
- try {
503
- const store = getGraphStore();
504
- await store.generateAndStoreEmbedding(nodeId);
545
+ // graph_revise returns the updated node id
546
+ if (resultObj.newId && typeof resultObj.newId === 'string') {
547
+ affectedNodeIds.push(resultObj.newId);
548
+ }
549
+ // Generate embedding immediately for node-creating tools
550
+ // This ensures duplicate detection works within the same batch
551
+ if (NODE_CREATING_TOOLS.includes(op.tool)) {
552
+ const nodeId = result.id ||
553
+ result.newId;
554
+ if (nodeId && typeof nodeId === 'string') {
555
+ try {
556
+ const store = getGraphStore();
557
+ await store.generateAndStoreEmbedding(nodeId);
558
+ }
559
+ catch {
560
+ // Non-fatal: embedding generation can fail without breaking the batch
561
+ }
505
562
  }
506
- catch {
507
- // Non-fatal: embedding generation can fail without breaking the batch
563
+ }
564
+ // Post-creation verification: doc_create nodes must trace to root
565
+ // This catches forward references that bypassed pre-validation
566
+ if (op.tool === 'doc_create') {
567
+ const resultObj = result;
568
+ const nodeId = resultObj.id;
569
+ const isRoot = resultObj.isDocRoot;
570
+ if (nodeId && !isRoot) {
571
+ const store = getGraphStore();
572
+ const docPath = store.getDocumentPath(nodeId);
573
+ if (!docPath) {
574
+ throw new Error(`Created document node "${nodeId}" does not trace to a document root. ` +
575
+ 'This may indicate a broken forward reference or missing parentId.');
576
+ }
508
577
  }
509
578
  }
510
- }
511
- // Post-creation verification: doc_create nodes must trace to root
512
- // This catches forward references that bypassed pre-validation
513
- if (op.tool === 'doc_create') {
514
- const resultObj = result;
515
- const nodeId = resultObj.id;
516
- const isRoot = resultObj.isDocRoot;
517
- if (nodeId && !isRoot) {
518
- const store = getGraphStore();
519
- const docPath = store.getDocumentPath(nodeId);
520
- if (!docPath) {
521
- throw new Error(`Created document node "${nodeId}" does not trace to a document root. ` +
522
- 'This may indicate a broken forward reference or missing parentId.');
579
+ // Track affected document roots for auto-regeneration
580
+ if (DOC_MUTATION_TOOLS.includes(op.tool)) {
581
+ const resultObj = result;
582
+ const nodeId = (resultObj.id || resultObj.nodeId);
583
+ if (nodeId) {
584
+ const store = getGraphStore();
585
+ const docPath = store.getDocumentPath(nodeId);
586
+ if (docPath && docPath.length > 0 && docPath[0].isDocRoot) {
587
+ affectedDocRoots.add(docPath[0].id);
588
+ }
523
589
  }
524
590
  }
525
591
  }
526
- // Track affected document roots for auto-regeneration
527
- if (DOC_MUTATION_TOOLS.includes(op.tool)) {
528
- const resultObj = result;
529
- const nodeId = (resultObj.id || resultObj.nodeId);
530
- if (nodeId) {
531
- const store = getGraphStore();
532
- const docPath = store.getDocumentPath(nodeId);
533
- if (docPath && docPath.length > 0 && docPath[0].isDocRoot) {
534
- affectedDocRoots.add(docPath[0].id);
535
- }
592
+ catch (error) {
593
+ // Don't double-wrap our own sentinel
594
+ if (error instanceof BatchEarlyExit)
595
+ throw error;
596
+ const errorMsg = error instanceof Error ? error.message : String(error);
597
+ errors.push({ index: i, tool: op.tool, error: errorMsg });
598
+ if (stopOnError) {
599
+ // The whole batch is in a SQLite transaction, so the outer catch
600
+ // will ROLLBACK and undo every prior op. No need for the manual
601
+ // orphan cleanup that the pre-transaction version had to do.
602
+ throw new BatchEarlyExit({
603
+ success: false,
604
+ completed: i,
605
+ total: operations.length,
606
+ results,
607
+ errors,
608
+ message: `Batch stopped at operation ${i} (${op.tool}): ${errorMsg}. Entire batch rolled back.`,
609
+ });
536
610
  }
611
+ // Push null result for failed operation
612
+ results.push({ success: false, error: errorMsg });
537
613
  }
538
614
  }
539
- catch (error) {
540
- const errorMsg = error instanceof Error ? error.message : String(error);
541
- errors.push({ index: i, tool: op.tool, error: errorMsg });
542
- if (stopOnError) {
543
- // CRITICAL: Clean up orphaned nodes before returning
544
- // Otherwise nodes created before the error become orphans
545
- const graphStore = getGraphStore();
546
- const { edges: currentEdges } = graphStore.getAll();
547
- const connectedNodeIds = new Set();
548
- for (const edge of currentEdges) {
549
- connectedNodeIds.add(edge.fromId);
550
- connectedNodeIds.add(edge.toId);
551
- }
552
- const orphanedNodes = [];
553
- for (const nodeId of affectedNodeIds) {
554
- if (!nodeId.startsWith('n_'))
555
- continue;
556
- const node = graphStore.getNode(nodeId);
557
- if (!node)
558
- continue;
559
- if (node.fileType || node.isDocRoot)
560
- continue;
561
- if (!connectedNodeIds.has(nodeId)) {
562
- orphanedNodes.push(nodeId);
563
- graphStore.archiveNode(nodeId);
564
- }
615
+ hasErrors = errors.length > 0;
616
+ // ORPHAN PREVENTION: detect any concept nodes created in this batch that
617
+ // have no edges. Exception: if the graph was empty when this batch started,
618
+ // the very first concept node is allowed to remain unconnected — by
619
+ // definition there's nothing for it to connect to yet. This matches
620
+ // validateNoOrphans's pre-check exemption.
621
+ //
622
+ // Inside the transaction. If we find orphans, throw BatchEarlyExit so
623
+ // the catch block ROLLBACKs the entire batch (no half-state). The
624
+ // pre-transaction version manually archived the orphan nodes and left
625
+ // everything else committed; the transactional version is cleaner.
626
+ const sweepStore = getGraphStore();
627
+ const sweepEdges = sweepStore.getAll().edges;
628
+ const sweepConnectedIds = new Set();
629
+ for (const edge of sweepEdges) {
630
+ sweepConnectedIds.add(edge.fromId);
631
+ sweepConnectedIds.add(edge.toId);
632
+ }
633
+ const orphanedNodes = [];
634
+ let seedNodeAllowed = graphWasEmptyAtBatchStart;
635
+ for (const nodeId of affectedNodeIds) {
636
+ if (!nodeId.startsWith('n_'))
637
+ continue;
638
+ const node = sweepStore.getNode(nodeId);
639
+ if (!node)
640
+ continue;
641
+ // Skip document nodes (they have structural edges managed elsewhere)
642
+ if (node.fileType || node.isDocRoot)
643
+ continue;
644
+ // Check if node has any edges
645
+ if (!sweepConnectedIds.has(nodeId)) {
646
+ // Allow exactly one seed node when the batch started against an empty graph.
647
+ if (seedNodeAllowed) {
648
+ seedNodeAllowed = false;
649
+ continue;
565
650
  }
566
- const orphanMsg = orphanedNodes.length > 0
567
- ? ` Rolled back ${orphanedNodes.length} orphaned node(s).`
568
- : '';
569
- return {
570
- success: false,
571
- completed: i,
572
- total: operations.length,
573
- results,
574
- errors,
575
- message: `Batch stopped at operation ${i} (${op.tool}): ${errorMsg}${orphanMsg}`,
576
- };
651
+ orphanedNodes.push(nodeId);
577
652
  }
578
- // Push null result for failed operation
579
- results.push({ success: false, error: errorMsg });
580
653
  }
654
+ if (orphanedNodes.length > 0) {
655
+ const orphanNames = orphanedNodes
656
+ .map((id) => {
657
+ const r = results.find((r) => r?.id === id);
658
+ return r?.name || id;
659
+ })
660
+ .join(', ');
661
+ throw new BatchEarlyExit({
662
+ success: false,
663
+ completed: operations.length,
664
+ total: operations.length,
665
+ results,
666
+ errors: [
667
+ {
668
+ index: -1,
669
+ tool: 'orphan_check',
670
+ error: `${orphanedNodes.length} concept node(s) would be orphaned (no edges): ${orphanNames}. The entire batch has been rolled back. Add graph_connect operations that link every new concept to an existing or just-created node.`,
671
+ },
672
+ ],
673
+ message: `Batch rolled back: ${orphanedNodes.length} orphaned concept node(s) detected. No changes were persisted.`,
674
+ hint: 'Every concept node MUST have at least one edge. Check that graph_connect operations exist for every new concept.',
675
+ });
676
+ }
677
+ // Create commit record if message provided and batch had changes.
678
+ // Inside the transaction so a rollback also rolls back the commit row.
679
+ if (commitMessage &&
680
+ (affectedNodeIds.length > 0 || affectedEdgeIds.length > 0)) {
681
+ const uniqueNodeIds = [...new Set(affectedNodeIds)];
682
+ const uniqueEdgeIds = [...new Set(affectedEdgeIds)];
683
+ const createdCommit = createCommit(commitMessage, uniqueNodeIds, uniqueEdgeIds, agentName);
684
+ commit = { id: createdCommit.id, message: createdCommit.message };
685
+ }
686
+ // Everything inside the transaction succeeded. COMMIT.
687
+ txnDb.exec('COMMIT');
688
+ txnCommitted = true;
581
689
  }
582
- const hasErrors = errors.length > 0;
583
- // Auto-regenerate affected document roots
690
+ catch (err) {
691
+ // Roll back any uncommitted work. Either a real error from a sub-tool,
692
+ // or a BatchEarlyExit sentinel carrying a structured payload.
693
+ if (!txnCommitted) {
694
+ try {
695
+ txnDb.exec('ROLLBACK');
696
+ }
697
+ catch {
698
+ // Swallow — if rollback itself fails the connection is wedged
699
+ // and there's nothing useful we can do here.
700
+ }
701
+ }
702
+ if (err instanceof BatchEarlyExit) {
703
+ // Intentional early exit — return its payload as the tool result.
704
+ return err.payload;
705
+ }
706
+ throw err;
707
+ }
708
+ // POST-COMMIT: doc auto-regeneration writes files (not the DB), and
709
+ // score-hint computation is read-only. Both are safe to do after commit.
584
710
  const regeneratedDocs = [];
585
711
  if (affectedDocRoots.size > 0) {
586
712
  const projectId = contextManager.getCurrentProjectId();
@@ -637,72 +763,6 @@ Or use source_commit with type: "thinking" nodes.`;
637
763
  scoreHint += `\n\n📊 ${avgEdges.toFixed(1)} avg edges per thinking (target: 2-3). Externalize more of the cognitive journey.`;
638
764
  }
639
765
  }
640
- // ORPHAN PREVENTION: Delete any concept nodes created in this batch that have no edges.
641
- // Exception: if the graph was empty when this batch started, the very first concept
642
- // node is allowed to remain unconnected — by definition there's nothing for it to
643
- // connect to yet. This matches validateNoOrphans's pre-check exemption.
644
- const orphanedNodes = [];
645
- const { edges: currentEdges } = store.getAll();
646
- const connectedNodeIds = new Set();
647
- for (const edge of currentEdges) {
648
- connectedNodeIds.add(edge.fromId);
649
- connectedNodeIds.add(edge.toId);
650
- }
651
- let seedNodeAllowed = graphWasEmptyAtBatchStart;
652
- for (const nodeId of affectedNodeIds) {
653
- if (!nodeId.startsWith('n_'))
654
- continue;
655
- const node = store.getNode(nodeId);
656
- if (!node)
657
- continue;
658
- // Skip document nodes (they have structural edges managed elsewhere)
659
- if (node.fileType || node.isDocRoot)
660
- continue;
661
- // Check if node has any edges
662
- if (!connectedNodeIds.has(nodeId)) {
663
- // Allow exactly one seed node when the batch started against an empty graph.
664
- if (seedNodeAllowed) {
665
- seedNodeAllowed = false;
666
- continue;
667
- }
668
- orphanedNodes.push(nodeId);
669
- // Delete the orphan
670
- store.archiveNode(nodeId);
671
- }
672
- }
673
- if (orphanedNodes.length > 0) {
674
- const orphanNames = orphanedNodes
675
- .map((id) => {
676
- const r = results.find((r) => r?.id === id);
677
- return r?.name || id;
678
- })
679
- .join(', ');
680
- return {
681
- success: false,
682
- completed: operations.length,
683
- total: operations.length,
684
- results,
685
- errors: [
686
- {
687
- index: -1,
688
- tool: 'orphan_check',
689
- error: `${orphanedNodes.length} concept node(s) were orphaned (no edges): ${orphanNames}. They have been deleted. Ensure graph_connect operations succeed for all new concepts.`,
690
- },
691
- ],
692
- message: `Batch failed: ${orphanedNodes.length} orphaned concept node(s) deleted. Add graph_connect calls with valid 'why' field.`,
693
- hint: 'Every concept node MUST have at least one edge. Check that graph_connect calls include required fields (from, to, why).',
694
- };
695
- }
696
- // Create commit record if message provided and batch had changes
697
- let commit;
698
- if (commitMessage &&
699
- (affectedNodeIds.length > 0 || affectedEdgeIds.length > 0)) {
700
- // Deduplicate IDs
701
- const uniqueNodeIds = [...new Set(affectedNodeIds)];
702
- const uniqueEdgeIds = [...new Set(affectedEdgeIds)];
703
- const createdCommit = createCommit(commitMessage, uniqueNodeIds, uniqueEdgeIds, agentName);
704
- commit = { id: createdCommit.id, message: createdCommit.message };
705
- }
706
766
  return {
707
767
  success: !hasErrors,
708
768
  completed: operations.length,
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/tools/batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/tools/batch.ts"],"names":[],"mappings":"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"}