Commit History
-
[NOTICKET] feat(knowledge-ingest): job lifecycle + ingestion routes (N10)
Rifqi Hafizuddin +1: Claude Opus 5First slice of the ingestion endpoint: batch admission, document selection, tenant scope, job lifecycle and the three job routes. The pipeline itself is NOT wired yet - see the blockers below - so every document currently fails with a legible reason rather than silently doing nothing. POST /api/v1/knowledge/ingest -> 202 {job_id} GET /api/v1/knowledge/jobs/{job_id} -> state + per-document results GET /api/v1/knowledge/jobs -> recent jobs for a user Async by necessity: parse (~80s) plus extract (~170s) for nine pages is far past any HTTP timeout. Polling, not SSE (decided 2026-09-07) - a job row survives a refresh and a dropped connection, a stream does not, and a 4-minute stream holds a worker for its duration. 404 on an unknown job_id follows GET /traceability rather than the tri-state 200 of GET /charts: a polled id was handed to the caller, so its absence is genuinely exceptional, unlike a chartless turn. New package src/knowledge_ingest/ - orchestra…b14034b