Skip to content

Changelog Findings

Gabri Elles edited this page Aug 21, 2026 · 5 revisions

Changelog: Findings From Live Testing

Part 2 of the Changelog, informational findings not yet acted on.

SOTA literature review, merged 2026-07-20

MAST's 14 mode failure taxonomy maps closely onto DeepDelve's own bug catalog, confirming these are known, published patterns, not idiosyncratic bugs. Three independent sources converge on "verification and architecture amplify a capable model, they don't rescue an incapable one." A third candidate mechanism for the "content vanishes during synthesis" pattern: models don't naturally allocate reasoning to synthesis, only to planning (PIVOT). See the Literature Review for full detail.

A fourth, DeepDelve internal mechanism confirmed 2026-07-21

sub_agent_timeout_minutes can cut a dispatch off after a real URL is fetched but before the summary is written, leaving a findings entry with a real URL and zero content. A later retry sometimes produces real content but without re fetching, landing in a non citable fallback bucket instead, splitting real content and its real URL across two un-mergeable entries. Ground truthed against 107 run files on disk, not a one off. Fixed by ring fencing the timeout for a task showing real fetch activity, and excluding cutoff only summaries from the citable list.

A comparative survey against 5 other deep research agent projects

Found DeepDelve's grounding pipeline more elaborate than any of them for post hoc citation verification specifically, not "most sophisticated deep research agent, period." See the Literature Review.

A full grounding compliance audit

Done on 2026-07-18, re verifying all 12 README claimed guarantees against the actual code. All 12 genuinely implemented and reachable, no dead code, no always false gate. The README didn't overclaim.

The grounding check verifies provenance, not topical relevance

A GOA (Grasshopper Optimization Algorithm) query got a citation about the Indian state of Goa instead, term overlap passed since it only checks "was this fetched" and "do terms overlap." Fixed 2026-07-14 by the topical relevance cross encoder check.

JS gated pages return bot challenge stubs

The fetcher doesn't execute JavaScript, so a JS-gated page just returns its challenge shell. Fixed for most cases (Springer, MDPI) via a headless/headed browser fallback. ScienceDirect resists both, a genuine Cloudflare Turnstile CDP fingerprint, deliberately not pursued further.

A citation being in a report's Sources list doesn't mean it was fetched

Across several runs, more than half of named sources were never actually fetched, recalled from training data, and independently fact checked figures tied to them were measurably wrong.

Hard exclusion rules repeatedly failed to hold

An excluded sector showed up in the final report anyway via a sibling task's tangential findings. Fixed via check_excluded_topic.

Non URL "citations" evaded the grounding check entirely

(a bare "Expert opinion from..." attribution with no URL). Fixed via the non URL citation check.

Scaling scope down (12 sectors to 5) improved surface polish, not actual grounding rate

A 5 sector re run had more plausible looking citations, but cross referencing the real fetch log showed most were still fabricated.

A shared web_search quota pool starved a task of the ability to synthesize what it already fetched

The Colombia cultural context section vanished entirely from a report despite real research happening, since other tasks burned the shared quota first. Partially fixed via a ring fence for tasks showing real fetch activity; per task reserved quota and fairness ordering stayed open.

gpt-oss hallucinates entire tool names, not just filenames

Invented function names fired 3 times in one run. Investigated further, no code fix needed, a generic tool result error nudge already covers the recovery.

gpt-oss endgame collapse reproduced again

Also observed inside Builder once the Builder architecture shipped, the same narrate instead of write failure, just one level down, once Builder's own write quota ran out. The quarantine restore fallback worked as designed both times.

Line scoped claim grounding, shipped 2026-07-12

Claim checks now compare each line's citation against its own source instead of the whole report's terms against every source, closing a mask where generic shared terms hid per claim fabrication.

A structural eval scorer, shipped 2026-07-12

A new eval_type: structural scores rubric tier 1 deterministically from the real run state, not narration.

Four concrete findings from one killed live run, 2026-07-13

_strip_trailing_punct didn't strip a trailing asterisk, false flagging real citations as hallucinated (Builder's own **[Title](URL)** format), burning half a run's retry budget on a checker bug, not a model failure. Sub agent "tool not found" errors had zero recovery path, since they come back as in band text, not exceptions, fixed via a new tool_result_error_nudge. web_search had no outer wall clock timeout, confirmed via a real 9 minute hang to an unrelated IP, fixed with a real daemon thread and join timeout. And sub agent status widgets had no staleness indication, showing "executing..." forever with no timer, fixed with an animated widget mirroring the existing pattern. A fifth, related fix the same day: Builder's write quota, shared with the Planner, could starve a later corrective dispatch, fixed with a dedicated headroom topup before every write/review/fix cycle.

Clone this wiki locally