Pulse v0.2.0 — Plugin sandbox, security, benchmarks
Pulse v0.2.0 — Plugin sandbox, security, benchmarks, diagrams
Highlights
- Plugin sandbox — import isolation + permission whitelist. Plugins run in a restricted execution context; they declare
__permissions__in source and cannot import dangerous modules (os,subprocess,socket,ctypes, etc.) or callopen/eval/exec/compile. .envchmod 600 — API key files now have0o600permissions by default.pulse doctorandload_env()warn on overly permissive files.- Benchmark suite —
scripts/benchmark.pymeasures orchestrator latency, token consumption, sub-agent throughput, skill evaluation speed, and memory recall latency. - Mermaid diagrams — README now includes architecture flowchart, skill evaluation state machine, and multi-agent team pipeline.
- TUI demo — Rich-rendered terminal screenshot in README.
Changes since v0.1.0
Added
pulse/plugins/sandbox.py—PluginSandbox,SandboxImportHook(sys.meta_path-based),parse_permissions_declaration- 8 permission types:
tools.register,memory.read/write,skills.install,scheduler.add,fs.read/write,network scripts/benchmark.py— 5 benchmarks with--quick,--json,--benchflags- 11 new sandbox tests (96 → 107)
docs/tui_demo.txt— Rich TUI rendering sample- 3 Mermaid diagrams in README
Improved
- Plugin loader now parses
__permissions__from source without execution - Bundled plugins get full permissions; user plugins get conservative defaults
load_env()detects and warns about overly permissive.envfiles- Lint and test pipeline green (ruff + 107 tests)
Statistics
- 107 tests passing
- ~5400 lines of Python across 56 modules
- 73% test coverage
- 75% docstring coverage
- Apache 2.0 license, fully self-hosted default stack
Install / Upgrade
pip install --upgrade pulse-agent
# or
pip install -e .Quick Start
pulse init --yes --provider ollama --model qwen2.5:7b
pulse chat "write a Python sorting function"
pulse doctorBenchmark (mock provider)
| Benchmark | Metric | Typical |
|---|---|---|
| Orchestrator latency | mean | ~100ms |
| Token consumption | mean/task | ~24 tokens |
| Sub-agent throughput | tasks/sec (4 workers) | ~7,000 |
| Skill evaluation | mean | ~0.04ms |
| Memory recall (FTS5) | mean | ~0.37ms |
python scripts/benchmark.py --quickSee the README for full documentation.