pi-para 0.7.6 → 0.7.8

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.8] — 2026-08-23
6
+
7
+ ### Fixed
8
+ - Eliminated the remaining native `better-sqlite3` teardown assertion by upgrading both pi-para and qmd-engine to `better-sqlite3` 13.0.3. Version 13 migrated the addon from legacy V8 cleanup hooks to N-API; the installed binary no longer imports `AddEnvironmentCleanupHook` or `RemoveEnvironmentCleanupHook`, removing the crashing mechanism rather than relying only on shutdown timing. Includes qmd-engine 2.6.2.
9
+
10
+ ## [0.7.7] — 2026-08-23
11
+
12
+ ### Fixed
13
+ - 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.
14
+
5
15
  ## [0.7.6] — 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,CAmTpE"}
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;
@@ -148,21 +157,29 @@ export default async function piPara(pi) {
148
157
  // Interactive sessions must NEVER wait on wiki initialization: store
149
158
  // opens, git init, scope detection, and model-service setup have all
150
159
  // intermittently stalled behind cross-process contention (locks, slow
151
- // IO, network), blocking the whole TUI at "wiki: indexing...". Run the
152
- // complete initialization in the background — wiki tools already
153
- // self-heal via retryStoreOpen() when queried before the store is open.
154
- // Print/RPC one-shot runs still await: they may query immediately and
155
- // exit, so ordering matters more than TUI latency there.
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(() => { });
156
171
  if (ctx.hasUI) {
157
- void initializeSession(ctx).catch(() => {
158
- try {
159
- ctx.ui.setStatus("pi-para", "wiki: init failed");
172
+ void pending.catch(() => {
173
+ if (!sessionClosing) {
174
+ try {
175
+ ctx.ui.setStatus("pi-para", "wiki: init failed");
176
+ }
177
+ catch { /* ui gone */ }
160
178
  }
161
- catch { /* ui gone */ }
162
179
  });
163
180
  return;
164
181
  }
165
- await initializeSession(ctx);
182
+ await pending;
166
183
  });
167
184
  async function initializeSession(ctx) {
168
185
  ctx.ui.setStatus("pi-para", "wiki: loading...");
@@ -170,23 +187,38 @@ export default async function piPara(pi) {
170
187
  await initWiki(wikiDir);
171
188
  }
172
189
  catch (err) {
173
- 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
+ }
174
193
  }
194
+ if (sessionClosing)
195
+ return;
175
196
  ctx.ui.setStatus("pi-para", "wiki: indexing...");
176
197
  storeDisabled = false;
177
198
  try {
178
- store = await openStore(wikiDir, {
199
+ const openedStore = await openStore(wikiDir, {
179
200
  paraConfig: loadedConfig.userConfig ?? undefined,
180
201
  secretsPath: loadedConfig.secretsPath ?? undefined,
181
202
  backgroundEmbed: false,
182
203
  });
204
+ if (sessionClosing) {
205
+ await closeStore(openedStore);
206
+ return;
207
+ }
208
+ store = openedStore;
183
209
  }
184
210
  catch (err) {
185
211
  store = null;
186
212
  storeDisabled = true;
187
- 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
+ }
188
216
  }
217
+ if (sessionClosing)
218
+ return;
189
219
  currentScope = await detectScope(ctx.cwd);
220
+ if (sessionClosing)
221
+ return;
190
222
  const savedState = reconstructState(ctx);
191
223
  if (savedState?.lastScope.source === "config") {
192
224
  currentScope = savedState.lastScope;
@@ -225,6 +257,8 @@ export default async function piPara(pi) {
225
257
  catch {
226
258
  // Capture handler registration is best-effort; manual capture remains available.
227
259
  }
260
+ if (sessionClosing)
261
+ return;
228
262
  const embedEnabled = loadedConfig.userConfig?.qmd.embedEnabled !== false;
229
263
  const schedulerEnabled = !printMode && schedulerConfig?.enabled !== false;
230
264
  const scheduler = schedulerEnabled
@@ -250,8 +284,10 @@ export default async function piPara(pi) {
250
284
  const startupDelayMs = Number.isFinite(envDelay) && envDelay >= 0 ? envDelay : 30_000;
251
285
  startupMaintenanceTimer = setTimeout(() => {
252
286
  startupMaintenanceTimer = null;
253
- void (async () => {
254
- if (embedEnabled && store) {
287
+ if (sessionClosing)
288
+ return;
289
+ const maintenance = (async () => {
290
+ if (embedEnabled && store && !sessionClosing) {
255
291
  try {
256
292
  scheduler.embedEnabled = true;
257
293
  scheduler.enqueue("qmd-embed", {}, { dedupeKey: "qmd-embed", priority: 5 });
@@ -277,15 +313,27 @@ export default async function piPara(pi) {
277
313
  // Tick failures are recorded in scheduler history.
278
314
  }
279
315
  })();
316
+ startupMaintenancePromise = maintenance;
317
+ void maintenance.finally(() => {
318
+ if (startupMaintenancePromise === maintenance)
319
+ startupMaintenancePromise = null;
320
+ }).catch(() => { });
280
321
  }, startupDelayMs);
281
322
  startupMaintenanceTimer.unref?.();
282
323
  }
283
324
  if (loadedConfig.userConfig?.webWiki.enabled && !printMode) {
284
325
  ctx.ui.notify("webWiki configuration is ignored because Web Wiki was removed in 0.7.", "warning");
285
326
  }
327
+ if (sessionClosing)
328
+ return;
286
329
  ctx.ui.setStatus("pi-para", "wiki: ready");
287
- if (!printMode)
288
- setTimeout(() => ctx.ui.setStatus("pi-para", undefined), 3000);
330
+ if (!printMode) {
331
+ readyStatusTimer = setTimeout(() => {
332
+ readyStatusTimer = null;
333
+ if (!sessionClosing)
334
+ ctx.ui.setStatus("pi-para", undefined);
335
+ }, 3000);
336
+ }
289
337
  }
290
338
  // -- session_tree ----------------------------------------------------------
291
339
  pi.on("session_tree", async (_event, ctx) => {
@@ -316,11 +364,34 @@ export default async function piPara(pi) {
316
364
  });
317
365
  // -- session_shutdown: register session for scheduler, close store ---------
318
366
  pi.on("session_shutdown", async (_event, ctx) => {
319
- // 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;
320
371
  if (startupMaintenanceTimer) {
321
372
  clearTimeout(startupMaintenanceTimer);
322
373
  startupMaintenanceTimer = null;
323
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
+ }
324
395
  // 1. Register session as completed (scheduler catch-up processes later)
325
396
  const sessionFile = ctx.sessionManager.getSessionFile();
326
397
  if (sessionFile) {
@@ -331,8 +402,8 @@ export default async function piPara(pi) {
331
402
  // Non-fatal — startup catch-up can also discover sessions via filesystem scan
332
403
  }
333
404
  }
334
- // 2. Stop scheduler and close the store (instant)
335
- stopWikiScheduler(wikiDir);
405
+ // 2. Stop scheduler, await any in-flight SQLite work, then close the store.
406
+ await stopWikiScheduler(wikiDir);
336
407
  if (store) {
337
408
  try {
338
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":"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"}
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.6",
3
+ "version": "0.7.8",
4
4
  "description": "PARA Knowledge Base Extension for pi — persistent, LLM-curated personal wiki",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -152,8 +152,8 @@
152
152
  },
153
153
  "dependencies": {
154
154
  "@types/better-sqlite3": "^7.6.13",
155
- "better-sqlite3": "^12.11.1",
156
- "qmd-engine": "^2.6.1",
155
+ "better-sqlite3": "13.0.3",
156
+ "qmd-engine": "2.6.2",
157
157
  "yaml": "^2.8.2"
158
158
  },
159
159
  "engines": {
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;
@@ -221,18 +230,26 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
221
230
  // Interactive sessions must NEVER wait on wiki initialization: store
222
231
  // opens, git init, scope detection, and model-service setup have all
223
232
  // intermittently stalled behind cross-process contention (locks, slow
224
- // IO, network), blocking the whole TUI at "wiki: indexing...". Run the
225
- // complete initialization in the background — wiki tools already
226
- // self-heal via retryStoreOpen() when queried before the store is open.
227
- // Print/RPC one-shot runs still await: they may query immediately and
228
- // exit, so ordering matters more than TUI latency there.
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
+
229
244
  if (ctx.hasUI) {
230
- void initializeSession(ctx).catch(() => {
231
- try { ctx.ui.setStatus("pi-para", "wiki: init failed"); } catch { /* ui gone */ }
245
+ void pending.catch(() => {
246
+ if (!sessionClosing) {
247
+ try { ctx.ui.setStatus("pi-para", "wiki: init failed"); } catch { /* ui gone */ }
248
+ }
232
249
  });
233
250
  return;
234
251
  }
235
- await initializeSession(ctx);
252
+ await pending;
236
253
  });
237
254
 
238
255
  async function initializeSession(ctx: ExtensionContext): Promise<void> {
@@ -241,30 +258,42 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
241
258
  try {
242
259
  await initWiki(wikiDir);
243
260
  } catch (err) {
244
- ctx.ui.notify(
245
- `Wiki init failed: ${err instanceof Error ? err.message : String(err)}`,
246
- "error",
247
- );
261
+ if (!sessionClosing) {
262
+ ctx.ui.notify(
263
+ `Wiki init failed: ${err instanceof Error ? err.message : String(err)}`,
264
+ "error",
265
+ );
266
+ }
248
267
  }
268
+ if (sessionClosing) return;
249
269
 
250
270
  ctx.ui.setStatus("pi-para", "wiki: indexing...");
251
271
  storeDisabled = false;
252
272
  try {
253
- store = await openStore(wikiDir, {
273
+ const openedStore = await openStore(wikiDir, {
254
274
  paraConfig: loadedConfig.userConfig ?? undefined,
255
275
  secretsPath: loadedConfig.secretsPath ?? undefined,
256
276
  backgroundEmbed: false,
257
277
  });
278
+ if (sessionClosing) {
279
+ await closeStore(openedStore);
280
+ return;
281
+ }
282
+ store = openedStore;
258
283
  } catch (err) {
259
284
  store = null;
260
285
  storeDisabled = true;
261
- ctx.ui.notify(
262
- `Wiki search disabled: ${err instanceof Error ? err.message : String(err)}`,
263
- "warning",
264
- );
286
+ if (!sessionClosing) {
287
+ ctx.ui.notify(
288
+ `Wiki search disabled: ${err instanceof Error ? err.message : String(err)}`,
289
+ "warning",
290
+ );
291
+ }
265
292
  }
293
+ if (sessionClosing) return;
266
294
 
267
295
  currentScope = await detectScope(ctx.cwd);
296
+ if (sessionClosing) return;
268
297
 
269
298
  const savedState = reconstructState(ctx);
270
299
  if (savedState?.lastScope.source === "config") {
@@ -305,6 +334,7 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
305
334
  } catch {
306
335
  // Capture handler registration is best-effort; manual capture remains available.
307
336
  }
337
+ if (sessionClosing) return;
308
338
 
309
339
  const embedEnabled = loadedConfig.userConfig?.qmd.embedEnabled !== false;
310
340
  const schedulerEnabled = !printMode && schedulerConfig?.enabled !== false;
@@ -332,8 +362,9 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
332
362
  const startupDelayMs = Number.isFinite(envDelay) && envDelay >= 0 ? envDelay : 30_000;
333
363
  startupMaintenanceTimer = setTimeout(() => {
334
364
  startupMaintenanceTimer = null;
335
- void (async () => {
336
- if (embedEnabled && store) {
365
+ if (sessionClosing) return;
366
+ const maintenance = (async () => {
367
+ if (embedEnabled && store && !sessionClosing) {
337
368
  try {
338
369
  scheduler.embedEnabled = true;
339
370
  scheduler.enqueue("qmd-embed", {}, { dedupeKey: "qmd-embed", priority: 5 });
@@ -356,6 +387,10 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
356
387
  // Tick failures are recorded in scheduler history.
357
388
  }
358
389
  })();
390
+ startupMaintenancePromise = maintenance;
391
+ void maintenance.finally(() => {
392
+ if (startupMaintenancePromise === maintenance) startupMaintenancePromise = null;
393
+ }).catch(() => { /* maintenance is best-effort */ });
359
394
  }, startupDelayMs);
360
395
  startupMaintenanceTimer.unref?.();
361
396
  }
@@ -363,8 +398,14 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
363
398
  if (loadedConfig.userConfig?.webWiki.enabled && !printMode) {
364
399
  ctx.ui.notify("webWiki configuration is ignored because Web Wiki was removed in 0.7.", "warning");
365
400
  }
401
+ if (sessionClosing) return;
366
402
  ctx.ui.setStatus("pi-para", "wiki: ready");
367
- if (!printMode) setTimeout(() => ctx.ui.setStatus("pi-para", undefined), 3000);
403
+ if (!printMode) {
404
+ readyStatusTimer = setTimeout(() => {
405
+ readyStatusTimer = null;
406
+ if (!sessionClosing) ctx.ui.setStatus("pi-para", undefined);
407
+ }, 3000);
408
+ }
368
409
  }
369
410
 
370
411
  // -- session_tree ----------------------------------------------------------
@@ -399,11 +440,32 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
399
440
  // -- session_shutdown: register session for scheduler, close store ---------
400
441
 
401
442
  pi.on("session_shutdown", async (_event, ctx) => {
402
- // 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;
403
447
  if (startupMaintenanceTimer) {
404
448
  clearTimeout(startupMaintenanceTimer);
405
449
  startupMaintenanceTimer = null;
406
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
+ }
407
469
 
408
470
  // 1. Register session as completed (scheduler catch-up processes later)
409
471
  const sessionFile = ctx.sessionManager.getSessionFile();
@@ -415,8 +477,8 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
415
477
  }
416
478
  }
417
479
 
418
- // 2. Stop scheduler and close the store (instant)
419
- stopWikiScheduler(wikiDir);
480
+ // 2. Stop scheduler, await any in-flight SQLite work, then close the store.
481
+ await stopWikiScheduler(wikiDir);
420
482
 
421
483
  if (store) {
422
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(