Notas de desviación: Task 31 añade per-file-ignore N999 para pages/* (Streamlit
exige nombres con emoji); se quitan noqa BLE001 inútiles y la var muerta
chosen_example; Task 37 — el build de docker falló por typer 0.12.x vs click
>=8.2, se fijó click<8.2 y el smoke pasó (core healthy /health 200, dashboard
/_stcore/health ok, down limpio). Streamlit verificado con ruff + py_compile.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Nota de desviación: Task 26 reescribe el escenario HSS para no colisionar con
'mos'; Task 27 colapsa EXAMPLES a una línea y reusa el __init__ del scaffolding;
Task 29 Step 2 (índice de ejecuciones persistido) ya estaba hecho en Task 24, así
que ese commit solo añade el test. Estilo del repo = ruff check (no ruff format).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Nota de desviación: fastapi/uvicorn instalados, routers con estilo Annotated[T, Depends],
orchestrator.snapshot() en vez de _build_graph_for_snapshot, fixture default + tests extra.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Incluye nota de desviación: SqliteSaver → AsyncSqliteSaver (async CM),
aiosqlite<0.21, orchestrator abre el checkpointer por llamada, +tests del orchestrator.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>