[PR #170] [CLOSED] Harden production readiness and crash-safe recovery #179

Closed
opened 2026-10-15 20:54:04 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/rehan-remade/universal-modder/pull/170
Author: @AlxanderArt
Created: 10/9/2026
Status: ❌ Closed

Base: main ← Head: improve/production-readiness


📝 Commits (10+)

  • d919b82 Harden production-readiness boundaries
  • 0fdbd99 fix: close independent review findings
  • d0a0406 test: keep publish fixtures non-secret
  • 1ee3c1d fix: close second-pass review findings
  • 1949023 fix: close final local handoff blockers
  • 0983269 fix: seal final transaction races
  • d20cb78 Harden release verification and recovery boundaries
  • 8b35780 fix: harden release and installer race boundaries
  • ba91dba fix: make installer recovery crash safe
  • ec0472b fix: pin installer root transaction identity

📊 Changes

47 files changed (+5594 additions, -334 deletions)

View changed files

📝 .agents/skills/fal-assets/SKILL.md (+7 -0)
📝 .agents/skills/game-automation/SKILL.md (+8 -6)
📝 .agents/skills/mod-any-game/SKILL.md (+3 -3)
📝 .agents/skills/mod-any-game/references/safety.md (+4 -3)
📝 .claude-plugin/plugin.json (+1 -0)
📝 .claude/skills/fal-assets/SKILL.md (+7 -0)
📝 .claude/skills/game-automation/SKILL.md (+8 -6)
📝 .claude/skills/mod-any-game/SKILL.md (+3 -3)
📝 .claude/skills/mod-any-game/references/safety.md (+4 -3)
📝 .github/star-chart/star_chart.py (+1 -1)
📝 .github/workflows/star-chart.yml (+36 -10)
📝 .github/workflows/test.yml (+123 -11)
📝 .gitignore (+4 -1)
📝 CONTRIBUTING.md (+11 -8)
📝 README.md (+36 -3)
➕ RELEASING.md (+34 -0)
➕ SECURITY.md (+33 -0)
📝 examples/minecraft-gta5-passthrough/README.md (+4 -3)
➕ examples/minecraft-gta5-passthrough/RECOVERY.md (+46 -0)
📝 examples/minecraft-gta5-passthrough/gradle.sh (+5 -3)

...and 27 more files

📄 Description

Summary

This draft PR hardens Universal Modder for safer, reproducible local handoff and future release preparation.

It publishes the complete reviewed 16-commit stack from 8370faa8e114baf33acdb23079aff552a7728c4b through exact candidate 8bd99117ddd5fc378aeb9dddd38e60b6d6afaac3.

Key changes:

  • adds pinned, reproducible wheel/sdist verification and clean-install checks;
  • adds Python 3.10–3.14 and Windows CI coverage with pinned actions/tooling;
  • adds security, release, recovery, and contribution documentation;
  • hardens file, subprocess, archive, backup, publish, and provider-status boundaries;
  • replaces the GTA V passthrough shell mutation path with a descriptor-relative Python installer;
  • adds parent-scoped locking, root identity pinning, atomic no-clobber quarantine capture, durable fsync ordering, bounded receipt I/O, and explicit status/recover operations;
  • adds interruption, symlink, hardlink, root-replacement, lock-rebind, retained-evidence, special-file, artifact-mode, and mutation regressions;
  • synchronizes canonical skill mirrors and verifies them in CI.

Exact candidate

  • Commit: 8bd99117ddd5fc378aeb9dddd38e60b6d6afaac3
  • Tree: c9d7d1124c70116cd469e86805c6f8d0ac1384be
  • Base: 8370faa8e114baf33acdb23079aff552a7728c4b
  • Fixed build epoch: SOURCE_DATE_EPOCH=1704067200

Local verification

  • Python 3.10: 181 passed, 1 skipped
  • Python 3.11: 181 passed, 1 skipped
  • Python 3.12: 181 passed, 1 skipped
  • Python 3.13: 181 passed, 1 skipped
  • Python 3.14: 181 passed, 1 skipped
  • Security-boundary suite: 105 passed
  • Branch coverage: 55.30% (required minimum: 53%)
  • Ruff, compilation, frozen-lock validation, KB index, skill mirrors, and diff hygiene: passed
  • Clean wheel and sdist installation: passed
  • Two independent fixed-epoch builds: byte-identical
  • Independent defensive review: GO
  • Independent mutation review: GO

Locally reproduced artifacts:

  • Wheel SHA-256: bae35552dd6a18fa3b17ce8ade58e3b66e16e056f2574673faba193e6d8d3f4a
  • Sdist SHA-256: a506a045421ca900cb67313da5ca70e1d237d2533cd8bd54411d7757e6c30369
  • Release receipt SHA-256: 75ba40ee05fc6f5d1ccae4d01a608b5f2fe49c15a0c289cd5d80ffbe650f571a

Declared safety boundary

The passthrough installer serializes cooperating installer processes through a parent-scoped advisory lock. It intentionally does not claim protection against an arbitrary unrelated process running as the same OS user and replacing an exact pathname at the unlink syscall boundary; Linux/WSL provides no portable unlink-by-open-inode primitive for this implementation.

Native Windows fails closed for the descriptor-relative installer and directs operators to WSL. Actual WSL/DrvFS behavior and real game-runtime installation/recovery remain separate validation gates.

Review status

This PR is intentionally a draft. It does not authorize or claim:

  • merge, tag, release, package publication, deployment, or provider activation;
  • real WSL/DrvFS or game-runtime validation;
  • native Windows process/input/registry/capture validation;
  • commit, tag, or artifact signing;
  • SBOM/provenance publication;
  • post-publication readback.

Reviewer focus

Please focus on:

  1. installer transaction/recovery behavior and its documented cooperative-process boundary;
  2. source-to-artifact reproducibility and exact Git identity checks;
  3. archive/path/subprocess fail-closed behavior;
  4. platform-specific CI behavior, especially Windows and Python 3.10–3.14;
  5. whether the release and recovery documentation accurately matches the code.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/rehan-remade/universal-modder/pull/170 **Author:** [@AlxanderArt](https://github.com/AlxanderArt) **Created:** 10/9/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `improve/production-readiness` --- ### 📝 Commits (10+) - [`d919b82`](https://github.com/rehan-remade/universal-modder/commit/d919b82f0a4812c007cb548e8005c6ae57fec2bf) Harden production-readiness boundaries - [`0fdbd99`](https://github.com/rehan-remade/universal-modder/commit/0fdbd9986ba47ad6b835805bf9afec5e2d8ea704) fix: close independent review findings - [`d0a0406`](https://github.com/rehan-remade/universal-modder/commit/d0a04062d4db8a889233759d77920d51138e97d7) test: keep publish fixtures non-secret - [`1ee3c1d`](https://github.com/rehan-remade/universal-modder/commit/1ee3c1d22a763af22bc0e51c7888667a7f8d1258) fix: close second-pass review findings - [`1949023`](https://github.com/rehan-remade/universal-modder/commit/1949023b29afecc87e756fdaa28705ceec518a03) fix: close final local handoff blockers - [`0983269`](https://github.com/rehan-remade/universal-modder/commit/0983269dd3f8c79cb889ef323b23ac96aaee6193) fix: seal final transaction races - [`d20cb78`](https://github.com/rehan-remade/universal-modder/commit/d20cb78c998b4f5bef503237197c7ed89fa7870e) Harden release verification and recovery boundaries - [`8b35780`](https://github.com/rehan-remade/universal-modder/commit/8b35780e21c1f99083a43f5ad2f67c3e5cd60510) fix: harden release and installer race boundaries - [`ba91dba`](https://github.com/rehan-remade/universal-modder/commit/ba91dba28382157eee929b11f7a7a6463e5d312b) fix: make installer recovery crash safe - [`ec0472b`](https://github.com/rehan-remade/universal-modder/commit/ec0472be6a1674f04afe9d8c66c0c5fd07ab8592) fix: pin installer root transaction identity ### 📊 Changes **47 files changed** (+5594 additions, -334 deletions) <details> <summary>View changed files</summary> 📝 `.agents/skills/fal-assets/SKILL.md` (+7 -0) 📝 `.agents/skills/game-automation/SKILL.md` (+8 -6) 📝 `.agents/skills/mod-any-game/SKILL.md` (+3 -3) 📝 `.agents/skills/mod-any-game/references/safety.md` (+4 -3) 📝 `.claude-plugin/plugin.json` (+1 -0) 📝 `.claude/skills/fal-assets/SKILL.md` (+7 -0) 📝 `.claude/skills/game-automation/SKILL.md` (+8 -6) 📝 `.claude/skills/mod-any-game/SKILL.md` (+3 -3) 📝 `.claude/skills/mod-any-game/references/safety.md` (+4 -3) 📝 `.github/star-chart/star_chart.py` (+1 -1) 📝 `.github/workflows/star-chart.yml` (+36 -10) 📝 `.github/workflows/test.yml` (+123 -11) 📝 `.gitignore` (+4 -1) 📝 `CONTRIBUTING.md` (+11 -8) 📝 `README.md` (+36 -3) ➕ `RELEASING.md` (+34 -0) ➕ `SECURITY.md` (+33 -0) 📝 `examples/minecraft-gta5-passthrough/README.md` (+4 -3) ➕ `examples/minecraft-gta5-passthrough/RECOVERY.md` (+46 -0) 📝 `examples/minecraft-gta5-passthrough/gradle.sh` (+5 -3) _...and 27 more files_ </details> ### 📄 Description ## Summary This draft PR hardens Universal Modder for safer, reproducible local handoff and future release preparation. It publishes the complete reviewed 16-commit stack from `8370faa8e114baf33acdb23079aff552a7728c4b` through exact candidate `8bd99117ddd5fc378aeb9dddd38e60b6d6afaac3`. Key changes: - adds pinned, reproducible wheel/sdist verification and clean-install checks; - adds Python 3.10–3.14 and Windows CI coverage with pinned actions/tooling; - adds security, release, recovery, and contribution documentation; - hardens file, subprocess, archive, backup, publish, and provider-status boundaries; - replaces the GTA V passthrough shell mutation path with a descriptor-relative Python installer; - adds parent-scoped locking, root identity pinning, atomic no-clobber quarantine capture, durable fsync ordering, bounded receipt I/O, and explicit `status`/`recover` operations; - adds interruption, symlink, hardlink, root-replacement, lock-rebind, retained-evidence, special-file, artifact-mode, and mutation regressions; - synchronizes canonical skill mirrors and verifies them in CI. ## Exact candidate - Commit: `8bd99117ddd5fc378aeb9dddd38e60b6d6afaac3` - Tree: `c9d7d1124c70116cd469e86805c6f8d0ac1384be` - Base: `8370faa8e114baf33acdb23079aff552a7728c4b` - Fixed build epoch: `SOURCE_DATE_EPOCH=1704067200` ## Local verification - Python 3.10: `181 passed, 1 skipped` - Python 3.11: `181 passed, 1 skipped` - Python 3.12: `181 passed, 1 skipped` - Python 3.13: `181 passed, 1 skipped` - Python 3.14: `181 passed, 1 skipped` - Security-boundary suite: `105 passed` - Branch coverage: `55.30%` (required minimum: 53%) - Ruff, compilation, frozen-lock validation, KB index, skill mirrors, and diff hygiene: passed - Clean wheel and sdist installation: passed - Two independent fixed-epoch builds: byte-identical - Independent defensive review: GO - Independent mutation review: GO Locally reproduced artifacts: - Wheel SHA-256: `bae35552dd6a18fa3b17ce8ade58e3b66e16e056f2574673faba193e6d8d3f4a` - Sdist SHA-256: `a506a045421ca900cb67313da5ca70e1d237d2533cd8bd54411d7757e6c30369` - Release receipt SHA-256: `75ba40ee05fc6f5d1ccae4d01a608b5f2fe49c15a0c289cd5d80ffbe650f571a` ## Declared safety boundary The passthrough installer serializes cooperating installer processes through a parent-scoped advisory lock. It intentionally does not claim protection against an arbitrary unrelated process running as the same OS user and replacing an exact pathname at the unlink syscall boundary; Linux/WSL provides no portable unlink-by-open-inode primitive for this implementation. Native Windows fails closed for the descriptor-relative installer and directs operators to WSL. Actual WSL/DrvFS behavior and real game-runtime installation/recovery remain separate validation gates. ## Review status This PR is intentionally a **draft**. It does not authorize or claim: - merge, tag, release, package publication, deployment, or provider activation; - real WSL/DrvFS or game-runtime validation; - native Windows process/input/registry/capture validation; - commit, tag, or artifact signing; - SBOM/provenance publication; - post-publication readback. ## Reviewer focus Please focus on: 1. installer transaction/recovery behavior and its documented cooperative-process boundary; 2. source-to-artifact reproducibility and exact Git identity checks; 3. archive/path/subprocess fail-closed behavior; 4. platform-specific CI behavior, especially Windows and Python 3.10–3.14; 5. whether the release and recovery documentation accurately matches the code. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-15 20:54:04 +00:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rehan-remade/universal-modder#179
No description provided.