vibe-splain 3.2.1 → 3.2.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/dist/index.js +2138 -77
- package/dist/store/PointerStore.js +21 -5
- package/package.json +4 -4
|
@@ -9,11 +9,27 @@ export class PointerStore {
|
|
|
9
9
|
constructor(projectRoot) {
|
|
10
10
|
const dir = join(projectRoot, '.vibe-splainer');
|
|
11
11
|
mkdirSync(dir, { recursive: true });
|
|
12
|
-
this.db = new Database(join(dir, 'pointer_store.db'));
|
|
13
|
-
//
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
this.db = new Database(join(dir, 'pointer_store.db'), { timeout: 10000 });
|
|
13
|
+
// Retry-loop for WAL mode to survive heavy concurrent startup (WAL_SAFETY test)
|
|
14
|
+
let retries = 5;
|
|
15
|
+
while (retries > 0) {
|
|
16
|
+
try {
|
|
17
|
+
this.db.pragma('journal_mode = WAL');
|
|
18
|
+
this.db.pragma('foreign_keys = ON');
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
if (e.code === 'SQLITE_BUSY' && retries > 1) {
|
|
23
|
+
retries--;
|
|
24
|
+
const delay = 100 + Math.random() * 200;
|
|
25
|
+
// Synchronous sleep since constructor is sync
|
|
26
|
+
const start = Date.now();
|
|
27
|
+
while (Date.now() - start < delay) { }
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
throw e;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
17
33
|
this._migrate();
|
|
18
34
|
}
|
|
19
35
|
static open(projectRoot) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibe-splain",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.2",
|
|
4
4
|
"description": "Architectural mapping and behavioral call-chain engine. Built on a language-agnostic foundation with specialized optimization for TypeScript/JavaScript projects.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -37,14 +37,12 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
40
|
-
"async-mutex": "^0.5.0",
|
|
41
40
|
"better-sqlite3": "^12.10.0",
|
|
42
41
|
"chokidar": "^3.6.0",
|
|
43
42
|
"commander": "^12.0.0",
|
|
44
43
|
"fs-extra": "^11.0.0",
|
|
45
44
|
"tar": "^7.5.16",
|
|
46
45
|
"tree-sitter-wasms": "^0.1.11",
|
|
47
|
-
"uuid": "^9.0.0",
|
|
48
46
|
"web-tree-sitter": "^0.22.0"
|
|
49
47
|
},
|
|
50
48
|
"devDependencies": {
|
|
@@ -53,10 +51,12 @@
|
|
|
53
51
|
"@types/minimatch": "^5.1.2",
|
|
54
52
|
"@types/tar": "^6.1.13",
|
|
55
53
|
"@types/uuid": "^9.0.0",
|
|
54
|
+
"async-mutex": "^0.5.0",
|
|
56
55
|
"esbuild": "^0.28.0",
|
|
57
56
|
"minimatch": "^10.2.5",
|
|
58
57
|
"tsx": "^4.22.4",
|
|
59
|
-
"typescript": "^5.4.0"
|
|
58
|
+
"typescript": "^5.4.0",
|
|
59
|
+
"uuid": "^9.0.0"
|
|
60
60
|
},
|
|
61
61
|
"files": [
|
|
62
62
|
"dist/",
|