Cicle de Vida de l’Escenari de Porta de Decisió + Arquitectura de Magatzem d’Estat
Audience: Engineers implementing scenario execution, run lifecycle, and Audiència: Enginyers que implementen l’execució de scenarios, el cicle de vida d’execució i la persistència de l’estat d’execució.
Taula de continguts
- Visió Executiva
- Especificació de l’escenari
- Cicle de Vida d’Execució de l’Escenari (MCP)
- Model d’Estat d’Execució
- Flux d’Execució del Pla de Control
- Magatzems d’estat d’execució
- File per Fitxer Referència Creuada
Executive Overview
Els escenaris defineixen fluxos de treball de divulgació escalonada en una especificació determinista. La capa MCP valida i registra escenaris, després instancia un entorn d’execució del pla de control per a cada escenari. Les execucions es persisteixen mitjançant una implementació de RunStateStore (en memòria o SQLite). L’estat d’execució és només d’append, registrant desencadenants, resultats de portes, decisions, paquets, presentacions i trucades d’eines. F:crates/decision-gate-core/src/core/spec.rs L51-L114 F:crates/decision-gate-mcp/src/tools.rs L721-L895 F:crates/decision-gate-core/src/core/state.rs L357-L394
Especificació de l’escenari
ScenarioSpec és la definició canònica de l’escenari:
- Identificadors (escenari, espai de noms, versió de l’especificació)
- Definicions d’escenaris i lògica de portes
- Definicions de condicions i consultes d’evidència
- Referències d’esquema opcionals i id de llogater per defecte
Les especificacions es validen en carregar per assegurar la unicitat i la coherència interna. F:crates/decision-gate-core/src/core/spec.rs L51-L114
El comportament a nivell d’escenari es defineix mitjançant StageSpec (paquets d’entrada, portals, ramificació, temps d’espera opcional). F:crates/decision-gate-core/src/core/spec.rs L121-L140
Cicle de Vida d’Execució de l’Escenari (MCP)
Defineix Escenari
scenario_define registra un escenari i emmagatzema un temps d’execució al router de l’eina:
- Aplicació de l’espai de noms
- Validació del registre de capacitats
- Validació estricta del comparador
- Instanciació de ControlPlane amb la política de confiança actual + política d’ancoratge
F:crates/decision-gate-mcp/src/tools.rs L721-L749 F:crates/decision-gate-mcp/src/tools.rs L2045-L2066
Iniciar Execució
scenario_start crea un nou estat d’execució utilitzant el pla de control i el persisteix a través de l’emmagatzematge configurat. F:crates/decision-gate-mcp/src/tools.rs L760-L814
Estat / Següent / Enviar / Activar
Les eines posteriors operen sobre el runtime emmagatzemat i l’estat d’execució persistit:
scenario_statusllegeix l’estat actualscenario_nextavança en funció de les proves disponiblesscenario_submitpuja artefactes externsscenario_triggerinjecta un esdeveniment de desencadenament extern
F:crates/decision-gate-mcp/src/tools.rs L816-L977
scenario_submit.payload i scenario_trigger.payload es conserven en els registres d’estat d’execució i s’exporten en els artefactes de runpack per disseny. Les integracions han de tractar aquests canals de càrrega útil com a visibles per a l’auditoria i evitar enviar secrets en brut.
scenario_next pot incloure opcionalment comentaris (resum/traç/evidència) en la resposta de l’eina quan ho permeti la política de comentaris del servidor. El comentari de traç reutilitza les avaluacions de portes emmagatzemades; el comentari d’evidència pot mostrar registres d’avaluació de portes amb la política de divulgació aplicada. F:crates/decision-gate-mcp/src/tools.rs L2144-L2257 F:crates/decision-gate-core/src/core/state.rs L357-L394
Model d’Estat d’Execució
L’estat d’execució és un registre estructurat, només d’apèndix, que conté:
- Identificadors de llogater, espai de noms, execució, escenari
- Estat actual i fase del cicle de vida
- Objectius de despachament
- Registre de desencadenament, registre d’avaluació de portes, registre de decisions
- Paquets, presentacions i transcripcions de trucades d’eines
F:crates/decision-gate-core/src/core/state.rs L357-L394
L’estat del cicle d’execució és un enum tancat: active, completed, failed. F:crates/decision-gate-core/src/core/state.rs L72-L85
Flux d’Execució del Pla de Control
El motor del pla de control executa transicions d’escenaris, avalua proves i registra decisions. Manté l’estat d’execució després de transicions clau i utilitza polítiques de confiança/ancoratge configurades en temps d’execució. F:crates/decision-gate-core/src/runtime/engine.rs L153-L178 F:crates/decision-gate-mcp/src/tools.rs L2029-L2066
Magatzems d’estat d’execució
Magatzem en Memòria
L’emmagatzematge en memòria està destinat a proves i demostracions. Implementa RunStateStore amb un mapa protegit per un mutex. F:crates/decision-gate-core/src/runtime/store.rs L53-L127
SQLite Store
L’emmagatzematge SQLite proporciona instantànies duradores:
- Cada desament emmagatzema JSON canònic més un hash.
- Les càrregues verifiquen la integritat del hash i la consistència de la clau.
- Les versions es fan un seguiment per execució, amb una poda de retenció opcional.
F:crates/decision-gate-store-sqlite/src/store.rs L540-L640
La configuració de l’emmagatzematge suporta el mode WAL, el mode de sincronització, el temps d’espera ocupat i els límits de retenció. F:crates/decision-gate-store-sqlite/src/store.rs L135-L156
Configuració MCP
La capa MCP selecciona el tipus de botiga mitjançant la configuració run_state_store. F:crates/decision-gate-config/src/config.rs L1523-L1582
File per Fitxer Referència Creuada
| Àrea | Fitxer | Notes |
|---|---|---|
| Especificació de l’escenari + validació | crates/decision-gate-core/src/core/spec.rs | Estructura canònica de l’escenari + invariants. |
| Model d’estat d’execució | crates/decision-gate-core/src/core/state.rs | Estat d’execució + registres només d’append. |
| Motor del pla de control | crates/decision-gate-core/src/runtime/engine.rs | Execució i flux de decisió. |
| Cicle de vida de l’eina MCP | crates/decision-gate-mcp/src/tools.rs | scenario_define/start/next/submit/trigger/status. |
| Emmagatzematge en memòria | crates/decision-gate-core/src/runtime/store.rs | Implementació d’emmagatzematge de prova/determinista. |
| Emmagatzematge SQLite | crates/decision-gate-store-sqlite/src/store.rs | Emmagatzematge durable amb verificació de hash + retenció. |
| Configuració de l’emmagatzematge | crates/decision-gate-config/src/config.rs | Selecció de run_state_store + validació. |