← Indice documentazione Guida all'architettura › modifiche

Metnos

Ciclo di vita delle modifiche
Un oggetto comune per proporre, decidere, applicare e osservare un cambiamento.

Le sorgenti che suggeriscono un miglioramento non modificano direttamente Metnos. Traducono il suggerimento in un change_intent, cioè un record tipizzato con origine, obiettivo, motivazione, punteggio e stato. La pagina /admin/changes presenta questi record e mantiene visibile il loro percorso.

Indice

  1. L'oggetto comune
  2. Stati e transizioni
  3. Sorgenti attive
  4. Materializzazione, applicazione e osservazione
  5. Cosa viene applicato
  6. Esempio in linguaggio naturale
  7. Garanzie e limiti

1. L'oggetto comune

I record sono conservati in ~/.local/state/metnos/change_intents.sqlite. I campi principali sono:

GruppoContenuto
Identitàid e impronta deterministica per deduplicare proposte equivalenti.
ProvenienzaFamiglia, modulo sorgente, identificatore originario e data di scoperta.
IntentoTipo chiuso, obiettivo, sintesi, motivazione e payload specifico.
PrioritàPunteggio, confidenza e numero di sorgenti convergenti.
DecisionePersona, azione, motivazione e istante della decisione.
EsitoEffetto applicato, metriche osservate, errore o dati di ripristino.

L'impronta non contiene la famiglia d'origine. Se due sorgenti descrivono la stessa modifica, l'upsert può riunirle in un record e aumentare la convergenza senza duplicare l'azione. Il punteggio resta un criterio di ordinamento, non un'autorizzazione.

2. Stati e transizioni

proposed  --accetta--> accepted --applica--> applied
    |                         |                    |
    |                         +--errore--> failed  +--misura--> observed
    +--rimanda--> staged                              |
    +--rifiuta--> rejected                            +--ok--> finalized
                                                     +--problema--> rolled_back

Una proposta rimandata può tornare in valutazione. Un errore può essere riprovato oppure rifiutato. Il ripristino è terminale nel registro e viene eseguito fisicamente quando il tipo di modifica lo consente. La macchina a stati impedisce passaggi arbitrari: una proposta non può diventare applied senza essere prima accepted.

3. Sorgenti attive

Il materializzatore interroga quattro adapter senza effetti collaterali:

SorgenteChe cosa può produrre
TelosCreazione o estensione di executor e prova controllata di una sequenza, a partire dalle teste di gruppi azionabili.
IntrovertivaDeduplica di executor; conserva inoltre gli stati già registrati che devono restare consultabili.
SyntRichieste di creazione di executor e relativi stati terminali o ancora in corso.
Riscontri dell'utenteProposta di rifiutare uno schema ricorrente dopo almeno due riscontri negativi coerenti.

Gli adapter traducono strutture diverse nello stesso schema. Non applicano la modifica e non trasformano una deduzione automatica in consenso umano.

4. Materializzazione, applicazione e osservazione

AttivitàFrequenza predefinitaResponsabilità
change_intent_materializeOgni giorno alle 01:00Legge gli adattatori, elimina i duplicati in base all'impronta e aggiorna l'archivio.
change_applierOgni 10 minutiElabora fino a 20 record accettati e registra l'effetto o l'errore.
change_observerOgni giorno alle 03:15Misura fino a 200 modifiche applicate o in osservazione e decide se finalizzarle o ripristinarle.

Il periodo di osservazione predefinito è di sette giorni ed è configurabile con METNOS_CHANGE_GRACE_DAYS. I criteri dipendono dal tipo: salute dell'executor, integrità di un alias, risultato del turno usato per provare una sequenza o un nuovo riscontro sullo schema rifiutato.

5. Cosa viene applicato

TipoEffetto correnteRipristino
create_executorAvvia la sintesi dell'executor; se esiste già, non lo duplica.Archivia l'executor sintetizzato.
extend_executorEstende il manifest, conserva una copia e firma di nuovo l'executor.Ripristina il manifest conservato e lo firma di nuovo.
dedupe_executorsCrea un alias e ritira il duplicato solo se la provenienza consente l'operazione.Rimuove l'alias e riattiva il duplicato.
materialize_pipelineEsegue una volta la richiesta proposta come turno reale, con policy e controlli normali.Registra il ripristino; il turno non installa un artefatto persistente da rimuovere.
reject_patternAggiunge lo schema approvato al registro dei percorsi da evitare.Rimuove la registrazione corrispondente.
cache_patternResta supportato per record compatibili già presenti nell'archivio.Retrocede la registrazione associata.

6. Esempio in linguaggio naturale

Chiedi a Metnos con una richiesta come quella di questo esempio: «Mostrami le modifiche al sistema che aspettano una mia decisione e spiegami la prima in parole semplici».

Le decisioni si prendono nella chat web. Se stai parlando con Metnos da Telegram, apri la chat web, entra nell'area di amministrazione e scegli Modifiche; il percorso tecnico è /admin/changes. La pagina permette di filtrare per stato, sorgente e tipo e offre soltanto le transizioni ammesse per ciascun record.

7. Garanzie e limiti

Riferimenti nel codice: runtime/change_intents.py, runtime/change_intent_adapters/, runtime/jobs/change_intent_materialize.py, runtime/change_applier.py, runtime/change_observer.py, runtime/change_rollback.py e runtime/http_routes_admin.py.