Conversation
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.
The 1.19.2 branch lacked a reproducible build check, and a future Discord help worker needs to run the actual modded client without exposing the Windows host to each session. This PR adds Linux and Windows verification with the canonical
sfm-propagate-changesCLI, uploads the built mod, and runs the existing title and GameTest puppets inside an isolated Linux container with Xvfb and Mesa software graphics. Feature-branch pushes and PR merge checkouts both run; the busy 1.19.2 checkout is untouched.The container is prepared with network access, then starts fresh clients offline. The smoke worker uses UID 10001, no capabilities or privilege escalation, seccomp, a read-only root, no host mounts, GPU or engine socket, and CPU, memory, PID and wall-time limits. It requires the raw game completion marker, the item-transfer GameTest pass, and exactly three title plus eight orbit PNGs. Failed runs retain bounded diagnostics, and stale evidence cannot satisfy a retry. The same smoke script now supports local Podman; its empty bounded tmpfs mounts avoid Podman's default copy-up of multi-gigabyte image build caches.
The frozen Vox Java artifact exposed a late-credit race. Its repair is published in Facet PR #2 and pinned here by exact commit and JAR hash; all other dependency declarations remain unchanged. Three asynchronous test assertions now wait for the event they actually observe. A bounded Linux JUnit watchdog writes thread stacks to the existing always-uploaded diagnostics; its six snapshots identified a production Explorer deadlock. The loader now claims one terminal result under its handle lock and completes callbacks after releasing it, so session cancellation cannot invert the locks. Failed release-review surface futures are evicted on lookup as well as by completion callback, so a retry cannot reuse an already-failed result. The canonical test command and 15-minute CI limit are unchanged.
Validation:
d7e22e73e: 2,075 Java tests passed, one Windows-only skip, six existing opt-in prerequisite aborts, verified mod JAR, and both offline game puppets with 11 decoded PNGs. The cold prepared-image build took 19m12s and the two client launches together took 3m42s.01b239124: default-container DNS and HTTPS worked, while--network noneblocked DNS and direct-IP egress. Xvfb/Mesa reported llvmpipe OpenGL 4.5. The offline worker loggedmove_1_stack_direct passed!, produced 3 title and 8 orbit PNGs, exited 0 without OOM, and left no container or anonymous volume. The settled title and final orbit images were visually inspected.73ead2d0a, the PR Linux and PR Windows workflows fully passed. Later Linux diagnostics exposed the Explorer lock cycle and a Windows PR run exposed the failed-surface cache race. The six new lock regressions all fail against the original loader and pass with the fix. In local rootless Podman, the focused loader suite passed 19/19, review-surface suite 6/6, and the full canonical suite passed 2,081 tests with zero failures, one skip and six existing optional-prerequisite aborts (2,088 found). The Podman wrapper lifecycle tests, 11 evidence-verifier regressions, JUnit watchdog lifecycle test, actionlint, andgit diff --checkalso pass. At final head5dbbaeae9, both Linux PR and Linux push workflows fully passed: 2,081 Java tests, verified mod JAR, graphics isolation, and both offline game puppets with 11 PNGs. Both Windows PR and Windows push workflows fully passed: 2,082 Java tests and package verification. All hosted suites had zero test failures; the six optional-prerequisite aborts remain expected.Discord and Kubernetes wiring remain future integration work. A help bot should use a separate controller and token, bounded inputs and outputs, prebuilt trusted images, and a readiness check before selecting an orbit frame; the first frame can catch incomplete geometry. The anonymous workspace has no disk quota, and arbitrary executable uploads would need a stronger sandbox. No game process ran directly on the Windows host and neither draft PR was merged.