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

87 lines
4.2 KiB
Markdown

# 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/<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.