v0.1.6 — financebench doctor preflight + two M1-cycle bug fixes
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 users14 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=admin→export FB_PROFILE=adminin banner tips.setis tcsh syntax; zsh and bash users (every modern macOS install) needexport. Caught on M1 test7. Now consistent with cli/credentials.py:14 which already usedexport. (cli/commands/chat.py, cli/commands/setup.py) -
GIT_SHAenv fallback insrc/services/event_log.pyboot 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 --buildVerification
- 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