2b3290c73c
scripts/e2e_smoke.py + tests/test_e2e.py verify the full v0.1 loop without live API keys (heuristic classifier + stub debrief LLM): start session → simulate 4 turns → classify branch (R7 offline) → generate debrief (stub LLM, guardrail-filtered) → end session → assert DB rows (session + turns + cost + debrief), latency < budget (or logged). Running the script prints a result summary (session_id, branch_id, outcome, turns_logged, cost_cents, debrief_chars, max_latency_ms, within_budget). 3 pytest assertions pass (full loop, debrief non-empty, cost non-null). Final verification: 73 server tests pass, client typecheck + build + test pass. All 26 PLAN.md tasks across 5 slices complete. ---ci--- phase: 1 milestone: v0.1 plan: 05 task: 05-06 status: execute persona: lead-developer requirements: covered: [REQ-VOICE-01, REQ-VOICE-02, REQ-VOICE-03, REQ-VOICE-04, REQ-SCEN-01, REQ-STATE-01, REQ-LLM-01, REQ-LLM-02, REQ-DEBRIEF-01, REQ-ORCH-01, REQ-ORCH-02, REQ-SCEN-FMT-01, REQ-NFR-LAT-01, REQ-NFR-SAFE-01, REQ-NFR-COST-01] ---/ci---