5a35802075
feat(api): wire /dm/narrate — 200 prose | 502 model_error | 422 invalid log
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-10 08:31:38 -05:00
2027e7a9b9
feat(api): narrate service — render→route→call→log, returns raw prose
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-10 08:27:36 -05:00
2558e2a2a0
feat(api): author narrator system prompt (voice, [FACT] rule, no-numbers, no player agency)
2026-07-10 08:23:31 -05:00
15995c57ee
feat(api): §10 JSON-lines call logging (full prompt + seed, injectable sink)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-10 08:20:00 -05:00
be133c4f3a
feat(api): Ollama /api/chat client with one retry + typed ModelError
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-10 08:15:45 -05:00
4d8a19353e
feat(api): prompt loader (header split) + curated canon-log digest
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-10 08:11:57 -05:00
42b3720721
feat(api): config + role→model routing (qwen3.5 narrator default, think off)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-10 08:08:56 -05:00
7f1d9fa39a
chore(api): canon log follow-ups — hardening, unified 422, contract doc
...
- canon_log.py: stringify jsonschema error-path segments before sorting so a
future schema mixing array indices and object keys can't TypeError (#1 )
- main.py: RequestValidationError handler reshapes pydantic body failures into
the same {"detail": {"canon_log_errors": [...]}} envelope as schema failures,
so the client parses ONE 422 shape (#2a) + tests
- pytest.ini: filter the starlette/httpx TestClient deprecation → pristine output (#4 )
- docs/canon-log.md: living contract for the client (Plan B) — schemas, the §7
boundary, the unified error envelope, per-role injection (#3 )
Full suite 26 passing, 0 warnings.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-09 13:03:59 -05:00
e39d1a446e
fix(api): constrain disposition_overrides keys; close docker paper cuts
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-09 12:54:01 -05:00
6d5510773a
feat(api): validate canon log at every role endpoint (422 on invalid)
2026-07-09 12:42:03 -05:00
4aa65c9d4c
feat(content): POC deserter origin + world fixtures with id-resolution check
2026-07-09 12:37:29 -05:00
e80a4071f6
fix(api): pattern-constrain humiliations id; broaden canon log boundary tests
2026-07-09 12:34:31 -05:00
843ab11a5c
feat(api): canon log JSON Schema + validator, enforce §7 luck boundary
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-09 12:31:10 -05:00
710745e548
feat(api): origin seed JSON Schema + validator
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-09 12:26:39 -05:00