docs: document sdk_conversation_id and multi-turn session flow
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -45,7 +45,7 @@ Client → Traefik (HTTPS) → FastAPI (Python, :8000) ↔ Node.js Worker (:3001
|
||||
Three tables in SQLite:
|
||||
|
||||
- **topics**: id (UUID), name (unique), system_prompt, summary, model (nullable), timestamps
|
||||
- **requests**: id (UUID), session_id, topic_id (FK), prompt, result, error, model, summarize (bool), status (pending/processing/completed/failed), timestamps
|
||||
- **requests**: id (UUID), session_id, sdk_conversation_id, topic_id (FK), prompt, result, error, model, summarize (bool), status (pending/processing/completed/failed), timestamps
|
||||
- **closed_sessions**: session_id (PK), closed_at
|
||||
|
||||
## API Endpoints
|
||||
@@ -62,12 +62,18 @@ All require `X-Api-Key` header. All responses use envelope: `{success, data, err
|
||||
|
||||
1. `POST /api/requests` → 202 Accepted (queued)
|
||||
2. Background loop picks oldest pending, calls worker `POST /process`
|
||||
3. Worker runs Claude Code SDK (`query()`) with optional session resume
|
||||
4. Result stored in DB; optional incremental summary appended to topic
|
||||
3. Worker runs Claude Code SDK (`query()` async iterable) with optional session resume
|
||||
4. Result stored in DB; SDK conversation ID saved in `sdk_conversation_id`; optional incremental summary appended to topic
|
||||
5. Client polls `GET /api/requests/{id}` for result
|
||||
|
||||
Model resolution: request-level > topic-level > `CLAUDE_MODEL` env var.
|
||||
|
||||
### Multi-turn sessions
|
||||
|
||||
- `session_id: "new"` → stored as NULL; after completion, set to SDK's conversation ID
|
||||
- Custom `session_id` → preserved as-is; SDK conversation ID stored separately in `sdk_conversation_id`
|
||||
- Resume logic: queue looks up `sdk_conversation_id` from previous completed requests in the same session; only passes it to worker if found (avoids resume on non-existent SDK sessions)
|
||||
|
||||
## Commands
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user