v2.0.0
What's Changed
Major release. The review agent now checks out the real PR repository and reads actual files — not just the diff — and does so by default. See the upgrade notes below.
⚠️ Breaking / Upgrade Notes
- Repo provisioning is now on by default (
REPO_CACHE_ENABLED=true). On each review Baloo creates a blobless bare clone + per-reviewgit worktreeat the PR head SHA underREPO_CACHE_ROOT(/tmp/baloo-repo-cache, capped atREPO_CACHE_MAX_DISK_GB=10, LRU-evicted). The agent's file tools (read/grep/find/ls) now operate on the real repo instead of Baloo's own filesystem. Any failure falls back to the previous diff-only behavior. RequiresContents: Read(already required); no new GitHub permissions. - Subprocess sandbox is now on by default (
REPO_SANDBOX_MODE=bwrap). The agent runs under bubblewrap, bound read-only to the review worktree, with a scrubbed environment. The official Docker image shipsbubblewrap; on hosts without unprivileged user namespaces Baloo automatically and silently falls back to running unsandboxed. SetREPO_SANDBOX_MODE=offto disable. DASHBOARD_ENABLEDnow defaults totrue(the code default was alreadytrue; docs/env templates previously claimedfalse). The dashboard stays dormant untilDATABASE_ENABLED=trueand credentials are also set, so this is a no-op for most deployments.
Features
- Provision the PR repo for the review agent so file tools read real code, sandboxed via bubblewrap (#96, #97, #99)
- Read-only dashboard Settings page at
/dashboard/settingsshowing effective runtime config with secrets redacted (#73)
Fixes
- Authenticate
git worktree addso blobless caches can lazily fetch blobs during checkout; consistent agent logging + labels (#97) - Redact database URL query-string secrets in the dashboard
- Treat 404 as end-of-pagination only for page > 1; raise on page 1 (#67)
- Remove
installation_idfrom the/healthresponse (#65, #66) - Pin
codeql-action/upload-sarifand the OpenSSF Scorecard action to real release SHAs; scope Scorecard workflow permissions to the job level (#91, #92, #93) - Use CodeQL default setup for Python
Refactors
- Extract the review orchestrator from
webhook_handler; decompose_drive_sessioninto_dispatch_events(#61)
Tests
- Coverage for
orchestrator, fidelity analyzer/plan-fetcher,webhook_handler,auth, anddiscussions(#60)
Docs
- Document repo provisioning + sandbox settings; rebuild
.env.dockerto parity with.env.example; document the dashboard Settings page (#99) - Improve OpenSSF Scorecard posture and discoverability; remove the public roadmap page (#72)
Dependencies
- Bump Python (#80) and base images (
postgres16→18-alpine) cryptography46→48,starlette0.52.1→1.0.1,python-multipart,psycopg2-binary, plus dev and GitHub Actions bumps