v0.12.0 — security hardening, dashboard rebuild, dependency patches
🔒 Security hardening
export_secretshonors therequiresApprovalgate on bulk MCP reads- Governance policy anchored to the MCP server's launch directory (no
projectPathescape) import_dotenvover MCP no longer reads arbitrary files (content-only)- SSRF: connect-time re-validation closes the DNS-rebinding window
- Teleport PBKDF2 100k → 210k (legacy bundles still decrypt)
- Status dashboard endpoints require a per-launch token
- Hardened exec network/command guards; policy cache invalidates on
.q-ring.jsonchange
📊 Dashboard
- Rebuilt on Preact + htm with VDOM diffing — fixes the flicker/reload-on-update; still a single self-contained, offline page
📦 Dependencies & CI
- Cleared 23 Dependabot alerts; pinned pnpm via
packageManager; added Dependabot config + PR template
⚠️ Breaking
- Dashboard returns
403without its token (use the printed URL) - A single MCP server now applies only its launch directory's
.q-ring.jsonpolicy
Full notes: CHANGELOG.md