ship: v0.2 P2 research engine + trust loop #11
Reference in New Issue
Block a user
Delete Branch "phase/02-engine-trust"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
REQ-07, 12, 13..24: asyncio state machine with plan-approval halt, durable JSON state (atomic rewrites, position-aware resume), typed event bus + trace.jsonl, evidence store (visited-only), SSRF-guarded liveness, quote anchoring (REQ-20 real mismatch detection), citation ledger, verification checklist + REQ-23 export gate, confidence labels, live probe wiring. Verify: 2 P0 + 9 P1 found and fixed in-phase with regression pins. Gates: backend 108 tests + mypy strict + ruff; frontend 90 tests. Tag target v0.2.2.
---ci--- phase: 2 milestone: v0.2 status: verify persona: backend-engineer task: T-2.5 requirements: covered: [REQ-16, REQ-18, REQ-20, REQ-23] ---/ci--- P0-1: SSRF guard now lives in adapters/url_guard.py (IPv4+IPv6 via getaddrinfo, fails closed on unresolvable) and is wired into Tavily.fetch, DDG.fetch, AND the engine extract step (refused URLs logged as source_refused events, never fetched). Liveness redirects followed manually with per-hop re-guarding - a 302 to a private IP now classifies DEAD, and STALE is reachable (redirect loop / missing location). P0-2: writer prompts gain {evidence} slots; render_writer_prompt requires evidence; regression test proves evidence text reaches the writer prompt (recording model). P1s: ledger anchoring now anchors the REPORT's extracted quotes against all passages (mismatch detection real, REQ-20 testable); trace.jsonl append-only per run (REQ-16 trace file); _execute is position-aware - resume works from SEARCHING/EXTRACTING/ REFLECTING/SYNTHESIZING/VERIFYING (mid-run restart test); cancel honored post-approval via per-iteration checks in the research loop; REQ-23 export gate (>= 0.99 liveness with failure listing in the checklist); authority tiers dot-anchored; extracting step processes ALL sub-questions (breadth fix); AdapterError taxonomy covers raw httpx errors at the extract boundary. 108 tests.