Uh oh!
There was an error while loading. Please reload this page.
docs(readme): refresh for the agentic upload refactor - #68
Conversation
Brings the README up to date with what landed in PR #67 (the re-architecture branch) and the post-merge upload-cap bump. Tech Stack - Notes the Pydantic AI agentic pipeline (4 typed worker agents fanned out via asyncio.gather), per-task model routing with SAPLING_MODEL_<TASK> env overrides, and which agent uses which Gemini model by default. - Adds Logfire as the observability layer, including the custom span scrubber that truncates + SHA-256-fingerprints user-content attribute paths before egress. - Notes sse-starlette for the streaming /upload route and the per-request structured logging (correlation ID, status, duration). - Calls out Vitest with jsdom + RTL on the frontend. Document Library feature - New 100 MB upload cap (was 15 MB; commit 9912a25). - Live SSE progress UX: "Classifying..." → "Extracting..." → "Saved." API Endpoints — Documents - Splits into POST /upload (streaming SSE) and POST /upload/sync (non-streaming JSON), with the full SSE event vocabulary (status:start, progress:classify, progress:classified, progress:extract, progress:extracted, progress:graph_update, progress:graph_updated, result:finalize, status:done, error:fallback, error:failed). - Documents the X-Request-ID idempotency contract. - Adds the two scan-concepts endpoints that were already in the code but not in the README. Environment Variables - LOGFIRE_TOKEN (optional) - SAPLING_MODEL_CLASSIFIER / _SUMMARY / _CONCEPTS / _SYLLABUS - OCR_ASYNC_ENABLED feature flag - DBOS_ENABLED + DBOS_DATABASE_URL (durable-execution opt-in) New sections - Tests: backend pytest commands, frontend Vitest commands, evals replay/record/live modes with the SAPLING_EVAL_MODE env var. - Architecture & Dev Context: pointer to docs/architecture.md, full ADR index (0001-0012), docs/attempts/, the .claude/ slash commands, and the context-curator subagent. - Migrations: the documents.request_id ALTER inline so anyone bringing up a fresh environment knows what needs to run. No code changes; docs only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThe README was comprehensively expanded to document the streaming document-upload flow with SSE progress phases, detailed tech stack architecture (Pydantic AI agents, SSE streaming, Logfire observability, OCR fallbacks), refined API endpoint specifications including new concept-scanning endpoints, backend environment variables, testing modes, architectural context links, and a required database migration for request-ID deduplication. ChangesDocumentation Expansion
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Review rate limit: 0/1 reviews remaining, refill in 60 minutes.Comment |
Deploying with |
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs | frontend | 781d65b | Commit Preview URL Branch Preview URL | May 04 2026, 07:18 AM |
Uh oh!
There was an error while loading. Please reload this page.
Summary
docs/attempts/,.claude/slash commands, the context-curator subagent.LOGFIRE_TOKEN,SAPLING_MODEL_*,OCR_ASYNC_ENABLED, and the optional DBOS pair.No code changes — docs only. README went from 203 → 284 lines (+88 / -6).
What's accurate now
/upload(SSE) vs/upload/sync(JSON), full event list, idempotency onX-Request-ID, the twoscan-conceptsendpoints that were already in code.documents.request_idALTER inline so a fresh deployment knows exactly what to run.Test plan
🤖 Generated with Claude Code
Summary by CodeRabbit