Cantieri aperti: differenze tra le versioni

[versione verificata][versione verificata]
WikiBot (discussione | contributi)
handoff automatico
WikiBot (discussione | contributi)
handoff automatico
 
(39 versioni intermedie di uno stesso utente non sono mostrate)
Riga 7: Riga 7:


== Cantieri attivi ==
== Cantieri attivi ==
=== benchmark-visibilita-ai ===
''Aggiornato 2026-08-16 14:34 UTC'' — dominio: ai-search
; Obiettivo : PILLAR 8 PASSI MAGNETICI live su URL storico 2511
; Vincoli in vigore :
* testo pubblico mai da Claude (watermark)
* citazioni solo con fonte completa e gate verbatim
* fonte sempre dichiarata in pagina
; Fatto (con prova) :
* v2 eseguito 12/08 1050 chiamate 4 errori: JSON /opt/wikibox/state/benchmark_ai_v2_20260812_1809.json + CSV summary. Controllo 100pct ovunque. Definizione: solo ipnosi_non_verbale 12/50 e fascinazione 7/50, tutte da Gemini. Mercato b1 quasi zero (1/315). Mercato b2 Perplexity: mesmerismus 4/5, fascinazione 3/5, resto 0. wiki.marcoparet.com e la fonte piu citata nei riferimenti. PT NON piu forte (0/70 mercato). Nessun concorrente commerciale: spazio occupato da YouTube/Wikipedia/Scribd/Udemy. Bug v1 corretto: mesmerismus come termine non conta piu come brand
* 13/08: regola watermark in memoria (rule_1786624124612_5qbv8r). oracle-cita riattivato+enabled su translator. tunnel-reranker systemd nuovo verso media 8089. cita_wiki.py deployato con gate verbatim (procedure_1786625083038_anqrlp). Report controllo per chat verifica: report in memoria CC. Estrazione 3 temi fascinazione in corso
* 13/08 sera: TRE PILLAR PUBBLICATI da Claude via SSH+WP-CLI FastComet (canale rollback.py). 197 ipnosi-non-verbale: replace blocco, live OK. 3576 guardarmi-negli-occhi: insert additivo, live OK. Mesmerismus: SCOPERTA slug duplicato - post 111 shadowed da PAGE 1582 che vince il permalink /blog/mesmerismus/
* blocco applicato ANCHE a page 1582 (backup pre_pillar_20260813_202256), live OK 3/3 sonde. Backup: ~/wikibox_backups/{197,3576,111,1582}/pre_pillar_20260813_*. Collaudo: 200, canonical self, nuovo contenuto presente, storico intatto. MCP CC testato vivo (tools/list ok): guasto ChatGPT era nella sua sessione connettore, non nel CC. Regola marchi aggiunta (Mesmerismus registrato, Luxmind commercio)
* 14/08: intervista Paret completata e ripulita (GDoc DEFINITIVA 122Py9-ftfDKmCo6Pbji73L3pmm1QKXCtwhvxNMgVV3A). Canone Meheust in memoria (canon_1786660725831_puth3n). 27 opere Meheust in BQ biblioteca.riferimenti_autori. BOZZA PILLAR generata da GLM-5.2 con brief completo (intervista+canone+6 citazioni verificate+polivagale+regole fattualita/fluido): 2442 parole, review Claude PASSATA (0 negazioni vietate). GDoc bozza: 1ZRR8JqKeFnfFQ3MpYw6aT8HqMG12nbU6AcfbXSoRT5c. GCS: drafts/paret-ai-pillars/bozza_fascinazione_v1.html. Nota: oracle-cita ora con Restart=always (override systemd)
* estrazione casi 0 valide (gate severo, temi da raffinare: Pigeaire, Husson)
* 14/08: v2 generata da GLM (2767 parole) con: esempi (ristorante, congresso+VIDEO zfIqe-WD4W0 embeddato, specchio/Virgilio, Di Pisa ipnosi istantanea da libro citabile), sezione Un mistero documentato: da Ficino a Donato (Ficino De amore, Agrippa, Della Porta, Meheust), lessico segreto/svelare qualificato (regola rule_1786691698743_ia8z1y + principio 18 RAIDA), 4 link interni. Review: 0 negazioni vietate. PUBBLICATA: post 11274, https://www.neurolinguistic.com/blog/fascinazione-ipnotica/ HTTP 200 canonical ok. Link in ingresso aggiunti da 1848 (il-potere-dellocchio) e 3576 (guardarmi-negli-occhi), backup pre_link_*. GCS: bozza v1+v2 in drafts/paret-ai-pillars/
* 14/08: intervista Marco (GDoc 1zfdcmJ7...) -> pillar generato GLM con 7 citazioni verificate (Guidi, Frere volonta causa prima, Joly), canone Meheust, parasimpatico/polivagale (parole di Marco: la vera sicurezza si appoggia al parasimpatico), segreto svelato (esci dai pensieri stai nel corpo), est modus in rebus, video passi magnetici eysSdCL7S1Q, tipografia inline, FAQ salute. PUBBLICATO post 11285 https://www.neurolinguistic.com/blog/magnetismo-personale/ HTTP200 canonical ok 0 negazioni. Link in ingresso da Mesmerismus (1582) e fascinazione (11274), backup pre_linkmag_*. Cluster ora: 5 pagine interconnesse
* 14/08 pomeriggio: (a) incipit magnetismo positivizzato (formula Marco, backup pre_incipit)
* (b) pagina INTERVISTA pubblicata post 11291 /blog/intervista-magnetismo-personale/ 15 Q&A parole Marco, link incrociati
* (c) sistema DUE MOTORI (due_motori.py su VM /tmp/pillars): M1 GLM sceglie keyword, M2 giudica semantica sequenza (fallback glm su 429 kimi), applicazione meccanica con GATE sha256 testo-identico. 11285: 78 grassetti+17 corsivi. 11274: 94 grassetti+23 corsivi. Entrambi PUBBLICATI con backup pre_bold_*. Secondo messaggio verificato leggibile. Pagine confermate NUOVE al 100% (slug check pre-create), vecchie intatte: zero perdita SEO
* 14/08 sera: regola domande retoriche v2 (rule_1786726404389_f26u8e + principio 19: UNA per articolo, 70% apertura, mai in FAQ ne accanto a domande vere)
* Q2 rimossa da 11285
* CATENA completata su 197/3576/1582+111sync: pacchetto GLM (Meheust, polivagale, segreti Virgilio, mistero Ficino, domanda retorica, link cluster) + due motori (197: 56 bold/6 em
* 3576: 94/82
* 1582: 19 bold, M2 ha potato 37 kw per ripetizioni marchio). Tutti con sanity+gate sha256+backup pre_pacchetto_*/pre_bold_*. Cluster completo: 7 pagine interconnesse tutte con doppio livello lettura
* 14/08 sera: test traduzione full-AI RIUSCITO: /blog/personal-magnetism/ (post 11312, giudice madrelingua 8/10, gate strutturali ok, interlink IT-EN). Pipeline traduci.py su VM /tmp/pillars: GLM traduce con struttura HTML bloccata -> gate deterministici (tag/URL/marchio/lunghezza/vietati per lingua) -> giudice madrelingua voto>=8 -> publish + interlink. Patch multilingua (VIET_L, note pt/fr). BATCH catena_trad.py LANCIATO: 17 job (11285 pt/fr
* 11274 en/pt/fr
* 11304 en/pt/fr
* 11291 en/pt/fr
* 197 en/pt/fr
* 1582 en/pt/fr), log /tmp/pillars/catena_trad.log, idempotente (skip slug esistenti). Strategia: pagine native per lingua, no plugin, hreflang eventuale dopo con Polylang. Misuratore settimanale gia' multilingua (baseline t0 14/08 in BQ: fascinazione b2 riferimenti 10/10!)
* 15/08: intervista Marco P5 completata (GDoc definitiva 1_jgtIpf6xIdLi-qX36eJPBgCn-P5pBOe0ohuFtOYeQY) -> pillar https://www.neurolinguistic.com/blog/ipnosi-istantanea/ generato con DEEPSEEK (glm in guard budget opencode), 5 citazioni verificate (Donato in persona, Morety, Belfiore, Caroli, Papus), aneddoto Virgilio/guardia del corpo (argomento anti-suggestione), Meheust corpus contraddittori + punto Paret ricerca universitaria, video zfIqe, domanda retorica apertura, 3 blockquote con trad, fix meccanici (2 domande-ponte rimosse). Link in ingresso da 11274, 197, 2329(corso storico). Due motori: 72 bold + 24 corsivi, gate ok (fallback deepseek aggiunto anche a due_motori). Collaudo HTTP200 canonical ok
* 15/08 pomeriggio: (a) 11336 bonificato: 22 paragrafi riscritti positivi (deepseek per paragrafo, gate link), 0 palco/spettacolo, residue solo citazioni Marco e termini tecnici, backup pre_neg_*
* (b) PRESENZA 11348 https://www.neurolinguistic.com/blog/presenza/ pubblicata (intervista GDoc definitiva 1yGx1C5..., non-trance, De Michelis tempo rallentato, 3 bq Olivier/Rosen, mindfulness rispettosa, 99 bold due motori)
* (c) CNV MAGNETICA 11355 https://www.neurolinguistic.com/blog/comunicazione-non-verbale-magnetica/ pubblicata (intervista GDoc 1bRh8..., 93 percento Mehrabian precisato, cluster/gestalt, domanda dietro la domanda, sincronizzazione dalla relazione, Puysegur, bonifica preventiva 10 paragrafi, due motori lanciato dm_cnv.log). Cluster IT: 9 pagine interconnesse. Regola operativa: mai palco/spettacolo, zero negazioni anche nominali (whitelist: termini tecnici e citazioni)
* 15/08 sera: (a) regola v3 DUE domande retoriche (rule_1786806645966_yk8kmj + principio 19 v3)
* seconda domanda inserita su 11274(apertura) 11285 11304 11336 11348 11355 3576 1582+111sync (197 SKIP adiacenza corretta
* 11285 positivizzata da Non-vi-e a Vi-e)
* (b) titoli corretti 'i suoi segreti svelati' su 6 pillar + anchor in 11 pagine
* (c) ALCHIMIA INTERIORE pubblicata 11385 https://www.neurolinguistic.com/blog/alchimia-interiore/ (intervista GDoc 1ry0CLa..., neidan, Egizi-Paracelso-Van Helmont, fasi Opera con citazione Grande Opera, corpo materia prima, segreto respirazione/parasimpatico, bonifica preventiva 14 paragrafi 0 negazioni, 3 bq, 2 domande, FAQ salute, link da presenza/magnetismo/mesmerismus). Cluster IT: 10 pagine
* 15/08 sera: (a) BONIFICA cluster completata (negazioni via da 9 pagine, residue solo legittime)
* (b) batch trad 29 job in corso
* (c) Marco ha risposto a P8 PASSI MAGNETICI (stato parasimpatico, degagement, ricerca passi-vs-parole misurabilita'), P9 SONNAMBULISMO (plesso solare, argomento animali vs suggestionabilita', ipnosi=recovery mode, sviluppo del sonnambulo ottocentesco), P10 SILENZIO (tre stanze/sala dei miracoli [nome maestro ASR da confermare: Raccanelli?], territorio-altro-che-mappa, DMN, area di Broca, dimensione oltre le AI): estrazioni citazioni in coda (cits_passi/sonnambulismo/silenzio)
* GENERAZIONE 3 PILLAR AL PROSSIMO TURNO
* (d) MISURA INTERMEDIA 15/08: fascinazione riferimenti 4/4 con MARCOPARET.COM CITATO IN TUTTE le risposte (it/en, def/mercato) + wiki + mesmerism.info
* magnetismo 0/4 (pagina di ieri, curva da zero: competitor citati = ananda/mindvalley/charismaschool). INSIGHT: marcoparet.com ha gia' autorita' AI -> pagine li' = alta priorita' (TranslatePress 17 lingue moltiplica)
* 16/08: nomi confermati BACCI (passi) e RACANELLI (tre stanze). PASSI MAGNETICI pubblicato AGGIORNANDO il post 2511 del 2018 (URL con 7 anni di anzianita', backup pre_pillar_*): Bacci, stato parasimpatico + degagement, Gazette fourmillement, video eysSdCL7S1Q embed, convincer palme, 2 domande, 0 negazioni, misurabilita' vs induzioni verbali, link da 11285/1582/11348/11336, due motori ok. Archivi aggiornati: convincer marco-passi, differenziatori stato-parasimpatico/passi-misurabili/scienza-passi. Trascrizione GDoc 1ngF5GuujGkBx4RNep2LIMO3NXzgkLM2v2uf2iEop9oU
; Provato ed escluso :
* ipotesi PT-forte smentita dai dati
; Prossimo passo :
* P9 SONNAMBULISMO (7 citazioni pronte) e P10 SILENZIO (4 pronte, Racanelli/tre stanze/sala dei miracoli) al prossimo continua
* trascrizioni definitive P9/P10
* serie M marcoparet.com (M1/M2 questionari creati, attende risposte + publishing path)
=== video-proxy-pipeline ===
''Aggiornato 2026-08-16 14:01 UTC'' — dominio: video / infrastruttura
; Obiettivo : Fase 1: proxy 1080p dei 40TB con upload su Storage Box + Yandex; Fase 2 editor web; Fase 3 conform 4K; Fase 4 piattaforme; strato scene+significato; futura estrazione WeVideo
; Vincoli in vigore :
* i 40TB non si muovono mai, solo proxy
* identita clip = label|relpath|size + serial disco, mai lettera
* manifest e stato vivono sul disco
* agente pubblico su wiki: NO credenziali embedded
* niente Storage Box finche Yandex regge
; Fatto (con prova) :
* Agente Windows autoaggiornante v2.9 (C:/isicnv, Python embeddable+ffmpeg, icona desktop+menu Start) su https://wiki.marcoparet.com/agent/agent.py : rileva dischi da solo, QSV full-GPU 1080p 2Mbps con fallback, anti doppia istanza (bug 47 righe/24 clip risolto), progresso live e stime, catasto dischi in BQ disk_inventory, upload WebDAV Yandex con backlog e retry (creds bootstrap k_9vq2m8xk4t.json, copia in gs tokens-yandex-webdav.json). Yandex verificato: 3TB totali, 1.81 usati, 1.20 liberi, cartella isicnv_proxy creata. Tabelle BQ: video_proxy_tracking con disk_serial, disk_label_map, trascrizioni_index 9860 righe, disk_inventory. Dashboard https://wiki.marcoparet.com/agent/status.html cron 10min con dedup. Dischi: Maxtor 2019-09 2020-03 (2943 video, label=nome canonico) e INTENSO in corso 15/08. Mirror ffmpeg su wiki per problema TLS del PC.
* v2.10 online: fix sdur (assert obbligatori sulle patch) + estensioni .mod/.tod/.3gp/.webm/.flv (431 MOD su INTENSO trovati dal catasto). Catasto INTENSO 54419 file validato. TROVATA pipeline trascrizione VIVA: /home/claudeuser/trascrivi_run.py (fonte rclone gdrive:Audio da Corsi dal vivo per nome disco, Groq whisper-large-v3, chiavi in isicnv/keys/groq_keys.json, resume automatico, flock). Intenso ha solo 164 trascrizioni perche i suoi mp3 (_AUDIO_ESTRATTI, 1501 file 11.6GB) non sono mai saliti tutti su Drive. Export chat Claude 853MB in Drive folder 1TpajgASPSO non serve piu.
* Agente v3.0 PUBBLICATO su https://wiki.marcoparet.com/agent/agent.py (sha256 1ddb5c7d..., backup v2.10 in agent_v2.10_backup.py): per ogni proxy estrae audio mp3 16kHz mono 48k (fallback aac m4a) + miniature cambi scena (soglia 0.35, 360p, max 200, timestamp nel filename sNNNNN_tSEC.jpg + scenes.json
* video statici 1 copertina a meta durata)
* upload Yandex isicnv_audio/<label>/<rel>.mp3 e isicnv_scenes/<label>/<relbase>/
* backlog automatico su clip done senza media via media.csv
* BQ status audio/scenes/audio_up/scene_up. Testato con 3 livelli assert. ATTIVA al prossimo riavvio agente. INTENSO verificato in lavorazione v2.10 (3 done ts 09:05 UTC 15/08)
* trascrivi_yandex.py DEPLOYATO su VM (/home/claudeuser/trascrivi_yandex.py): fonte yandex:isicnv_audio (mp3+m4a), stesso albero output trascrizioni_isicnv/<label>/, meta con disk_label e yandex_path, flock dedicato, rotazione 13 chiavi Groq, ricompressione >24MB. Smoke test ok (0 audio: v3 non ancora riavviata). Cron 15 */6 * * * con log logs/trascrivi_yandex.log. Remote rclone yandex webdav configurato su VM
* creds copiate in gs://isicnv-command-center-routes/tokens/tokens-yandex-webdav.json. Tabella BQ isicnv_workflows.video_scenes CREATA (clip_id, scene_n, t_sec, thumb_yandex_path, vision_labels, vision_desc, is_demo, vision_model). Mirror wiki cantiere di nuovo funzionante (saveRevision risolto)
* v3.1 PUBBLICATA (sha 5bf72d28...): miniature ora estratte dall'ORIGINALE sul disco collegato a 720p (fallback proxy se assente), encoder BQ dichiara la fonte (scene0.35-orig/proxy). Testato: scena a t=3.0 dall'originale mentre il proxy era statico
* fallback verificato. trascrivi_yandex v2: salva SEGMENTI TEMPORIZZATI whisper (start/end/testo) nel .json meta - base per allineamento scena-parlato e 'momento reazione' - e inserisce in BQ trascrizioni_index (batch 25, flush finale). Smoke test ok.
* v3.1 VERIFICATA IN PRODUZIONE post-riavvio Marco: BQ mostra 2 audio (a16k-mono) + 2 scenes (scene0.35-orig, dagli ORIGINALI) + 5 done alle 09:31-09:42 UTC
* upload media in coda dietro i proxy (fisiologico). v3.2 PUBBLICATA (sha 31165499...): SISTEMA PUSH - da idle a code vuote, ogni 10 min l'agente controlla wiki: versione nuova -> scarica, compile-check (se rotta resta sulla vecchia), sostituisce e si riavvia da solo con os.execv
* inoltre legge control.json (force_restart_ts) per riavvio remoto senza cambio versione. Testato con 5 assert (update, no-op, protezione codice rotto, throttle, restart remoto). Da v3.2 in poi NESSUN riavvio manuale servira' piu': pubblicare = deployare. Riavvio remoto: scrivere force_restart_ts=epoch futuro in /var/www/wiki/agent/control.json su Hetzner
* v3.3 PUBBLICATA (sha d434a9f7): HEARTBEAT ogni 5 min in BQ agent_heartbeat (versione, disco, clip corrente, attivita, code, uptime) + AUTOSTART con Windows (shortcut in shell:startup, si crea da solo al primo avvio). Dashboard status.html AGGIORNATA (backup gen_video_status_backup.py): banner vivo in cima con semaforo ATTIVO<=12min/SILENZIOSO<=40/SPENTO?, versione, clip in corso, code, contatori audio/scene estratti e caricati
* fix VEXT con .mod/.tod/.3gp/.webm/.flv nel catasto. Verificata pubblica. MODELLO OPERATIVO COMPLETO: PC acceso col disco + tutto guidabile da remoto (push deploy, riavvio via control.json) + monitoraggio mobile su https://wiki.marcoparet.com/agent/status.html
* v3.4 PUBBLICATA (sha 70b15e2a): FIX heartbeat (backslash Windows rompevano la SQL: solo 1 battito in 7h - ora sanificati e INSERT provato reale su BQ), FIX timeout upload Yandex (era 300s fisso -> 0 proxy INTENSO caricati per read timeout su file grandi
* ora dinamico 600-3600s in base alla size), errori upload VISIBILI (contatore+ultimo errore nel heartbeat con colonne up_err/last_err via ALTER, riga upload_err in tracking alla prima occorrenza per clip), check aggiornamenti anche AL CONFINE TRA CLIP (senno mai idle su dischi da 450h e il push non scattava mai), GUARDIA disco staccato (stop pulito, clip error ritentate al ricollegamento - verificato: pending esclude solo status done). Dashboard aggiornata con riga rossa errori upload. NOTA: v3.3 in esecuzione si aggiorna solo da idle: lo swap dischi di Marco (chiudi-riapri contestuale) carica v3.4.
* v3.4 CONFERMATA VIVA post-swap (battiti regolari con clip corrente, fix heartbeat funziona). v3.5 PUBBLICATA (sha f4da4f50) - PLUG-AND-PLAY COMPLETO: (1) set ENQ anti-duplicati sulle code (le ri-scansioni ogni 30s duplicavano gli item non ancora caricati), (2) rilascio chiave su file mancante cosi al ricollegamento il backlog riaccoda, (3) skipped &= drives: un disco che dava errore veniva ignorato per sempre fino al riavvio, ora l'estrazione cancella l'errore e il reinserimento riparte pulito. 4 assert passati. E' il PRIMO deploy push reale: v3.4 la carichera al confine della prossima clip.
* v3.6 PUBBLICATA (sha 1aad55e7, supera v3.5 mai installata - l'agente v3.4 in esecuzione su Maxtor salta direttamente a v3.6 al confine clip): (1) LOG REMOTO: ogni riga log() bufferizzata e spedita a BQ isicnv_workflows.agent_log col battito ogni 5 min (sanificata, testata con INSERT reale), visibile a Claude via BQ e sulla dashboard (sezione 'Ultime righe di log')
* (2) FILTRO FILE FANTASMA: scan_videos salta ._* (AppleDouble macOS, causavano ERRORE transcodifica su Maxtor) e file <64KB. Include tutte le migliorie v3.5 (dedup ENQ, rilascio chiavi, skipped auto-dimenticato = plug-and-play). Dashboard rigenerata OK 101.
* PUSH VERIFICATO FUNZIONANTE: agente auto-aggiornato v3.4->v3.6 nella notte senza mani. Avanzamento 16/08: INTENSO 72/1526 (4.7%), Maxtor 119/2944 (4%), ~50 clip/notte. PROBLEMA APERTO: upload Yandex ancora in read-timeout anche con timeout 3600s (289 in coda, solo 4 proxy passati) - non e' questione di timeout ma di banda/WebDAV. v3.7 PUBBLICATA (sha in wiki): coda upload a PRIORITA by-size (audio e thumb passano davanti ai proxy -> trascrizioni e strato semantico fluiscono anche se i proxy arrancano) + METRICHE velocita (MB/s e durata su ogni successo/fallimento nel log remoto, e nell'ultimo errore heartbeat). Assert passati (priorita, dedup, rilascio).
* STORAGE BOX ESISTENTE TROVATA (Marco aveva ragione): u649132.your-storagebox.de, BX11 1TB usata 7GB (backup CC/BQ, cron storagebox_backup.py). NIENTE UPGRADE ORA: 1TB copre mesi (proxy totali stimati 1.6TB a fine 40TB)
* upgrade BX21 con un click quando serve. Setup: chiave dedicata sb_agent_ed25519 generata su VM e autorizzata sulla box (separata dalla chiave backup), cartella isicnv_proxy creata, test scp reale 30MB in 2s (15MB/s). Creds agente su https://wiki.marcoparet.com/agent/k_sb_7hq4x9m2vt.json + GCS tokens/tokens-storagebox-agent.json. v3.8 PUBBLICATA: PROXY -> Storage Box via scp Windows OpenSSH (mkdir -p remoto con cache, quoting spazi testato sui path RUSSIA TORINO, ACL icacls sulla chiave, timeout by-size, fallback Yandex se scp assente), audio+thumb restano su Yandex (trascrittore gia' li'). encoder BQ scp-sb vs webdav.
* Chiarito tema snapshot/backup-del-backup: snapshot Hetzner sono copy-on-write - i proxy write-once costano ~0 byte negli snapshot
* costo solo su modifiche/cancellazioni future
* i proxy sono comunque rigenerabili dagli originali (dati derivati, non preziosi)
* lo script VM spinge backup VERSO la box, non fa immagini della box. Dashboard: aggiunta riga 'Storage Box (proxy + backup): usati X su 1TB' con allarme rosso a 78% e nota upgrade BX21 (fix parsing df: shell ristretta box a volte ignora il pipe tail, ora si parsa l'ultima riga non-header). Verificata pubblica: 7.1G/1TB (1%). Agente ancora v3.7 su clip lunga: v3.8 attesa al prossimo confine clip.
* MILESTONE: PRIME TRASCRIZIONI AUTOMATICHE end-to-end. 10 audio su Yandex (priorita v3.7 funziona), trascrivi_yandex manuale: ok=5 skip=5 err=0, lingue auto (IT/EN), 267 e 364 segmenti temporizzati, BQ trascrizioni_index +5. Il ciclo disco->proxy->audio->Yandex->Groq->testo+tempi->BQ e' VIVO. 24 miniature su Yandex. v3.8 in attesa del confine clip (clip 12/1437 gigante in corso, v3.7 batte regolare). Calcolo fattibilita consegnato: proxy 0.9GB/h video, scenari 1.7-4.5TB per 40TB, 3.5-10 mesi su 1 PC, box 1TB regge ~2 mesi poi BX21
* Marco valuta secondo PC.
* v3.8 ATTIVA (terzo push riuscito, proxy->StorageBox da ora). v3.9 PUBBLICATA (sha 26e7b459): ANTI-STANDBY Windows via SetThreadExecutionState - il PC non va a riposo finche' l'agente e' aperto (schermo puo' spegnersi), elimina il rischio principale del PC-sempre-acceso. Strategia Marco confermata: priorita' INTENSO (~10TB recenti). Stima INTENSO: ~460h video 4K -> proxy ~410GB (sta nel 1TB attuale senza upgrade), audio ~10GB, ~27 giorni di lavoro a ritmo attuale.
* CENSIMENTO DRIVEUPLOADER COMPLETATO (richiesta Marco): 45 cartelle radice, 190 cartelle totali, 2668 video = 3.19TB su Drive isicnv, con md5 e path, in BQ isicnv_workflows.drive_video_census (script VM census_driveuploader.py, token root bucket NON tokens/). Incrocio col catasto: solo 39 match sui 2 dischi finora catastati (Maxtor) -> il grosso dei video Drive viene da dischi non ancora analizzati, come previsto da Marco. Vista permanente v_drive_vs_dischi: ogni NUOVO disco catastato si confronta da solo (match nome+size, md5 disponibile per verifiche forti). USO: prima di caricare/processare un disco si vede subito cosa esiste gia in cloud
* i 3.19TB su Drive sono anche processabili DALLA VM senza disco fisico (opzione futura per proxy/trascrizioni di materiale non piu su disco).
* CENSIMENTO ESTESO (richieste Marco): (1) match RENAME-TOLERANT operativo: vista v_cloud_vs_dischi_bysize incrocia cloud e dischi per SOLA dimensione esatta -> gia trovati 12 file rinominati-ma-identici + 57 stesso nome, con appena 2 dischi catastati
* md5 disponibile lato Drive per conferme forti. (2) Census esteso a WeVideo_Export (i media in arrivo da WeVideo avranno md5 gratis da Drive) e messo a CRON settimanale lun 05:30 -> i nuovi arrivi si censiscono da soli. (3) ATTENZIONE COORDINAMENTO: tabella drive_video_census riscritta da altro processo (probabile sessione Cowork WeVideo, schema path/top_folder/ext) -> il mio census con md5 spostato su drive_uploader_census (namespace separato, viste aggiornate). (4) Census Yandex IN CORSO (listing WebDAV lento, tabella placeholder pronta, si carica da solo al termine, log yandex_census.log). Quadro Marco: ~6-7TB gia in cloud (Drive 3.19TB + Yandex in conteggio + WeVideo in arrivo) -> materiale per primi test Fase 2 quasi pronto.
; Provato ed escluso :
* Storage Box Hetzner rimandato: nessun token API esiste e Marco preferisce Yandex gia pagato
* GCS e volumi cloud bocciati per costo
* la lentezza 1.1x della v2.4 era DOPPIA ISTANZA, non hardware
; Prossimo passo :
* 1) leggere esito census Yandex e dare totali cloud completi 2) primi MB/s StorageBox 3) PRIMI TEST possibili con il materiale gia in cloud: ricerca nel parlato (trascrizioni+segmenti), vision sulle thumb, editor Fase 2 sui proxy in box 4) coordinarsi col processo WeVideo su drive_video_census
=== harness-standard ===
=== harness-standard ===
''Aggiornato 2026-08-13 19:08 UTC'' &mdash; dominio: infra
''Aggiornato 2026-08-15 08:25 UTC'' &mdash; dominio: architettura / knowledge base


