Files
chlova/CHANGELOG.md
T
Kantin-Petit bfce952817 feat: registry MCP + readonly-filter (v0.7.0)
Barrière n°1 de la lecture seule : seuls les outils readOnlyHint=true sont
exposés (fail-safe, palier de risque déduit côté code). Registry connecte
n8n + Portainer en HTTP authentifié et produit des ToolHandle read-only.
Retrait d'exactOptionalPropertyTypes pour interop SDK MCP (reste strict).

Palier de risque : reversible.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 01:13:03 +02:00

67 lines
3.3 KiB
Markdown

# Changelog
Format [Keep a Changelog](https://keepachangelog.com/), versioning [SemVer](https://semver.org/).
Tant que le projet est en `0.x`, chaque mineur peut introduire des changements
incompatibles. Chaque ligne renvoie à un commit dédié (un artefact = un commit).
## [Unreleased]
## [0.7.0] — 2026-06-23
### Added
- `src/mcp/readonly-filter.ts` : barrière lecture seule — n'expose que les outils
`readOnlyHint === true` (fail-safe : absence d'annotation ⇒ écarté) ; déduit le
palier de risque (jamais déclaré par le LLM).
- `src/mcp/registry.ts` : connexion MCP HTTP authentifiée (n8n + Portainer),
liste + filtre les outils read-only en `ToolHandle`, sérialise les résultats.
### Changed
- `tsconfig` : retrait de `exactOptionalPropertyTypes` (interop SDK MCP) ; reste
strict (`strict`, `noUncheckedIndexedAccess`, `noImplicitOverride`).
## [0.6.0] — 2026-06-23
### Added
- Client Ollama `/api/chat` (`src/llm/ollama.ts`) : modèles cloud via proxy,
auth Bearer, timeout, tool-calling, erreurs sans fuite de secret.
- Boucle agent (`src/agent/loop.ts` + `types.ts`) : comprendre → outil → observer
→ répondre, garde-fou anti-boucle, audit par appel, `Guard` injecté
(abstraction prête pour le gatekeeper Phase 2). `ToolHandle` indépendant de MCP.
## [0.5.0] — 2026-06-23 — début Phase 1 (cerveau lecture seule)
### Added
- Squelette orchestrateur TS (Node 22, ESM strict, Fastify) : `config.ts`
fail-closed (zod, verrou `assertReadOnlyPhase`, `redactedConfig`),
`audit/log.ts` (pino + journal d'exécutions), `index.ts` (bootstrap +
healthcheck interne), `Dockerfile` multi-stage (base épinglée, user non-root),
`vitest.config.ts`, `orchestrator/README.md`.
- Dépendances **épinglées**, `npm audit` à 0 vulnérabilité.
## [0.4.0] — 2026-06-23 — fin Phase 0 (socle)
### Added
- `infra/docker-compose.yml` : stack CHLOVA — Ollama (proxy cloud, interne +
egress, aucun port publié), socket-proxy (lecture seule), MCP n8n + MCP
Portainer (read-only), backend (seule surface, aucun port publié en P1).
Images à tags épinglés (digests à confirmer avant déploiement réel), réseaux
`chlova-internal` (internal) / `chlova-egress`. Config validée (`compose config`).
## [0.3.0] — 2026-06-23
### Added
- Socle sécurité : `docs/security.md` (modèle de menace prompt-injection +
défenses par couche + invariants testés), `infra/networks.md` (réseaux interne
vs egress, ports, egress filtré `ollama.com`), `infra/socket-proxy/README.md`
(filtrage des endpoints Docker, lecture seule P1).
- `.gitattributes` : normalisation LF (scripts/compose en LF strict).
## [0.2.0] — 2026-06-23
### Added
- Conventions versioning/doc : `docs/versioning.md` (SemVer, un-artefact-un-commit,
pinning images, export workflows n8n), `docs/asset-template.md` (gabarit doc),
`docs/risk-tiers.md` (réversible vs privilégié, invariant anti-escalade),
`docs/architecture.md` (schéma + invariants + composants).
### Changed
- `.gitignore` : ignore `.claude/settings.local.json` (réglages locaux).
## [0.1.0] — 2026-06-23
### Added
- Scaffold du dépôt : `CLAUDE.md` (architecture + règles non négociables),
`README.md`, `CHANGELOG.md`, `.env.example`, `.gitignore`.
- Squelette d'arborescence : `docs/`, `infra/`, `orchestrator/`, `workflows-n8n/`.