Skip to content

v2.0.0

Choose a tag to compare

@bb-amir bb-amir released this 07 Jun 06:16
· 105 commits to main since this release
bdd61bd

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-review git worktree at the PR head SHA under REPO_CACHE_ROOT (/tmp/baloo-repo-cache, capped at REPO_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. Requires Contents: 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 ships bubblewrap; on hosts without unprivileged user namespaces Baloo automatically and silently falls back to running unsandboxed. Set REPO_SANDBOX_MODE=off to disable.
  • DASHBOARD_ENABLED now defaults to true (the code default was already true; docs/env templates previously claimed false). The dashboard stays dormant until DATABASE_ENABLED=true and 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/settings showing effective runtime config with secrets redacted (#73)

Fixes

  • Authenticate git worktree add so 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_id from the /health response (#65, #66)
  • Pin codeql-action/upload-sarif and 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_session into _dispatch_events (#61)

Tests

  • Coverage for orchestrator, fidelity analyzer/plan-fetcher, webhook_handler, auth, and discussions (#60)

Docs

  • Document repo provisioning + sandbox settings; rebuild .env.docker to 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 (postgres 16→18-alpine)
  • cryptography 46→48, starlette 0.52.1→1.0.1, python-multipart, psycopg2-binary, plus dev and GitHub Actions bumps