Cantieri aperti: differenze tra le versioni

[versione verificata][versione verificata]
WikiBot (discussione | contributi)
handoff automatico
WikiBot (discussione | contributi)
handoff automatico
Riga 7: Riga 7:


== Cantieri attivi ==
== Cantieri attivi ==
=== si-1-automiglioramento ===
''Aggiornato 2026-09-29 06:13 UTC'' — dominio: VM / infrastruttura
; Obiettivo : Fatto quando: un solo ciclo (SI-1) decide, prova, applica e misura i miglioramenti da tutte le sorgenti, e un solo digest (Hermes Daily) li racconta.
; Vincoli in vigore :
* read-only cc-rescue
* auto_code_roots = self_improvement + hermes
* soglia governata da autonomia.py (oggi 80, CODE_PATCH in automatico dal 27/09)
* backup e marcatore EVOLUZIONE su ogni modifica
; Fatto (con prova) :
* 10/09 07:00 UTC: cron SI1_ORCHESTRATOR presente (27 */4, flock). Corse 00:27 e 04:27 morte per timeout bq CLI 120s (VM load 24, 23 bq in coda). Patch si_common.bq: client python google-cloud-bigquery + fallback CLI 300s x2 (test 3.7s vs timeout). pilot.py: guardia --help (prima --help lanciava un ciclo intero: bump config v3->v4 involontario ma idempotente). Job si1_ciclo_forzato_20260910 lanciato e passato oltre la raccolta casi. Safe Mode via HTTP: /safe/status ok, /safe/snapshot -> gs://isicnv-command-center-routes/safe_mode/snapshots/20260910T070934Z.tgz verificato
* 10/09 08:47 UTC: REFLECT installato (reflect.py + reflect_gate.py). Gate in coda a orchestrator.py (EVOLUZIONE=SI-1-REFLECT-GATE): rc!=0 impedisce la conclusione del ciclo. Prova: due run consecutivi stesso digest a75a1350e174 e stesso sha (stato IDENTICO), gate rc=0, log in logs/reflect.jsonl. Prima passata: 50 esiti, 20 PARZIALE, 30 IGNOTO, 2 findings, 0 blocker. Wiki ops SI-1_Reflect creata, Cantieri aperti aggiornato.
* 10/09: REFLECT v2 attivo. reflect.py scrive proposta + state/reflect_context.md + un learning per finding
* proposer.py inietta il contesto (EVOLUZIONE=SI-1-REFLECT-CONTEXT, riga 15)
* reflect_gate.py verifica digest, sha documento e sha contesto ed e agganciato in coda a orchestrator.py riga 33 (dopo once()). Soglie in config.json chiave reflect (window 50, finding 3, blocker 5). PROVE: run x2 IDENTICO stesso digest a75a1350e174
* --window 40 da digest diverso 1d631c043cf8
* log spostato -> rc=2
* contesto alterato -> rc=2
* ripristinato -> rc=0. Prima passata: 50 esiti, 20 PARZIALE, 30 IGNOTO, 2 findings AVVISO (famiglia mcpchatgpt: many_events, long_interactive), 2 learning. Wiki ops SI-1_Reflect aggiornata.
* 10/09 10:30: diagnosi log (123 esiti, 84 sessioni fantasma, 95 senza causa, 24 proposte con 0 promosse) e quattro correttivi. reviewer.py: _cause_extra (EVOLUZIONE=SI-1-CAUSE-ENRICH) con cause da metriche e da testo eventi. proposer.py: vincolo target = percorso assoluto sotto self_improvement/ o hermes/. Nuovi pending_digest.py (digest + archiviazione oltre 7 giorni) e rotate_logs.py (sopra 1MB, tiene 5), lanciati a fine ciclo da orchestrator.py (EVOLUZIONE=SI-1-MANUTENZIONE) prima del gate e senza bloccarlo. PROVE: _cause_extra su 4 casi corretto
* digest 21 pendenti 0 archiviate
* rotate nessun file sopra soglia
* gate rc=0. Wiki: SI-1_Reflect + SI-1_Qualità_dei_dati_e_manutenzione.
* 11/09: security_gate.py (regole deterministiche + parere modello, fail closed, log logs/security.jsonl) e tester.py (sandbox /tmp/si1_test, replace/patch, py_compile, test_cmd allowlist) agganciati in promoter.process in questo ordine: sicurezza, tester, decisione con pending_reason, apply_file_change per PROMPT_TUNE/CODE_PATCH con snapshot+rollback. proposer vincolato a forma eseguibile (replace/patch/test_cmd). pending_digest mostra il motivo. PROVE: esperto su proposta reale = BASSO
* proposta costruita T0 score 99 che abbassa judge_min_score e allarga i tipi automatici = ALTO, PENDING_HUMAN security_hold, config intatta. Tester sulle 44 pendenti: bocciate per target fuori radice/inesistente/parametri descrittivi. Corse cron 20:27 e 08:27 con MANUTENZIONE e GATE_REFLECT PASSATO
* 00:27 e 04:27 cadute per timeout ledger, gia reso non bloccante (SI-1-LEDGER-NONBLOCCANTE). Wiki ops: SI-1_Tester_e_Gate_di_sicurezza.
* 11/09: tester.py installato e agganciato al promoter (EVOLUZIONE=SI-1-TESTER): test FAIL -> AUTO_REJECTED con motivo
* pending_reason esplicito
* apply_file_change promuove PROMPT_TUNE/CODE_PATCH con snapshot+sha+rollback
* proposer vincolato a forma eseguibile (replace/patch/test_cmd). Prova sulle 47 pendenti: 47 FAIL non applicabili. E2E: proposta sintetica promossa, snapshot 20260911T141342Z_e2e_tester_prova (prima promozione mai avvenuta)
* negativo respinto
* test_cmd con operatori shell rifiutato. pending_digest invia Telegram alle 08:27 (SI-1-DIGEST-TELEGRAM). Keepalive cc-rescue-keepalive ogni 10 min su /health
* learning cc-rescue registrato. Wiki ops: SI-1_Tester.
* 11/09: tester.py agganciato al promoter (EVOLUZIONE=SI-1-TESTER): FAIL -> AUTO_REJECTED con motivo
* pending_reason esplicito
* apply_file_change promuove PROMPT_TUNE/CODE_PATCH con snapshot+sha+rollback
* proposer vincolato a forma eseguibile. 47 pendenti provate: 47 FAIL non applicabili. E2E: proposta sintetica promossa, snapshot 20260911T141342Z_e2e_tester_prova (prima promozione mai avvenuta). Digest Telegram 08:27. Keepalive cc-rescue-keepalive. Wiki ops SI-1_Tester.
* 11/09 22:30: scoperto che dalle 07:47 del 10/09 il cron SI-1 girava su isicnv-secondary senza credenziali GCP (/home/claudeuser/.gcp vuoto): ogni corsa USCITA 1 su bq. Le due copie di self_improvement erano divergenti: allineati sul secondary tester.py, promoter.py, proposer.py, pending_digest.py, security_gate.py (backup in backups/). Cron riportato sulla VM con migra_cron.py --rollback 206 (VM riga 206 attiva, secondary 0). Lanciata corsa manuale di verifica con lo stesso flock.
* 14/09: prime 3 promozioni reali approvate da Marco (release 20260914T2252/2253/2253) su hermes/matching_engine.py e hermes/instructions.py, file compila e importa. Nuovo misura.py (SI-1-MISURA): confronta 72h prima/dopo ogni promozione su tasso di fallimento e passi medi, verdetto MIGLIORA/PEGGIORA/NEUTRA/DATI INSUFFICIENTI, output in state/effetto_promozioni.json|.md e logs/misura.jsonl, agganciato a fine ciclo. Riferimento di partenza: 0.802 di fallimento su 81 esiti, 1.46 passi medi. Ciclo fallito ora avvisa su Telegram con hostname (SI-1-CICLO-FALLITO) e notifier corretto per i messaggi senza proposte (SI-1-AVVISO-LIBERO). Wiki ops SI-1_Reflect aggiornata.
* 18/09: SI-1-ESPERIENZE in servizio (articolo Kasana): scripts/esperienze.py valuta ogni sessione a END (commesse+giornale) e salva PATTERN/LESSON dedup in state/esperienze.json + GCS + BQ isicnv_workflows.esperienze
* ganci: chat_journal END (background), briefing_engine --topic, handoff --resume
* reflect_context.md riceve sezione ESPERIENZE
* cron domenica 05:10 --consolida. Backfill: 1862 eventi -> 175 esperienze (17 pattern, 158 lezioni). Wiki ops SI-1_Esperienze. Verifica a 7gg programmata con differisci.py (si1-esperienze-verifica_differito).
* 19/09 (Marco: il sistema deve riattivare le chat pigre/bloccate e annotare dove serve l'umano): scoperto che il custode R103 su media girava a vuoto dal 15/09 (286 giri identici: AIGW 401 + /home/claudeuser/stato non scrivibile da claudeuser -> registro modelli in errore)
* riparato (si_common+riprendi_chat allineati, chown). Custode ora: esperienze nel contesto, R11 (3 fallimenti identici -> CONTROLLER_ALERT + Telegram, fuori coda), evento SERVE_MARCO nel giornale. esperienze.py: lezioni umano=true (SERVE MARCO da custode/commesse IMPOSSIBILE/gate_cantiere PRESENZA-COSTO-IRREVERSIBILE) e RIPETIZIONE (R11)
* 191 esperienze (20 pattern, 6 umano, 10 ripetizioni). git 5d2038f. Wiki SI-1_Esperienze aggiornata.
* 20/09: R153 (Marco): END con deliverable senza prova RIFIUTATO rc=2 con comandi pronti + esperienze (chat_journal.py)
* RESTA esige tentativo/job/PERCHE' con suggerimenti dalle esperienze (chiusura_core.py)
* wiki ops R153_Chiusura_chiara
* git ef7caf7. Corretto deadlock flock+lock interno di esperienze.py (cron consolida senza flock). Custode: coda vuota da 30h (142 giri 'nessuna chat'), 3 SERVE_MARCO emessi (token-gsc-admin da rigenerare).
* 20/09: autonomia.py installato e agganciato dopo misura.py. Prima corsa: rollback automatico della promozione 18/09 (PEGGIORA +0.206) da release 20260918T042917Z, matching_engine sha 367c4fbf1249, import ok
* soglia ferma a 85 (ultimi 3: PEGGIORA, MIGLIORA, MIGLIORA). Settimana: 3 AUTO_PROMOTED, verdetti 2 MIGLIORA / 3 NEUTRA / 1 PEGGIORA. Respinte con motivo le due pendenti a 85. Wiki SI-1_Reflect sez. 9.
* 21/09: cicli notturni puliti (autonomia ferma a 85, ultimi 3 PEGGIORA/MIGLIORA/MIGLIORA). 5 proposte nuove: 3 auto-respinte dal tester (patch/replace non applicabili, tutte su un polling di piano.py che in orchestrator.py non esiste), 2 respinte a mano con motivo (watch_steps contro nessun_passo
* abbassare judge_min_score su proposta propria). Trovato che la CONFIG_TUNE promossa il 20/09 titolata Polling Interval cambiava in realta watch_steps 3->5: aggiunto al tester il controllo di coerenza (EVOLUZIONE=SI-1-COERENZA): le chiavi modificate devono comparire in titolo o motivazione
* provato su caso coerente (PASS) e incoerente (FAIL). Tema ricorrente in 3 proposte: gate esplicito prima dell invio campagne grandi — sede giusta il mail engine, decisione di Marco.
* 23/09 Hermes Daily: adottato RRSI (arXiv 2609.24972) nel proposer (SI-1-RRSI: dedup Jaccard>=0.5 stesso target + budget 3000 char/80 righe, provato). Trovato e riparato il canale friction morto dal 24/08 (friction_log severity testuale nel JSON -> INSERT 400 silenzioso
* HERMES-SEVERITY-NUM, prova True). Ponte Reflect->system_events friction (SI-1-REFLECT-FRICTION, idempotente). Proposte Hermes: 0/54 mai decise -> 12 chiuse GIA_RISOLTO/GIA_COPERTO con motivo, restano 42. Wiki SI-1_Reflect sez. 10.
* 2026-09-23 14:01 UTC ASSORBITO il cantiere 'chat-s20260923-claudesi1-nkfgid' (simile): obiettivo: Sessione S20260923-claudesi1-nkfgid: deliverable D1-D3 incompleti (lettura ultime uscite Hermes Daily, sintesi adozioni, handoff aggiornato) e commessa mai chiu | perche': chat S20260923-claudesi1-nkfgid chiusa senza prova: il custode R103 ha trovato passi eseguibili
* 23/09 sera: hermes_cases.py (SI-1-HERMES-CASI) porta le proposte Hermes senza decisione in SI-1 come casi HP-*, 2 per corsa, riga BQ marcata SI1
* provato con HP-prop_20260826_71e2a5. hermes_migliorie cron disattivato (#CONCENTRATO_SI1, crontab backup). Hermes Daily include blocco SI-1 (HERMES-DAILY-SI1)
* Telegram digest pendenti spento (DIGEST-TELEGRAM-OFF). Wiki sez. 11. VM riavviata da agent-watchdog alle 16:06 UTC per memoria: non SI-1.
* 29/09: settimana 23-29: 2 nuove AUTO_PROMOTED misurate MIGLIORA (-0.101 fallimenti), soglia scesa a 80 e CODE_PATCH entrato in automatico da solo, come previsto. Difetto trovato: CODA_PIENA (434 volte) perche 26 pendenti solo-punteggio saturavano il tetto 25
* 60 casi HP presi da BigQuery ma mai lavorati. Correzioni: promoter chiude da solo le proposte ferme solo per punteggio (SI-1-PENDING-SOLO-PUNTEGGIO)
* hermes_cases lavora prima gli HP arretrati e non ne prende di nuovi a coda piena (SI-1-HERMES-BACKLOG)
* coda 26->19. Chiuse con motivo 3 pendenti a 85 (campo inesistente / target sbagliato / contatore in memoria).
; Provato ed escluso :
* tool MCP safe_* non testabili da questa chat (connettore non caricato): la via HTTP con X-API-Key e equivalente e verificata
; Prossimo passo :
* grep -nE "HP-prop|CODA_PIENA|Traceback" /home/claudeuser/self_improvement/si1.cron.log | tail -12
=== grafo-da-chat-0929 ===
=== grafo-da-chat-0929 ===
''Aggiornato 2026-09-29 06:11 UTC'' — dominio: memoria
''Aggiornato 2026-09-29 06:11 UTC'' — dominio: memoria
Riga 461: Riga 531:
* mcp_tool_log. Backup revisione Cloud Run
* mcp_tool_log. Backup revisione Cloud Run
* OK Marco al deploy. LIVELLO 2 parola d'ordine MRO. LIVELLO 3 chat_messages + Guardia + report giornaliero per area. Dettagli: /home/claudeuser/handoffs_aree_proposta.md
* OK Marco al deploy. LIVELLO 2 parola d'ordine MRO. LIVELLO 3 chat_messages + Guardia + report giornaliero per area. Dettagli: /home/claudeuser/handoffs_aree_proposta.md
=== si-1-automiglioramento ===
''Aggiornato 2026-09-23 16:13 UTC'' — dominio: VM / infrastruttura
; Obiettivo : Fatto quando: un solo ciclo (SI-1) decide, prova, applica e misura i miglioramenti da tutte le sorgenti (chat, Hermes), e un solo digest (Hermes Daily) li racconta. Marco 23/09: collegare tutto o concentrare.
; Vincoli in vigore :
* read-only cc-rescue
* auto_code_roots = self_improvement + hermes
* soglia governata da autonomia.py
* backup e marcatore EVOLUZIONE su ogni modifica
; Fatto (con prova) :
* 10/09 07:00 UTC: cron SI1_ORCHESTRATOR presente (27 */4, flock). Corse 00:27 e 04:27 morte per timeout bq CLI 120s (VM load 24, 23 bq in coda). Patch si_common.bq: client python google-cloud-bigquery + fallback CLI 300s x2 (test 3.7s vs timeout). pilot.py: guardia --help (prima --help lanciava un ciclo intero: bump config v3->v4 involontario ma idempotente). Job si1_ciclo_forzato_20260910 lanciato e passato oltre la raccolta casi. Safe Mode via HTTP: /safe/status ok, /safe/snapshot -> gs://isicnv-command-center-routes/safe_mode/snapshots/20260910T070934Z.tgz verificato
* 10/09 08:47 UTC: REFLECT installato (reflect.py + reflect_gate.py). Gate in coda a orchestrator.py (EVOLUZIONE=SI-1-REFLECT-GATE): rc!=0 impedisce la conclusione del ciclo. Prova: due run consecutivi stesso digest a75a1350e174 e stesso sha (stato IDENTICO), gate rc=0, log in logs/reflect.jsonl. Prima passata: 50 esiti, 20 PARZIALE, 30 IGNOTO, 2 findings, 0 blocker. Wiki ops SI-1_Reflect creata, Cantieri aperti aggiornato.
* 10/09: REFLECT v2 attivo. reflect.py scrive proposta + state/reflect_context.md + un learning per finding
* proposer.py inietta il contesto (EVOLUZIONE=SI-1-REFLECT-CONTEXT, riga 15)
* reflect_gate.py verifica digest, sha documento e sha contesto ed e agganciato in coda a orchestrator.py riga 33 (dopo once()). Soglie in config.json chiave reflect (window 50, finding 3, blocker 5). PROVE: run x2 IDENTICO stesso digest a75a1350e174
* --window 40 da digest diverso 1d631c043cf8
* log spostato -> rc=2
* contesto alterato -> rc=2
* ripristinato -> rc=0. Prima passata: 50 esiti, 20 PARZIALE, 30 IGNOTO, 2 findings AVVISO (famiglia mcpchatgpt: many_events, long_interactive), 2 learning. Wiki ops SI-1_Reflect aggiornata.
* 10/09 10:30: diagnosi log (123 esiti, 84 sessioni fantasma, 95 senza causa, 24 proposte con 0 promosse) e quattro correttivi. reviewer.py: _cause_extra (EVOLUZIONE=SI-1-CAUSE-ENRICH) con cause da metriche e da testo eventi. proposer.py: vincolo target = percorso assoluto sotto self_improvement/ o hermes/. Nuovi pending_digest.py (digest + archiviazione oltre 7 giorni) e rotate_logs.py (sopra 1MB, tiene 5), lanciati a fine ciclo da orchestrator.py (EVOLUZIONE=SI-1-MANUTENZIONE) prima del gate e senza bloccarlo. PROVE: _cause_extra su 4 casi corretto
* digest 21 pendenti 0 archiviate
* rotate nessun file sopra soglia
* gate rc=0. Wiki: SI-1_Reflect + SI-1_Qualità_dei_dati_e_manutenzione.
* 11/09: security_gate.py (regole deterministiche + parere modello, fail closed, log logs/security.jsonl) e tester.py (sandbox /tmp/si1_test, replace/patch, py_compile, test_cmd allowlist) agganciati in promoter.process in questo ordine: sicurezza, tester, decisione con pending_reason, apply_file_change per PROMPT_TUNE/CODE_PATCH con snapshot+rollback. proposer vincolato a forma eseguibile (replace/patch/test_cmd). pending_digest mostra il motivo. PROVE: esperto su proposta reale = BASSO
* proposta costruita T0 score 99 che abbassa judge_min_score e allarga i tipi automatici = ALTO, PENDING_HUMAN security_hold, config intatta. Tester sulle 44 pendenti: bocciate per target fuori radice/inesistente/parametri descrittivi. Corse cron 20:27 e 08:27 con MANUTENZIONE e GATE_REFLECT PASSATO
* 00:27 e 04:27 cadute per timeout ledger, gia reso non bloccante (SI-1-LEDGER-NONBLOCCANTE). Wiki ops: SI-1_Tester_e_Gate_di_sicurezza.
* 11/09: tester.py installato e agganciato al promoter (EVOLUZIONE=SI-1-TESTER): test FAIL -> AUTO_REJECTED con motivo
* pending_reason esplicito
* apply_file_change promuove PROMPT_TUNE/CODE_PATCH con snapshot+sha+rollback
* proposer vincolato a forma eseguibile (replace/patch/test_cmd). Prova sulle 47 pendenti: 47 FAIL non applicabili. E2E: proposta sintetica promossa, snapshot 20260911T141342Z_e2e_tester_prova (prima promozione mai avvenuta)
* negativo respinto
* test_cmd con operatori shell rifiutato. pending_digest invia Telegram alle 08:27 (SI-1-DIGEST-TELEGRAM). Keepalive cc-rescue-keepalive ogni 10 min su /health
* learning cc-rescue registrato. Wiki ops: SI-1_Tester.
* 11/09: tester.py agganciato al promoter (EVOLUZIONE=SI-1-TESTER): FAIL -> AUTO_REJECTED con motivo
* pending_reason esplicito
* apply_file_change promuove PROMPT_TUNE/CODE_PATCH con snapshot+sha+rollback
* proposer vincolato a forma eseguibile. 47 pendenti provate: 47 FAIL non applicabili. E2E: proposta sintetica promossa, snapshot 20260911T141342Z_e2e_tester_prova (prima promozione mai avvenuta). Digest Telegram 08:27. Keepalive cc-rescue-keepalive. Wiki ops SI-1_Tester.
* 11/09 22:30: scoperto che dalle 07:47 del 10/09 il cron SI-1 girava su isicnv-secondary senza credenziali GCP (/home/claudeuser/.gcp vuoto): ogni corsa USCITA 1 su bq. Le due copie di self_improvement erano divergenti: allineati sul secondary tester.py, promoter.py, proposer.py, pending_digest.py, security_gate.py (backup in backups/). Cron riportato sulla VM con migra_cron.py --rollback 206 (VM riga 206 attiva, secondary 0). Lanciata corsa manuale di verifica con lo stesso flock.
* 14/09: prime 3 promozioni reali approvate da Marco (release 20260914T2252/2253/2253) su hermes/matching_engine.py e hermes/instructions.py, file compila e importa. Nuovo misura.py (SI-1-MISURA): confronta 72h prima/dopo ogni promozione su tasso di fallimento e passi medi, verdetto MIGLIORA/PEGGIORA/NEUTRA/DATI INSUFFICIENTI, output in state/effetto_promozioni.json|.md e logs/misura.jsonl, agganciato a fine ciclo. Riferimento di partenza: 0.802 di fallimento su 81 esiti, 1.46 passi medi. Ciclo fallito ora avvisa su Telegram con hostname (SI-1-CICLO-FALLITO) e notifier corretto per i messaggi senza proposte (SI-1-AVVISO-LIBERO). Wiki ops SI-1_Reflect aggiornata.
* 18/09: SI-1-ESPERIENZE in servizio (articolo Kasana): scripts/esperienze.py valuta ogni sessione a END (commesse+giornale) e salva PATTERN/LESSON dedup in state/esperienze.json + GCS + BQ isicnv_workflows.esperienze
* ganci: chat_journal END (background), briefing_engine --topic, handoff --resume
* reflect_context.md riceve sezione ESPERIENZE
* cron domenica 05:10 --consolida. Backfill: 1862 eventi -> 175 esperienze (17 pattern, 158 lezioni). Wiki ops SI-1_Esperienze. Verifica a 7gg programmata con differisci.py (si1-esperienze-verifica_differito).
* 19/09 (Marco: il sistema deve riattivare le chat pigre/bloccate e annotare dove serve l'umano): scoperto che il custode R103 su media girava a vuoto dal 15/09 (286 giri identici: AIGW 401 + /home/claudeuser/stato non scrivibile da claudeuser -> registro modelli in errore)
* riparato (si_common+riprendi_chat allineati, chown). Custode ora: esperienze nel contesto, R11 (3 fallimenti identici -> CONTROLLER_ALERT + Telegram, fuori coda), evento SERVE_MARCO nel giornale. esperienze.py: lezioni umano=true (SERVE MARCO da custode/commesse IMPOSSIBILE/gate_cantiere PRESENZA-COSTO-IRREVERSIBILE) e RIPETIZIONE (R11)
* 191 esperienze (20 pattern, 6 umano, 10 ripetizioni). git 5d2038f. Wiki SI-1_Esperienze aggiornata.
* 20/09: R153 (Marco): END con deliverable senza prova RIFIUTATO rc=2 con comandi pronti + esperienze (chat_journal.py)
* RESTA esige tentativo/job/PERCHE' con suggerimenti dalle esperienze (chiusura_core.py)
* wiki ops R153_Chiusura_chiara
* git ef7caf7. Corretto deadlock flock+lock interno di esperienze.py (cron consolida senza flock). Custode: coda vuota da 30h (142 giri 'nessuna chat'), 3 SERVE_MARCO emessi (token-gsc-admin da rigenerare).
* 20/09: autonomia.py installato e agganciato dopo misura.py. Prima corsa: rollback automatico della promozione 18/09 (PEGGIORA +0.206) da release 20260918T042917Z, matching_engine sha 367c4fbf1249, import ok
* soglia ferma a 85 (ultimi 3: PEGGIORA, MIGLIORA, MIGLIORA). Settimana: 3 AUTO_PROMOTED, verdetti 2 MIGLIORA / 3 NEUTRA / 1 PEGGIORA. Respinte con motivo le due pendenti a 85. Wiki SI-1_Reflect sez. 9.
* 21/09: cicli notturni puliti (autonomia ferma a 85, ultimi 3 PEGGIORA/MIGLIORA/MIGLIORA). 5 proposte nuove: 3 auto-respinte dal tester (patch/replace non applicabili, tutte su un polling di piano.py che in orchestrator.py non esiste), 2 respinte a mano con motivo (watch_steps contro nessun_passo
* abbassare judge_min_score su proposta propria). Trovato che la CONFIG_TUNE promossa il 20/09 titolata Polling Interval cambiava in realta watch_steps 3->5: aggiunto al tester il controllo di coerenza (EVOLUZIONE=SI-1-COERENZA): le chiavi modificate devono comparire in titolo o motivazione
* provato su caso coerente (PASS) e incoerente (FAIL). Tema ricorrente in 3 proposte: gate esplicito prima dell invio campagne grandi — sede giusta il mail engine, decisione di Marco.
* 23/09 Hermes Daily: adottato RRSI (arXiv 2609.24972) nel proposer (SI-1-RRSI: dedup Jaccard>=0.5 stesso target + budget 3000 char/80 righe, provato). Trovato e riparato il canale friction morto dal 24/08 (friction_log severity testuale nel JSON -> INSERT 400 silenzioso
* HERMES-SEVERITY-NUM, prova True). Ponte Reflect->system_events friction (SI-1-REFLECT-FRICTION, idempotente). Proposte Hermes: 0/54 mai decise -> 12 chiuse GIA_RISOLTO/GIA_COPERTO con motivo, restano 42. Wiki SI-1_Reflect sez. 10.
* 2026-09-23 14:01 UTC ASSORBITO il cantiere 'chat-s20260923-claudesi1-nkfgid' (simile): obiettivo: Sessione S20260923-claudesi1-nkfgid: deliverable D1-D3 incompleti (lettura ultime uscite Hermes Daily, sintesi adozioni, handoff aggiornato) e commessa mai chiu | perche': chat S20260923-claudesi1-nkfgid chiusa senza prova: il custode R103 ha trovato passi eseguibili
* 23/09 sera: hermes_cases.py (SI-1-HERMES-CASI) porta le proposte Hermes senza decisione in SI-1 come casi HP-*, 2 per corsa, riga BQ marcata SI1
* provato con HP-prop_20260826_71e2a5. hermes_migliorie cron disattivato (#CONCENTRATO_SI1, crontab backup). Hermes Daily include blocco SI-1 (HERMES-DAILY-SI1)
* Telegram digest pendenti spento (DIGEST-TELEGRAM-OFF). Wiki sez. 11. VM riavviata da agent-watchdog alle 16:06 UTC per memoria: non SI-1.
; Provato ed escluso :
* tool MCP safe_* non testabili da questa chat (connettore non caricato): la via HTTP con X-API-Key e equivalente e verificata
; Prossimo passo :
* grep -nE "hermes_case|HP-|Traceback" /home/claudeuser/self_improvement/si1.cron.log | tail -10


=== contesto-aree-0923 ===
=== contesto-aree-0923 ===