Skip to content

v0.14.2 — Multi-Instanz: export-enabled Sync zuerst

Choose a tag to compare

@dibi73 dibi73 released this 02 May 03:02
· 143 commits to main since this release
112f358

Multi-Instanz Sync-Reihenfolge — export-enabled zuerst

Vorher: bookstack_sync.run_now und preview haben die konfigurierten BookStack-Instanzen in der Reihenfolge ihrer Config-Entry-Erstellung abgearbeitet. Wenn eine der Instanzen den Markdown-Export aktiviert hat, lief sie potentiell mittendrin durch — der Post-Sync-Export griff auf einen Stand, in dem andere Instanzen noch mid-sync waren. Resultat: das exportierte Markdown-Verzeichnis konnte einen inkonsistenten Snapshot enthalten (frische Daten der einen, veraltete der anderen). Für den nachgelagerten RAG-Indexer ist das Crawl-Müll.

Jetzt: services._coordinators sortiert die Entries vor jedem Service-Aufruf via stable-sort by not export_enabled. Die einzelne export-enabled Instanz (Single-Writer-Constraint aus v0.13.1 garantiert maximal eine) landet an Position 0; alle anderen behalten ihre Erstellungsreihenfolge.

Auswirkung in der Praxis:

  • Wer nur eine Instanz hat: keine Änderung
  • Wer zwei oder mehr Instanzen hat und Export aktiv: die export-enabled Instanz wird IMMER zuerst gesynct, der nachfolgende Markdown-Export läuft auf einem konsistenten Stand
  • Greift bei bookstack_sync.run_now und preview. export_markdown filtert ohnehin nur export-enabled Entries und ist unverändert.

Tests in tests/test_services.py:

  • test_coordinators_export_enabled_first: drei Entries A(off), B(on), C(off) → Output B, A, C
  • test_coordinators_no_export_enabled_keeps_natural_order: ohne Flag bleibt Reihenfolge natürlich

176 Tests grün lokal in WSL Ubuntu Python 3.14 in 19 s.

Pull Request

#81