feat: gatekeeper service + gate de phase (v0.11.0)
Gatekeeper vérifie le statut d'asset avant chaque exécution : privilégié inconnu → BLOQUÉ (aucun sursis) refusé jusqu'à review + hook d'alerte ; approuvé → exécutable. Lecture seule autorisée sans asset. Gate de phase CHLOVA_PHASE (défaut 1, fail-safe) ; assertReadOnlyPhase phase-aware. 7 nouveaux tests. Palier de risque : reversible (logique de contrôle, n'exécute aucune mutation). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,18 @@ incompatibles. Chaque ligne renvoie à un commit dédié (un artefact = un commi
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.11.0] — 2026-06-23
|
||||
### Added
|
||||
- `src/gatekeeper/gatekeeper.ts` : service `Gatekeeper` (vérifie le statut AVANT
|
||||
chaque exécution) + `GatekeeperGuard`. Privilégié inconnu → enregistré BLOQUÉ,
|
||||
refusé jusqu'à review, hook d'alerte `onBlockedAttempt` ; approuvé → exécutable
|
||||
+ incrément du compteur. Lecture seule → autorisée sans asset.
|
||||
- Gate de phase `CHLOVA_PHASE` (défaut 1, fail-safe) dans la config.
|
||||
- Tests gatekeeper service (5) + phase config (2).
|
||||
### Changed
|
||||
- `assertReadOnlyPhase` devient phase-aware : Phase 1 exige read-only ; Phase 2
|
||||
autorise `PORTAINER_READ_ONLY=false`.
|
||||
|
||||
## [0.10.0] — 2026-06-23 — début Phase 2 (écriture + need-review)
|
||||
### Added
|
||||
- `src/gatekeeper/repository.ts` : `AssetRepository` SQLite (`node:sqlite`, zéro
|
||||
|
||||
Reference in New Issue
Block a user