@soulcraft/brainy 5.3.5 → 5.3.6

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/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [5.3.6](https://github.com/soulcraftlabs/brainy/compare/v5.3.5...v5.3.6) (2025-11-05)
6
+
7
+
8
+ ### 🐛 Bug Fixes
9
+
10
+ * resolve fork() silent failure on cloud storage adapters ([7977132](https://github.com/soulcraftlabs/brainy/commit/7977132e9f7160af1cb1b9dd1f16f623aa1010f0))
11
+
5
12
  ### [5.3.5](https://github.com/soulcraftlabs/brainy/compare/v5.3.4...v5.3.5) (2025-11-05)
6
13
 
7
14
 
package/dist/brainy.js CHANGED
@@ -1884,7 +1884,15 @@ export class Brainy {
1884
1884
  }
1885
1885
  // Step 2: Copy storage ref (COW layer - instant!)
1886
1886
  await refManager.copyRef(currentBranch, branchName);
1887
- // Step 2: Create new Brainy instance pointing to fork branch
1887
+ // CRITICAL FIX (v5.3.6): Verify branch was actually created to prevent silent failures
1888
+ // Without this check, fork() could complete successfully but branch wouldn't exist,
1889
+ // causing subsequent checkout() calls to fail (see Workshop bug report).
1890
+ const verifyBranch = await refManager.getRef(branchName);
1891
+ if (!verifyBranch) {
1892
+ throw new Error(`Fork failed: Branch '${branchName}' was not created. ` +
1893
+ `This indicates a storage adapter configuration issue. Please report this bug.`);
1894
+ }
1895
+ // Step 3: Create new Brainy instance pointing to fork branch
1888
1896
  const forkConfig = {
1889
1897
  ...this.config,
1890
1898
  storage: {
@@ -274,6 +274,13 @@ export class BaseStorage extends BaseStorageAdapter {
274
274
  * @protected - Available to subclasses for COW implementation
275
275
  */
276
276
  resolveBranchPath(basePath, branch) {
277
+ // CRITICAL FIX (v5.3.6): COW metadata (_cow/*) must NEVER be branch-scoped
278
+ // Refs, commits, and blobs are global metadata with their own internal branching.
279
+ // Branch-scoping COW paths causes fork() to write refs to wrong locations,
280
+ // leading to "Branch does not exist" errors on checkout (see Workshop bug report).
281
+ if (basePath.startsWith('_cow/')) {
282
+ return basePath; // COW metadata is global across all branches
283
+ }
277
284
  if (!this.cowEnabled) {
278
285
  return basePath; // COW disabled, use direct path
279
286
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soulcraft/brainy",
3
- "version": "5.3.5",
3
+ "version": "5.3.6",
4
4
  "description": "Universal Knowledge Protocol™ - World's first Triple Intelligence database unifying vector, graph, and document search in one API. 31 nouns × 40 verbs for infinite expressiveness.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",