pi-para 0.7.5 → 0.7.7

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,16 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.7.7] — 2026-08-23
6
+
7
+ ### Fixed
8
+ - Prevented native `better-sqlite3` teardown crashes (`RemoveEnvironmentCleanupHook: Assertion failed: (env) != nullptr`) when quitting, resuming, forking, or switching sessions while interactive wiki initialization was still running. Background initialization is now lifecycle-owned: shutdown cancels later stages, awaits the in-flight initializer and deferred maintenance, prevents post-shutdown status/scheduler work, waits for active scheduler SQLite tasks to become idle, and only then closes the QMD store.
9
+
10
+ ## [0.7.6] — 2026-08-15
11
+
12
+ ### Fixed
13
+ - Interactive sessions never wait on wiki initialization anymore. Store opens, git init, scope detection, and model-service setup intermittently stalled behind cross-process contention (locks, slow IO), freezing the TUI at "wiki: indexing..." — especially when resuming very large sessions with `pi -c`. The complete initialization now runs in the background for interactive sessions (`ctx.hasUI`); wiki tools already self-heal via `retryStoreOpen()` if queried before the store is ready. Print/RPC one-shot runs still await initialization because they may query immediately and exit.
14
+
5
15
  ## [0.7.5] — 2026-08-15
6
16
 