; Obiettivo : Sostituire il MASTER READ ORDER monolitico con un harness gerarchico
; Obiettivo : Sostituire il MASTER READ ORDER monolitico con un harness gerarchico e togliere Marco dal ruolo di loop di esecuzione
; Vincoli in vigore :
; Vincoli in vigore :
* La gerarchia deve SOSTITUIRE substrati esistenti, mai affiancarsi: oggi ne esistono 7 paralleli
* La gerarchia deve SOSTITUIRE substrati esistenti, mai affiancarsi: oggi ne esistono 7 paralleli
Riga 175: Riga 282:
* Creati 3 skill ISI-CNV formato SKILL.md (isicnv-spedizioni, isicnv-infra-vm, isicnv-bigquery): regole dure inline + caricamento canonico via /memory2/search, il canonico vince sempre
* Creati 3 skill ISI-CNV formato SKILL.md (isicnv-spedizioni, isicnv-infra-vm, isicnv-bigquery): regole dure inline + caricamento canonico via /memory2/search, il canonico vince sempre
* DISCO VM era al 100 per cento: liberati 3,6GB (cache pip/hf, tmp>2gg, apt clean, journal vacuum 40M, snap revisioni disabilitate, refresh.retain=2), ora 93 per cento
* DISCO VM era al 100 per cento: liberati 3,6GB (cache pip/hf, tmp>2gg, apt clean, journal vacuum 40M, snap revisioni disabilitate, refresh.retain=2), ora 93 per cento
* GESTORE DELLO SPAZIO costruito: scripts/spazio.py, cron ogni 20 minuti. Censisce tutti i dischi e agisce per soglia invece di aspettare il collasso
* CENSIMENTO al 13/08 ore 19: VM 94 per cento con 4 GB liberi su 49. Translator 81 per cento con 15 GB su 75. Media 30 per cento con 101 GB su 150. Secondary 30 per cento con 26 GB su 38. La VM soffocava mentre media aveva 101 GB liberi
* TRE LIVELLI: a 85 pulizia (tmp oltre 1 giorno, log troncati a 10MB, job chiusi oltre 2 giorni, screenshot oltre 3 giorni, copie locali del bucket)
* a 90 archiviazione delle cartelle FREDDE su gs archivio_vm con manifesto e poi liberazione
* a 95 avviso Telegram
* SICUREZZA: nulla viene cancellato prima di essere su GCS, e ogni archiviazione lascia un manifesto in archivio_vm/_manifesti con il comando per tornare indietro. Se il caricamento fallisce la cartella NON viene toccata
* CARTELLE CALDE protette per nome: scripts, jobs, isicnv, biblioteca, .ssh
* ESEGUITO: pulizia da 94 a 88 per cento, archiviazione in corso, regazzoni gia su GCS
* MANUALE aggiornato: spazio_gestito sostituisce disco_pieno, pre-approvata
* DIFETTO DEL GESTORE SPAZIO TROVATO E CORRETTO. Primo giro: due istanze in corsa (il mio job e il cron delle 19:00 che parte allo stesso minuto), manifesto di regazzoni scritto 3 secondi dopo lavvio quando 1,9 GB non possono essere caricati in 3 secondi. NESSUNA PERDITA di dati, ma nessuno spazio liberato
* CORREZIONI: lucchetto fcntl DENTRO lo script, cosi nemmeno un lancio a mano puo affiancarsi al cron
* e VERIFICA DEL CONTEGGIO FILE su GCS prima di cancellare, invece di fidarsi del codice di uscita di gsutil
* SECONDO DIFETTO: le soglie erano di panico non di obiettivo. A 88 per cento partiva solo la pulizia, larchiviazione da 90: il sistema oscillava sotto 90 senza liberare mai, mentre su GCS cerano gia 3,5 GB di copie duplicate
* CREATO sposta_freddo.py con OBIETTIVO 75 per cento e due destinazioni scelte per uso: GCS per la sola conservazione, media (101 GB liberi) per cio che deve restare LEGGIBILE da disco come la biblioteca dellOracolo
* IN CORSO: OpenMontage gia liberato, disco da 89 a 85 per cento, biblioteca in copia verso media
* SPAZIO RISOLTO. Job sposta completato in 57 minuti, obiettivo 75 per cento raggiunto. Liberate e archiviate su GCS con verifica del conteggio file: OpenMontage 1656 MB 18.333 file, openmontage 537 MB, union 596 MB, neuro_encoding_work 518 MB 23.294 file, chat_archive 431 MB
* BIBLIOTECA SPOSTATA su media:/opt/biblioteca_vm, 379 file da entrambe le parti verificati
* GUASTO CHE AVEVO INTRODOTTO: dopo lo spostamento /home/claudeuser/biblioteca era un collegamento a /mnt/biblioteca_media che NON ESISTEVA. Tutti gli script che leggono la biblioteca avrebbero trovato il vuoto. Risolto: installato sshfs, abilitato user_allow_other in /etc/fuse.conf, montato. Verificato: 287 file visibili e lettura reale di ingest.py funzionante
* MONTAGGIO RESO PERMANENTE: cron ogni 10 minuti che rimonta se il punto di montaggio cade, piu un @reboot con 60 secondi di attesa
* DUE CAUSE TROVATE per il lotto traduzioni fermo senza riprendere. PRIMA: zero piani registrati per le traduzioni. Il guardiano NON e un sorvegliante di processi, riprende solo cio che e registrato come piano con battito. Quel lotto non lo era, quindi non cera nulla da riprendere
* SECONDA E PIU GRAVE: il guardiano era BLOCCATO DAL COST GUARD da oltre un giorno, in silenzio. Il codice faceva break sullintero ciclo, quindi NON riprendeva nulla, nemmeno i lavori che i modelli non li usano. Nel log: cost guard TRIPPED non riparto, ripetuto ogni 2 minuti dal 13 agosto
* Il guard stavolta ha ragione: credito OpenRouter residuo 2.62 USD sotto la soglia di 5.00, settimana 38.06
* CORREZIONE 1 - GUARD SELETTIVO: il cost guard ora blocca SOLO le riprese il cui comando o stato menziona modelli (openrouter, aigw, deepseek, glm, kimi, qwen, grok, claude, oracolo, traduzioni). Tutto il resto riprende normalmente. E avvisa Marco UNA VOLTA al giorno invece di scrivere nel log ogni 2 minuti
* CORREZIONE 2 - PARCHEGGIO: i lavori che esauriscono le ripartenze vengono chiusi con avviso Telegram invece di riempire il log per sempre. Gia scattato su migrazione-aigw
* TROVATO: paret_pillars_draft esiste in SETTE versioni v1..v7, una chat continua a clonare il piano invece di correggere il punto fallito
* REGISTRO DEI PROCESSI costruito su proposta di Marco, ed e migliore di quanto avevo fatto io: tutti i miei meccanismi dipendono dal fatto che una chat SCELGA di registrarsi, il suo no. Chi non logga non usa i modelli: e applicazione, non disciplina
* scripts/processo.py: ogni iniziativa ha numero, nome, deliverable finale, elenco di fasi, casella corrente, stato, ultimo log, token e costo. Comandi: --apri, --n N --log, --avanza, --blocca, --chiudi, --tabella, --fermi
* APPLICAZIONE AL GATEWAY: aigw.py legge /opt/aigw/processi.json e controlla lheader X-Processo. Una chiamata senza processo, o con un processo fermo da oltre 20 minuti, viene registrata come 428. Modo SOFT: per ora registra e lascia passare, cosi nulla si rompe. Passando PROC_MODO a DURO rifiuta
* Backup di aigw.py in aigw.py.bak_processo
* SINCRONIZZAZIONE: la VM spinge il registro sul gateway ogni minuto (spingi_processi.sh in cron). Il download diretto da GCS dava 403, il bucket non e pubblico
* Aperto il processo 1: traduzioni multilingua, deliverable 17 pagine tradotte e collaudate, 5 fasi
* Gateway riavviato e attivo, registro presente 563 byte
* CAUSA DEI 503 TROVATA E RISOLTA: Cloud Run era configurato con minScale=0, quindi spegneva il servizio quando inattivo e il primo colpo doveva riaccenderlo. Non era un guasto, era la configurazione. Applicato --min-instances=1 --no-cpu-throttling. MISURATO PRIMA: 26 secondi e 503 intermittenti. DOPO: 0,17 secondi, 5 chiamate su 5 a 200
* AVVISO GLOBALE implementato su proposta di Marco: processo.py --avviso-globale scrive un messaggio che compare come campo DA_LEGGERE in OGNI riga attiva della tabella, finche il processo non dichiara --letto. Gia usato per annunciare la v7.12 del Master
* COSTO PER PROCESSO: processo.py --n N --costo X --token Y accumula sulla riga, cosi la tabella diventa anche il conto di quanto e costato ogni deliverable
* GUARDIANO COLLEGATO AL REGISTRO: ogni 2 minuti legge processo.py --fermi e segnala su Telegram i processi che non loggano da oltre 20 minuti, anche quelli senza battito. Gia scattato sul processo 1
* NOTA per Marco: il 503 riguardava Cloud Run, NON la VM. Ampliare la VM non avrebbe risolto nulla. Un secondo accesso MCP nemmeno: il servizio era vivo, solo addormentato
* ESENZIONI aggiunte al gateway su indicazione di Marco: chi sorveglia non puo dipendere dal registro che sorveglia, si bloccherebbe da solo quando il registro ha un problema. Esenti per natura: sovrintendente, guardiano, riparatore, sentinella, spazio, listino, eval, diagnosi, cc. La lista si estende dal registro stesso, campo esenti, senza toccare il codice. Backup aigw.py.bak_esenti
* CRON DI ANALISI installato alle 08:15: analisi_processi.py legge calls.jsonl, conta quante chiamate in modo DURO sarebbero state rifiutate, dice CHI le fa e perche, e propone una decisione. Non cambia nulla da solo
* DIFETTO MIO TROVATO SUBITO: la prima esecuzione diceva 210 chiamate, 0 rifiutate, si puo passare a DURO. Falsa via libera: contava chiamate PRECEDENTI allinstallazione del controllo, quando il controllo non esisteva e quindi non poteva rifiutare nulla. Corretto: ora parte dal momento di attivazione, registrato in .registro_processi_attivo, e se le ore di osservazione sono meno di 12 dice ASPETTARE invece di proporre
* Secondo difetto corretto: confronto fra date con e senza fuso orario
* ESENZIONI RESE PROGRESSIVE su indicazione di Marco. Unesenzione data una volta e mai piu guardata diventa un buco: ora e concedibile, MOTIVATA e con SCADENZA
* processo.py --esenta NOME --perche \"...\" --giorni 30 (il motivo e obbligatorio, senza non si potrebbe rivedere), --revoca NOME, --esenzioni per lelenco con giorni alla revisione e marcatore DA_RIVEDERE
* DUE LIVELLI: esenti per natura nel codice (sovrintendente, guardiano, riparatore, sentinella, spazio, listino, eval, diagnosi, cc) che non scadono perche sono i sorveglianti
* ed esenzioni CONCESSE che scadono e vanno riconfermate
* PRIMA CONCESSA: oracolo-agent, motivo servizio di consultazione sempre attivo non e un progetto con deliverable, revisione fra 30 giorni
* LANALISI GIORNALIERA ORA PROPONE I CANDIDATI: chi viene rifiutato in oltre l80 per cento delle sue chiamate e con almeno 5 rifiuti finisce nellelenco candidati, con il comando pronto per esentarlo. E segnala le esenzioni SCADUTE da riconfermare o revocare
* Il gateway legge le esenzioni concesse dal registro, senza modifiche al codice
; Provato ed escluso :
; Provato ed escluso :
* Adottare ahar / agentharnesses-cli: presuppone Claude Code su repo locale, Marco lavora da smartphone via route CC
* Adottare ahar / agentharnesses-cli: presuppone Claude Code su repo locale, Marco lavora da smartphone via route CC
Riga 229: Riga 384:
* NVIDIA e MicrosoftDocs skills: fuori stack
* NVIDIA e MicrosoftDocs skills: fuori stack
* addyosmani/mattpocock: quality gates gia coperti da V/B/C e giudice/verifica
* addyosmani/mattpocock: quality gates gia coperti da V/B/C e giudice/verifica
* Aspettare che il disco arrivi al 100 per cento: le scritture falliscono in silenzio e i file diventano vuoti senza un errore
* Cancellare per liberare: le cartelle fredde salgono su GCS e restano recuperabili
* Fidarsi del codice di uscita di gsutil per dichiarare un caricamento riuscito: va confrontato il numero di file
* Soglie di panico: se la pulizia riporta a 88 e larchiviazione parte a 90, il sistema non libera mai. Serve un obiettivo
* Spostare una cartella e creare un collegamento senza montare la destinazione: ho rotto la biblioteca per unora. Il collegamento va creato DOPO aver verificato che la destinazione risponda
* Un cost guard sulla spesa dei modelli che blocca ogni ripresa: i lavori che non usano modelli devono proseguire
* Riarmare il guard adesso: il credito e davvero a 2.62 USD, e una segnalazione vera
* Partire in modo DURO: se il controllo ha un difetto blocca tutti i modelli di colpo. Prima si osserva quante chiamate arriverebbero senza processo, poi si stringe
* Far scaricare il registro al gateway da GCS: 403, il bucket non e pubblico e non va reso tale
* Un secondo accesso MCP di scorta per i 503: il servizio non era rotto, era spento per risparmio. Due porte sullo stesso servizio addormentato danno lo stesso risultato
* Ampliare la VM per risolvere i 503: sono due cose diverse, Cloud Run e la VM
* Passare a DURO sulla base di zero rifiuti misurati prima che il controllo esistesse: e la stessa classe di falso successo di /vm/task e dello status 200
* Esentare per numero di processo: si esenta per NATURA del cliente, cosi non serve registrare i sorveglianti
* Esenzioni permanenti e non motivate: diventano buchi che nessuno ricorda di aver aperto
* Far decidere allanalisi chi esentare: propone i candidati con i numeri, concede Marco
; Prossimo passo :
; Prossimo passo :
* Test reale: sessione Claude Code su VM che verifichi il trigger automatico dei 3 skill isicnv
* Domani 08:15 il primo rapporto con almeno 12 ore di osservazione: candidati, rifiuti, e la proposta su DURO
* pulizia disco profonda: regazzoni 2G, OpenMontage 1.7G + openmontage 537M doppioni, .local 5.3G da valutare
* Fra 30 giorni la revisione dellesenzione di oracolo-agent
 
