Skip to content

v0.1.6 — financebench doctor preflight + two M1-cycle bug fixes

Choose a tag to compare

@Rishabhmannu Rishabhmannu released this 30 May 09:32

The 0.1.x install-path cycle stabilized at 0.1.5. This release adds the financebench doctor preflight tool — flutter-doctor-style environment checks that catch host-side issues at wizard time instead of mid-install. Plus two small bug fixes from M1 verification.

New: financebench doctor

Read-only environment diagnostic, runs automatically as step 0 of financebench setup.

financebench doctor                  # full report
financebench doctor --skip-network   # offline mode
financebench setup --skip-doctor     # bypass for advanced users

14 checks across 4 groups:

Group Checks
System Platform · Docker · Docker daemon · Docker Compose v2 · Git · Buildkit
Resources Disk space (≥ 6 GB) · RAM (≥ 4 GB)
Ports 8000 (api, blocking) · 6333 (qdrant) · 5432 (postgres) · 6380 (redis)
Network PyPI · GitHub · Docker Hub · CLI version

Three tiers — BLOCKING failures exit the wizard; WARNINGS print but proceed; INFO sets expectations (e.g. M1 → "BGE on CPU, ~30s first warm"). Each failure ships with an actionable fix recipe.

Example output:

financebench doctor — environment check
(0.9s)

System
  [·] Platform                 arm64 · Darwin 25.5.0 — BGE on CPU
  [✓] Docker                   Docker version 28.1.1
  [✓] Docker daemon            Running
  [✓] Docker Compose           Docker Compose version v2.34.0
  [✓] Git                      git version 2.48.1
  [·] Docker Buildkit          Available but DOCKER_BUILDKIT not set
      → Add \`export DOCKER_BUILDKIT=1\` to ~/.zshrc for faster builds

Resources
  [✗] Disk space               5.7 GB free in \$HOME (need ≥ 6 GB)
      → Free up disk space; image build needs ~3-4 GB plus volumes ~1 GB
  [✓] RAM                      7.1 GB free / 24 GB total

Ports
  [✓] Port 8000 (api)          free
  [✓] Port 6333 (qdrant)       free
  [✓] Port 5432 (postgres)     free
  [✓] Port 6380 (redis)        free

Network
  [✓] PyPI                     Reachable
  [✓] GitHub                   Reachable
  [✓] Docker Hub               Reachable
  [·] CLI version              0.1.6 (latest)

10 passed · 1 blocking failure · 3 info

Setup blocked. Fix the failure(s) above and re-run.

Setup integration UX

  • Clean pass (no warnings, no failures): single-line success [✓] Doctor checks passed (0.9s). Wizard moves on.
  • Any warning or failure: full grouped report shown. Wizard exits if blocking, proceeds with warnings.

This stays terse for the happy path while making issues visible when they matter.

Bug fixes

  • set FB_PROFILE=adminexport FB_PROFILE=admin in banner tips. set is tcsh syntax; zsh and bash users (every modern macOS install) need export. Caught on M1 test7. Now consistent with cli/credentials.py:14 which already used export. (cli/commands/chat.py, cli/commands/setup.py)

  • GIT_SHA env fallback in src/services/event_log.py boot banner. The 0.1.5 `git_sha()` fix in `src/api/main.py` handled the FastAPI `/version` endpoint, but this second call site (the boot-banner audit log) was missed. Every `runtime_components` event in `logs/run*.jsonl` carried `git={'error': 'FileNotFoundError...'}`. Now reads `GIT_SHA` env first; subprocess fallback preserved for dev-from-source. (src/services/event_log.py)

Dependencies

  • psutil added to main deps (~600 KB) for the RAM check. Doctor falls back gracefully if the import ever fails. CLI bundle: 36 MB → 37 MB.

Upgrade

pip install --upgrade financebench-rag-agent
cd ~/.financebench/repo
git pull
docker compose -f compose.minimal.yml up -d --build

Verification

  • 19 new doctor unit tests pass
  • 307 pre-existing unit tests pass
  • `twine check` PASSED on both wheel + sdist
  • Fresh-venv smoke test PASSED (37 MB site-packages)
  • `financebench doctor --skip-network` runs in ~0.9s on dev machine