Files
nas-runbooks/hermes-tt/nyora-notes-tt-onedrive-sync-doublons-extensions.md

4.2 KiB

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.

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

docker exec nyora-notes-tt cat /app/catalog_test_result.json

Resultat obtenu (06/08/2026, apres rebuild) :

{
  "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 :
ssh nas-host "cd /volume1/docker/<repo> && /var/packages/ContainerManager/target/usr/bin/docker <cmd>"
  • 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.