Generated: 2026-09-05
Purpose: Team onboarding and project review
Milestone: v1.0.1-alpha (Code Review & Bug Fixing)
- What This Is: Un Second Brain e Personal Knowledge Management (PKM) su base Obsidian, trasformato in un digital garden intelligente e integrato con Antigravity CLI per operare come un "NotebookLM locale". Permette di raccogliere note, appunti universitari (Ingegneria Informatica), articoli e video YouTube, organizzarli con una tassonomia semantica aperta (ACE Topography a 6 macro-cartelle) e interrogarli via chat per recuperare memorie, sintesi e connessioni interdisciplinari con citazioni dirette alle fonti.
- Core Value Proposition: Rendere l'acquisizione, la manutenzione e l'interrogazione della conoscenza personale fluidi, immediati e a zero attrito, eliminando la frammentazione degli strumenti con fondamenta strutturali solide, standardizzazione AST dei metadati e governance a puro Markdown statico.
- Target Users & Context: Studenti universitari, ricercatori e sviluppatori che necessitano di una base di conoscenza ad alta densità informativa, sincronizzata localmente, esportabile staticamente via Quartz Digital Garden, senza dipendenze da server vettoriali proprietari o plugin dinamici bloccanti (No Dataview).
- Milestone Scope: Risoluzione integrale delle criticità di sicurezza, dei bug logici di staging/ingestion, delle race condition di concorrenza, delle discrepanze diacritiche/APFS e del debito tecnico emersi dal Clean Code Audit Report del 2026-09-03.
- Status: Tutte le 6 fasi (Phases 07-12) e tutti i 12 piani pianificati sono stati eseguiti, verificati con esito
passede collaudati con 163/163 test unitari/integrazione passati con successo (100% green).
Elenco ragionato delle decisioni ingegneristiche e architetturali introdotte in v1.0.1-alpha:
-
Decommissioning Modulo School & Bonifica Credenziali (Phase 07 - SEC-01, SEC-02):
- Decisione: Eliminazione totale da Git (
git rm -f) diconfig.json,fetch-registro.pyeList.mdlegati a ClasseViva; aggiornamento.gitignore; preservazione attiva diStyle Guide.md. - Motivazione: Elimina alla radice il rischio di credential leak per un modulo dismesso senza aggiungere overhead di configurazione inutile.
- Fase: Phase 07 (Sicurezza Credenziali & Configurazione Dinamica)
- Decisione: Eliminazione totale da Git (
-
Risoluzione Dinamica Portabile degli Eseguibili e PATH (Phase 07 - SEC-03):
- Decisione: Sostituzione dei percorsi assoluti hardcoded
/Users/lorenzo/...conshutil.which("agy")ePath.home(), parametrizzazione del template LaunchAgent con__VAULT_PATH__e comandowatch.sh install-service. - Motivazione: Rende l'intera suite di script e demoni portabile su qualsiasi macchina macOS o container senza vincoli utente.
- Fase: Phase 07 (Sicurezza Credenziali & Configurazione Dinamica)
- Decisione: Sostituzione dei percorsi assoluti hardcoded
-
Spostamento Atomico Preventivo in
Source/e Salvaguardia Note Grezze (Phase 08 - INGEST-01):- Decisione: Le note contrassegnate con
ready: truein03 - Inbox/vengono spostate atomicamente in03 - Inbox/Source/prima di invocare le fasi AI, eliminando la cancellazione prematura sufile_path. - Motivazione: Previene la perdita irrevocabile delle note manoscritte dell'utente in caso di crash o eccezioni del modello AI.
- Fase: Phase 08 (Integrità Ingestion & Salvaguardia Staging)
- Decisione: Le note contrassegnate con
-
Pulizia Sincronizzata 1:1 delle Bozze Post-AI con
old_title(Phase 08 - INGEST-02):- Decisione: Tracciamento preliminare di
old_titleprima della riassegnazione del titolo concettuale AI (clean_title = cand_ai), con rimozione fisica diDraft/{old_title}.mde ridenominazione atomicaSource/{old_title}.mdinSource/{clean_title}.md. - Motivazione: Elimina la condizione auto-annullante
clean_title != cand_aied evita l'accumulo di bozze o sorgenti orfane in Inbox. - Fase: Phase 08 (Integrità Ingestion & Salvaguardia Staging)
- Decisione: Tracciamento preliminare di
-
Purge Frame YouTube su
video_ide Immagini Markdown (Phase 08 - INGEST-03):- Decisione: Al rifiuto
[-]di una nota, lettura preventiva del documento per ricavare ilvideo_id(11 caratteri) e cancellazione mirata di tutti i frame{video_id}_*.jpge{video_id}_*.pngin99 - Meta/Clipboard/, unita alla cancellazione di immagini incorporate nel corpo. - Motivazione: Azzeramento dei file orfani di screenshot indipendentemente da cambi di titolo post-inferenza.
- Fase: Phase 08 (Integrità Ingestion & Salvaguardia Staging)
- Decisione: Al rifiuto
-
Supporto Pipe Alias nei Link Wiki della Dashboard & AI Fallback Directory (Phase 08 - INGEST-04):
- Decisione: Parsing difensivo dei wiki-link della dashboard isolando il basename prima della pipe
|(name.split('|')[0]); rimozione dead code (doppio return); fallback AI leggero congemini-3.8-flash-lowe lista controllata di 19 cartelle. - Motivazione: Evita crash da
FileNotFoundErrorsu note con alias e classifica le note prive di keyword euristiche in modo intelligente. - Fase: Phase 08 (Integrità Ingestion & Salvaguardia Staging)
- Decisione: Parsing difensivo dei wiki-link della dashboard isolando il basename prima della pipe
-
Audit YAML Non Distruttivo con Flag
--lint-only(Phase 09 - HLTH-01):- Decisione: Implementazione della routine Single-Source-of-Truth
diagnose_yaml_violationscon stampa a terminale ricca in modalità read-only e rigetto programmatico dei conflitti con--auto-fix. - Motivazione: Consente ispezioni diagnostiche continue senza rischio di mutazioni accidentali sul filesystem.
- Fase: Phase 09 (Governance Vault & Integrità YAML Linter)
- Decisione: Implementazione della routine Single-Source-of-Truth
-
Preservazione Condizionale Metadati Video & Sincronizzazione Bidirezionale (Phase 09 - HLTH-02):
- Decisione:
infer_metadatapreservavideo_urlechannelper le note ditype: video(rimuovendoli per le altre tipologie) e sincronizza bidirezionalmentesourceconvideo_urlsu link YouTube validi. - Motivazione: Mantiene intatta la tracciabilità delle fonti video durante i cicli di normalizzazione e linting canonico.
- Fase: Phase 09 (Governance Vault & Integrità YAML Linter)
- Decisione:
-
Simmetria Diacritica Unicode NFC tra Filename e YAML Title (Phase 09 - HLTH-03):
- Decisione: Riscritte
clean_filenameeclean_title_strper delegare alla funzione SSOTnormalize_title_or_filename, eliminando la scomposizione distruttiva NFD e preservando le vocali accentate italiane in NFC. - Motivazione: Ristabilisce la corrispondenza 1:1 tra il nome file e il frontmatter
title, prevenendo discrepanze di normalizzazione. - Fase: Phase 09 (Governance Vault & Integrità YAML Linter)
- Decisione: Riscritte
-
Protezione da Collisioni Omonime in
scan_vault(Phase 09 - HLTH-04):- Decisione:
VaultHealthAuditor.scan_vaulttraccia i duplicati accidentali nella strutturaduplicate_notesed espone le anomalie nella diagnostica, senza sovrascrivereall_noteso azzerareincoming_links. - Motivazione: Rispetta l'assunzione fondamentale del Vault (nessuna omonimia) proteggendo l'integrità del grafo concettuale.
- Fase: Phase 09 (Governance Vault & Integrità YAML Linter)
- Decisione:
-
Sincronizzazione Dinamica Watcher PID & Panic Abort con Epuration Totale (Phase 10 - PERF-01):
- Decisione: Risoluzione del file PID tramite
$PID_FILE->/tmp/brain_watcher_{vault_hash}.pid;trigger_panic_aborttermina i worker figli salvaguardando il PID del demonewatch.shed eliminando lockfile, bozze parziali inDraft/e cancellando lo statoIn Elaborazione. - Motivazione: Permette un arresto d'emergenza pulito senza abbattere il demone di sorveglianza e senza lasciare artefatti orfani sul disco.
- Fase: Phase 10 (Retrieval, Concorrenza & Ottimizzazione Performance)
- Decisione: Risoluzione del file PID tramite
-
Mutex Lock Dedicato
DashboardLockperReview Dashboard.md(Phase 10 - PERF-02):- Decisione: Incapsulamento del ciclo read-modify-write di scansione e approvazione in
DashboardLockcon file/tmp/brain_dashboard_{vault_hash}.lock, auto-healing (TTL 60s), rientranza di processo e graceful skip per job in background. - Motivazione: Elimina le race condition e le sovrascritture di checkbox dovute ad accessi concorrenti tra watcher e utente.
- Fase: Phase 10 (Retrieval, Concorrenza & Ottimizzazione Performance)
- Decisione: Incapsulamento del ciclo read-modify-write di scansione e approvazione in
-
Compressione Cache
.recall_cache.jsona 728KB (<2.5MB) e Pruning Automatico (Phase 10 - PERF-03):- Decisione: Sostituzione dell'array
tokenscondoc_leneterm_freq; serializzazione JSON compatta conseparators=(',', ':'); esclusione della cartella03 - InboxdaIGNORE_FOLDERS; pruning deterministico delle note eliminate e flag--reindex. - Motivazione: Riduce la dimensione della cache del 96.7% (da 22MB a 728KB), azzerando l'I/O overhead e mantenendo il tempo di lookup sub-millisecondo.
- Fase: Phase 10 (Retrieval, Concorrenza & Ottimizzazione Performance)
- Decisione: Sostituzione dell'array
-
Conformità Headings Style Guide (Zero Emoji nei Titoli H1-H3 & Rimozione
## Collegamenti) (Phase 10 - PERF-04):- Decisione: Ristrutturazione di
format_outputin 2 sole sezioni pulite (### Sintesi Esecutiva,### Fonti & Citazioni); eliminazione totale delle emoji darecall_engine.pye dai report dibrain_health.py; eliminazione delle sezioni finali isolate## Collegamenti. - Motivazione: Piena aderenza alle convenzioni formali del Vault e integrazione organica dei collegamenti nella prosa.
- Fase: Phase 10 (Retrieval, Concorrenza & Ottimizzazione Performance)
- Decisione: Ristrutturazione di
-
Governance Hardening, Protezione
IGNORE_FILES& Ricalcolo Metriche (Phase 12 - CLEAN-01):- Decisione: Protezione incondizionata di
GEMINI.md,AGENTS.md,README.mddurante--auto-fix; ricalcolo da zero delle metriche di audit prima di rigenerare il dashboard; deduplicaMINOR_WORDS; breadcrumbs corretti per Calendar e Inbox; atomicità insafe_renamecontro collisioni case-only su APFS. - Motivazione: Previene sovrascritture di file critici di configurazione e garantisce la veridicità delle statistiche del Vault.
- Fase: Phase 12 (Clean Code Refactoring & Audit Fixes)
- Decisione: Protezione incondizionata di
-
Precisione Semantica, Word Boundaries & Ricerca Densa su Query Libere (Phase 12 - CLEAN-02):
- Decisione: Token matching con word boundaries (
\b) nello scoring YAML; esclusione dei blocchi di codice fenced prima dell'estrazione di snippet e titoli in recall; fallback a similarità densa vettoriale via pseudo-relevance feedback per query discorsive. - Motivazione: Elimina falsi positivi su acronimi brevi (
aidentromain), evita di interpretare commenti#come intestazioni ed estende il retrieval vettoriale anche a domande a linguaggio naturale. - Fase: Phase 12 (Clean Code Refactoring & Audit Fixes)
- Decisione: Token matching con word boundaries (
-
Resilienza Ingestion, Autolinking Protetto & Clean Architecture (Phase 12 - CLEAN-03, CLEAN-04):
- Decisione: Controllo fisico
os.path.isfileindetect_input_type; protezione anticipata di link markdown[text](url)e domini web inautolink_content; eccezione tipizzataVideoMetadataError; routing directory tabellareDIRECTORY_ROUTING_RULES(OCP/SRP); modello AI parametrizzabileDEFAULT_AI_MODEL; decomposizione di_process_tri_state_approvals_unlockedin 4 sub-handler; consolidamento DRY displit_markdown_noteeget_vault_root. - Motivazione: Rende l'ingestion immune a link corrotti o input errati, modularizza il codice eliminando catene
if/elifmonolitiche e garantisce riuso senza duplicazioni. - Fase: Phase 12 (Clean Code Refactoring & Audit Fixes)
- Decisione: Controllo fisico
| Phase | Name | Status | Key Accomplishments & Deliverables |
|---|---|---|---|
| 07 | Sicurezza Credenziali & Configurazione Dinamica | Complete | Decommissioning e rimozione da Git di 99 - Meta/School/config.json, fetch-registro.py e List.md; .gitignore rafforzato per file config.json; risoluzione dinamica di agy e PATH via shutil.which e Path.home(); parametrizzazione LaunchAgent macOS com.loackypkm.watcher.plist con token __VAULT_PATH__ e comando CLI watch.sh install-service; 110/110 test green. |
| 08 | Integrità Ingestion & Salvaguardia Staging | Complete | Spostamento atomico preventivo in 03 - Inbox/Source/ per note con ready: true; gestione errori con retry [x] e dismissione [-]; tracciamento old_title post-AI ed eliminazione della condizione clean_title != cand_ai; purge frame YouTube in 99 - Meta/Clipboard/ su video_id (11 caratteri) e immagini markdown; supporto pipe alias ([[Draft/Titolo|Alias]]); pulizia dead code e fallback AI per target directory; upgrade a gemini-3.8-flash-low; 120/120 test green. |
| 09 | Governance Vault & Integrità YAML Linter | Complete | Implementazione della modalità diagnostica non distruttiva --lint-only con diagnose_yaml_violations e mutua esclusione con --auto-fix; conservazione condizionale di video_url e channel per type: video con sync bidirezionale YouTube; unificazione della pipeline di normalizzazione stringhe in normalize_title_or_filename con simmetria Unicode NFC per vocali accentate; protezione da omonimie e collisioni in VaultHealthAuditor.scan_vault; 129/129 test green. |
| 10 | Retrieval, Concorrenza & Ottimizzazione Performance | Complete | Risoluzione dinamica del percorso PID watcher (get_watcher_pid_file) ed esportazione in watch.sh; Panic Abort con salvaguardia del demone watcher ed epurazione completa di lock e bozze parziali in Draft/; introduzione del mutex lock DashboardLock con TTL 60s per accessi atomici a Review Dashboard.md; compressione della cache .recall_cache.json a 728KB (eliminazione tokens a favore di doc_len/term_freq, separators=(',', ':'), esclusione 03 - Inbox e flag --reindex); sanificazione headings H1-H3 senza emoji e rimozione sezioni ## Collegamenti in recall_engine.py e brain_health.py; 139/139 test green. |
| 11 | Riallineamento Test Suite & Copertura CLI | Complete | Eliminazione delle asserzioni contraddittorie sui metadati video in tests/test_lint_yaml.py; mock PID dinamico su hash vault nei test del Panic Button in tests/test_brain_ingest.py; asserzioni di conformità Style Guide senza emoji e link organici in tests/test_recall_engine.py; copertura completa dei rami CLI di governance (--lint-only, --dry-run, --auto-fix, --dashboard-only, interactive EOF) in tests/test_brain_health.py; 151/151 test green. |
| 12 | Clean Code Refactoring & Audit Fixes | Complete | Implementazione di tutti i 13 punti del Clean Code Audit: protezione IGNORE_FILES root (GEMINI.md, AGENTS.md, README.md) in --auto-fix; ricalcolo metriche post-fix prima della generazione dashboard; deduplica MINOR_WORDS; breadcrumbs corretti Calendar/Inbox; atomicità safe_rename su filesystem APFS case-insensitive; token matching con word boundary (\b) nello scoring YAML; esclusione blocchi di codice fenced in recall; fallback semantico denso su query libere; gestione VideoMetadataError in youtube_helper.py; nome vault dinamico in watch.sh; gestione percorsi inesistenti in detect_input_type; protezione link markdown e domini in autolink_content; disaccoppiamento OCP/SRP con DIRECTORY_ROUTING_RULES; modello AI parametrizzabile DEFAULT_AI_MODEL; decomposizione _handle_* per approvazioni; consolidamento DRY di split_markdown_note e get_vault_root; 163/163 test green. |
Tutti i 23 requisiti specificati per la milestone v1.0.1-alpha sono stati completati, convalidati e certificati nel Milestone Audit Report (v1.0.1-alpha-MILESTONE-AUDIT.md):
| Req ID | Category | Status | Verification Evidence |
|---|---|---|---|
| SEC-01 | Security & Config | ✅ Met | Decommissioning config.json da Git (git rm --cached), inserimento in .gitignore e pulizia riferimenti obsoleti. |
| SEC-02 | Security & Config | ✅ Met | Rimozione completa di fetch-registro.py ed epurazione credenziali in chiaro e API key scolastica. |
| SEC-03 | Security & Config | ✅ Met | Risoluzione dinamica shutil.which("agy") e Path.home(), parametrizzazione LaunchAgent con __VAULT_PATH__ e watch.sh install-service. |
| INGEST-01 | Ingestion & Staging | ✅ Met | Spostamento preventivo atomico in 03 - Inbox/Source/ e rimozione della cancellazione anticipata di note grezze su eccezione. |
| INGEST-02 | Ingestion & Staging | ✅ Met | Tracciamento di old_title post-AI, rimozione di Draft/{old_title}.md e rename di Source/{old_title}.md, eliminazione condizione clean_title != cand_ai. |
| INGEST-03 | Ingestion & Staging | ✅ Met | Purge frame YouTube in Clipboard/ tramite matching sul video_id (11 caratteri) e pulizia immagini incorporate nel markdown al rifiuto [-]. |
| INGEST-04 | Ingestion & Staging | ✅ Met | Supporto trasparente caratteri pipe ` |
| HLTH-01 | Health & YAML | ✅ Met | Flag CLI --lint-only attivo in brain_health.py per audit diagnostico non distruttivo e mutua esclusione verificata con --auto-fix. |
| HLTH-02 | Health & YAML | ✅ Met | Conservazione condizionale di video_url e channel per type: video in infer_metadata e sync bidirezionale con source. |
| HLTH-03 | Health & YAML | ✅ Met | Normalizzazione unificata in normalize_title_or_filename con simmetria Unicode NFC per caratteri accentati italiani tra filename e title. |
| HLTH-04 | Health & YAML | ✅ Met | Gestione omonimie accidentali in VaultHealthAuditor.scan_vault senza sovrascrittura di nodi o azzeramento link, con tracciamento in duplicate_notes. |
| PERF-01 | Retrieval & Concurrency | ✅ Met | Sincronizzazione dinamica PID tra watch.sh e brain_ingest.py per Panic Button, salvaguardia del demone ed epurazione totale delle bozze interrotte. |
| PERF-02 | Retrieval & Concurrency | ✅ Met | Mutex DashboardLock dedicato su /tmp/brain_dashboard_{vault_hash}.lock per accessi concorrenti atomici su Review Dashboard.md. |
| PERF-03 | Retrieval & Concurrency | ✅ Met | Compressione .recall_cache.json a 728KB (<2.5MB), rimozione lista tokens per doc_len/term_freq, esclusione 03 - Inbox e flag --reindex. |
| PERF-04 | Retrieval & Concurrency | ✅ Met | Eliminazione completa delle emoji nelle intestazioni H1-H3 e rimozione delle sezioni finali ## Collegamenti in recall_engine.py e brain_health.py. |
| TEST-01 | Test Realignment | ✅ Met | Risoluzione asserzioni contraddittorie in tests/test_lint_yaml.py e verifica coerenza metadati video tra lint_file e serializzazione canonica. |
| TEST-02 | Test Realignment | ✅ Met | Correzione mock PID watcher basato sull'hash del vault in tests/test_brain_ingest.py per Panic Button. |
| TEST-03 | Test Realignment | ✅ Met | Asserzioni aggiornate in tests/test_recall_engine.py per validare l'assenza di emoji nei titoli e l'assorbimento organico dei link nella prosa. |
| TEST-04 | Test Realignment | ✅ Met | Copertura dei rami di esecuzione CLI in tests/test_brain_health.py (--lint-only, --dry-run, --auto-fix, --dashboard-only, interactive EOF). |
| CLEAN-01 | Clean Code & Audit | ✅ Met | Salvaguardia IGNORE_FILES (GEMINI.md, AGENTS.md, README.md), ricalcolo metriche post-fix, deduplica MINOR_WORDS, fix breadcrumbs Calendar/Inbox e atomicità APFS safe_rename. |
| CLEAN-02 | Clean Code & Audit | ✅ Met | Fallback semantico denso su query libere via pseudo-relevance feedback, word boundaries (\b) nello scoring YAML ed esclusione blocchi di codice fenced in recall. |
| CLEAN-03 | Clean Code & Audit | ✅ Met | detect_input_type con verifica fisica os.path.isfile, autolink protetto per link markdown e domini web, eccezione VideoMetadataError, nome vault dinamico in watch.sh. |
| CLEAN-04 | Clean Code & Audit | ✅ Met | Routing dichiarativo DIRECTORY_ROUTING_RULES, modello AI configurabile con DEFAULT_AI_MODEL e env var, decomposizione _handle_* approvazioni, consolidamento DRY split_markdown_note/get_vault_root. |
Audit Verdict: PASSED (23/23 Requirements Satisfied, 0 Gaps, 0 Orphaned, 163/163 Tests Green).
Registro cronologico delle decisioni prese nel corso di v1.0.1-alpha:
| ID | Fase | Decisione | Motivazione & Impatto |
|---|---|---|---|
| D-01 (P7) | Phase 07 | Decommissioning completo modulo School (config.json, fetch-registro.py, List.md) |
Elimina alla radice il rischio di credential leak per integrazione dismessa. |
| D-02 (P7) | Phase 07 | Preservazione attiva di 99 - Meta/School/Style Guide.md |
Mantiene intatta la guida di stile cromatica per le evidenziazioni HTML <mark>. |
| D-04 (P7) | Phase 07 | Risoluzione dinamica shutil.which("agy") e Path.home() in brain_ingest.py e backfill_summaries.py |
Rende gli script portabili ed elimina i path assoluti legati all'utente locale. |
| D-05 (P7) | Phase 07 | Parametrizzazione LaunchAgent macOS con placeholder __VAULT_PATH__ e watch.sh install-service |
Consente l'installazione automatica del servizio demone in ~/Library/LaunchAgents/. |
| D-01 (P8) | Phase 08 | Spostamento atomico preventivo delle note grezze in 03 - Inbox/Source/ |
Protegge le note manoscritte dell'utente contro crash improvvisi o eccezioni AI. |
| D-03 (P8) | Phase 08 | Pulizia sincronizzata 1:1 delle bozze post-AI tramite memorizzazione di old_title |
Elimina la condizione auto-annullante clean_title != cand_ai ed evita file orfani. |
| D-04 (P8) | Phase 08 | Purge selettivo dei frame YouTube in Clipboard/ basato su video_id (11 caratteri) |
Garantisce la pulizia completa dei file immagine al rifiuto [-] indipendentemente dal titolo. |
| D-05 (P8) | Phase 08 | Isolamento del nome effettivo prima della pipe ` | ` nei wiki-link della dashboard |
| D-06 (P8) | Phase 08 | Eliminazione codice morto e fallback AI mirato per la target directory in classify_target_directory |
Rimuove doppio return e classifica intelligentemente con gemini-3.8-flash-low. |
| D-07 (P8) | Phase 08 | Upgrade globale del modello di inferenza a gemini-3.8-flash-low |
Adotta il modello più recente e prestante per tutte le pipeline di elaborazione. |
| D-01 (P9) | Phase 09 | Modalità diagnostica read-only --lint-only con prospetto CLI ricco |
Consente verifiche di conformità YAML sicure e non distruttive a terminale. |
| D-02 (P9) | Phase 09 | Rigetto difensivo dell'invocazione combinata --lint-only + --auto-fix |
Protegge la semantica di sola lettura evitando mutazioni contrastanti. |
| D-03 (P9) | Phase 09 | Preservazione simmetrica dei caratteri accentati italiani in forma Unicode NFC | Elimina la rimozione dei diacritici e garantisce parità 1:1 tra filename e frontmatter title. |
| D-06 (P9) | Phase 09 | Tracciamento collisioni omonime in duplicate_notes senza sovrascrivere all_notes |
Preserva la coerenza del grafo e segnala le anomalie di unicità nel dashboard. |
| D-07 (P9) | Phase 09 | Conservazione condizionale di video_url e channel per type: video e sync con source |
Protegge i metadati multimediali specifici durante i cicli di normalizzazione. |
| D-01 (P10) | Phase 10 | Risoluzione dinamica del percorso PID watcher tramite hash vault (/tmp/brain_watcher_{hash}.pid) |
Sincronizza watch.sh e brain_ingest.py per l'arresto d'emergenza affidabile. |
| D-02 (P10) | Phase 10 | Preservazione del demone watcher ed eliminazione totale bozze parziali su Panic Abort | Arresta i worker e ripulisce le bozze corrotte lasciando vigile il servizio di monitoraggio. |
| D-05 (P10) | Phase 10 | Mutex lock dedicato DashboardLock per 03 - Inbox/Review Dashboard.md |
Previene collisioni concorrenti e perdita di checkbox tra scanner e approvazioni. |
| D-09 (P10) | Phase 10 | Serializzazione compatta JSON separators=(',', ':') per .recall_cache.json |
Riduce il peso su disco della cache del 96.7% (da 22MB a 728KB) azzerando l'I/O. |
| D-10 (P10) | Phase 10 | Eliminazione dell'array ridondante tokens a favore di doc_len e term_freq |
Ottimizza memoria e disco mantenendo inalterato lo scoring Okapi BM25. |
| D-12 (P10) | Phase 10 | Esclusione della cartella 03 - Inbox dal perimetro di indicizzazione di recall |
Previene falsi positivi ed elimina rumore da bozze temporanee o note grezze. |
| D-13 (P10) | Phase 10 | Ristrutturazione di recall_engine.py in 2 sezioni senza emoji con assorbimento organico dei link |
Allinea l'output alla Style Guide del Vault integrando le connessioni nella prosa. |
| D-14 (P10) | Phase 10 | Rimozione emoji da tutte le intestazioni H1-H3 nei report di brain_health.py |
Standardizza tutti i report Markdown su layout pulito e sobrio. |
| CLEAN-01 | Phase 12 | Salvaguardia IGNORE_FILES root, ricalcolo metriche post-fix, atomicità APFS safe_rename |
Protegge i file di configurazione di sistema e risolve conflitti case-only su macOS. |
| CLEAN-02 | Phase 12 | Word boundaries (\b) nello scoring YAML, esclusione codice fenced e fallback semantico denso |
Elimina falsi positivi lessicali su acronimi ed estende la ricerca vettoriale alle query libere. |
| CLEAN-03 | Phase 12 | Verifica os.path.isfile per tipo input, autolink protetto per URL/markdown, VideoMetadataError |
Previene errori di parsing su file inesistenti e blocca la creazione di note video fittizie. |
| CLEAN-04 | Phase 12 | Routing dichiarativo tabellare OCP/SRP, modello AI configurabile, decomposizione handler | Snellisce le funzioni monolitiche e consolida le funzioni duplicate DRY nel codebase. |
- Vulnerabilità di Sicurezza: Epurate definitivamente credenziali ClasseViva e API key hardcoded; rimossi file tracciati da Git; percorsi assoluti utente dinamizzati.
- Data-Loss Hazards: Eliminato il rischio di cancellazione prematura delle note grezze dell'Inbox grazie allo staging preventivo in
Source/. - Ghost Drafts & Orphan Frames: Risolti i bug di ridenominazione post-AI e implementato il purge dei frame YouTube mirato su
video_id. - Race Conditions: Serializzate le operazioni su
Review Dashboard.mdtramiteDashboardLockcon timeout e gestione non bloccante. - Cache Bloat: Compressa la cache di retrieval vettoriale/BM25 da 22MB a 728KB, con pruning deterministico delle note rimosse.
- Discrepanze Diacritiche e Conflitti APFS: Standardizzata la normalizzazione Unicode NFC simmetrica tra filename e YAML title; gestita la ridenominazione case-only su filesystem macOS APFS.
- Test Inconsistencies: Risolte le asserzioni contraddittorie sui metadati video e mockati i test di rete YouTube; copertura estesa a 163 test green.
- Codice Monolitico e Duplicazioni DRY: Decomposte le funzioni monolitiche di approvazione e classificazione; centralizzate le utility duplicate
split_markdown_noteeget_vault_root.
- EXT-01 (v2): Sincronizzazione automatica bidirezionale con Kindle / Readwise per highlight da ebook e articoli.
- EXT-02 (v2): Voice-to-text capture mobile con trascrizione Whisper automatica e staging in Inbox.
- GRAPH-01 (v2): Algoritmo di clustering concettuale basato sui vettori del Vault per suggerire la creazione proattiva di Sub-MOC.
Guida rapida operativa aggiornata con le nuove funzionalità di v1.0.1-alpha:
# Avvia il watcher in background
./"99 - Meta/Scripts/watch.sh" start
# Verifica lo stato e il PID sincronizzato con hash vault
./"99 - Meta/Scripts/watch.sh" status
# Arresta il demone
./"99 - Meta/Scripts/watch.sh" stop
# Riavvia il demone
./"99 - Meta/Scripts/watch.sh" restart
# Installa il demone permanente come LaunchAgent utente macOS
./"99 - Meta/Scripts/watch.sh" install-service# Ingestione standard (approfondimento) con modello gemini-3.8-flash-low
python3 "99 - Meta/Scripts/brain_ingest.py" "https://www.youtube.com/watch?v=..."
# Ingestione sintetica compatta
python3 "99 - Meta/Scripts/brain_ingest.py" "https://..." --depth sintesi
# Elaborazione approvazioni interattive dalla Review Dashboard (con mutex DashboardLock)
python3 "99 - Meta/Scripts/brain_ingest.py" --process-approvals
# Arresto di emergenza / Panic Button via CLI
python3 "99 - Meta/Scripts/brain_ingest.py" --panic# Ricerca ibrida (BM25 + Vettori + YAML con fallback semantico denso)
python3 "99 - Meta/Scripts/recall_engine.py" "Come funziona l'algoritmo di attenzione nei Transformer?"
# Ricerca strutturata con filtri controllati
python3 "99 - Meta/Scripts/recall_engine.py" "Reti Neurali" --area tech --type concept
# Formato Markdown conforme alla Style Guide (2 sezioni pulite, 0 emoji, link organici)
python3 "99 - Meta/Scripts/recall_engine.py" "Gestione della memoria" --format markdown
# Ricostruzione forzata della cache compressa (<750KB)
python3 "99 - Meta/Scripts/recall_engine.py" --reindex# Ispezione diagnostica in SOLA LETTURA (nessuna modifica su disco)
python3 "99 - Meta/Scripts/brain_health.py" --lint-only
# Anteprima delle modifiche e ridenominazioni Title Case
python3 "99 - Meta/Scripts/brain_health.py" --dry-run
# Applicazione correzioni automatiche (normalizzazione YAML, Title Case, breadcrumbs, IGNORE_FILES protetti)
python3 "99 - Meta/Scripts/brain_health.py" --auto-fix
# Rigenerazione rapida della dashboard statica Markdown
python3 "99 - Meta/Scripts/brain_health.py" --dashboard-only# Esecuzione completa dei 163 unit e integration tests
python3 -m unittest discover tests -v- GEMINI.md — Memoria di sistema e convenzioni permanenti del Vault.
- AGENTS.md — Architettura del Second Brain e runtime conventions.
- Review Dashboard.md — Interfaccia GTD di revisione e approvazione note.
- Vault Health Dashboard.md — Report diagnostico statico del Vault.
- Style Guide.md — Guida di stile per evidenziazioni cromatiche
<mark>, diagrammi Mermaid e formule LaTeX.
- Timeline: 2026-09-01 → 2026-09-05 (4 giorni di sviluppo attivo)
- Phases: 6 / 6 Completate (Phases 07-12, 12 piani eseguiti al 100%)
- Tasks Executed: 29 task implementativi e di collaudo
- Commits: 38 commit
- Files changed: 77 file (+10,509 / -6,812)
- Automated Tests: 163 unit/integration tests (100% green pass rate)
- Cache Footprint: Ridotta da 22MB a 728KB (-96.7%)
- Contributors: Loacky lorenzoadacher@gmail.com