Batch PR conflict workers and activate Lopu fixes - #234
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
🤖 Auto-resolve running — the conflict resolver started working on this PR at 05:09 UTC. Expected to finish around 05:17 UTC (most resolutions still land in 3-8 minutes; the hosted-runner ceiling is 360). On success a merge commit resolving the conflicts is pushed to this branch and a result comment follows — no manual action is needed meanwhile. |
# Conflicts: # graphify-out/GRAPH_REPORT.md # graphify-out/graph.json # graphify-out/manifest.json
`graphify extract` with LLM semantic extraction (graphify 0.9.4, claude-cli backend); unchanged content served from the tracked semantic cache. Refreshed by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/31370509164
|
🤝 Merged No AI resolution was needed by merge time; the branch was updated with a plain merge commit.
Please review the merge commit before relying on it. |
# Conflicts: # graphify-out/GRAPH_REPORT.md # graphify-out/graph.json # graphify-out/manifest.json
`graphify extract` with LLM semantic extraction (graphify 0.9.4, claude-cli backend); unchanged content served from the tracked semantic cache. Refreshed by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/31554712871
|
🤝 Merged No AI resolution was needed by merge time; the branch was updated with a plain merge commit.
Please review the merge commit before relying on it. |
|
|
# Conflicts: # graphify-out/GRAPH_REPORT.md # graphify-out/graph.json # graphify-out/manifest.json
`graphify extract` with LLM semantic extraction (graphify 0.9.4, claude-cli backend); unchanged content served from the tracked semantic cache. Refreshed by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/31572718558
|
🤝 Merged No AI resolution was needed by merge time; the branch was updated with a plain merge commit.
Please review the merge commit before relying on it. |
# Conflicts: # graphify-out/GRAPH_REPORT.md # graphify-out/graph.json # graphify-out/manifest.json
`graphify extract` with LLM semantic extraction (graphify 0.9.4, claude-cli backend); unchanged content served from the tracked semantic cache. Refreshed by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/31952192730
|
🤝 Merged No AI resolution was needed by merge time; the branch was updated with a plain merge commit.
Please review the merge commit before relying on it. |
…olved conflicts) Conflicted paths: .github/workflows/resolve-pr-conflicts.yml, graphify-out/GRAPH_REPORT.md, graphify-out/graph.json, graphify-out/manifest.json Resolved by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/31983846915 Co-Authored-By: Claude <noreply@anthropic.com>
`graphify extract` with LLM semantic extraction (graphify 0.9.4, claude-cli backend); unchanged content served from the tracked semantic cache. Refreshed by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/31983846915
|
🤝 Merged Conflicted files:
Please review the merge commit before relying on it. |
# Conflicts: # graphify-out/GRAPH_REPORT.md # graphify-out/graph.json # graphify-out/manifest.json
`graphify extract` with LLM semantic extraction (graphify 0.9.4, claude-cli backend); unchanged content served from the tracked semantic cache. Refreshed by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/31988443004
|
🤝 Merged No AI resolution was needed by merge time; the branch was updated with a plain merge commit.
Please review the merge commit before relying on it. |
|
|
|
|
|
🤝 Merged Conflicted files:
Please review the merge commit before relying on it. |
…olved conflicts) Conflicted paths: .github/scripts/resolve-pr-conflicts-routing-contract.mjs, .github/scripts/workflow-control-plane-contract.mjs, .github/workflows/resolve-pr-conflicts.yml, graphify-out/GRAPH_REPORT.md, graphify-out/graph.json, graphify-out/manifest.json Resolved by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/32910735947 Co-Authored-By: Lopu <github-actions[bot]@users.noreply.github.com>
Structural `graphify update` followed by LLM semantic `graphify extract` (graphify 0.9.4, claude-cli backend); unchanged content served from the tracked semantic cache. Refreshed by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/32910735947
|
🤝 Merged No AI resolution was needed by merge time; the branch was updated with a plain merge commit.
Please review the merge commit before relying on it. |
# Conflicts: # graphify-out/GRAPH_REPORT.md # graphify-out/graph.json # graphify-out/manifest.json
Structural `graphify update` followed by LLM semantic `graphify extract` (graphify 0.9.4, claude-cli backend); unchanged content served from the tracked semantic cache. Refreshed by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/32945987104
🤖 Lopu review — batching design is right, one fatal regression in
|
Lopu repository reviewLopu reviewed this PR against github-actions as Thingtime's principal PR and repository manager. Backend: Claude Code default. Lopu made justified improvements and pushed 00d9348 to codex/batch-pr-conflict-resolutions. Lopu review — PR #234
|
| Check | Result |
|---|---|
resolve-pr-conflicts-routing-contract.mjs --self-test |
pass |
workflow-control-plane-contract.mjs --self-test |
pass |
build-all-branch.mjs --self-test |
pass |
deploy-develop-pr-preview.mjs --self-test |
pass (82/82) |
promotion-worker-routing-contract.mjs |
pass |
promotion-pr-changelog.mjs --self-test |
pass |
promote-features-to-main.mjs --self-test |
pass |
electron-pr-release-contract.mjs |
pass |
classify-claude-credential-failure.mjs --self-test |
pass |
rebase-ownership-routing-contract.sh |
pass |
promotion-worker-contract.sh |
pass |
node --check over all 10 control-plane scripts |
pass |
Python + Ruby YAML parse of resolve-pr-conflicts.yml |
pass |
bash -n over all 46 extracted run: blocks |
pass |
shellcheck -i SC2154 over all 46 blocks |
1 finding before the fix, 0 after; base 1cdf9900 has 0 |
handoff step executed end to end with a stubbed gh |
fails with unbound variable before the fix; emits a valid canonical batch after |
Emitted batch fed back through both validators + route() |
accepted, correct batchSize / selector / concurrency |
| Tamper cases (unsorted / wrong key order / duplicate / non-base64) | all rejected |
git diff --check |
clean |
shellcheck -i SC2154 across all 46 run blocks reported exactly one finding on
the incoming head and zero on the base — a precise, cheap signal that the
main actionlint job's blanket ShellCheck suppression happened to hide a new
fatal finding rather than pre-existing noise.
Uncommitted worktree changes left for the trusted publisher
.github/workflows/resolve-pr-conflicts.yml— drop the leftover
--argjson manual_retry "$manual_retry"; drop the unused
manual_retry_for_pr()helper..github/scripts/resolve-pr-conflicts-routing-contract.mjs— add the
regression guard.
|
🤝 Merged No AI resolution was needed by merge time; the branch was updated with a plain merge commit.
Please review the merge commit before relying on it. |
# Conflicts: # graphify-out/GRAPH_REPORT.md # graphify-out/graph.json # graphify-out/manifest.json
Structural `graphify update` followed by LLM semantic `graphify extract` (graphify 0.9.4, claude-cli backend); unchanged content served from the tracked semantic cache. Refreshed by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/32980911546
|
🤝 Merged No AI resolution was needed by merge time; the branch was updated with a plain merge commit.
Please review the merge commit before relying on it. |
# Conflicts: # graphify-out/GRAPH_REPORT.md # graphify-out/graph.json # graphify-out/manifest.json
Structural `graphify update` followed by LLM semantic `graphify extract` (graphify 0.9.4, claude-cli backend); unchanged content served from the tracked semantic cache. Refreshed by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/33017021640
Summary
fail-fast: falseandmax-parallel: 3concurrency.queue: max, without canceling running or pending workgithub-actionscontrol-plane boundaryA batch is canonical base64 JSON containing only sorted unique PR numbers and per-PR manual-retry intent. It is capped at 200 selections, below GitHub's 256-job matrix limit; larger waves fall back to multiple bounded batches.
Security and failure isolation
Validation
control-plane-ci.ymlJavaScript, Bash, and automation-contract suitegit diff --checkmainpasses after excluding its current parser gap for GitHub's newly documentedconcurrency.queuekey and the workflow's pre-existing informational ShellCheck findingsCombined activation fixes
This branch now contains the complete head of PR #422 as a merge parent. One merge of this PR therefore activates the batch worker together with:
Combined merge commit: bc9233a.
Final CodeQL writer audit
The isolated CodeQL disposition writer now re-resolves each PR target branch tip instead of trusting the historical
base.shasnapshot recorded on an out-of-date PR. This keeps exact-head/base safety while allowing valid dispositions on olddevelopPRs to be applied rather than silently skipped. Contract tests cover both the live ref lookup and the prohibition on historical-base comparison.Historical CodeQL backfill progression
The bounded inventory now resolves the live synthetic
refs/pull/<number>/mergeobject and verifies its exact base/head parents before checking coverage. GitHub's paginated PRmerge_commit_shacan lag this ref; trusting it caused completed snapshots to be redispatched as safe no-ops and starved older missing analyses. A live pre-merge test advanced past those repeated no-ops and selected 20 genuinely missing snapshots, all of which were dispatched for exact analysis.