ci: re-vendor hardened chain_feed.py and adopt the absolute CHAIN_PY resolver fragment - #99
Merged
IvanMurzak merged 1 commit intoSep 14, 2026
Conversation
…resolver fragment Re-vendors .github/scripts/chain_feed.py byte-identically from ai-game-dev-software origin/chain-testing (PR #955, merge a2770602; blob sha256 775fb1a3...). Replaces the chain python resolver with the current `print-fragment --node reflectornet` posix + windows steps, which export an absolute, space-free CHAIN_PY and never use bare `py`. Adds a .gitattributes eol=lf rule so autocrlf can never break byte parity. verified-downstream: McpPlugin.Tests, McpPlugin.Server.Tests
Contributor
IvanMurzak
deleted the
worktree-01a09e57-966f-70d3-8838-d8fa1f249a8a
branch
September 14, 2026 05:50
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.github/scripts/chain_feed.pybyte-identically from ai-game-dev-softwareorigin/chain-testing(PR #955, mergea2770602, the security-hardened version). Git-blob sha256775fb1a365a41daaf536faf8b0dbcc2057406a1e5138d430a3b2d881918b6d38, verified on the staged index blob.chain python (posix)resolver is replaced with the verbatimpython .github/scripts/chain_feed.py print-fragment --node reflectornetposix and windows resolver steps. They export an absolute, space-freeCHAIN_PY(the probe printssys.executable) and never use barepy. Both chain steps (chain feed,chain leg record) invoke${{ env.CHAIN_PY }}. No job-levelCHAIN_PYis set. A mechanical check confirmed the 27 resolver lines match the fragment output exactly..gitattributeswith.github/scripts/chain_feed.py text eol=lf. The repo had none, andcore.autocrlf=truecheckouts would otherwise break byte parity.No CLI flag, exit code or leg-record field changed.
record --warnstill drops a blank value, so the existingCHAIN_PACK_EVIDENCEwiring is unchanged.Chain dispatch evidence (final head
34e42654e0f200e7d474db255f2d9537cdf02b38)origin/chain-testingtooling (a2770602, manifest sha256c00bd189…):chain.py lock --set all=main --set reflectornet=branch:worktree-01a09e57-966f-70d3-8838-d8fa1f249a8a. Result:lock_hash sha256:aa453ff962367bdecbdac2a3d2dd8b15d84a6c89fbf8a7f1efa738fba862df2b, reflectornet34e42654.displayTitle == "chain aa453ff9 reflectornet",headSha == 34e42654…, and a run id not present before dispatch. Conclusion: success.CHAIN_PYresolved to/usr/bin/python3(absolute, space-free). Log:chain: sha ok 34e42654… == lock.nodes.reflectornet.sha.{package: com.IvanMurzak.ReflectorNet, resolved: 5.4.0-ws.g34e42654, expected: 5.4.0-ws.g34e42654, ok: true}. The source iscom.IvanMurzak.ReflectorNet.5.4.0-ws.g34e42654.nupkg!lib/netstandard2.1/ReflectorNet.dll, ProductVersion5.4.0-ws.g34e42654+34e42654…. Legresult: green, 1 proof, 0 failing.retention-days: 1):chain-leg-reflectornet-linux-build-and-test, 760 bytes zipped (chain-leg.jsonis 1264 bytes), expires 2026-09-15. The nupkg (298433 bytes, sha256f120fafa…) is not uploaded; it appears only inwarnings[]. The ordinary PR run 34809699088 uploaded 0 artifacts.PR CI on head
Check runs on
34e42654:build-and-testsuccess (run 34809699088, pull_request),build-and-testsuccess (run 34809827418, workflow_dispatch),Test Resultssuccess.Test plan
5.4.0-dev-64ac573-*pack: McpPlugin.Tests 821/821 and McpPlugin.Server.Tests 1023/1023 on both TFMs.