diff --git a/CHANGELOG.md b/CHANGELOG.md index 8eb8ee8..24d26c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ - Replaced marker-file authorization with two-turn skill preparation and receipt diagnostics; legacy markers can only infer a unique session ID during migration. - Allowed direct host-local `init-engagement --host` bootstrapping, persisted runtime session identity before skill delivery, and blocked shell-indirection workarounds. - Scoped skill cooldowns to Hermes model API requests so the next tool-loop continuation unlocks automatically, while batch review no longer replaces the active execution-skill binding. +- Migrated guard tool schemas and parameter validation to Pydantic v2. +- Replaced platform-specific process termination with cross-platform `psutil` process tree traversal and cleanup. +- Upgraded target IP/CIDR scope policy arithmetic to `netaddr.IPSet` and RFC 3986 URL parsing to `yarl`. +- Replaced shell regexes in terminal policy with `bashlex` AST tokenization and command parsing. ## 2.0.8 diff --git a/README.md b/README.md index daac8b8..b5b1f4f 100644 --- a/README.md +++ b/README.md @@ -218,7 +218,10 @@ violin/ ├── config.yaml # Profile config (toolsets, safety, memory) ├── distribution.yaml # Hermes distribution manifest ├── plugins/violin_guard/ # Required Hermes guard plugin and execution boundary -│ ├── terminal_policy.py # Best-effort blocks for clearly target-touching raw terminal calls +│ ├── bash_ast.py # bashlex AST command tokenization and parsing +│ ├── terminal_policy.py # AST-based best-effort blocks for target-touching raw terminal calls +│ ├── targets.py # Scope enforcement using netaddr and yarl URL parsing +│ ├── schemas.py # Pydantic v2 tool schemas and validation │ └── code_execution_audit.py # Engagement audit contract for execute_code ├── scripts/ # CLI and release smoke helpers │ ├── violin_guard.py # Diagnostic/admin CLI over the plugin modules