L'édition d'un .xlsx pouvait détruire une partie du classeur, le concurrencer en silence, ou diffuser une injection de formule. - BUG-085 : inspect_workbook() détecte ce qu'un round-trip openpyxl perd (valeurs calculées en cache, slicers, contrôles, connexions, custom XML, signature, commentaires enrichis, macros) → xlsx_lossy_features exposé en lecture, bandeau FR/EN, et 409 xlsx_lossy_content sans `force` (confirmation explicite puis reprise). Périmètre réel revalidé : graphiques, images et TCD survivent au round-trip. - BUG-086 : écriture atomique (fichier .tmp + os.replace) : un plantage ne peut plus tronquer le classeur, le backup reste intact. - BUG-087 : verrou par fichier autour du read-modify-write (timeout 15 s, 409 conflict) ; endpoint xlsx/save devenu synchrone pour que l'attente s'exécute dans le threadpool. - BUG-088 : une saisie en '=' ou '@' est stockée en texte, sauf opt-in `allow_formula` ou le bouton f(x) de la visionneuse. Le handler ServiceError expose désormais code + details, que api() propage. - BUG-084 : la suppression d'une vault purge enfin l'index inversé (documents fantômes qui continuaient de matcher) et is_stale() devient is_ready(), le nom étant trompeur (la staleness n'existe plus). Tests : 1390 pytest, 10 JSDOM (xlsx-viewer.test.mjs, branché au CI), 3 E2E Playwright, suite E2E complète verte, ruff/mypy 0. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <[email protected]>
54 lines
1.1 KiB
Plaintext
54 lines
1.1 KiB
Plaintext
__pycache__/
|
|
*.pyc
|
|
*.pyo
|
|
# Scripts de debogage temporaires (analyse de logs e2e)
|
|
_*.py
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
.venv/
|
|
.venv-e2e/
|
|
venv/
|
|
*.egg-info/
|
|
dist/
|
|
build/
|
|
config.json
|
|
data/
|
|
.coverage
|
|
.coverage
|
|
odysseus/
|
|
node_modules/
|
|
test-results/
|
|
playwright-report/
|
|
**/.obsigate-backup/
|
|
|
|
# Desktop build artifacts
|
|
desktop/target/
|
|
desktop/python-embed/
|
|
desktop/frontend-static/
|
|
desktop/checksums.txt
|
|
desktop/backend/
|
|
desktop/frontend/
|
|
backend/VERSION
|
|
|
|
# Artefacts générés par les runs E2E (excalidraw crée ces diagrammes)
|
|
test_vault/IT/e2e-diagram-*.excalidraw
|
|
|
|
# Fixtures de test locales non versionnées (~200 Mo, pas de fixture CI).
|
|
# Aucun test/CI ne les référence : les tests unitaires génèrent leurs fixtures
|
|
# dans tmp_path (tests/conftest.py), et l'E2E n'utilise que les fixtures
|
|
# committées (test_vault/sample-*.{mp3,png,svg,webm,pdf}, test_dir/*.md).
|
|
# → à committer volontairement : `git add -f <chemin>`.
|
|
test_dir/music/
|
|
test_dir/video/
|
|
test_vault/images/
|
|
test_vault/markdown/
|
|
test_vault/budget.xlsx
|
|
|
|
# Tauri updater signing keys (private key — never commit)
|
|
desktop/*.key
|
|
desktop/*.key.pub
|
|
desktop/key/
|
|
|
|
|