-
Documentation and package boundary corrections (2026-10-12): Clarified that core indexing/search use the local database while optional provider and synchronization paths may transfer configured data; corrected CLI/configuration documentation; bounded dependency/license and security statements; added a wheel/sdist smoke gate for the packaged GUI icon. Version remains 0.4.0.
-
Bugfix-Sweep (2026-10-06):
- FTS5-Delete-Trigger repariert (Schema v5): Die Trigger nutzten den FTS5-
'delete'-Befehl auf regulären FTS5-Tabellen →SQL logic errorbei jedem Löschen von Chunks (Re-Ingest,index --force, Web-Viewer-Löschen,deduplicate). Bestehende Datenbanken werden beim Öffnen migriert. - Löschen konsistent: Web-Viewer und
deduplicateentfernen zuerst die DB-Einträge (Transaktion) und verschieben danach die Datei in_Papierkorb; Fehler pro Eintrag brechen den Lauf nicht mehr ab. - GUI: Falsche relative Imports (
..schema/..config) ließen die Dokumentliste immer leer; nach dem Sortieren wurde das falsche Dokument geöffnet; Scan-Threads nutzten eine im GUI-Thread erzeugte SQLite-Connection (jede Datei schlug fehl); EventBus-Handler liefen in Worker-Threads (jetzt Queued-Dispatch in den GUI-Thread). - Summarizer: Fehlgeschlagene Chunks führen zu Status
errorstattdone; verwaisteprocessing-Einträge (> 30 min) werden zurückgesetzt, Ctrl+C setzt das aktuelle Item aufpending; Kostenschätzung auf claude-haiku-4-5-Preise ($1/$5 pro MTok) aktualisiert. - Suche: FTS5-Syntaxfehler (z.B.
COVID-19,E-Mail,c++) werden mit quotierten Tokens wiederholt, danach LIKE-Fallback (auch für Dokumente);%/_werden in LIKE-Fallbacks und Verzeichnisfiltern escaped; Verzeichnisfilter matchen keine Geschwister-Ordner mehr (docs≠docs2). - Ingest: Re-Ingest setzt Zusammenfassungen und Queue-Status zurück; archivierte Dokumente werden über
archived_pathgefunden; UTF-8-BOM wird entfernt (Frontmatter-Erkennung); der Chunker erzwingt die Obergrenze von 500 Wörtern auch bei Text ohne Satzgrenzen. - Sonstiges:
is_active = 0bleibt beim Skill-Index erhalten; Operator-Präzedenz beicontent_hashkorrigiert;Configteilt Default-Listen nicht mehr zwischen Instanzen;zoll_station.pyruft die CLI als Modul auf; plattformübergreifendes Öffnen von Dateien (Windows/macOS/Linux). - Transit-Sync optional:
sqlite-transit-syncist nicht auf PyPI – Import ist jetzt optional, die Sync-Tests werden ohne Paket übersprungen statt die gesamte Test-Collection abzubrechen. - Tests: 43 neue Regressionstests (
tests/test_bugfixes_2026_10.py) plus Lifecycle-Tests intests/test_transit.py.
- FTS5-Delete-Trigger repariert (Schema v5): Die Trigger nutzten den FTS5-
-
Discoverability, Visual Architecture & Level 1 SBOM (Pfad B, 2026-09-22):
- 18-Point Bilingual Navigation Parity: Implemented 18-point dual-anchor navigation parity (
<a id="sec-01"></a>...<a id="sec-18"></a>) acrossREADME.mdandREADME_de.mdwith reciprocal dual anchors for backward compatibility. - Target Personas & SEO Discovery: Added explicit persona profiles (
[PERSONA-01]to[PERSONA-04]) with high-intent search queries for AI engineers, researchers, compliance officers, and automation builders. - Comprehensive 10-Dimension Comparison Matrix: Integrated comparison matrix benchmarking KnowledgeDigest against cloud SaaS (Notion AI, Glean), heavy vector databases (Pinecone, Chroma), desktop search (Everything, Spotlight), and ad-hoc scripts.
- Level 1 SBOM & Governance Invariants: Created canonical
NOTICEattribution andTHIRD_PARTY_LICENSES.mddocumenting direct dependencies, 10 runtime invariants (INV-LOCAL-01toINV-SLA-10), and unprivileged user mode (RunAsInvoker). - Zero-Copyleft Isolation Guarantee: Reaffirmed Decision E08 isolating distribution from AGPL copyleft through
pypdfium2(Apache-2.0 / BSD-3-Clause) and dynamically linked PySide6 (LGPL-3.0). - Statutory Disclaimer & Security SLA: Embedded German statutory gift disclaimer (§ 521 BGB Gefälligkeitsrecht) and 48-hour initial response SLA into Section 18 of both documentation files.
- GitHub Topics & Metadata: Saturated 20/20 topics on GitHub and synced 20 keywords in
pyproject.toml. Expanded[project.urls]with Notice, Third-Party Licenses, Marketing Log, LLM Ready, and Bug Tracker. - Windows Pytest Hardening: Configured
addopts = "-ra -q --basetemp=.pytest_tmp"inpyproject.tomlto prevent Windows symlink temp file collisions ([WinError 5]), and updated.gitignorefor multi-host and lock defense. - Contract Test Suite Expansion: Added comprehensive metadata contract tests in
tests/test_metadata.pyverifying NOTICE, Level 1 SBOM, 18-point bilingual navigation, version freeze at0.4.0(T-20260920-167562623), and § 521 BGB / 48h SLA clauses.
- 18-Point Bilingual Navigation Parity: Implemented 18-point dual-anchor navigation parity (
-
Repository Hygiene & Critical Scoping Fix (Pfad A):
- Fixed
F823 UnboundLocalErroronPathindigest.pycaused by inner import shadowing module-level variable in CLIdupscommand. - Resolved 24 code and import warnings across
digest.py,web_viewer.py,chunker.py,gemini_flash_summarizer.py,summarizer.py,launcher.py,gui/app.py,gui/main_window.py,gui/panels/document_list.py,gui/widgets/search_bar.py, and test suites.ruff check .now passes with 0 issues.
- Fixed
-
Packaging & PEP 621 Standardization:
- Upgraded
pyproject.tomlwith PEP 621 compliant metadata,license = { text = "MIT" }, Python 3.13 and OS classifiers. - Added grouped optional dependencies (
extract,gui,llm,test,all). - Expanded
[project.urls]with canonical links to Documentation, Architecture, Changelog, Security Policy, Parent Organization (file-bricks), and Umbrella Ecosystem (open-bricks). - Configured pytest default options (
addopts = "-ra -v").
- Upgraded
-
CI Matrix Hardening (
.github/workflows/tests.yml):- Replaced invalid action versions with official
actions/checkout@v4andactions/setup-python@v5. - Added workflow-level
concurrencywithcancel-in-progress: trueto prevent duplicate CI runs. - Added 15-minute job timeout and expanded Python test matrix to
["3.10", "3.11", "3.12", "3.13"].
- Replaced invalid action versions with official
-
Git & Multi-Host Sync Hygiene:
- Added
.gitignorepatterns for multi-host conflict artifacts (*-ASUS-GEI*,*-WORKSTATION-LG*,*.sync-conflict-*,*.conflict) and testing/linting caches (.pytest_cache/,.ruff_cache/,.coverage).
- Added
-
Security Policy Hardening:
- Updated
SECURITY.mdwith supported versions table (0.4.x active support), response SLAs (48h acknowledgement, 5 business days triage), and local-first zero-egress invariants.
- Updated
-
Contract Test Suite Expansion:
- Added
tests/test_metadata.pywith 8 automated contract tests covering PEP 621 structure, version parity, manifest integrity, bytecode compilation across all files, security policy clauses, CI workflow guardrails, and banner preservation (HOOK-BANNER-ASSET-01). Total test suite expanded to 148 passed tests.
- Added
-
Documentation & Badges:
- Synchronized test badges in
README.mdandREADME_de.mdto 148 passed. - Refreshed
llms.txttimestamp to 2026-09-14.
- Synchronized test badges in
-
Discoverability, Design & Architecture Enhancement (Path B).
-
Updated test badges to 130 passed tests, added PySide6 and Architecture badges.
-
Added comprehensive Ingestion & Retrieval Lifecycle Sequence Diagram (
mermaid) toREADME.md,README_de.md, andARCHITECTURE.md. -
Completed and enriched
## What It Doessection inREADME.mdwith detailed capabilities and value proposition. -
Validated all Mermaid diagrams with
lint_mermaid.py(0 syntax issues). -
Synchronized
llms.txttimestamp and architecture references.
- Discoverability, SEO & README Design Audit (Path B).
README.md&README_de.md: integrated Shields.io badges (Pytest 92 passed, Local-First, LLM-Ready), GFM LLM note callout (> [!NOTE]), and Mermaid system architecture diagram.pyproject.toml: added[tool.pytest.ini_options]withpythonpath = "."andtestpaths = ["tests"].llms.txt: updatedLast-checkedtimestamp to2026-07-26.
- Technical hygiene audit: verified Pytest test suite (92/92 passed cleanly).
llms.txt: updatedLast-checkedtimestamp to 2026-07-25..gitignore: added patterns for host-specific local README copies (README-*Studio.md).
- Web viewer: state-changing routes (
/open/,/api/reset_doc/,/api/delete_file/) are now POST-only (405 on GET — previously a simple<img src>GET could delete files), with a Host-header gate against DNS rebinding and an Origin/Referer gate against CSRF (empty Origin stays allowed so local CLI tools like curl keep working). Regression tests intests/test_web_viewer_security.py. - Web viewer: FTS5 search snippets are now HTML-escaped before
<mark>highlighting is re-inserted (stored XSS via indexed document content).
- Config discovery now honors
$XDG_CONFIG_HOME/~/.config/knowledgedigest/on Linux/macOS (as the README already promised) and skips an empty%APPDATA%. - The
summarize_modelconfig key is now passed through to the summarizer (was previously ignored). - Server-specific deployment scripts removed from the public repository (kept privately).
llms.txt: added## Last-checked: 2026-06-11,## Audience(5 groups), and## Search Phrasesfenced code block (9 phrases).README.md: corrected BACH Integration link (github.com/lukisch→github.com/ellmos-ai/bach).
TODO.mdremoved from Git tracking and added to.gitignore(contained internal audit paths).
- Updated the test workflow to current
actions/checkout@v6andactions/setup-python@v6majors.
- Added packaging metadata so the repository can be installed as
knowledgedigestwhile exposing theKnowledgeDigestpackage. - Added GitHub Actions test workflow for Python 3.10, 3.11, and 3.12.
- Updated community workflow action versions.
- Corrected repository links from the former
lukischlocation tofile-bricks/knowledgedigest. - Aligned public docs with version
0.4.0and cleaned visible encoding artifacts.
- Added unit tests for core modules.
- Added KnowledgeDigest icon and EXE build support.
- Backported v0.4.0 features from the local knowledge database line, including Gemini Flash summarization, deduplication, trash handling, and agent routing.
