Skip to content

0.2.3 — Dockerfile half of named-volume fix + API key Layer 2

Choose a tag to compare

@Rishabhmannu Rishabhmannu released this 01 Jun 17:23

Why 0.2.3 (and why no 0.2.2 on PyPI)

0.2.2 was tagged but CI verify caught a second-order bug: the named-volume switch in compose.minimal.yml needed a matching mkdir + chown in the Dockerfile, otherwise docker creates the mount point as root:root and appuser PermissionErrors on first JSONL write. The v0.2.2 tag was deleted before any PyPI upload. 0.2.3 includes everything 0.2.2 was meant to ship plus the second-order fix and the API key Layer 2 work.

What's in 0.2.3

Linux bind-mount UID fix — completed

  • compose.minimal.yml ./logs and ./cost_logs are now named volumes (api_logs, api_cost_logs) — no host UID collision on Linux installs
  • Dockerfile pre-creates /app/logs and /app/cost_logs with appuser ownership before USER appuser so named volumes inherit correct perms (mirrors the existing hf_cache pattern)
  • New financebench logs + financebench logs --event-log CLI commands replace host-side tail logs/run_*.jsonl
  • CI verify job's chmod 777 workaround removed (the bug is gone at the compose+Dockerfile layer)

API key Layer 2 validation — new

  • cli/key_probe.py — one probe per provider:
    • OpenAI / Anthropic / Groq: free GET /v1/models
    • Voyage: 1-token embedding (~$0.00002)
  • Wired into financebench setup — per-key after Layer 1 prefix check, gated by --skip-key-probe or --skip-doctor-network
  • Wired into financebench doctor — four new checks under "API keys" group, gated by --skip-network
  • Network errors fall through to "saved as-is" — offline installs still work

Upstream warning suppression (carried from 0.2.2)

  • src/_quiet.py + src/__init__.py install filters for langgraph + protobuf + websockets pending-deprecation warnings
  • pyproject.toml pytest addopts -W for protobuf via langsmith plugin
  • Dockerfile ENV PYTHONWARNINGS for entry-point-level warnings uvicorn imports before any src.* code runs
  • JWT test fixture secret padded 23 → 32 bytes (real fix at source)

Try it

pip install --upgrade financebench-rag-agent
financebench upgrade

# verify the new API key live probe:
financebench doctor

# new logs command (replaces host-side tail logs/):
financebench logs
financebench logs --event-log --follow

Multi-arch image

ghcr.io/rishabhmannu/financebench-rag-agent-api:0.2.3 (linux/amd64 + linux/arm64). Pulled automatically by financebench upgrade via the FB_IMAGE_TAG env var threaded from the wizard.

Engineering log

Full narrative including the 0.2.2 failure → 0.2.3 fix, the fifth documented instance of "fixed one call site, missed the other", and the API key Layer 2 design at docs/engineering-log.md.