7
17
  ### Fixed
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,iCAAiC,CAAC;AAsBtF,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC5F,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/E,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA+EvD,wBAA8B,MAAM,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiSpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,iCAAiC,CAAC;AAsBtF,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC5F,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/E,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA+EvD,wBAA8B,MAAM,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiXpE"}
package/dist/index.js CHANGED
@@ -70,6 +70,10 @@ export default async function piPara(pi) {
70
70
  let store = null;
71
71
  let currentScope = null;
72
72
  let startupMaintenanceTimer = null;
73
+ let startupMaintenancePromise = null;
74
+ let readyStatusTimer = null;
75
+ let initializationPromise = null;
76
+ let sessionClosing = false;
73
77
  let storeDisabled = false;
74
78
  const getScope = () => {
75
79
  if (!currentScope) {
@@ -94,15 +98,20 @@ export default async function piPara(pi) {
94
98
  // This handles cases where the db was temporarily locked or had transient errors.
95
99
  let storeRetrying = false;
96
100
  async function retryStoreOpen() {
97
- if (storeRetrying)
101
+ if (storeRetrying || sessionClosing)
98
102
  return false;
99
103
  storeRetrying = true;
100
104
  try {
101
- store = await openStore(wikiDir, {
105
+ const reopenedStore = await openStore(wikiDir, {
102
106
  paraConfig: loadedConfig.userConfig ?? undefined,
103
107
  secretsPath: loadedConfig.secretsPath ?? undefined,
104
108
  backgroundEmbed: false,
105
109
  });
110
+ if (sessionClosing) {
111
+ await closeStore(reopenedStore);
112
+ return false;
113
+ }
114
+ store = reopenedStore;
106
115
  storeDisabled = false;
107
116
  markContextDirty(); // rebuild context now that store works
108
117
  return true;
@@ -145,28 +154,71 @@ export default async function piPara(pi) {
145
154
  registerCommands(pi, wikiDir, storeProxy, getScope, setScope);
146
155
  // -- session_start ---------------------------------------------------------
147
156
  pi.on("session_start", async (_event, ctx) => {
157
+ // Interactive sessions must NEVER wait on wiki initialization: store
158
+ // opens, git init, scope detection, and model-service setup have all
159
+ // intermittently stalled behind cross-process contention (locks, slow
160
+ // IO, network), blocking the whole TUI at "wiki: indexing...". Keep the
161
+ // work in the background, but retain its promise: session_shutdown MUST
162
+ // await it before Node tears down native better-sqlite3 resources.
163
+ // Print/RPC one-shot runs still await because they may query then exit.
164
+ sessionClosing = false;
165
+ const pending = initializeSession(ctx);
166
+ initializationPromise = pending;
167
+ void pending.finally(() => {
168
+ if (initializationPromise === pending)
169
+ initializationPromise = null;
170
+ }).catch(() => { });
171
+ if (ctx.hasUI) {
172
+ void pending.catch(() => {
173
+ if (!sessionClosing) {
174
+ try {
175
+ ctx.ui.setStatus("pi-para", "wiki: init failed");
176
+ }
177
+ catch { /* ui gone */ }
178
+ }
179
+ });
180
+ return;
181
+ }
182
+ await pending;
183
+ });
184
+ async function initializeSession(ctx) {
148
185
  ctx.ui.setStatus("pi-para", "wiki: loading...");
149
186
  try {
150
187
  await initWiki(wikiDir);
151
188
  }
152
189
  catch (err) {
153
- ctx.ui.notify(`Wiki init failed: ${err instanceof Error ? err.message : String(err)}`, "error");
190
+ if (!sessionClosing) {
191
+ ctx.ui.notify(`Wiki init failed: ${err instanceof Error ? err.message : String(err)}`, "error");
192
+ }
154
193
  }
194
+ if (sessionClosing)
195
+ return;
155
196
  ctx.ui.setStatus("pi-para", "wiki: indexing...");
156
197
  storeDisabled = false;
157
198
  try {
158
- store = await openStore(wikiDir, {
199
+ const openedStore = await openStore(wikiDir, {
159
200
  paraConfig: loadedConfig.userConfig ?? undefined,
160
201
  secretsPath: loadedConfig.secretsPath ?? undefined,
161
202
  backgroundEmbed: false,
162
203
  });
204
+ if (sessionClosing) {
205
+ await closeStore(openedStore);
206
+ return;
207
+ }
208
+ store = openedStore;
163
209
  }
164
210
  catch (err) {
165
211
  store = null;
166
212
  storeDisabled = true;
167
- ctx.ui.notify(`Wiki search disabled: ${err instanceof Error ? err.message : String(err)}`, "warning");
213
+ if (!sessionClosing) {
214
+ ctx.ui.notify(`Wiki search disabled: ${err instanceof Error ? err.message : String(err)}`, "warning");
215
+ }
168
216
  }
217
+ if (sessionClosing)
218
+ return;
169
219
  currentScope = await detectScope(ctx.cwd);
220
+ if (sessionClosing)
221
+ return;
170
222
  const savedState = reconstructState(ctx);
171
223
  if (savedState?.lastScope.source === "config") {
172
224
  currentScope = savedState.lastScope;
@@ -205,6 +257,8 @@ export default async function piPara(pi) {
205
257
  catch {
206
258
  // Capture handler registration is best-effort; manual capture remains available.
207
259
  }
260
+ if (sessionClosing)
261
+ return;
208
262
  const embedEnabled = loadedConfig.userConfig?.qmd.embedEnabled !== false;
209
263
  const schedulerEnabled = !printMode && schedulerConfig?.enabled !== false;
210
264
  const scheduler = schedulerEnabled
@@ -230,8 +284,10 @@ export default async function piPara(pi) {
230
284
  const startupDelayMs = Number.isFinite(envDelay) && envDelay >= 0 ? envDelay : 30_000;
231
285
  startupMaintenanceTimer = setTimeout(() => {
232
286
  startupMaintenanceTimer = null;
233
- void (async () => {
234
- if (embedEnabled && store) {
287
+ if (sessionClosing)
288
+ return;
289
+ const maintenance = (async () => {
290
+ if (embedEnabled && store && !sessionClosing) {
235
291
  try {
236
292
  scheduler.embedEnabled = true;
237
293
  scheduler.enqueue("qmd-embed", {}, { dedupeKey: "qmd-embed", priority: 5 });
@@ -257,16 +313,28 @@ export default async function piPara(pi) {
257
313
  // Tick failures are recorded in scheduler history.
258
314
  }
259
315
  })();
316
+ startupMaintenancePromise = maintenance;
317
+ void maintenance.finally(() => {
318
+ if (startupMaintenancePromise === maintenance)
319
+ startupMaintenancePromise = null;
320
+ }).catch(() => { });
260
321
  }, startupDelayMs);
261
322
  startupMaintenanceTimer.unref?.();
262
323
  }
263
324
  if (loadedConfig.userConfig?.webWiki.enabled && !printMode) {
264
325
  ctx.ui.notify("webWiki configuration is ignored because Web Wiki was removed in 0.7.", "warning");
265
326
  }
327
+ if (sessionClosing)
328
+ return;
266
329
  ctx.ui.setStatus("pi-para", "wiki: ready");
267
- if (!printMode)
268
- setTimeout(() => ctx.ui.setStatus("pi-para", undefined), 3000);
269
- });
330
+ if (!printMode) {
331
+ readyStatusTimer = setTimeout(() => {
332
+ readyStatusTimer = null;
333
+ if (!sessionClosing)
334
+ ctx.ui.setStatus("pi-para", undefined);
335
+ }, 3000);
336
+ }
337
+ }
270
338
  // -- session_tree ----------------------------------------------------------
271
339
  pi.on("session_tree", async (_event, ctx) => {
272
340
  const savedState = reconstructState(ctx);
@@ -296,11 +364,34 @@ export default async function piPara(pi) {
296
364
  });
297
365
  // -- session_shutdown: register session for scheduler, close store ---------
298
366
  pi.on("session_shutdown", async (_event, ctx) => {
299
- // 0. Cancel any not-yet-fired deferred startup maintenance.
367
+ // 0. Own the complete initializer lifecycle. Returning while its native
368
+ // qmd/better-sqlite3 work is still in flight can destroy V8 first and
369
+ // crash in Statement::~Statement / RemoveEnvironmentCleanupHook.
370
+ sessionClosing = true;
300
371
  if (startupMaintenanceTimer) {
301
372
  clearTimeout(startupMaintenanceTimer);
302
373
  startupMaintenanceTimer = null;
303
374
  }
375
+ if (readyStatusTimer) {
376
+ clearTimeout(readyStatusTimer);
377
+ readyStatusTimer = null;
378
+ }
379
+ if (initializationPromise) {
380
+ try {
381
+ await initializationPromise;
382
+ }
383
+ catch {
384
+ // Initialization errors were already surfaced by the owning path.
385
+ }
386
+ }
387
+ if (startupMaintenancePromise) {
388
+ try {
389
+ await startupMaintenancePromise;
390
+ }
391
+ catch {
392
+ // Maintenance is best-effort, but must settle before native teardown.
393
+ }
394
+ }
304
395
  // 1. Register session as completed (scheduler catch-up processes later)
305
396
  const sessionFile = ctx.sessionManager.getSessionFile();
306
397
  if (sessionFile) {
@@ -311,8 +402,8 @@ export default async function piPara(pi) {
311
402
  // Non-fatal — startup catch-up can also discover sessions via filesystem scan
312
403
  }
313
404
  }
314
- // 2. Stop scheduler and close the store (instant)
315
- stopWikiScheduler(wikiDir);
405
+ // 2. Stop scheduler, await any in-flight SQLite work, then close the store.
406
+ await stopWikiScheduler(wikiDir);
316
407
  if (store) {
317
408
  try {
318
409
  await closeStore(store);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ export declare class WikiScheduler {
24
24
  private running;
25
25
  private stopped;
26
26
  private closed;
27
+ private idleWaiters;
27
28
  private readonly intervalMs;
28
29
  private readonly enabled;
29
30
  private readonly storeProvider;
@@ -33,6 +34,9 @@ export declare class WikiScheduler {
33
34
  constructor(opts: WikiSchedulerOptions);
34
35
  start(): void;
35
36
  stop(): void;
37
+ /** Wait until an in-flight task releases its native SQLite resources. */
38
+ waitForIdle(): Promise<void>;
39
+ private resolveIdleWaiters;
36
40
  private closeState;
37
41
  enqueue(taskName: string, payload?: unknown, opts?: {
38
42
  priority?: number;
@@ -63,7 +67,7 @@ export declare class WikiScheduler {
63
67
  export declare function isCredentialEmbedError(message: string): boolean;
64
68
  export declare function getWikiScheduler(opts: WikiSchedulerOptions): WikiScheduler;
65
69
  export declare function startWikiScheduler(opts: WikiSchedulerOptions): WikiScheduler;
66
- export declare function stopWikiScheduler(wikiDir: string, dbPath?: string): void;
70
+ export declare function stopWikiScheduler(wikiDir: string, dbPath?: string): Promise<void>;
67
71
  export declare function enqueueWikiMaintenance(wikiDir: string, store: QMDStore, markDirty: () => void, opts?: {
68
72
  delayMs?: number;
69
73
  dbPath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAM3C,OAAO,EAAE,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhG,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAChD;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAuC;IACvD,YAAY,EAAE,OAAO,CAAC;gBAEV,IAAI,EAAE,oBAAoB;IAgBtC,KAAK,IAAI,IAAI;IASb,IAAI,IAAI,IAAI;IAOZ,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,OAAY,EAAE,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,IAAI,CAAA;KAAO,GAAG,MAAM;IAKlI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,IAAI;IAIhE,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;YAmBf,OAAO;YAqBP,kBAAkB;IA0BhC;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAkBnC;;;;;OAKG;YACW,WAAW;IAqCzB,2FAA2F;IAC3F,OAAO,CAAC,YAAY;CAUrB;AAaD,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE/D;AAKD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,aAAa,CAU1E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,GAAG,aAAa,CAI5E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAWxE;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,MAAM,IAAI,EACrB,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/C,MAAM,GAAG,IAAI,CA2Bf;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,EACf,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,MAAM,CAUR;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAO9C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export class WikiScheduler {
12
12
  running = false;
13
13
  stopped = false;
14
14
  closed = false;
15
+ idleWaiters = [];
15
16
  intervalMs;
16
17
  enabled;
17
18
  storeProvider;
@@ -47,8 +48,21 @@ export class WikiScheduler {
47
48
  if (this.timer)
48
49
  clearInterval(this.timer);
49
50
  this.timer = null;
50
- if (!this.running)
51
+ if (!this.running) {
51
52
  this.closeState();
53
+ this.resolveIdleWaiters();
54
+ }
55
+ }
56
+ /** Wait until an in-flight task releases its native SQLite resources. */
57
+ async waitForIdle() {
58
+ if (!this.running)
59
+ return;
60
+ await new Promise((resolve) => this.idleWaiters.push(resolve));
61
+ }
62
+ resolveIdleWaiters() {
63
+ const waiters = this.idleWaiters.splice(0);
64
+ for (const resolve of waiters)
65
+ resolve();
52
66
  }
53
67
  closeState() {
54
68
  if (this.closed)
@@ -84,6 +98,7 @@ export class WikiScheduler {
84
98
  this.running = false;
85
99
  if (this.stopped)
86
100
  this.closeState();
101
+ this.resolveIdleWaiters();
87
102
  }
88
103
  return processed;
89
104
  }
@@ -253,7 +268,7 @@ export function startWikiScheduler(opts) {
253
268
  scheduler.start();
254
269
  return scheduler;
255
270
  }
256
- export function stopWikiScheduler(wikiDir, dbPath) {
271
+ export async function stopWikiScheduler(wikiDir, dbPath) {
257
272
  const key = dbPath ?? getParaPaths({ wikiDir }).schedulerDbPath;
258
273
  const timer = debounceTimers.get(key);
259
274
  if (timer) {
@@ -265,6 +280,7 @@ export function stopWikiScheduler(wikiDir, dbPath) {
265
280
  return;
266
281
  scheduler.stop();
267
282
  schedulers.delete(key);
283
+ await scheduler.waitForIdle();
268
284
  }
269
285
  export function enqueueWikiMaintenance(wikiDir, store, markDirty, opts = {}) {
270
286
  const key = opts.dbPath ?? getParaPaths({ wikiDir }).schedulerDbPath;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-para",
3
- "version": "0.7.5",
3
+ "version": "0.7.7",
4
4
  "description": "PARA Knowledge Base Extension for pi — persistent, LLM-curated personal wiki",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/index.ts CHANGED
@@ -129,6 +129,10 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
129
129
  let store: QMDStore | null = null;
130
130
  let currentScope: ProjectScope | null = null;
131
131
  let startupMaintenanceTimer: ReturnType<typeof setTimeout> | null = null;
132
+ let startupMaintenancePromise: Promise<void> | null = null;
133
+ let readyStatusTimer: ReturnType<typeof setTimeout> | null = null;
134
+ let initializationPromise: Promise<void> | null = null;
135
+ let sessionClosing = false;
132
136
  let storeDisabled = false;
133
137
 
134
138
 
@@ -158,14 +162,19 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
158
162
  // This handles cases where the db was temporarily locked or had transient errors.
159
163
  let storeRetrying = false;
160
164
  async function retryStoreOpen(): Promise<boolean> {
161
- if (storeRetrying) return false;
165
+ if (storeRetrying || sessionClosing) return false;
162
166
  storeRetrying = true;
163
167
  try {
164
- store = await openStore(wikiDir, {
168
+ const reopenedStore = await openStore(wikiDir, {
165
169
  paraConfig: loadedConfig.userConfig ?? undefined,
166
170
  secretsPath: loadedConfig.secretsPath ?? undefined,
167
171
  backgroundEmbed: false,
168
172
  });
173
+ if (sessionClosing) {
174
+ await closeStore(reopenedStore);
175
+ return false;
176
+ }
177
+ store = reopenedStore;
169
178
  storeDisabled = false;
170
179
  markContextDirty(); // rebuild context now that store works
171
180
  return true;
@@ -218,35 +227,73 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
218
227
  // -- session_start ---------------------------------------------------------
219
228
 
220
229
  pi.on("session_start", async (_event, ctx) => {
230
+ // Interactive sessions must NEVER wait on wiki initialization: store
231
+ // opens, git init, scope detection, and model-service setup have all
232
+ // intermittently stalled behind cross-process contention (locks, slow
233
+ // IO, network), blocking the whole TUI at "wiki: indexing...". Keep the
234
+ // work in the background, but retain its promise: session_shutdown MUST
235
+ // await it before Node tears down native better-sqlite3 resources.
236
+ // Print/RPC one-shot runs still await because they may query then exit.
237
+ sessionClosing = false;
238
+ const pending = initializeSession(ctx);
239
+ initializationPromise = pending;
240
+ void pending.finally(() => {
241
+ if (initializationPromise === pending) initializationPromise = null;
242
+ }).catch(() => { /* the owning path reports initialization failures */ });
243
+
244
+ if (ctx.hasUI) {
245
+ void pending.catch(() => {
246
+ if (!sessionClosing) {
247
+ try { ctx.ui.setStatus("pi-para", "wiki: init failed"); } catch { /* ui gone */ }
248
+ }
249
+ });
250
+ return;
251
+ }
252
+ await pending;
253
+ });
254
+
255
+ async function initializeSession(ctx: ExtensionContext): Promise<void> {
221
256
  ctx.ui.setStatus("pi-para", "wiki: loading...");
222
257
 
223
258
  try {
224
259
  await initWiki(wikiDir);
225
260
  } catch (err) {
226
- ctx.ui.notify(
227
- `Wiki init failed: ${err instanceof Error ? err.message : String(err)}`,
228
- "error",
229
- );
261
+ if (!sessionClosing) {
262
+ ctx.ui.notify(
263
+ `Wiki init failed: ${err instanceof Error ? err.message : String(err)}`,
264
+ "error",
265
+ );
266
+ }
230
267
  }
268
+ if (sessionClosing) return;
231
269
 
232
270
  ctx.ui.setStatus("pi-para", "wiki: indexing...");
233
271
  storeDisabled = false;
234
272
  try {
235
- store = await openStore(wikiDir, {
273
+ const openedStore = await openStore(wikiDir, {
236
274
  paraConfig: loadedConfig.userConfig ?? undefined,
237
275
  secretsPath: loadedConfig.secretsPath ?? undefined,
238
276
  backgroundEmbed: false,
239
277
  });
278
+ if (sessionClosing) {
279
+ await closeStore(openedStore);
280
+ return;
281
+ }
282
+ store = openedStore;
240
283
  } catch (err) {
241
284
  store = null;
242
285
  storeDisabled = true;
243
- ctx.ui.notify(
244
- `Wiki search disabled: ${err instanceof Error ? err.message : String(err)}`,
245
- "warning",
246
- );
286
+ if (!sessionClosing) {
287
+ ctx.ui.notify(
288
+ `Wiki search disabled: ${err instanceof Error ? err.message : String(err)}`,
289
+ "warning",
290
+ );
291
+ }
247
292
  }
293
+ if (sessionClosing) return;
248
294
 
249
295
  currentScope = await detectScope(ctx.cwd);
296
+ if (sessionClosing) return;
250
297
 
251
298
  const savedState = reconstructState(ctx);
252
299
  if (savedState?.lastScope.source === "config") {
@@ -287,6 +334,7 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
287
334
  } catch {
288
335
  // Capture handler registration is best-effort; manual capture remains available.
289
336
  }
337
+ if (sessionClosing) return;
290
338
 
291
339
  const embedEnabled = loadedConfig.userConfig?.qmd.embedEnabled !== false;
292
340
  const schedulerEnabled = !printMode && schedulerConfig?.enabled !== false;
@@ -314,8 +362,9 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
314
362
  const startupDelayMs = Number.isFinite(envDelay) && envDelay >= 0 ? envDelay : 30_000;
315
363
  startupMaintenanceTimer = setTimeout(() => {
316
364
  startupMaintenanceTimer = null;
317
- void (async () => {
318
- if (embedEnabled && store) {
365
+ if (sessionClosing) return;
366
+ const maintenance = (async () => {
367
+ if (embedEnabled && store && !sessionClosing) {
319
368
  try {
320
369
  scheduler.embedEnabled = true;
321
370
  scheduler.enqueue("qmd-embed", {}, { dedupeKey: "qmd-embed", priority: 5 });
@@ -338,6 +387,10 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
338
387
  // Tick failures are recorded in scheduler history.
339
388
  }
340
389
  })();
390
+ startupMaintenancePromise = maintenance;
391
+ void maintenance.finally(() => {
392
+ if (startupMaintenancePromise === maintenance) startupMaintenancePromise = null;
393
+ }).catch(() => { /* maintenance is best-effort */ });
341
394
  }, startupDelayMs);
342
395
  startupMaintenanceTimer.unref?.();
343
396
  }
@@ -345,9 +398,15 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
345
398
  if (loadedConfig.userConfig?.webWiki.enabled && !printMode) {
346
399
  ctx.ui.notify("webWiki configuration is ignored because Web Wiki was removed in 0.7.", "warning");
347
400
  }
401
+ if (sessionClosing) return;
348
402
  ctx.ui.setStatus("pi-para", "wiki: ready");
349
- if (!printMode) setTimeout(() => ctx.ui.setStatus("pi-para", undefined), 3000);
350
- });
403
+ if (!printMode) {
404
+ readyStatusTimer = setTimeout(() => {
405
+ readyStatusTimer = null;
406
+ if (!sessionClosing) ctx.ui.setStatus("pi-para", undefined);
407
+ }, 3000);
408
+ }
409
+ }
351
410
 
352
411
  // -- session_tree ----------------------------------------------------------
353
412
 
@@ -381,11 +440,32 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
381
440
  // -- session_shutdown: register session for scheduler, close store ---------
382
441
 
383
442
  pi.on("session_shutdown", async (_event, ctx) => {
384
- // 0. Cancel any not-yet-fired deferred startup maintenance.
443
+ // 0. Own the complete initializer lifecycle. Returning while its native
444
+ // qmd/better-sqlite3 work is still in flight can destroy V8 first and
445
+ // crash in Statement::~Statement / RemoveEnvironmentCleanupHook.
446
+ sessionClosing = true;
385
447
  if (startupMaintenanceTimer) {
386
448
  clearTimeout(startupMaintenanceTimer);
387
449
  startupMaintenanceTimer = null;
388
450
  }
451
+ if (readyStatusTimer) {
452
+ clearTimeout(readyStatusTimer);
453
+ readyStatusTimer = null;
454
+ }
455
+ if (initializationPromise) {
456
+ try {
457
+ await initializationPromise;
458
+ } catch {
459
+ // Initialization errors were already surfaced by the owning path.
460
+ }
461
+ }
462
+ if (startupMaintenancePromise) {
463
+ try {
464
+ await startupMaintenancePromise;
465
+ } catch {
466
+ // Maintenance is best-effort, but must settle before native teardown.
467
+ }
468
+ }
389
469
 
390
470
  // 1. Register session as completed (scheduler catch-up processes later)
391
471
  const sessionFile = ctx.sessionManager.getSessionFile();
@@ -397,8 +477,8 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
397
477
  }
398
478
  }
399
479
 
400
- // 2. Stop scheduler and close the store (instant)
401
- stopWikiScheduler(wikiDir);
480
+ // 2. Stop scheduler, await any in-flight SQLite work, then close the store.
481
+ await stopWikiScheduler(wikiDir);
402
482
 
403
483
  if (store) {
404
484
  try {
@@ -32,6 +32,7 @@ export class WikiScheduler {
32
32
  private running = false;
33
33
  private stopped = false;
34
34
  private closed = false;
35
+ private idleWaiters: Array<() => void> = [];
35
36
  private readonly intervalMs: number;
36
37
  private readonly enabled: boolean;
37
38
  private readonly storeProvider: () => QMDStore | null;
@@ -68,7 +69,21 @@ export class WikiScheduler {
68
69
  this.stopped = true;
69
70
  if (this.timer) clearInterval(this.timer);
70
71
  this.timer = null;
71
- if (!this.running) this.closeState();
72
+ if (!this.running) {
73
+ this.closeState();
74
+ this.resolveIdleWaiters();
75
+ }
76
+ }
77
+
78
+ /** Wait until an in-flight task releases its native SQLite resources. */
79
+ async waitForIdle(): Promise<void> {
80
+ if (!this.running) return;
81
+ await new Promise<void>((resolve) => this.idleWaiters.push(resolve));
82
+ }
83
+
84
+ private resolveIdleWaiters(): void {
85
+ const waiters = this.idleWaiters.splice(0);
86
+ for (const resolve of waiters) resolve();
72
87
  }
73
88
 
74
89
  private closeState(): void {
@@ -101,6 +116,7 @@ export class WikiScheduler {
101
116
  } finally {
102
117
  this.running = false;
103
118
  if (this.stopped) this.closeState();
119
+ this.resolveIdleWaiters();
104
120
  }
105
121
  return processed;
106
122
  }
@@ -268,7 +284,7 @@ export function startWikiScheduler(opts: WikiSchedulerOptions): WikiScheduler {
268
284
  return scheduler;
269
285
  }
270
286
 
271
- export function stopWikiScheduler(wikiDir: string, dbPath?: string): void {
287
+ export async function stopWikiScheduler(wikiDir: string, dbPath?: string): Promise<void> {
272
288
  const key = dbPath ?? getParaPaths({ wikiDir }).schedulerDbPath;
273
289
  const timer = debounceTimers.get(key);
274
290
  if (timer) {
@@ -279,6 +295,7 @@ export function stopWikiScheduler(wikiDir: string, dbPath?: string): void {
279
295
  if (!scheduler) return;
280
296
  scheduler.stop();
281
297
  schedulers.delete(key);
298
+ await scheduler.waitForIdle();
282
299
  }
283
300
 
284
301
  export function enqueueWikiMaintenance(