Skip to content

feat: data-research-toolbox automation controls#11

Merged
sarthakagrawal927 merged 2 commits into
mainfrom
feat/data-research-toolbox-automation
Jul 19, 2026
Merged

feat: data-research-toolbox automation controls#11
sarthakagrawal927 merged 2 commits into
mainfrom
feat/data-research-toolbox-automation

Conversation

@sarthakagrawal927

Copy link
Copy Markdown
Collaborator

Summary

Implements the data-research-toolbox-automation capability from the fleet-automation-closure OpenSpec store — critical missing controls for refresh lifecycle, search activation evidence, public/API health, Foundry sanitization, and bounded experiments.

  • refresh_manifest.py — structured manifest (source watermark, bounds, timeout, idempotency, retries, output counts, quality signal, freshness, durable failure state). Zero output where non-zero is expected fails quality verification and does NOT advance freshness.
  • warm_update.py — records each overlay step (enrich_citations, refresh_abstracts, build_author_graph, export_ch, web_build) into data/refresh-manifest.json.
  • activation.py — privacy-safe Foundry emission (search_outcome, result_inspection, saved_action). No query text, paper IDs, or user IDs.
  • api.py /healthz — structured build/live/revision/errors/latency/CH reachability/last-refresh-watermark (was {ok: true}).
  • web/functions/api/health.ts — new public Pages health Function with independent surfaces.landing / surfaces.search / surfaces.rag so a live landing cannot conceal broken search.
  • Activation tracking wired into /search, /semantic-search, /papers/{paper_id}.
  • Docs: data-map.md, refresh-manifest.md, foundry.md, experiments.md + ops index.

Non-goals (per spec)

No corpus expansion, ranking rewrite, paid data, production migration, automatic deploy, or promotion to My Work.

Test plan

  • uv run pytest — 35 passed, 17 skipped (golden needs GOLDEN_RAG_URL)
  • ./scripts/check-docs.sh — docs validation OK
  • New test_refresh_manifest.py covers the quality-gate scenario (zero output does not advance freshness)
  • test_api_smoke.py updated for new structured /healthz shape
  • Operator: live /healthz and Pages /api/health probe against production (task 3.2)

Generated with Devin

sarthakagrawal927 and others added 2 commits July 19, 2026 21:54
Add the critical missing controls for the data-research-toolbox-automation
capability (OpenSpec fleet-automation-closure):

- refresh_manifest.py: structured manifest with source watermark, bounds,
  timeout, idempotency, retries, output counts, quality signal, freshness,
  and durable failure state. Zero output where non-zero is expected fails
  quality verification and does not advance freshness.
- warm_update.py: records each overlay step (enrich_citations,
  refresh_abstracts, build_author_graph, export_ch, web_build) into the
  manifest.
- activation.py: privacy-safe Foundry emission (search_outcome,
  result_inspection, saved_action). No query text, paper IDs, or user IDs.
- api.py /healthz: structured build/live/revision/errors/latency/CH
  reachability/last-refresh-watermark evidence.
- web/functions/api/health.ts: public Pages health with independent
  surfaces.landing / surfaces.search / surfaces.rag.
- Docs: data-map.md, refresh-manifest.md, foundry.md, experiments.md.
- Tests: test_refresh_manifest.py (quality-gate scenarios);
  test_api_smoke.py updated for new healthz shape.

No corpus expansion, ranking rewrite, paid data, migration, or deploy.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@sarthakagrawal927
sarthakagrawal927 merged commit c9a349b into main Jul 19, 2026
4 checks passed
@sarthakagrawal927
sarthakagrawal927 deleted the feat/data-research-toolbox-automation branch July 19, 2026 17:29
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