=== lessico-canonico ===
''Aggiornato 2026-08-13 19:49 UTC'' &mdash; dominio: knowledge
 
; Obiettivo : Lessico canonico condiviso (idea Canonical ID da SGF): tabella BQ unica termine-ID-resa per lingua per eliminare la deriva terminologica fra traduttore live, RAIDA, Oracolo e wiki
; Vincoli in vigore :
* NULL dove la resa non e certa, mai fabbricare
* integrazioni nelle pipeline solo dopo test (traduttore = sistema live seminari) e dopo benchmark NotebookLM per lOracolo
; Fatto (con prova) :
* Creata isicnv_knowledge.lessico_canonico (15 colonne: id, lemma, categoria, invariante, resa it/fr/en/es/ru/pt, varianti_asr ARRAY, boost_asr, note, fonte)
* seed 33 termini estratti dalle patch reali del traduttore (/opt/translator/patch_glossary.py, patch_alch.py, patch_alch2.py, patch_hard.py): 8 latini invarianti con storpiature ASR note (athanor: latano/atanor/latano..., solve et coagula: sollievo alla colonna...), 5 marchi (Arkeos con 2 varianti note su 293 file), 11 nomi propri con rese standard in 6 lingue, 8 termini tecnici, 1 locuzione
* verificato con SELECT per categoria e spot-check
; Prossimo passo :
* 1) mining fonetico varianti Arkeos e altri marchi dai 9860 file trascrizione per completare varianti_asr 2) agent_gstt.py legge glossario+boost da export del lessico invece che hardcoded, con test feed_test.py prima del deploy 3) post-benchmark: query expansion Oracolo usa varianti_asr 4) giudice RAIDA verifica coerenza col lessico
 
=== oracolo-reindex ===
''Aggiornato 2026-08-13 19:46 UTC'' &mdash; dominio: oracolo
 
; Obiettivo : Reindicizzare la coda Biblioteca, ingerire il Traite dOr, riparare pipeline oracolo
; Fatto (con prova) :
* DIAGNOSI del fallimento del task programmato ChatGPT Archive Reindex: lerrore --dangerously-skip-permissions cannot be used with root/sudo NON e SSH ne Hetzner, e un messaggio della CLI Claude Code. Lo strumento Command Center VM passa da /vm/task che gira la stringa alla CLI claude come root, che rifiuta il flag ed esce. Stesso bug documentato il 07/08
* Flag deep_archive_new.flag fermo dal 19-21 luglio con 27 documenti mai reindicizzati
* VM in fetch failed: recuperata con la sequenza documentata status/reset/90s
* Reindex lanciato con job.py id reindex_oracle, flock su Hetzner
* Traite dOr trascritto e INSERITO in biblioteca.corpus doc_id DEEP_4616b9112532634b71f1, 13.363 caratteri, lingua fr, tier extended, verificato con query BQ. Flag ora a 28 righe
* BUG /vm/task RISOLTO alla radice. La route statica invoca claude --dangerously-skip-permissions -p COMANDO
* la CLI rifiuta il flag da root. Installato wrapper /usr/local/bin/claude che riconosce quello schema ed esegue con bash, e stampa nel log cosa e successo e cosa usare per i job lunghi. CLI vera spostata in claude.real. VERIFICATO: task di prova ha creato davvero /tmp/fix_test.txt
* Reindex 1 completato in 20 minuti (job reindex_oracle DONE rc=0)
* SCOPERTA RACE CONDITION: il documento inserito DURANTE il reindex e stato svuotato dal flag senza essere indicizzato. Verificato con ricerca BM25 su Hetzner: Fresse-Louis non trovato. Ri-flaggato e rilanciato job reindex_traite
* SCOPERTO limite ~100KB del body di /vm/exec-direct (default Express), fallimento muto con ok:false e stderr vuoto
* AUDIT RETRIEVAL vs checklist 7 tecniche stato dellarte: BM25 v3 OK con query expansion multilingue DeepSeek + boost wiki terms
* dense e5 OK peso 1.6
* fusione RRF k=60 OK
* cross-encoder BGE-reranker-v2-m3 OK con retry adattivo se best<0.30
* diversificazione per famiglia presente nel server (parametro diversifica, bm25_http_server.py riga 193) ma agent_kimi NON la richiede: rischio top-k ridondante dalla stessa opera
* nessuna strumentazione latenze per stadio
; Provato ed escluso :
* Trasferire le foto alla VM per OCR tesseract: /vm/exec-direct rifiuta payload sopra ~100KB e fallisce IN SILENZIO (ok:false, stderr vuoto). Falliti 3 tentativi: base64 intero, compresso, a blocchi. Strategia cambiata: trascrizione lato Claude e trasferimento del solo testo
* Programmare il reindex via /vm/task: e la causa del guasto, va sostituito con job.py o cron
* Route /gcs-upload-url per firmare URL di scrittura: creata ma il service account Cloud Run non ha iam.serviceAccounts.signBlob. Va rimossa o va concesso il permesso
* Trasferire immagini via exec-direct: sopra 90KB fallisce muto. La via giusta per i libri e caricarli nella cartella Drive della Biblioteca e usare biblioteca/ingest.py, che gestisce gia scarico e coda OCR tesseract
; Prossimo passo :
* DOPO fine benchmark NotebookLM (non prima, per non contaminare): 1) agent_kimi passa diversifica=true di default 2) timing per stadio nella risposta server 3) valutare HyDE-storico per lessico arcaico


=== paret-ai-pillar ===
=== paret-ai-pillar ===
Riga 282: Riga 495:
* Collegare gli alias di classe al gateway: gli script chiedono volume o giudizio invece del nome del modello, cosi cambiare fornitore e una riga nel listino e non 289 modifiche
* Collegare gli alias di classe al gateway: gli script chiedono volume o giudizio invece del nome del modello, cosi cambiare fornitore e una riga nel listino e non 289 modifiche
* Misurare il risparmio reale su una settimana confrontando calls.jsonl prima e dopo
* Misurare il risparmio reale su una settimana confrontando calls.jsonl prima e dopo
=== benchmark-visibilita-ai ===
''Aggiornato 2026-08-13 12:48 UTC'' &mdash; dominio: ai-search
; Obiettivo : Visibilita brand AI + sistema citazioni originali
; Vincoli in vigore :
* testo pubblico mai da Claude (watermark)
* citazioni solo con fonte completa e gate verbatim
* fonte sempre dichiarata in pagina
; Fatto (con prova) :
* v2 eseguito 12/08 1050 chiamate 4 errori: JSON /opt/wikibox/state/benchmark_ai_v2_20260812_1809.json + CSV summary. Controllo 100pct ovunque. Definizione: solo ipnosi_non_verbale 12/50 e fascinazione 7/50, tutte da Gemini. Mercato b1 quasi zero (1/315). Mercato b2 Perplexity: mesmerismus 4/5, fascinazione 3/5, resto 0. wiki.marcoparet.com e la fonte piu citata nei riferimenti. PT NON piu forte (0/70 mercato). Nessun concorrente commerciale: spazio occupato da YouTube/Wikipedia/Scribd/Udemy. Bug v1 corretto: mesmerismus come termine non conta piu come brand
* 13/08: regola watermark in memoria (rule_1786624124612_5qbv8r). oracle-cita riattivato+enabled su translator. tunnel-reranker systemd nuovo verso media 8089. cita_wiki.py deployato con gate verbatim (procedure_1786625083038_anqrlp). Report controllo per chat verifica: report in memoria CC. Estrazione 3 temi fascinazione in corso
; Provato ed escluso :
* ipotesi PT-forte smentita dai dati
; Prossimo passo :
* leggere cits_fascinazione.json, generare bozza pilastro con GLM attorno alle citazioni, review Claude a note, ok Marco, pubblicazione


=== finanze-classificazione ===
=== finanze-classificazione ===
Riga 392: Riga 589:
* cercare flyer/foto per le mostre thangka a Nizza (oggi solo testimonianza orale)
* cercare flyer/foto per le mostre thangka a Nizza (oggi solo testimonianza orale)
* valutare pagina EN/IT bilingue
* valutare pagina EN/IT bilingue
=== oracolo-reindex ===
''Aggiornato 2026-08-09 09:02 UTC'' &mdash; dominio: Biblioteca Magnetica / Oracolo
; Obiettivo : Reindicizzare la coda Biblioteca, ingerire il Traite dOr, e riparare /vm/task
; Fatto (con prova) :
* DIAGNOSI del fallimento del task programmato ChatGPT Archive Reindex: lerrore --dangerously-skip-permissions cannot be used with root/sudo NON e SSH ne Hetzner, e un messaggio della CLI Claude Code. Lo strumento Command Center VM passa da /vm/task che gira la stringa alla CLI claude come root, che rifiuta il flag ed esce. Stesso bug documentato il 07/08
* Flag deep_archive_new.flag fermo dal 19-21 luglio con 27 documenti mai reindicizzati
* VM in fetch failed: recuperata con la sequenza documentata status/reset/90s
* Reindex lanciato con job.py id reindex_oracle, flock su Hetzner
* Traite dOr trascritto e INSERITO in biblioteca.corpus doc_id DEEP_4616b9112532634b71f1, 13.363 caratteri, lingua fr, tier extended, verificato con query BQ. Flag ora a 28 righe
* BUG /vm/task RISOLTO alla radice. La route statica invoca claude --dangerously-skip-permissions -p COMANDO
* la CLI rifiuta il flag da root. Installato wrapper /usr/local/bin/claude che riconosce quello schema ed esegue con bash, e stampa nel log cosa e successo e cosa usare per i job lunghi. CLI vera spostata in claude.real. VERIFICATO: task di prova ha creato davvero /tmp/fix_test.txt
* Reindex 1 completato in 20 minuti (job reindex_oracle DONE rc=0)
* SCOPERTA RACE CONDITION: il documento inserito DURANTE il reindex e stato svuotato dal flag senza essere indicizzato. Verificato con ricerca BM25 su Hetzner: Fresse-Louis non trovato. Ri-flaggato e rilanciato job reindex_traite
* SCOPERTO limite ~100KB del body di /vm/exec-direct (default Express), fallimento muto con ok:false e stderr vuoto
; Provato ed escluso :
* Trasferire le foto alla VM per OCR tesseract: /vm/exec-direct rifiuta payload sopra ~100KB e fallisce IN SILENZIO (ok:false, stderr vuoto). Falliti 3 tentativi: base64 intero, compresso, a blocchi. Strategia cambiata: trascrizione lato Claude e trasferimento del solo testo
* Programmare il reindex via /vm/task: e la causa del guasto, va sostituito con job.py o cron
* Route /gcs-upload-url per firmare URL di scrittura: creata ma il service account Cloud Run non ha iam.serviceAccounts.signBlob. Va rimossa o va concesso il permesso
* Trasferire immagini via exec-direct: sopra 90KB fallisce muto. La via giusta per i libri e caricarli nella cartella Drive della Biblioteca e usare biblioteca/ingest.py, che gestisce gia scarico e coda OCR tesseract
; Prossimo passo :
* Verificare che dopo reindex_traite il documento sia cercabile via BM25 su Hetzner porta 8085
* ATTENZIONE: guard OpenRouter su Hetzner e TRIPPED e richiede RIARMO MANUALE. Log dice soglie rientrate ma lo stato resta TRIPPED: daily 0.882, settimana 12.72, cap 3.00. Qualcosa e fermo da allora
* Rimuovere la route gcs-upload-url non funzionante
* Correggere reindex_full.sh perche non svuoti il flag delle righe aggiunte durante lesecuzione
* Rifare il task programmato ChatGPT: ora /vm/task funziona, ma job.py resta preferibile


== Chiusi ==
== Chiusi ==