Let Lopu start CodeQL-backed lanes on develop - #398
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🧹 Develop S3 preview removedThe PR-specific alias and every workflow-created develop deployment were removed when this PR closed. The ordinary generated Vercel Preview remains available on the shared development runtime. |
Lopu repository reviewLopu reviewed this PR against develop as Thingtime's principal PR and repository manager. Using Claude Opus 5. Lopu made justified improvements and pushed 699a58b to codex/lopu-listener-security-events-develop. Lopu review — PR #398 "Let Lopu start CodeQL-backed lanes on develop"Compared: head Check stateAll 22 reported contexts pass; nothing failed, cancelled, or timed out. No However, a real contract failure is hidden behind a non-blocking job. Finding 1 — a retired listener was resurrected by an AI merge (fixed)
This directly contradicts the PR's own stated outcome (" Root cause. Commit Impact (not theoretical). The resurrected caller declares Change made. Deleted Why this belongs on this PR rather than a controller fix branch. The file Merge-blocking risk checked. Branch protection is not readable with this Finding 2 — duplicate changelog entry introduced by this PR (fixed)This PR adds a second byte-identical copy of the "CI Control repository Also added a dated Finding 3 —
|
# Conflicts: # graphify-out/cache/semantic/6a4551a09e20ba397a3d56c050644912b91ed30fc9852a637ba0a673ce1641ba.json
# Conflicts: # graphify-out/cache/semantic/6a4551a09e20ba397a3d56c050644912b91ed30fc9852a637ba0a673ce1641ba.json
# Conflicts: # graphify-out/cache/semantic/6a4551a09e20ba397a3d56c050644912b91ed30fc9852a637ba0a673ce1641ba.json
# Conflicts: # graphify-out/cache/semantic/6a4551a09e20ba397a3d56c050644912b91ed30fc9852a637ba0a673ce1641ba.json
# Conflicts: # graphify-out/cache/semantic/6a4551a09e20ba397a3d56c050644912b91ed30fc9852a637ba0a673ce1641ba.json
|
🤝 Merged Conflicted files:
Please review the merge commit before relying on it. |
…solved conflicts) Conflicted paths: .github/workflows/codeql-analysis.yml, .github/workflows/resolve-pr-conflicts.yml, README.md, TESTING.md, graphify-out/GRAPH_REPORT.md, graphify-out/graph.json, graphify-out/manifest.json, remix/CHANGELOG.md, remix/scripts/workflow-caller-contract.mjs Resolved by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/32959095625 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/32959095625
|
🤝 Merged Conflicted files:
Please review the merge commit before relying on it. |
…solved conflicts) Conflicted paths: README.md, TESTING.md, graphify-out/GRAPH_REPORT.md, graphify-out/cache/semantic/0075b70deb734762e680e31448d5d7ae4b722ff8da30f12d46758df11755b4ed.json, graphify-out/cache/semantic/de8ff3e2ff6a82e160a628793b1662887bf981d5c49910aa565b93b280999024.json, graphify-out/cache/semantic/e0dd61d9399bd7e29034ca3892fd7ddf5b24823ff25d07103510b7843355207c.json, graphify-out/graph.json, graphify-out/manifest.json, remix/scripts/workflow-caller-contract.mjs Resolved by the resolve-pr-conflicts workflow: https://github.com/lopugit/thingtime/actions/runs/33017062645 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/33017062645
Lopu review — a retired listener came back through a mergeLopu (principal PR/repository manager) reviewed All 22 checks pass and there are no open CodeQL alerts on this head, so the disposition file stays
|
| Check | Result |
|---|---|
workflow-caller-contract.mjs |
was exit 1 → now 6 thin listeners pinned to github-actions |
web-ci-required-context-contract.mjs |
path-free protected listener |
| actionlint v1.7.7 (6 listeners) | clean apart from the pre-existing note below |
| YAML parse (6 listeners) | all parse |
git diff --check |
clean |
I also confirmed base develop fails the same assertion, so the regression is inherited rather than introduced by this branch's own work.
Two things I deliberately did not change
resolve-pr-conflicts.ymldeclares 12workflow_dispatchinputs; GitHub documents a max of 10. actionlint flags it, but this is identical at base and GitHub is demonstrably not enforcing it — zero startup failures in the last 30 runs, and dispatch run33042235734succeeded. Trimming the input surface would break the typed CI Control inputs this PR explicitly preserves, for a limit that isn't currently binding. Flagging as drift, not fixing.- The new CodeQL assertion is brittle: it requires
types:immediately afterpull_request_target:, while its resolver sibling tolerates interleaved comments via(?: #.*\n)*. Given how heavily commented that file is — and that this PR edits comments right above that trigger — a future comment there would fail the contract for no real reason. Passes today; not worth churning.
Notes
- The body's "develop also has only seven deterministic thin listeners" was true only because
all-branch.ymlhad been resurrected. The correct count is six. graphify-out/manifest.jsonstill indexes the deleted file. No graphify binary here, and hand-editing a 338k-line generated artifact would be worse; Lopu's post-merge Graphify refresh (README:203) reconciles it.- Worth a maintainer glance: branch protection isn't readable with this token, so I couldn't confirm no required context is lost. Mitigating evidence —
control-plane / Lopu builds and repairs the all branchis also emitted by Lopu's own job, and PR Lopu: unify develop PR automation and every-head wakeup #408 merged intodevelopatf51cb262while the file was already absent.
The rest of the diff looks right. Both workflow YAML edits are comment-only (on: blocks, permissions, and job graphs are byte-identical to base), and the contract-script changes are a genuine tightening — two assertions that previously matched the whole file are now scoped to the correct section.
|
Closing as superseded by the unified listeners and protected manager now live on develop/main. The current listener already covers all-branch PR CodeQL plus newer first-party workflow_run failure signals; merging this older branch would restore obsolete workflow copies and regress that coverage. No unique product behavior remains. |
Outcome
Makes
developuse Lopu PR manager as its single automatic principal repository workflow. Two live failures are addressed:startup_failurebecause the protected reusable controller requestedsecurity-eventsaccess while the thin caller delegated none;Changes
security-events: writepermission required by the reusable controllerrebase-pr-stacks.ymlto the exact internalrebase-pr-stack-airepository-dispatch handoffVerification
node remix/scripts/workflow-caller-contract.mjsgit diff --checkThe PR remains ready for review and does not merge or mutate
developdirectly. Its fresh PR run is the branch-specific proof that the unified listener compiles and creates controller jobs.Final single-entry Lopu maintenance
This PR now also removes the three competing develop-side promotion/synchronization listeners and forwards the new maintenance inputs through Lopu PR manager. The protected components queue without cancelling active work, and explicit maintenance uses Lopu rather than separate Actions entries.
Merge controller follow-up PR #399 before evaluating this head. After #397 lands on
mainand main synchronizes intodevelop, inspect the remaining diff here; close this PR if the synchronization makes it empty, otherwise merge the develop-only residue.Final single-entry audit
Post-merge activation dependency
Live activation testing after #397/#399 found two GitHub compiler ceilings now fixed in follow-ups: merge #403 into
github-actionsfirst, then #404 intomain. Lopu's corrected main-push lane should synchronize that result intodevelop; re-check this PR afterward and close it if the diff becomes empty, otherwise merge only genuine develop residue. Its branch already contains the same split CodeQL listener and passes the seven-listener plus 20-test CI Control contracts.