diff --git a/hermes-tt/nyora-notes-tt-onedrive-sync-doublons-extensions.md b/hermes-tt/nyora-notes-tt-onedrive-sync-doublons-extensions.md new file mode 100644 index 0000000..9074633 --- /dev/null +++ b/hermes-tt/nyora-notes-tt-onedrive-sync-doublons-extensions.md @@ -0,0 +1,86 @@ +# nyora-notes-tt / onedrive-sync -- doublons non recatalogues + extensions inconvertibles (06/08/2026) + +**Instance auteur** : hermes-tt (session Claude, suite etape 3 plan onedrive-sync) +**Date** : 2026-08-06 +**Tags** : nyora-notes-tt, onedrive-sync, catalog, doublons, extensions, sqlite +**Statut** : valide + +--- + +## Probleme + +Deux points a clarifier/corriger apres l'etape 3 (auto-actualisation OneDrive) du plan onedrive-sync : + +1. Le compteur `remaining_cataloged` affichait 0 alors que la base comptait 362 lignes `cataloged`, laissant craindre une desynchronisation entre le comptage et la realite du catalogue. +2. Une liste d'extensions non convertibles (svg, py, pyc, telechargement, xlsb, pbix, odt, ods, numbers, jnlp, eps, ai, cdpz, rar, zip, excalidrawlib, bat, mp4, mp3) provoquait des tentatives de conversion vouees a l'echec a chaque passage du catalogueur. + +--- + +## Contexte et contraintes + +`onedrive_catalog.py` maintenait deja une liste `FONT_EXT` d'extensions exclues par principe (polices, non convertibles en Markdown). Le meme module gere le comptage `cataloged`/`remaining_cataloged` a partir de la table de catalogue OneDrive, avec une colonne `is_duplicate_of` qui marque les doublons detectes (memes contenus, chemins differents). Le service tourne en `build: .` (pas d'image prete) -- toute modif source exige rebuild + recreate du container pour prendre effet. + +--- + +## Ce qui NE fonctionne PAS + +| Tentative | Symptome | Raison de l'echec | +|---|---|---| +| Traiter `remaining_cataloged=0` comme un bug de comptage | Semblait incoherent avec `cataloged=362` en base | Faux probleme : les 362 lignes ont `is_duplicate_of NOT NULL`, exclues par design du comptage `remaining` -- le doublon herite du traitement de l'original, il n'a pas a etre retraite | + +--- + +## Solution validee + +**Point 1 (doublons)** : verification en base que les 362 lignes `cataloged` ont bien toutes `is_duplicate_of NOT NULL`. Confirme que l'exclusion est voulue. Aucune correction de code necessaire. + +**Point 2 (extensions inconvertibles)** : ajout des extensions listees a `UNCONVERTIBLE_EXT` dans `onedrive_catalog.py`, meme principe que `FONT_EXT` existant (skip direct au catalogage, pas de tentative de conversion). `js` retire de la liste initialement envisagee : `app.js` s'est converti avec succes en test, l'extension n'est pas categoriquement inconvertible. + +```bash +cd /volume1/docker/nyora-notes-tt && docker compose build && docker compose up -d +``` + +DB nettoyee apres deploiement : 90 lignes obsoletes supprimees (docs/fts 7128->7038, vec inchange a 6651 -- coherent, les extensions exclues n'avaient pas d'embeddings). + +Push Gitea : bolbol/nyora-notes-tt, commit 70d0a33. + +--- + +## Verification + +```bash +docker exec nyora-notes-tt cat /app/catalog_test_result.json +``` + +Resultat obtenu (06/08/2026, apres rebuild) : + +```json +{ + "docs_avant": 7038, + "result": {"nouveau": 0, "modifie": 0, "doublon": 0, "inchange": 7038, "erreur_lecture": 0, "disparus": 0}, + "docs_apres": 7038, + "bad_ext_still_present": 0 +} +``` + +`bad_ext_still_present == 0` et `docs_apres == docs_avant` : fix confirme, aucune reinsertion des extensions exclues, aucune regression sur le reste du corpus. + +--- + +## Pieges specifiques DSM / NAS + +- Depuis mcp-nas, TOUJOURS `172.17.0.1` pour joindre nyora-notes-tt en HTTP -- `192.168.100.33` "hang" silencieusement (pas d'erreur, pas de timeout explicite, juste pas de reponse). Piege deja documente ailleurs, rappele ici car directement rencontre pendant cette session. +- L'alias `docker` dans mcp-nas est un alias SSH (`ssh nas-host .../docker`) -- fonctionne en execution directe/synchrone mais PAS a l'interieur d'un `nohup`/arriere-plan lance depuis le shell mcp-nas. Pour lancer un script long en arriere-plan sur le NAS, passer par une vraie session SSH explicite : + +```bash +ssh nas-host "cd /volume1/docker/ && /var/packages/ContainerManager/target/usr/bin/docker " +``` + +- Avant d'investiguer un ecart de comptage apparent dans une base de catalogage, verifier d'abord les colonnes d'exclusion by-design (ex. `is_duplicate_of`) avant de suspecter un bug de logique. + +--- + +## References + +- Plan onedrive-sync, etape 3 (auto-actualisation OneDrive) -- desormais terminee suite a cette session. +- Repo : bolbol/nyora-notes-tt, commit 70d0a33.