Skip to content

Simplify reusable sweep ingestion with direct source dispatch / 通过直接分发源运行简化复用扫描摄取#2244

Merged
cquil11 merged 4 commits into
mainfrom
agent/simplify-reuse-artifact-ingest
Jul 16, 2026
Merged

Simplify reusable sweep ingestion with direct source dispatch / 通过直接分发源运行简化复用扫描摄取#2244
cquil11 merged 4 commits into
mainfrom
agent/simplify-reuse-artifact-ingest

Conversation

@cquil11

@cquil11 cquil11 commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • remove the reuse-ingest-artifacts relay job
  • send only source-run-id and merge-run-id to InferenceX-app
  • reduce manual recovery to the same two-ID dispatch
  • keep artifact selection and ingestion entirely in InferenceX-app
  • update recovery documentation to match the simple normal-ingestion behavior

End-to-end flow

  1. The existing reuse gate authorizes reuse and selects the source PR sweep.
  2. InferenceX sends the source run ID and current main publication run ID.
  3. InferenceX-app downloads the source artifacts, keeps the newest upload for each exact name, and substitutes the merge-run changelog.
  4. The existing database ingestion code handles all benchmark/eval artifact semantics and skips failed benchmark rows.

Run attempts are not sent across repositories because GitHub can derive them from the run IDs.

Validation

Related consumer PR: SemiAnalysisAI/InferenceX-app#582

中文说明

  • 删除 reuse-ingest-artifacts 中转任务
  • 仅向 InferenceX-app 发送 source-run-idmerge-run-id
  • 手动恢复也简化为相同的双运行 ID 分发
  • 产物选择与数据库摄取全部由 InferenceX-app 负责
  • 更新恢复文档,使其与简化后的常规摄取行为一致

端到端流程现在是:现有复用门禁选择源 PR 扫描,InferenceX 发送源运行和主分支发布运行 ID,InferenceX-app 下载源产物、按精确名称保留最新上传并替换合并运行变更日志,最后由现有数据库摄取逻辑处理所有产物语义并跳过失败结果。

验证结果:29 个工作流门禁测试全部通过;配套 app 实现通过 362 个数据库单元测试、类型检查、lint 和格式检查;PR #2145 与 PR #2224 的实时 dry run 均成功。

中文:修复复用扫描产物的选择逻辑,只保留每个逻辑基准测试最新上传的产物。
Remove the reusable artifact relay and send source and merge run IDs directly to InferenceX-app. Simplify manual recovery to the same two-ID dispatch and add structural workflow tests.

移除可复用工件中转流程,直接将源运行 ID 和合并运行 ID 发送到 InferenceX-app。手动恢复流程也简化为相同的双 ID 分发,并新增工作流结构测试。
@cquil11 cquil11 changed the title fix: select latest artifacts for reused sweeps Simplify reusable sweep ingestion with direct source dispatch Jul 16, 2026
@cquil11 cquil11 marked this pull request as ready for review July 16, 2026 16:39
@cquil11 cquil11 requested a review from a team July 16, 2026 16:39
@claude

claude Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Claude finished @cquil11's task in 4m 50s —— View job


Review

  • Gather context: diff against origin/main, read changed workflow files and tests
  • Review for bugs, breaking changes, and contract issues with InferenceX-app
  • Run cited tests (blocked by sandbox permissions — verified statically instead, see note)
  • Post review feedback

LGTM - no blocking issues found.

I verified the changes hold together:

  • The removed relay job's fail-closed role (producer-side validation gating the dispatch) is intentionally moved to the app, and the new trigger-ingest/trigger-agentic-ingest conditions (needs.setup.outputs.reuse-enabled == 'true' replacing needs.reuse-ingest-artifacts.result == 'success') are otherwise equivalent to the old gating.
  • The ternary-style payload expression (reuse-enabled == 'true' && reuse-source-run-id || github.run_id) is safe: find_reusable_sweep_run.py always emits a non-empty reuse-source-run-id when reuse-enabled is true (utils/find_reusable_sweep_run.py:488-496), so the || fallback can't fire spuriously on the reuse path.
  • upload-changelog-metadata still runs on push-to-main reuse runs (always() && setup.result == 'success'), so the merge run always owns the changelog artifact the app now fetches via merge-run-id.
  • The new structural tests' assumptions (single dispatch step at steps[0], exactly two recovery inputs, one recovery job, no attempt fields) all match the actual workflow files.
  • Cross-repo payload rename (run-id/run-attemptsource-run-id/merge-run-id) is a breaking contract change, but the rollout ordering in the PR description (app PR [nv] add H200 SGLang disagg configs from srtslurm #582 first, app stays compatible with the old payload until then) handles it.

One non-blocking observation: .claude/commands/recover-failed-ingest.md (lines 114, 323, 452) and KLAUD_DEBUG.md:209 still reference the removed reuse-ingest-artifacts job and producer-side validate_reusable_sweep_artifacts.py step — the skill's acceptance checklist requires "pass reuse-ingest-artifacts consistency validation", which no longer exists in the pipeline. Worth a follow-up so the recovery runbook doesn't point agents at a nonexistent job. Fix this →

Note on validation: the CI sandbox denied running pytest and actionlint directly, so I verified every assertion in the new tests by inspecting the workflow files (job removal, needs lists, dispatch payload keys, recovery inputs). The test-changelog-gate.yml workflow will run the gating suite in CI regardless.

Replace stale relay-job references with the direct source/merge dispatch and app-side preparation and validation steps.

将过时的中转作业引用替换为直接的源运行/合并运行分发,以及应用侧的工件准备和验证步骤。
Comment thread .github/workflows/run-sweep.yml
Document that InferenceX-app downloads normal source artifacts, substitutes the merge changelog, and relies on existing ingestion behavior for failed rows. Remove obsolete reusable-artifact validation instructions.\n\n中文:说明 InferenceX-app 直接下载常规源运行产物、替换合并运行变更日志,并沿用现有摄取逻辑跳过失败结果。删除过时的复用产物验证说明。
@cquil11 cquil11 changed the title Simplify reusable sweep ingestion with direct source dispatch Simplify reusable sweep ingestion with direct source dispatch / 通过直接分发源运行简化复用扫描摄取 Jul 16, 2026
@cquil11 cquil11 merged commit 1e44aa8 into main Jul 16, 2026
4 checks passed
@cquil11 cquil11 deleted the agent/simplify-reuse-artifact-ingest branch July 16, 2026 17:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

1 participant