Skip to content

Audit build provenance and artifact attribution - #2

Draft
Hylfrd wants to merge 4 commits into
masterfrom
codex/audit-001-build-provenance
Draft

Hylfrd wants to merge 4 commits into
masterfrom
codex/audit-001-build-provenance

Conversation

@Hylfrd

@Hylfrd Hylfrd commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Summary

  • close AUDIT-001-F003 by binding packaged-client verification to the protocol-valid offline username FarmHelperTest
  • make the packaged-client harness require an explicit worktree-local isolated GRADLE_USER_HOME
  • retain full candidate/dependency hash, provenance, asset SHA-1, and path-safety boundaries
  • update the machine-readable retrospective report with the completed heavy verification

Checkpoint and candidate

  • baseline: 10f11c36c1a16f0ee9e896f7696eccc6fbf4e412
  • unverified shutdown checkpoint: 6076ce87f93005079cf5e506b0a51c9bbda44da4 / tree 377fabb7f26135a11301e7e5d0d0c0639802cca1
  • candidate: a02563855d006056e1f9dedf46a1695de8e8d1f4 / tree b76dd429bd2bd5e16331deee76fda6c3e57d7b38
  • branch: codex/audit-001-build-provenance
  • fixed upstream: JellyLabScripts/FarmHelper@eacb323fbde3eff94d4f2ee7baacb059d84b8e3a
  • path-set SHA-256: 12711f22437acd1d8c983eaf4ac42c8eba5c317816d61af50ebf5dd7a24ef7e9
  • scope manifest SHA-256: dee51e602834a18e9db858c1a90c9d437c828adba36ead360ff41fa6ec3fc904

Changed paths

  • scripts/internal/test-packaged-client-harness.ps1
  • docs/internal/retrospective-audit/AUDIT-001.json

All 19 assigned path classifications, upstream anchors, finding IDs, and the explicit empty-anchor entry are preserved. No control files, Player evidence, or unrelated implementation paths changed.

Verification

  • BellSoft JDK 25.0.3; wrapper Gradle 9.5.1; destination completion marker present and the launcher runtime matches the approved installed distribution.
  • The independently provisioned isolated home recorded successful online asset provisioning before relocation. In target .gradle/audit-001-user-home, both offline downloadAssets receipts passed; the second was UP-TO-DATE with zero transfer/fetch lines.
  • Asset index 26.1.2-30.json: SHA-256 D43F145337DDF8B1258F92D5E8CD8EF4E5E2B37D220FEF2D013987B2EF0EBC90; all 4,750 indexed objects passed SHA-1 and path-safety verification.
  • .gradlew.bat --offline --no-daemon --console=plain clean build: two clean runs passed, 12 actionable tasks; runtime JAR is 881204 bytes, SHA-256 472AAEA50A277108FC60C43BDE1C483296C92FC155091929D2626AEAA9998A60.
  • .gradlew.bat --offline --no-daemon --console=plain test, verifyPackagedClientProvenanceGate, and scripts/internal/verify-dependency-provenance.ps1: passed; provenance reports 3 runtime dependencies, 1 Loom platform dependency, Loom 1.17.17.
  • scripts/internal/audit-packaged-jar.ps1: DETERMINISTIC_JAR_OK, 497 entries. Runtime and sources JARs each contain exactly one META-INF/LICENSE and META-INF/NOTICE; resource JSON checks and all five PowerShell parse checks pass.
  • scripts/internal/audit-minecraft-collision-bounds.ps1: AUDIT_OK, pinned common-deobf SHA-256 2692634287E54AABD918F6E68E1877C9BB8E36D81C7B9FE10460FA3B24DA04CD, 51 classpath JARs, 19,046 states, 43,820 boxes, zero errors, all four oracles.
  • scripts/internal/test-packaged-client-harness.ps1 -GradleUserHome .gradle/audit-001-user-home: exit 0; four username invariants, five verifier negatives, spaced-argument launcher coverage, two Gradle hash-boundary negatives, and three Gradle username negatives. No Minecraft or Player case was run.

Upstream boundary

The fixed upstream build contains legacy DevAuth, JDA, OneConfig, LaunchWrapper, and Forge references. The local build contains none of those references and retains exactly the declared/provenanced runtime dependencies; telemetry, analytics, remote-control, Discord/Webhook, updater, Proxy, production DevAuth, OneConfig, and Forge/LaunchWrapper infrastructure remain excluded.

Exact-head CI passed on candidate a02563855d006056e1f9dedf46a1695de8e8d1f4: push run 32762334005 and pull-request run 32762330035, with all Linux/Windows test and build jobs passing. The PR remains Draft for fresh independent Review.

@Hylfrd
Hylfrd marked this pull request as draft August 24, 2026 05:26
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