Releases: bluebear-io/baloo-bear
Release list
v2.3.0
Features
- Databricks AI Gateway as an agent provider (#228) — Baloo can now run reviews through a Databricks-hosted model endpoint alongside Anthropic and Bedrock.
- Databricks misconfiguration surfaced at startup (#230) — a bad or incomplete gateway config fails loudly on boot instead of at first review, and env-only settings are labelled as such in the dashboard.
Fixes
- Review findings no longer silently lost (#233) — three separate paths could drop findings between the agent and the PR, producing a review that looked clean because nothing was posted.
- Never approve a PR when the review agent failed (#224) — an agent error no longer falls through to an approval.
- Documentation drift prompt kept inside the context window (#232) — the drift prompt embedded the PR diff twice, unbounded, so large PRs failed with
Prompt is too long. The diff is now capped and de-duplicated.
Maintenance
- Dependency and CI action bumps: mako, setuptools, python, astral-sh/setup-uv, docker/setup-buildx-action, github/codeql-action, and the
extensions/npm deps (#211, #212, #216, #217, #221, #223, #225, #226, #227).
Container image
ghcr.io/bluebear-io/baloo-bear:2.3.0
ghcr.io/bluebear-io/baloo-bear:latest
v2.2.1
v2.2.0
What's Changed
Major release. Amazon Bedrock is now a first-class provider, agent provider/model can be changed from the dashboard without a redeploy, and per-PR review briefs are elevated into the review checklist and cited in findings. Cross-provider fallback has been removed — see the upgrade notes.
⚠️ Breaking / Upgrade Notes
AGENT_FALLBACK_MODELand cross-provider retry are removed (#194). Reviews no longer retry on a secondary model. Settings useextra="ignore", so a leftover value in your.envwon't fail startup — it is silently ignored. Migration009drops thereviews.fallback_modelcolumn and deletes any storedagent_fallback_modelruntime override.- Provider selection is all-or-nothing (#194).
AGENT_PROVIDERapplies to every Baloo agent, and short model names (haiku/sonnet/opus) are provider-specific tiers.AGENT_MODELnow defaults to the portablesonnettier alias, so switching provider is a one-variable change. - Two new migrations to run:
008_add_runtime_settingsand009_remove_agent_fallback. Only relevant whenDATABASE_ENABLED=true.
Features
- Amazon Bedrock provider support —
amazon-bedrockvia PI, with a per-provider model tier catalog. The sandbox passes AWS credentials (static keys, session tokens,AWS_PROFILE, IRSA, ECS/EC2 roles,AWS_BEARER_TOKEN_BEDROCK) and bind-mounts credential files read-only. Provider errors (auth, model access, throttling) are now captured intoerror_messageand surfaced instead of degrading to "check server logs" (#194) - DB-backed runtime settings overlay — change agent provider/model and related knobs without a redeploy. Allowlisted keys only, 30s cache TTL, precedence DB overlay → env → field default; secrets and infra settings are never overridable. Dashboard Settings becomes editable with Save / Revert to env and source badges (#192)
- Models in use + Test connection — dashboard summary of the resolved
provider/modelper role (primary, false-positive, thread, fidelity, docs), plus a PI smoke test that auto-runs after changingAGENT_PROVIDER/AGENT_MODEL(#192, #194) - Per-PR review briefs elevated — a
## Review guidance for Baloosection in the PR body is extracted and injected as a dedicated review checklist step, so falsifiable checks are salient rather than buried in the description. Customer-repo hardcoding was dropped from the system prompt in favor of generic guidelines-driven wording (#193) - Findings cite the review brief — a finding prompted by a brief check now cites it explicitly, and checks that hold are recorded as positive observations. The brief never narrows scope: issues it doesn't mention are still reported (#186)
- Missing review-brief section is flagged — when a repo's guidelines require a review-brief section and the PR description lacks it, Baloo emits a HIGH Guidelines finding (#181)
Fixes
- Emit the missing-brief-section finding as a general finding instead of anchoring it to a fabricated
file:line, which could cause it to be dropped (#186) - Unknown providers raise a clear configuration error instead of silently borrowing Anthropic model IDs (#194)
- Dashboard renders a role-level warning for model resolution errors rather than returning a 500 (#194)
- Keep tests deterministic when a developer has
AGENT_PROVIDERexported (#194)
Docs
- New Amazon Bedrock Setup guide: auth methods, model tiers, verification, troubleshooting (#194)
- New how-to-get-the-most guide: how teams get high-signal reviews via conventions and per-PR briefs (#193)
- Refreshed configuration, models, dashboard, fidelity, and review-agent docs for the overlay and provider changes (#192, #193, #194)
Dependencies
- ~29 dependency and CI updates, including a consolidated batch (#210). Highlights:
cryptography49→50,fastapi0.138→0.141.1,starlette1.3.1→1.6.0,certifi,typescript6→7,mypy2.1→2.3, Python and Node base images, and GitHub Actions pins - Restricted the Dependabot
uvecosystem to direct dependencies (#210)
v2.1.0
What's Changed
Baloo now integrates with Linear tickets, reviews documentation drift, accepts
@baloo reviewcomment commands, and no longer silently drops findings it can't anchor to the diff. Plus reliability fixes for GitHub API timeouts and the Docker image build.
Features
- Documentation drift review — optional PR-time analysis against a repo-owned documentation catalog (
.baloo/documentation-catalog.json), posted as an upserted PR comment (#112, #114) - Linear ticket integration + two-layer fidelity spec — with
LINEAR_API_KEYset, Baloo fetches the linked Linear ticket and injects it into the review prompt and fidelity analysis as an explicitticket(intent) +plan(design) spec; stub tickets are detected and skipped instead of producing low-signal analysis. Includes webhook reliability improvements (#70) @baloo reviewcomment command — re-trigger a review from a PR comment, unsticking PRs after thread-resolution races or merge commits that don't firesynchronize(#160)- General findings — observations without a file/line anchor (e.g. "missing tests") now appear in a "General Observations" section of the review body instead of being silently dropped; CRITICAL/HIGH general findings still block (#149)
- PR total cost tracking — dashboard aggregates spend across all review attempts for the same PR, shown on the review list and detail pages (#132)
Fixes
- Retry transient GitHub API read timeouts with backoff instead of failing the whole review (#129)
- Coerce bare-string findings in
DocumentationDriftResultvalidation, ending the recurring pydantic errors (#145, #146) - Surface inline findings dropped as
file_not_in_diffin the progress comment (#146) - Correct PR review cost accounting (#113)
- Install
libatomic1for the Node 26 runtime in the Docker image (#161) - Drop the husky
preparescript beforenpm ciin the Docker build (#169)
Security & Docs
- OpenSSF Scorecard improvements: pinned actions, scoped workflow permissions (#94, #125)
- Semantic PR title guidelines required for contributions (#133)
Dependencies
- 48 dependency and CI bumps, including
cryptography48→49, Python and Node base images, and GitHub Actions pins
Full Changelog: v2.0.0...v2.1.0
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
v1.2.0
What's Changed
Features
- Webhook security validation chain — installation filter + HMAC token + repo ownership check (#58)
/healthnow exposesinstallation_idscope (#58)
Fixes
- Hit rate now includes acknowledged findings so hit rate + noise rate sum to 100% (#64)
- Async context manager lifecycle on GitHub API clients (#62)
- Guard
active_reviewscleanup againstaclose()failure in finally block - CI workflow permissions (#55)
Refactors
httpx.AsyncClientinjected into GitHub API clients for testability; PyGithub removed (#62)- Removed unused
INSTALLATION_IDSsetting (#62)
Docs
- Multi-broker deployment and webhook security documentation (#57)
v1.1.0
What's Changed
Features
- Multi-tenant support: All DB queries, reviews, and dashboard data are now scoped by
installation_id, enabling safe multi-tenant deployments (#48) - Duplicate review prevention: DB partial unique index prevents duplicate reviews when running multiple replicas (#50)
Fixes
- Advisory lock on migrations: Alembic migrations are now serialized with
pg_advisory_lockto prevent race conditions on startup (#53) - Migration numbering: Renamed duplicate migration 006 to 007 (#52)
- Security dependencies: Bumped
idna,urllib3,python-multipart, andmakoto address security advisories (#54)
Full Changelog
v1.0.0 - First Stable Release
🎉 First Stable Release
This is the first stable release of Baloo, the AI-powered code review GitHub App.
🚀 Features
- Automated PR reviews using Claude (Sonnet, Haiku, Opus) and Gemini
- Agentic code review with file reading and grep capabilities
- Severity-based routing (CRITICAL/HIGH → review comments, MEDIUM → Checks API)
- Multi-model support with automatic fallback
- Discussion thread tracking across PR iterations
- FP verification to reduce false positives
- Optional fidelity analysis against design plans
- Dashboard for review history and cost tracking
🐛 Recent Improvements
- Added comprehensive stderr logging for PI agent debugging (#39)
- Completed environment variable documentation (#40)
- Added Support section to README (#42)
- Changed Docker builds to release-based workflow (#45)
📦 Docker Images
This release publishes Docker images to GitHub Container Registry:
ghcr.io/blue-bear-security/baloo-bear:latestghcr.io/blue-bear-security/baloo-bear:1.0.0
📖 Documentation
See the README for installation and usage instructions.