bruno
76de3dd75e
chore(release): bump version 2.81.0 (Coffre Secrets Phases 2-5)
2026-10-28 00:16:05 -04:00
bruno
687427381d
chore(release): bump version 2.81.0 (Coffre Secrets Phases 2-5)
2026-10-28 00:16:03 -04:00
bruno
e418d87802
Merge pull request '[Coffre Secrets] Phase 5 — Documentation de deploiement et mise en service' ( #30 ) from feat/coffre-phase5-deploiement into main
CI / lint (push) Failing after 0s
CI / security (push) Failing after 0s
CI / build (push) Skipped
2026-10-28 00:15:09 -04:00
bruno
a1f3690085
Merge pull request '[Coffre Secrets] Phase 2 — Migration api_keys.json, sauvegarde/restauration KEK, contrat distribution, consommateurs + correctif UI modale' ( #29 ) from feat/coffre-phase2 into main
CI / lint (push) Failing after 1s
CI / security (push) Failing after 0s
CI / build (push) Skipped
2026-10-28 00:15:06 -04:00
bruno
0a7bed10bf
Phase 5 (issue #23 ) : correction numerotation etape lecteurs internes (4, pas 5)
CI / lint (pull_request) Failing after 1s
CI / test (pull_request) Skipped
CI / build (pull_request) Skipped
CI / e2e (pull_request) Skipped
CI / security (pull_request) Failing after 0s
2026-10-28 00:11:20 -04:00
bruno
32996ce9aa
Phase 5 (issue #23 ) : deploiement et mise en service du coffre Secrets
2026-10-28 00:10:51 -04:00
bruno
b42265b41e
Phase 2 coffre: correctif modale (max-height viewport + scroll interne)
CI / security (pull_request) Failing after 1s
CI / lint (pull_request) Failing after 1m46s
CI / test (pull_request) Skipped
CI / build (pull_request) Skipped
CI / e2e (pull_request) Skipped
2026-10-27 23:45:44 -04:00
bruno
0fc7654f6c
Phase 2 coffre: cles i18n import (en)
2026-10-27 23:45:38 -04:00
bruno
effad97472
Phase 2 coffre: cles i18n import (fr)
2026-10-27 23:45:33 -04:00
bruno
53d98bfffe
Phase 2 coffre: variables OBSIGATE_SECRETS_ENABLED/KEK documentees (sans valeur)
2026-10-27 23:45:20 -04:00
bruno
62aa6079be
Phases 3-4 coffre: contrat de distribution Spark et consommateurs
2026-10-27 23:45:16 -04:00
bruno
7d48f65ff9
Phase 2 coffre: documentation sauvegarde/restauration KEK
2026-10-27 23:45:13 -04:00
bruno
3acadf6ad7
Phase 2 coffre: bouton Importer l'existant (import puis purge confirmee)
2026-10-27 23:45:10 -04:00
bruno
5492f99f06
Phase 2 coffre: tests migration, restauration vierge, Spark, consommateurs
2026-10-27 23:45:05 -04:00
bruno
71221e055b
Phase 2 coffre: migration, consommateur+octrois, contexte Spark imbrique
2026-10-27 23:44:58 -04:00
bruno
86330e8f65
Phase 2 coffre: module migration api_keys.json -> coffre d'instance (import + purge confirmee)
2026-10-27 23:44:43 -04:00
bruno
f3b507b8d9
Merge pull request '[Theme] Nouveau theme Spark (dark/light, identique a la Console Spark) et defaut = Spark dark' ( #28 ) from feat/theme-spark into main
CI / security (push) Failing after 0s
CI / lint (push) Successful in 3m6s
CI / test (push) Failing after 0s
CI / build (push) Skipped
2026-10-27 23:25:10 -04:00
bruno
c01c7e862d
Merge pull request '[fix] Mypy Coffre Secrets (3 erreurs) + version 2.80.2' ( #27 ) from fix/mypy-coffre-2.80.2 into main
CI / lint (push) Failing after 0s
CI / security (push) Failing after 0s
CI / build (push) Skipped
2026-10-27 23:24:44 -04:00
bruno
99cd765997
[fix] CHANGELOG 2.80.2 : bouton Nouveau secret + plancher msgpack
CI / lint (pull_request) Failing after 0s
CI / security (pull_request) Failing after 0s
CI / test (pull_request) Skipped
CI / build (pull_request) Skipped
CI / e2e (pull_request) Skipped
2026-10-27 23:20:41 -04:00
bruno
5266506b56
[fix] Securite : plancher msgpack>=1.2.3 (CVE-2026-114613, pip-audit bloquant)
CI / lint (pull_request) Failing after 1s
CI / test (pull_request) Skipped
CI / build (pull_request) Skipped
CI / e2e (pull_request) Skipped
CI / security (pull_request) Successful in 1m56s
2026-10-27 23:20:35 -04:00
bruno
682a5030d3
[fix] Coffre Secrets : valeurField attache l'oeil a wrap avant insertBefore (NotFoundError bouton Nouveau secret)
CI / security (pull_request) Failing after 0s
CI / lint (pull_request) Successful in 3m19s
CI / test (pull_request) Failing after 1m47s
CI / build (pull_request) Skipped
CI / e2e (pull_request) Skipped
2026-10-27 23:20:30 -04:00
bruno
fc3d847d85
[fix] mypy Coffre + bump 2.80.2 : CHANGELOG.md
CI / security (pull_request) Failing after 2m29s
CI / lint (pull_request) Successful in 2m55s
CI / test (pull_request) Failing after 5m10s
CI / build (pull_request) Skipped
CI / e2e (pull_request) Skipped
2026-10-27 23:10:51 -04:00
bruno
82756030c6
[fix] mypy Coffre + bump 2.80.2 : docs/ROADMAP.md
2026-10-27 23:10:48 -04:00
bruno
0352451ead
[fix] mypy Coffre + bump 2.80.2 : README.fr.md
2026-10-27 23:10:44 -04:00
bruno
593cf492c3
[fix] mypy Coffre + bump 2.80.2 : README.md
2026-10-27 23:10:41 -04:00
bruno
0b8ad8b0f3
[fix] mypy Coffre + bump 2.80.2 : desktop/Cargo.lock
2026-10-27 23:10:39 -04:00
bruno
111d927ece
[fix] mypy Coffre + bump 2.80.2 : desktop/Cargo.toml
2026-10-27 23:10:36 -04:00
bruno
2dae023ee3
[fix] mypy Coffre + bump 2.80.2 : desktop/tauri.conf.json
2026-10-27 23:10:34 -04:00
bruno
b12122f78a
[fix] mypy Coffre + bump 2.80.2 : package.json
2026-10-27 23:10:31 -04:00
bruno
0c7b3162c8
[fix] mypy Coffre + bump 2.80.2 : VERSION
2026-10-27 23:10:29 -04:00
bruno
d4d050297b
[fix] mypy Coffre + bump 2.80.2 : backend/coffre_store.py
2026-10-27 23:10:27 -04:00
bruno
8d768bf9d5
[fix] mypy Coffre + bump 2.80.2 : backend/coffre_crypto.py
2026-10-27 23:10:24 -04:00
bruno
47ac8bf6c0
Merge pull request '[fix] Version 2.80.1 synchronisee + corrections ruff (60 erreurs CI)' ( #26 ) from fix/version-2.80.1-ruff into main
CI / security (push) Failing after 1s
CI / lint (push) Failing after 2m10s
CI / build (push) Skipped
2026-10-27 23:00:13 -04:00
bruno
01572736c0
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/webhooks.py
CI / security (pull_request) Successful in 1m57s
CI / lint (pull_request) Failing after 2m7s
CI / test (pull_request) Skipped
CI / build (pull_request) Skipped
CI / e2e (pull_request) Skipped
2026-10-27 22:58:14 -04:00
bruno
b6e5f01748
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/watcher.py
2026-10-27 22:58:11 -04:00
bruno
90da0ac990
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/tools/audit.py
2026-10-27 22:58:08 -04:00
bruno
bc26d1506b
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/share.py
2026-10-27 22:58:05 -04:00
bruno
769e3ca559
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/services/vaults.py
2026-10-27 22:58:02 -04:00
bruno
b5d789f02a
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/services/recent.py
2026-10-27 22:57:59 -04:00
bruno
c8dce25e0d
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/services/backups.py
2026-10-27 22:57:56 -04:00
bruno
b322e2d24a
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/scheduler.py
2026-10-27 22:57:53 -04:00
bruno
414ec69c0a
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/routers/realtime.py
2026-10-27 22:57:50 -04:00
bruno
f5ca656c04
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/routers/backups.py
2026-10-27 22:57:47 -04:00
bruno
e158232aba
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/push.py
2026-10-27 22:57:44 -04:00
bruno
632871ac24
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/notify.py
2026-10-27 22:57:40 -04:00
bruno
7af7b2c8c2
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/indexer.py
2026-10-27 22:57:36 -04:00
bruno
97132770e4
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/guide_export.py
2026-10-27 22:57:32 -04:00
bruno
683ad3ef94
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/export.py
2026-10-27 22:57:29 -04:00
bruno
604383f51c
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/coffre_store.py
2026-10-27 22:57:25 -04:00
bruno
bdeb2f00b3
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/coffre_crypto.py
2026-10-27 22:57:21 -04:00
bruno
8688875fae
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/bookslm_routes.py
2026-10-27 22:57:17 -04:00
bruno
a42271c7de
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/auth/user_store.py
2026-10-27 22:57:13 -04:00
bruno
cf4685eaf1
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/auth/router.py
2026-10-27 22:57:10 -04:00
bruno
5023fb6774
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/audit.py
2026-10-27 22:57:06 -04:00
bruno
04eb70cbe4
[fix] Corrections ruff CI (UP017/UP041/UP012/I001/F401/FURB162) : backend/admin.py
2026-10-27 22:57:01 -04:00
bruno
4dc010f54d
[fix] Bump VERSION 2.79.0 -> 2.80.1 (synchronisation bump_version.py) : CHANGELOG.md
2026-10-27 22:56:57 -04:00
bruno
f7e36bc44e
[fix] Bump VERSION 2.79.0 -> 2.80.1 (synchronisation bump_version.py) : docs/ROADMAP.md
2026-10-27 22:56:53 -04:00
bruno
a9ac1c06a7
[fix] Bump VERSION 2.79.0 -> 2.80.1 (synchronisation bump_version.py) : README.fr.md
2026-10-27 22:56:48 -04:00
bruno
9bf6e7492f
[fix] Bump VERSION 2.79.0 -> 2.80.1 (synchronisation bump_version.py) : README.md
2026-10-27 22:56:43 -04:00
bruno
14070cef43
[fix] Bump VERSION 2.79.0 -> 2.80.1 (synchronisation bump_version.py) : desktop/Cargo.lock
2026-10-27 22:56:37 -04:00
bruno
6b1abbb50e
[fix] Bump VERSION 2.79.0 -> 2.80.1 (synchronisation bump_version.py) : desktop/Cargo.toml
2026-10-27 22:56:33 -04:00
bruno
46c641ebc5
[fix] Bump VERSION 2.79.0 -> 2.80.1 (synchronisation bump_version.py) : desktop/tauri.conf.json
2026-10-27 22:56:30 -04:00
bruno
2d036f5126
[fix] Bump VERSION 2.79.0 -> 2.80.1 (synchronisation bump_version.py) : package.json
2026-10-27 22:56:27 -04:00
bruno
2c69e357b8
[fix] Bump VERSION 2.79.0 -> 2.80.1 (synchronisation bump_version.py) : VERSION
2026-10-27 22:56:25 -04:00
bruno
ba81f22d40
Merge pull request '[Coffre Secrets] Phase 1 complète : chiffrement, API et UI (1a + 1b + 1c)' ( #25 ) from feat/coffre-secrets-phase1 into main
CI / lint (push) Failing after 1m47s
CI / build (push) Skipped
CI / security (push) Successful in 1m58s
2026-10-27 22:29:09 -04:00
bruno
070add4e7b
[Thème Spark] Anti-FOUC admin aligné sur fond/texte Spark
CI / security (pull_request) Failing after 0s
CI / lint (pull_request) Successful in 3m10s
CI / test (pull_request) Failing after 5m22s
CI / build (pull_request) Skipped
CI / e2e (pull_request) Skipped
2026-10-27 22:10:14 -04:00
bruno
847b3225b2
[Thème Spark] Splash et meta theme-color alignés sur Spark dark
2026-10-27 22:10:11 -04:00
bruno
3ae5c7efac
[Thème Spark] Bloc :root de secours aligné sur la palette dark Spark
2026-10-27 22:10:07 -04:00
bruno
4966c27548
[Thème Spark] Ajout du thème 'spark' (dark/light, 39 variables) et défaut spark/dark
2026-10-27 22:10:04 -04:00
bruno
06c12d0383
[Coffre Secrets] Phase 1c UI : cles i18n coffres.* (en)
CI / security (pull_request) Failing after 2s
CI / lint (pull_request) Failing after 1m55s
CI / test (pull_request) Skipped
CI / build (pull_request) Skipped
CI / e2e (pull_request) Skipped
2026-10-27 22:08:23 -04:00
bruno
69f3968d4a
[Coffre Secrets] Phase 1c UI : cles i18n coffres.* (fr)
2026-10-27 22:08:20 -04:00
bruno
d5ae66466a
[Coffre Secrets] Phase 1c UI : styles vue Secrets et menu contextuel
2026-10-27 22:08:16 -04:00
bruno
2dc8be3127
[Coffre Secrets] Phase 1c UI : noeud virtuel Secrets sous Home-user dans sidebar.js (patron Partage #196 )
2026-10-27 22:08:05 -04:00
bruno
040e80a36d
[Coffre Secrets] Phase 1c UI : nouveau module frontend/js/coffres.js (vue Secrets, modales, copie manuelle)
2026-10-27 22:08:00 -04:00
bruno
bd6b79fb41
[Coffre Secrets] Phase 1a/1b : tests crypto, store, autorisations, distribution
2026-10-27 21:45:58 -04:00
bruno
581a31161c
[Coffre Secrets] Phase 1a : dependance cryptography pour AES-GCM
2026-10-27 21:45:56 -04:00
bruno
5f8f93ba6c
[Coffre Secrets] Phase 1b : montage du routeur coffres a cote de config_router
2026-10-27 21:45:53 -04:00
bruno
40b3e9c5dd
[Coffre Secrets] Phase 1b : routeur /api/coffres, autorisations, octrois, distribution
2026-10-27 21:45:40 -04:00
bruno
2ffc219f47
[Coffre Secrets] Phase 1b : log_coffre_event dans audit.log (sans valeur)
2026-10-27 21:45:38 -04:00
bruno
02394d3278
[Coffre Secrets] Phase 1a : store coffres/valeurs/octrois/consommateurs (0600, atomique, RLock)
2026-10-27 21:45:35 -04:00
bruno
ff1ccca3cd
[Coffre Secrets] Phase 1a : chiffrement par enveloppe AES-256-GCM (KEK/DEK)
2026-10-27 21:45:32 -04:00
bruno
39f9cc16e4
fix(deploy): retirer DIR_1 Bruno — doublon avec le vault par défaut home-user ( #194 ), surconsommation mémoire
CI / lint (push) Canceled after 0s
CI / test (push) Canceled after 0s
CI / security (push) Canceled after 0s
CI / build (push) Canceled after 0s
CI / e2e (push) Canceled after 0s
2026-10-22 10:10:18 -04:00
bruno
411667fd88
feat: menu contextuel Déplacer/Dupliquer sidebar + réparation drag & drop interne #201 #BUG-117
CI / lint (push) Successful in 3m13s
CI / security (push) Successful in 1m59s
CI / test (push) Successful in 5m16s
CI / build (push) Successful in 1m52s
CI / e2e (push) Successful in 18m2s
2026-10-15 10:02:48 -04:00
bruno
ed9029d760
fix: éditeur Forge — textarea qui ne grandit pas après insertion programmatique (tableau/code) #BUG-116
CI / lint (push) Successful in 3m17s
CI / security (push) Successful in 2m0s
CI / test (push) Successful in 5m14s
CI / build (push) Successful in 1m49s
CI / e2e (push) Successful in 17m57s
2026-10-14 22:09:28 -04:00
bruno
1892062d88
fix: éditeur Forge — espace checkbox/texte aperçu, flash du preview, menus table/langue coupés #BUG-115
CI / lint (push) Successful in 3m11s
CI / security (push) Successful in 2m0s
CI / test (push) Successful in 5m16s
CI / build (push) Successful in 1m49s
CI / e2e (push) Successful in 17m47s
2026-10-14 21:56:37 -04:00
bruno
cbe3d9bc75
fix: popup currentPath is not defined après suppression/renommage de répertoire #BUG-114
CI / lint (push) Successful in 3m9s
CI / security (push) Successful in 1m59s
CI / test (push) Successful in 5m12s
CI / build (push) Successful in 1m49s
CI / e2e (push) Successful in 17m57s
2026-10-14 21:20:08 -04:00
bruno
2ebfe74459
perf: suppression de répertoire incrémentale au lieu du re-scan complet #BUG-113
CI / lint (push) Successful in 3m9s
CI / security (push) Successful in 1m55s
CI / test (push) Successful in 5m25s
CI / build (push) Successful in 1m48s
CI / e2e (push) Successful in 17m56s
2026-10-14 16:56:56 -04:00
bruno
6257adb46b
fix: CI security — bandit B112 sur search_shared_notes (nosec, continue délibéré)
CI / lint (push) Successful in 3m9s
CI / security (push) Successful in 1m56s
CI / test (push) Successful in 5m13s
CI / build (push) Successful in 1m47s
CI / e2e (push) Successful in 18m17s
2026-10-14 13:43:26 -04:00
bruno
31a0ab5b70
fix: config Clés API & MCP — wrap des champs de création au lieu du débordement desktop
CI / lint (push) Successful in 3m10s
CI / security (push) Failing after 1m51s
CI / test (push) Successful in 5m12s
CI / build (push) Successful in 1m48s
CI / e2e (push) Successful in 18m15s
2026-10-14 12:09:08 -04:00
bruno
f783394f09
feat: intégration TikTak #197-200 + scoped tokens, webhooks filtrés, listes mtime/size ; fix e2e-server BUG-112
CI / lint (push) Successful in 3m17s
CI / security (push) Failing after 1m51s
CI / test (push) Successful in 5m14s
CI / build (push) Successful in 1m50s
CI / e2e (push) Successful in 18m18s
2026-10-14 11:42:53 -04:00
bruno
2be0b15bcf
fix: partage dirigé — ACL court-circuitée après résolution Partage/ + chemin canonique au token #196
...
CI / lint (push) Successful in 3m0s
CI / security (push) Failing after 1m38s
CI / test (push) Successful in 4m58s
CI / build (push) Successful in 1m36s
CI / e2e (push) Successful in 19m55s
- le partage EST l'autorisation: plus de 403 'Accès refusé à la vault' pour un
destinataire sans accès au vault émetteur (api_file, raw, download)
- chemin virtuel canonique Partage/<token>/<nom> — désambiguïse les homonymes,
fallback par nom conservé
- 'reçu' = partagé_avec contient l'utilisateur: un admin ne voit plus les
partages des autres comme reçus (fix File not found: Partage/…)
- +3 tests (14 total)
2026-10-10 23:11:12 -04:00
bruno
de6bde1613
fix: partage dirigé — dossier Partage virtuel + ouverture en onglet #196
...
CI / lint (push) Successful in 3m1s
CI / security (push) Failing after 1m58s
CI / test (push) Successful in 4m43s
CI / build (push) Successful in 1m39s
CI / e2e (push) Successful in 20m28s
- _resolve_shared_file: home-<user>/Partage/<f> -> fichier source (/api/file, raw, download)
- clic dossier Partage: dépliage sans navigation (fix Directory not found)
- fichiers reçus ouverts en onglet applicatif (arbre, recherche, dashboard)
- POST /api/share: path vide/null rejeté (400) — un share path:null cassait /api/shares
- +2 tests (13 total)
2026-10-10 21:48:46 -04:00
bruno
fdc9f47a0d
feat: visibilité & recherche des partages dirigés #196
...
CI / lint (push) Canceled after 0s
CI / test (push) Canceled after 0s
CI / security (push) Canceled after 0s
CI / build (push) Canceled after 0s
CI / e2e (push) Canceled after 0s
- icône share-2 bleue sur les fichiers partagés dans l'arborescence
- dossier virtuel Partage/ Ã la racine du home du destinataire (lecture seule /s/{token})
- recherche plein texte couvre les documents reçus (merge search_vaults, share_token)
- cache front invalidé à la création/révocation ; +2 tests non-fuite
2026-10-10 21:23:00 -04:00
bruno
49c715199d
feat: partage dirigé entre utilisateurs #196
...
CI / test (push) Canceled after 0s
CI / security (push) Canceled after 0s
CI / build (push) Canceled after 0s
CI / e2e (push) Canceled after 0s
CI / lint (push) Canceled after 1m29s
- create_share/shared_with + validation des destinataires
- gate auth sur /s/{token} (+pdf, raw) : 404 opaque hors créateur/admin/destinataires
- GET /api/shares scopé (non-admin = créés + reçus), révocation créateur/admin
- UI : dialogue dirigé/public + destinataires, dashboard « partagé par X »
- i18n FR/EN, tests test_directed_shares.py (9), fiche feature
2026-10-10 20:14:29 -04:00
bruno
fd192df036
fix: admin — icône fermeture modale utilisateurs + sections du dashboard affichées une à la fois BUG-111
CI / lint (push) Successful in 2m54s
CI / security (push) Successful in 1m41s
CI / test (push) Successful in 4m36s
CI / build (push) Successful in 1m34s
CI / e2e (push) Successful in 17m56s
2026-10-10 17:17:14 -04:00
bruno
8662d23ec8
fix: un dossier perso n'est plus visible par les autres comptes #194
...
CI / lint (push) Successful in 2m57s
CI / security (push) Successful in 1m40s
CI / test (push) Successful in 4m39s
CI / build (push) Successful in 1m34s
CI / e2e (push) Successful in 17m44s
L'admin (vaults: ["*"]) voyait le home de chaque utilisateur dans sa
barre latérale : "*" ouvrait tous les vaults, home-* compris.
- backend/auth/middleware.py : check_vault_access exige un octroi
explicite pour tout vault home-* (nouveau is_home_vault()).
- Filtres « * » en dur remplacés par check_vault_access : dashboard,
conflits, liens retour, favoris, abonnements push.
- /api/search : search_vaults(is_allowed=…) filtre les bruts avant
pagination (total et page restent justes).
- backend/user_home.py : _grant n'écarte plus les comptes « * » —
l'admin reçoit son propre home-admin (auto-réparé au démarrage).
- Tests : test_user_home.py +2, assertion API inversée dans
test_auth_api.py (admin ne voit plus home-alice).
2026-10-10 16:42:00 -04:00
bruno
10453d8dfe
feat: dossier perso ( #194 ) — vaults home-* en tête de l'arborescence, icône maison, compose de test
...
CI / lint (push) Successful in 3m1s
CI / security (push) Successful in 1m41s
CI / test (push) Successful in 4m37s
CI / build (push) Successful in 1m34s
CI / e2e (push) Successful in 17m40s
- frontend/js/sidebar.js : tri stable _homeFirst appliqué à la source des
deux listes de vaults (loadVaults + soft refresh) → les vaults home-<user>
passent en premier, arborescence et sélecteurs cohérents.
- frontend/js/viewer.js : getVaultIcon renvoie l'icône lucide "home" pour
home-* (même safeCreateIcons / stroke currentColor que les autres).
- docker-compose.test-win.yml : montage test_home:/vaults/Home +
OBSIGATE_HOME_ROOT=/vaults/Home pour tester la feature en local ;
test_home/ ajouté au .gitignore.
- Tests : sidebar-filters.test.mjs +2 (icône maison, gemme violette
inchangée), vérifié live sur l'instance 2020 (ordre + svg.lucide-home).
2026-10-10 16:09:59 -04:00
bruno
8235d632b8
feat: dossier personnel par utilisateur — vault home-<user> + registre de vaults persistant #194
...
CI / lint (push) Canceled after 0s
CI / test (push) Canceled after 0s
CI / security (push) Canceled after 0s
CI / build (push) Canceled after 0s
CI / e2e (push) Canceled after 0s
- backend/user_home.py : ensure_user_home()/release_user_home() idempotents
(mkdir, vault, watcher, octroi dans user.vaults), rappelés à la création
d'un compte et au démarrage (migration + réparation + sweep des vaults
home-* orphelins), dossier conservé à la suppression.
- backend/indexer.py : data/vaults.json, registre persistant des vaults
ajoutés à la volée, fusionné par load_vault_config() — ils disparaissaient
au premier reindex complet et au redémarrage. reload_single_vault remet
vault_config[name] après remove_vault_from_index.
- backend/auth/router.py + routers/vaults.py : appels ensure/release +
persistance à l'ajout/retrait d'un vault.
- docker-compose.yml : montage unique /NFS/OBSIDIAN_DOC/Home:/vaults/Home +
OBSIGATE_HOME_ROOT (absente = fonctionnalité inactive).
- Tests : tests/test_user_home.py (12) + tests/test_auth_api.py::TestUserHome (2).
2026-10-10 00:40:35 -04:00
bruno
f4c8504c8d
feat: chat — les posts affichent le markdown rendu comme un document, code coloré #193
CI / lint (push) Successful in 2m50s
CI / security (push) Successful in 1m37s
CI / test (push) Successful in 4m34s
CI / build (push) Successful in 1m31s
CI / e2e (push) Successful in 17m36s
2026-10-09 15:48:04 -04:00
bruno
4fb7c43e06
feat: chat — boutons discrets sous l'image, image en onglet d'app, point de non-lus, notification OS, suppression annulable BUG-110
CI / lint (push) Successful in 2m50s
CI / security (push) Successful in 1m36s
CI / test (push) Successful in 4m28s
CI / build (push) Successful in 1m31s
CI / e2e (push) Successful in 17m30s
2026-10-09 11:53:26 -04:00