avocet/app
pyr0ball 8fda821e15 feat: add POST /ingest endpoint to corrections API with Bearer auth
Adds IngestRequest model and POST /api/sft/ingest route to
app/data/corrections.py. Sibling CF products (Peregrine, Kiwi, etc.)
can push pre-approved corrections via Bearer token auth
(AVOCET_INGESTION_SECRET). Records land as status=approved in both
sft_candidates.jsonl and sft_approved.jsonl immediately.

7 tests in tests/test_data_corrections.py cover 503 (secret unset),
401 (missing/malformed header), 403 (wrong secret), happy-path writes
to both files, and optional label field.
2026-05-02 09:07:10 -07:00
..
data feat: add POST /ingest endpoint to corrections API with Bearer auth 2026-05-02 09:07:10 -07:00
eval feat: build app/eval/cforch.py aggregating eval benchmark routers 2026-05-01 22:23:06 -07:00
train fix: path traversal guard, python_bin config, completed_at on Popen failure 2026-05-01 23:24:00 -07:00
api.py feat: add GET /api/dashboard flywheel aggregate endpoint 2026-05-01 23:30:04 -07:00
cforch.py feat: Imitate tab — pull CF product samples, compare LLM responses 2026-04-09 20:12:57 -07:00
cloud_session.py refactor: import detect_byok from cf-core, remove local copy 2026-04-25 16:45:47 -07:00
dashboard.py fix: add logger.warning to silent except blocks in dashboard._find_latest_eval 2026-05-01 23:36:19 -07:00
imap_fetch.py feat: extract fetch routes and IMAP helpers into app/data/fetch.py 2026-05-01 21:57:31 -07:00
imitate.py feat: move imitate API into app/data/imitate.py 2026-05-01 22:12:19 -07:00
models.py feat(models): extended model registry + manage.sh benchmark subcommands 2026-04-24 14:56:24 -07:00
plans_bench.py fix: restore real plans_bench.py (was accidentally stubbed) 2026-05-01 22:25:22 -07:00
sft.py feat: move SFT corrections API into app/data/corrections.py 2026-05-01 22:02:22 -07:00
style.py refactor(bench): extract benchmark tabs — classifier, compare, llm-eval, style, voice 2026-04-24 14:56:17 -07:00
utils.py fix: restore ensure_ascii=False in utils jsonl helpers; remove dead _last_action from api.py 2026-05-01 20:59:44 -07:00
voice.py refactor(bench): extract benchmark tabs — classifier, compare, llm-eval, style, voice 2026-04-24 14:56:17 -07:00