v1.3.0 — AST Analysis, Executor Pattern & Security Hardening
What's New in v1.3.0
This release is a significant architectural and security upgrade. It introduces AST-based Python analysis, the Executor Strategy pattern, and hardens multiple security boundaries.
✨ Added
- — deep security analysis using Python's native
astmodule; detectsexec(),eval(),pickle.loads(), subprocess calls, and dangerous imports that regex cannot catch- Graceful degradation if Python 3.8+ is not available
- Executor Strategy Pattern (
src/executors/) — pluggable skill executors; decomposes_executeSkill()from CC=13 to CC=4 - SemanticMemoryClient (
src/memory/semantic-memory.js) — SRP extraction fromMemoryStoreClient - ComplianceValidator (
src/mcp/validators/compliance-validator.js) — extracted frommcp-server.js; CC reduced from 12 to 3 EXPORT_NAMES_MAP/ALLOWED_HOOK_EVENTSconstants inhook-registry.jsfor O(1) lookup
🔒 Fixed
- CWE-362 Race Condition:
FileMemoryDrivernow properly awaits_ensureReady()in all write paths - Stack Overflow:
redact()has amaxDepth=10recursion guard - CWE-78 Docker Injection: Docker binary validated against
ALLOWED_DOCKER_PATHSwhitelist before spawn - URL Validation: Network request URLs validated (null + format) before hook dispatch
- semanticSearch() input guard: rejects non-string or empty queries early
⚡ Changed
spawnAsync()replacesexecFile/promisifyinagent-runner.js— non-blocking, concurrent-safe subprocess execution- Python analyzers are now async —
analyzeCodePython()andauditSecurityPython()returnPromise<Finding[]>
🧪 Tests
| Before | After | |
|---|---|---|
| Test Suites | 8 | 12 |
| Tests | 39 | 87 |
New suites: executor-factory, compliance-validator, semantic-memory, python-ast-analyzer
⚙️ CI
- CI matrix now includes Python 3.x setup for full AST analysis capability
Full Changelog: v1.2.1...v1.3.0