- Encrypt HMAC key secrets at rest with AES-256-GCM under a master key
stored next to the database.
- Rename DB column `hashed_key` -> `key_material`; add `fingerprint`
index for O(1) static bearer lookup instead of linear bcrypt scan.
- Add shared-secret HMAC authentication between mcp->router and router->agent.
- Require TLS by default; refuse to start plaintext unless `server.insecure`
is explicitly set.
- Cap request bodies with `MaxBodyBytes` / `MaxBytesReader`.
- Add `http.Server` read/write/idle timeouts to all three binaries.
- Restrict `container_create` to the configured image allowlist.
- Resolve symlinks in `present_file` to prevent workspace path escape.
- Replace DinD TCP exposure with a shared Unix socket volume.
- Add `.dockerignore` and pin Alpine runtime images to 3.24.1.
- Cap audit log responses and record the caller key ID per tool call.
- Add rate-limiter janitor to evict stale buckets.
- Update tests and integration harness to authenticate with the admin key.