avocet/app
pyr0ball a271278dc9 feat(#10): env var LLM config + cf-orch coordinator auth
- _load_cforch_config() falls back to CF_ORCH_URL / CF_LICENSE_KEY /
  OLLAMA_HOST / OLLAMA_MODEL env vars when label_tool.yaml cforch: key
  is absent or empty (yaml wins when both present)
- CF_LICENSE_KEY forwarded to benchmark subprocess env so cf-orch agent
  can authenticate without it appearing in command args
- GET /api/cforch/config endpoint — returns resolved connection state;
  redacts license key (returns license_key_set bool only)
- SettingsView: connection status pill (cf-orch / Ollama / unconfigured)
  loaded from /api/cforch/config on mount; shows env vs yaml source
- .env.example documenting all relevant vars
- config/label_tool.yaml.example: full cforch: section with all keys
- environment.yml: add circuitforge-core>=0.9.0 dependency
- .gitignore: add .env
- 4 new tests (17 total in test_cforch.py); 136 passing overall

Closes #10
2026-04-09 12:26:44 -07:00
..
api.py feat: cf-orch LLM benchmark integration (Phase 1) 2026-04-09 10:46:06 -07:00
cforch.py feat(#10): env var LLM config + cf-orch coordinator auth 2026-04-09 12:26:44 -07:00
imap_fetch.py refactor: consolidate HTML extraction into app/utils.py 2026-04-08 06:52:15 -07:00
models.py feat: model compatibility warning on HF lookup 2026-04-09 09:48:55 -07:00
sft.py feat: add failure_category field to SFT corrections (#16) 2026-04-08 22:10:26 -07:00
utils.py fix: sft router — yaml error handling, none filter, shared jsonl utils, fixture restore 2026-04-08 14:07:09 -07:00