Skip to content

fix(pdf): attendre les indexations en vol avant de fermer le store (#38)#45

Merged
cliodeck merged 1 commit into
mainfrom
fix/38-pdf-index-project-switch
Jul 24, 2026
Merged

fix(pdf): attendre les indexations en vol avant de fermer le store (#38)#45
cliodeck merged 1 commit into
mainfrom
fix/38-pdf-index-project-switch

Conversation

@inactinique

Copy link
Copy Markdown
Collaborator

Résumé

Basculer de projet pendant une indexation PDF fermait le store SQLite sous l'indexeur en vol : pdfService.init() fait vectorStore.close() inconditionnellement, et PdfIndexer (référence injectée au constructeur) écrit après le long await d'extraction isolée → « database connection is not open ». Pas de corruption croisée (contrairement à #33), mais un échec bruyant d'une indexation saine.

Correctif

  • Les jobs indexPDF sont suivis dans un Set de promesses (inFlightIndexing).
  • init() et close() appellent drainInFlightIndexing() avant vectorStore.close() : attente de la fin des jobs, bornée à 30 s pour qu'une extraction bloquée ne gèle pas la bascule de projet — au-delà, on ferme quand même et l'indexation échoue avec une erreur visible côté renderer.

Vérification

npm run build vert. Course inter-handlers IPC sur l'état singleton du main, non reproductible sous vitest node sans harnais Electron.

Closes #38

🤖 Generated with Claude Code

pdfService.init() fermait le vector store inconditionnellement à la
bascule de projet. Le PdfIndexer garde sa référence injectée au
constructeur et écrit après le long await d'extraction isolée : le
handle SQLite était fermé sous lui — « database connection is not
open » au retour, échec bruyant d'une indexation par ailleurs saine.

Les jobs d'indexation sont désormais suivis (Set de promesses) ;
init() et close() les drainent avant de fermer, avec une attente
bornée à 30 s pour qu'une extraction bloquée ne gèle pas la bascule
(au-delà, l'indexation échoue avec une erreur visible, pas un crash).

Closes #38

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@cliodeck
cliodeck merged commit e4aba5f into main Jul 24, 2026
2 checks passed
@cliodeck
cliodeck deleted the fix/38-pdf-index-project-switch branch July 24, 2026 16:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PDF indexing can crash if you switch projects while it's still running

2 participants