Skip to content

feat(obscura-web): deep-research auto_continue, auto-consolidate, grouped run-report findings - #110

Merged
Vahlame merged 2 commits into
mainfrom
feat/obscura-deep-research-auto-continue
Jul 23, 2026
Merged

feat(obscura-web): deep-research auto_continue, auto-consolidate, grouped run-report findings#110
Vahlame merged 2 commits into
mainfrom
feat/obscura-deep-research-auto-continue

Conversation

@Vahlame

@Vahlame Vahlame commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Summary

  • auto_continue (opt-in, default off): when a deep-research job would stop at budget_exhausted with leads still queued, extend the SAME job's budgetMs once, straight to max_total_minutes (default 60, cap 180), instead of spawning a new job. New stoppedReason: "max_total_time_exhausted"; frontier_empty and max_rounds (40) still apply as backstops.
  • auto_consolidate (default on): best-effort consolidateTopic() call in runJob's finally, after the run report is durably written — a failure (no Ollama, no sources, already-consolidated summary) never affects job.state. obscura_research_status.next now reflects whether it actually ran.
  • renderRunReport groups "Top findings" by originating query instead of one flat relevance-sorted list; retention cap raised 15->40 (TOP_FINDINGS_CAP).

Test plan

  • 8 new/updated tests in deep-research.test.mjs + deep-research-mcp.test.mjs
  • Full obscura-web suite: 450/461 (11 pre-existing robots.mjs skips, untouched)
  • npm run lint — clean
  • npm run typecheck — clean
  • Validated live against a real 3-hop chained smoke test (topic gatos-especies-habitos, 138 sources persisted) — confirmed the existing engine-rate-limit resilience survives, and the new fields (originalBudgetMs, consolidateResult/consolidateError) shape correctly on the snapshot

Vahlame and others added 2 commits July 22, 2026 22:09
…uped run-report findings

- auto_continue (opt-in, default off): when a job would stop at budget_exhausted
  with leads still queued, extend the SAME job's budgetMs once, straight to
  max_total_minutes (default 60, cap 180), instead of spawning a new job. New
  stoppedReason "max_total_time_exhausted" when that ceiling is hit with work
  left; frontier_empty and max_rounds (40) still apply as backstops.
- auto_consolidate (default on): best-effort consolidateTopic() call in
  runJob's finally, after the run report is durably written, so a failure
  (no Ollama, no sources, already-consolidated summary) never affects
  job.state. obscura_research_status.next reflects whether it actually ran.
- renderRunReport groups "Top findings" by originating query instead of one
  flat relevance-sorted list; retention cap raised 15->40 (TOP_FINDINGS_CAP)
  so a grouped report has enough per topic to be worth grouping.
- 8 new/updated tests across deep-research.test.mjs and
  deep-research-mcp.test.mjs; full obscura-web suite 450/461 (11 pre-existing
  robots.mjs skips, untouched); lint + typecheck clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
CI's lint job runs prettier --check separately from eslint; two lines in
the new auto_continue/auto_consolidate tests exceeded print width. No
semantic change.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@Vahlame
Vahlame merged commit 5cb102c into main Jul 23, 2026
17 checks passed
@Vahlame
Vahlame deleted the feat/obscura-deep-research-auto-continue branch July 23, 2026 04:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant