WIP: build: add a mise game build task #860

Draft
Marcuss2 wants to merge 2 commits from Marcuss2/Longshot:builder/mise-build-task into main
Contributor

Type: build · Risk: low · Tested on: Linux, mise 2026.11.8, game-free checks and a full local build; no GPU run · Needs: Windows and a Vulkan 1.3 GPU for run-win

Why

Mise now centralizes Longshot's task runner, but building a game still requires knowing the Python script and its
prerequisites. mise run build should provide that entry point alongside mise run test and mise run lint, accepting
the same dump and output arguments as the builder. No open issue covers this follow-up to the mise migration #417.

What changed

Add a mise build task that installs the pinned builder prerequisites and forwards its complete argument list directly
to nx2/make_game.py. Make it discoverable to contributors and agents, with an argv regression test rather than only a
configuration string check.

  • mise.toml: setup, build, build-dev, build-fast and packs install requirements.txt through a hidden
    build-deps helper. build-dev compiles the existing standalone tree (4 jobs); build-fast selects the documented
    development-only -O1 mode (8 jobs); packs forwards to dev_packs.py; and Windows-only run-win delegates to
    scripts/run-vk.ps1. Every argument passthrough uses "$@", preserving spaces, brackets and trailing backslashes.
  • tests/test_mise_build.py: parses the declaration and executes a fake builder through mise with synthetic arguments;
    no dump or real build is needed for this test.
  • CONTRIBUTING.md: mise tasks, mise run build and mise exec examples, including the automatic requirements
    installation and a dump-version check.
  • AGENTS.md: mise tasks leads the disk discovery section; agents prefer listed tasks, and the testing advice matches
    the new CircleCI workflow.

Measurements

N/A — task discovery and argument forwarding only; no game code or performance behavior changes. Before: main @ b7a014b8 had no build task; After: this PR @ 50bf5e74 runs the full requested Linux build from a fresh mise Python setup and exposes the standalone development commands.

Flags and settings

None — no game flags or settings changed. The only new task setting is depends = ["build-deps"] and hide = true
on the dependency helper.

Testing

Tested: on Linux:

  • The requested invocation mise run build --nup <escaped .nup with spaces and brackets> --out build --language en-US:
    full build completed with exit code 0 on 5ebabeb5, and again on the final rebased c4b6a640 head. Shell escaping
    is preserved by "$@".
  • python -I -B tests/test_mise_build.py: 3 tests passed, including actual argv recording through a fake builder with a
    spaced path and a trailing-Windows-backslash output path, the new tasks' declarations, and the standalone/packs help
    entry points without starting a build.
  • mise run setup: installed the git hooks with all Python requirements already satisfied, exit 0.
  • On 7ffd87ba, before the final task-only rebase: a fresh local dump preparation (nx2/dump.py --set then
    nx2/lift.py --standalone --write) followed by
    mise run build-dev: 489 files compiled in 744 seconds with zero failures; work/sa/build/longshot (440 MB) and
    longshot_vk.so (14 MB) linked successfully. mise run build-fast -- --dry-run: exit 0, reporting a dry host-build
    plan without compiling. These are invocation checks, not performance measurements.
  • mise run test -- mise_build: 1 passed through the strict task runner. mise tasks listings were checked for
    build, build-dev, build-fast, packs, run-win and setup.
  • mise run lint: pre-commit and actionlint passed. mise tasks lists build and keeps the internal dependency hidden.
  • mise run test at the b7a014b8 checkpoint: 518 passed, 61 failed, 16 skipped. Base at that checkpoint: 517 passed, 61 failed, 16 skipped;
    the additional passing test is tests/test_mise_build.py. The strict failures are outside this change's four files,
    including test_lift_cleanup_error.py, test_make_game_cache.py, test_crash_dialog.py, test_cpm_discovery.py,
    test_env_on.py, test_pipeline_tour.py, test_vk_pgo.py and 48 strict header/tool checks also present on base.
  • mise run deps: passed after retry once the sequential package-index job finished; the earlier parallel pip setup
    attempt failed and was not used as a test result.

Not tested: Windows task execution, the run-win launcher, a real Windows build, or an in-game GPU run. No game code changed. build-dev and build-fast require the existing standalone lift documented in CONTRIBUTING.md; they do not synthesize it.

Must be tested:

  • Windows 11, a Vulkan 1.3 GPU and Git Bash, by hand with your own standalone build: run mise tasks and python -I -B tests/test_mise_build.py, expecting all commands in the list and 3 tests passed; run mise run run-win -Seconds 2 -Name mise-smoke, expecting a short windowed run and an automatic clean quit, with logs and shots kept under work/runs/mise-smoke/.

Risks

Low: a thin change to an existing task runner plus docs. build-deps contacts Python package indexes and installs the
pinned requirements before building; subsequent runs use already installed packages. No game data is sent and no
compiler, linker, optimization or output-folder behavior changes.

Compatibility

  • Saves: unchanged.
  • Options file: unchanged.
  • Caches, object stores and builder tools beyond mise's documented Python environment: unchanged.
  • MkwVkHost/MkwVkRenderer ABI: unchanged, MKWVK_API_VERSION not bumped.
  • Builder invocation: the same arguments reach nx2/make_game.py; direct use remains possible outside mise.
  • CI/task definitions: existing lint, test, deps and validate tasks and all CircleCI jobs are unchanged; no workflow files are added. setup also installs the build requirements, while the new build/pack/run commands are explicit invocations, never automatic changes.

Checklist

Everyone

  • One topic.
  • The title is a Conventional Commit (type(scope): description) of the status line's type.
  • Why gives the reason plainly and links the issues that fit (the tracker searched). No open issue fits this follow-up to #417.
  • Measurements has a verdict, or one line saying why there is nothing to measure.
  • Testing names what was tested, what wasn't, and what must still be tested, where and how.
  • Rebased on current main. The final head 50bf5e74 is based on 999102a6, origin/main at the last fetch; lint and the focused task suite were rerun at this head. Full builds ran on the same wrappers before that final task-only rebase.
  • python -I -B tests/run_all.py passes (any failure that also fails on main is named). mise run test has the same strict total as base plus this new passing test; representative and strict-tool failures are named above.
  • No game files, dumps, build output or generated files. Explicitly verified: no .nup is tracked or in the commit.
  • third_party/ untouched (a new folder with a PROVENANCE.md instead). No third-party files change on this PR.
  • The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.

When it applies

  • A check under tests/ that reads changed source updated in this PR, not weakened. The new test asserts the task declaration and the real argv mise supplies.
  • Docs updated.
**Type:** build · **Risk:** low · **Tested on:** Linux, mise 2026.11.8, game-free checks and a full local build; no GPU run · **Needs:** Windows and a Vulkan 1.3 GPU for `run-win` ## Why Mise now centralizes Longshot's task runner, but building a game still requires knowing the Python script and its prerequisites. `mise run build` should provide that entry point alongside `mise run test` and `mise run lint`, accepting the same dump and output arguments as the builder. No open issue covers this follow-up to the mise migration #417. ## What changed Add a mise `build` task that installs the pinned builder prerequisites and forwards its complete argument list directly to `nx2/make_game.py`. Make it discoverable to contributors and agents, with an argv regression test rather than only a configuration string check. - `mise.toml`: `setup`, `build`, `build-dev`, `build-fast` and `packs` install `requirements.txt` through a hidden `build-deps` helper. `build-dev` compiles the existing standalone tree (4 jobs); `build-fast` selects the documented development-only `-O1` mode (8 jobs); `packs` forwards to `dev_packs.py`; and Windows-only `run-win` delegates to `scripts/run-vk.ps1`. Every argument passthrough uses `"$@"`, preserving spaces, brackets and trailing backslashes. - `tests/test_mise_build.py`: parses the declaration and executes a fake builder through mise with synthetic arguments; no dump or real build is needed for this test. - `CONTRIBUTING.md`: `mise tasks`, `mise run build` and `mise exec `examples, including the automatic requirements installation and a dump-version check. - `AGENTS.md`: `mise tasks` leads the disk discovery section; agents prefer listed tasks, and the testing advice matches the new CircleCI workflow. ## Measurements N/A — task discovery and argument forwarding only; no game code or performance behavior changes. Before: main @ b7a014b8 had no build task; After: this PR @ 50bf5e74 runs the full requested Linux build from a fresh mise Python setup and exposes the standalone development commands. ### Flags and settings None — no game flags or settings changed. The only new task setting is `depends = ["build-deps"]` and `hide = true` on the dependency helper. ## Testing **Tested:** on Linux: - The requested invocation `mise run build --nup <escaped .nup with spaces and brackets> --out build --language en-US`: full build completed with exit code 0 on `5ebabeb5`, and again on the final rebased `c4b6a640` head. Shell escaping is preserved by `"$@"`. - `python -I -B tests/test_mise_build.py`: 3 tests passed, including actual argv recording through a fake builder with a spaced path and a trailing-Windows-backslash output path, the new tasks' declarations, and the standalone/packs help entry points without starting a build. - `mise run setup`: installed the git hooks with all Python requirements already satisfied, exit 0. - On `7ffd87ba`, before the final task-only rebase: a fresh local dump preparation (`nx2/dump.py --set` then `nx2/lift.py --standalone --write`) followed by `mise run build-dev`: 489 files compiled in 744 seconds with zero failures; `work/sa/build/longshot` (440 MB) and `longshot_vk.so` (14 MB) linked successfully. `mise run build-fast -- --dry-run`: exit 0, reporting a dry host-build plan without compiling. These are invocation checks, not performance measurements. - `mise run test -- mise_build`: 1 passed through the strict task runner. `mise tasks` listings were checked for `build`, `build-dev`, `build-fast`, `packs`, `run-win` and `setup`. - `mise run lint`: pre-commit and actionlint passed. `mise tasks` lists `build` and keeps the internal dependency hidden. - `mise run test` at the `b7a014b8` checkpoint: 518 passed, 61 failed, 16 skipped. Base at that checkpoint: 517 passed, 61 failed, 16 skipped; the additional passing test is `tests/test_mise_build.py`. The strict failures are outside this change's four files, including `test_lift_cleanup_error.py`, `test_make_game_cache.py`, `test_crash_dialog.py`, `test_cpm_discovery.py`, `test_env_on.py`, `test_pipeline_tour.py`, `test_vk_pgo.py` and 48 strict header/tool checks also present on base. - `mise run deps`: passed after retry once the sequential package-index job finished; the earlier parallel pip setup attempt failed and was not used as a test result. **Not tested:** Windows task execution, the `run-win` launcher, a real Windows build, or an in-game GPU run. No game code changed. `build-dev` and `build-fast` require the existing standalone lift documented in CONTRIBUTING.md; they do not synthesize it. **Must be tested:** - Windows 11, a Vulkan 1.3 GPU and Git Bash, by hand with your own standalone build: run `mise tasks` and `python -I -B tests/test_mise_build.py`, expecting all commands in the list and 3 tests passed; run `mise run run-win -Seconds 2 -Name mise-smoke`, expecting a short windowed run and an automatic clean quit, with logs and shots kept under `work/runs/mise-smoke/`. ## Risks Low: a thin change to an existing task runner plus docs. `build-deps` contacts Python package indexes and installs the pinned requirements before building; subsequent runs use already installed packages. No game data is sent and no compiler, linker, optimization or output-folder behavior changes. ### Compatibility - Saves: unchanged. - Options file: unchanged. - Caches, object stores and builder tools beyond mise's documented Python environment: unchanged. - `MkwVkHost`/`MkwVkRenderer` ABI: unchanged, `MKWVK_API_VERSION` not bumped. - Builder invocation: the same arguments reach `nx2/make_game.py`; direct use remains possible outside mise. - CI/task definitions: existing `lint`, `test`, `deps` and `validate` tasks and all CircleCI jobs are unchanged; no workflow files are added. `setup` also installs the build requirements, while the new build/pack/run commands are explicit invocations, never automatic changes. ## Checklist ### Everyone - [x] One topic. - [x] The title is a Conventional Commit (`type(scope): description`) of the status line's type. - [x] Why gives the reason plainly and links the issues that fit (the tracker searched). No open issue fits this follow-up to #417. - [x] Measurements has a verdict, or one line saying why there is nothing to measure. - [x] Testing names what was tested, what wasn't, and what must still be tested, where and how. - [x] Rebased on current `main`. The final head `50bf5e74` is based on `999102a6`, `origin/main` at the last fetch; lint and the focused task suite were rerun at this head. Full builds ran on the same wrappers before that final task-only rebase. - [x] `python -I -B tests/run_all.py` passes (any failure that also fails on `main` is named). `mise run test` has the same strict total as base plus this new passing test; representative and strict-tool failures are named above. - [x] No game files, dumps, build output or generated files. Explicitly verified: no .nup is tracked or in the commit. - [x] `third_party/` untouched (a new folder with a `PROVENANCE.md` instead). No third-party files change on this PR. - [x] The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled. ### When it applies - [x] A check under `tests/` that reads changed source updated in this PR, not weakened. The new test asserts the task declaration and the real argv mise supplies. - [x] Docs updated.
build: add a mise game build task
Some checks failed
Website / Website on Cloudflare (pull_request_target) Has been skipped
PR description / Description follows the template (pull_request_target) Has been cancelled
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Guide screenshots / Guide images and local UI source review (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
5ebabeb520
Assisted-by: DeepSeek Harness
Marcuss2 force-pushed builder/mise-build-task from 5ebabeb520
Some checks failed
Website / Website on Cloudflare (pull_request_target) Has been skipped
PR description / Description follows the template (pull_request_target) Has been cancelled
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Guide screenshots / Guide images and local UI source review (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
to c4b6a640e4
Some checks failed
PR description / Description follows the template (pull_request_target) Successful in 5s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Guide screenshots / Guide images and local UI source review (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
2026-11-15 18:06:54 +00:00
Compare
Author
Contributor

Rebased onto current main @ 1310ecc6 as c4b6a640 and force-pushed with lease. mise lint and the focused mise_build check pass again; the exact escaped-path full Linux build also passed on this head. The description keeps the earlier strict base comparison as a separate checkpoint.

Rebased onto current main @ 1310ecc6 as c4b6a640 and force-pushed with lease. mise lint and the focused mise_build check pass again; the exact escaped-path full Linux build also passed on this head. The description keeps the earlier strict base comparison as a separate checkpoint.
build: add mise development tasks
Some checks failed
PR description / Description follows the template (pull_request_target) Has been cancelled
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Guide screenshots / Guide images and local UI source review (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
7ffd87ba7b
Assisted-by: DeepSeek Harness
Author
Contributor

Added the requested setup and development commands in 7ffd87ba: setup now installs build requirements; build-dev compiles the current standalone tree; build-fast wraps the documented development-only -O1 route; packs forwards to dev_packs.py; and Windows-only run-win uses the existing guarded PowerShell launcher. Tests now cover these declarations and help entry points. Real verification: setup passed, all 3 task tests passed, lint passed, a fresh standalone lift and build-dev compiled and linked successfully, and build-fast dry-run passed.

Added the requested setup and development commands in 7ffd87ba: setup now installs build requirements; build-dev compiles the current standalone tree; build-fast wraps the documented development-only -O1 route; packs forwards to dev_packs.py; and Windows-only run-win uses the existing guarded PowerShell launcher. Tests now cover these declarations and help entry points. Real verification: setup passed, all 3 task tests passed, lint passed, a fresh standalone lift and build-dev compiled and linked successfully, and build-fast dry-run passed.
Marcuss2 force-pushed builder/mise-build-task from 7ffd87ba7b
Some checks failed
PR description / Description follows the template (pull_request_target) Has been cancelled
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Guide screenshots / Guide images and local UI source review (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
to 50bf5e740d
Some checks failed
PR description / Description follows the template (pull_request_target) Successful in 5s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Guide screenshots / Guide images and local UI source review (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
Website / Website on Cloudflare (pull_request) Has been cancelled
2026-11-15 18:30:24 +00:00
Compare
Author
Contributor

Rebased both task commits onto latest main @ 999102a6; new head 50bf5e74. Focused mise tests and lint pass again at this head. The detailed description distinguishes the earlier full build verification (same wrapper code) from the final rebase checks.

Rebased both task commits onto latest main @ 999102a6; new head 50bf5e74. Focused mise tests and lint pass again at this head. The detailed description distinguishes the earlier full build verification (same wrapper code) from the final rebase checks.
HumanBean force-pushed builder/mise-build-task from 50bf5e740d
Some checks failed
PR description / Description follows the template (pull_request_target) Successful in 5s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Guide screenshots / Guide images and local UI source review (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
Website / Website on Cloudflare (pull_request) Has been cancelled
to 38ad084a57
Some checks failed
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
Website / Website on Cloudflare (pull_request) Has been skipped
PR description / Description follows the template (pull_request_target) Successful in 3s
CI / Conventional Commit title (pull_request) Successful in 3s
CI / Workflow lint (actionlint) (pull_request) Successful in 6s
Guide screenshots / Guide images and local UI source review (pull_request) Failing after 5s
Third-party parts / As their notes say (pull_request) Successful in 7s
2026-11-15 18:43:12 +00:00
Compare
Owner

Rebased onto main @ bbe6fdf: no conflicts. No tests were run here; the test boxes stay yours.

Rebased onto `main` @ bbe6fdf: no conflicts. No tests were run here; the test boxes stay yours.
Author
Contributor

Could someone test it on Windows? Then I can remove the WIP tag.

Could someone test it on Windows? Then I can remove the `WIP` tag.
First-time contributor

Windows test of PR #860 at 38ad084a572ab15f11f580273e787953e2bef843 (base bbe6fdf): mixed; the wrappers work with environment workarounds, but the requested run does not close cleanly.

Windows 11 Home, i5-13420H, 32 GB RAM, RTX 4050 Laptop 6 GB (driver 621.14). Tools: mise 2026.11.8 windows-x64, its pinned Python 3.12.15, Git Bash. Used a separate tooling environment and test user directory.

Task checks

  • mise tasks lists the new commands.
  • The fake-builder argv test passes, including spaces, brackets and the trailing Windows backslash.
  • With the unmodified configuration, test_standalone_and_packs_help fails for build-dev, build-fast and packs before their commands run: aqua:pre-commit/[email protected] reports unsupported env: windows/amd64 (supported: ["darwin", "linux"]). That tool declaration already exists in the base; this is not a new declaration in #860.
  • With process-scoped MISE_DISABLE_TOOLS=aqua:pre-commit/pre-commit, all 3 focused tests pass. The pinned build requirements install into mise's isolated Python, and the development/packs help entry points work.

run-win check

  • With that provider excluded, the normal invocation is still blocked on this PC because Windows PowerShell's execution policy is Restricted: scripts/run-vk.ps1 cannot be loaded because running scripts is disabled.
  • For a diagnostic retry only, I set PSExecutionPolicyPreference=RemoteSigned in the child process environment. The machine policy stayed Restricted afterward.
  • mise run run-win -Seconds 2 -Name mise-smoke-860 -Romfs <existing-romfs> -Priority BelowNormal then returned exit 0: peak working set 1059 MB, stopped after 2 s. It launched an isolated copy of the existing Nightly 189 executable, not a newly rebuilt game at this PR head. The log reached NVIDIA Vulkan device enumeration; no screenshots were produced in that short run.
  • The game's crash watcher subsequently displayed “Longshot closed unexpectedly during the start”, explaining that it was closed from outside. The player confirmed the dialog with a screenshot. This matches the existing launcher script's Stop-Process -Force timeout path: task exit 0 is not a graceful-shutdown pass. This observation is not evidence of an out-of-memory crash.

Suggested follow-ups: document/provide Windows-compatible tooling prerequisites and the script-execution prerequisite, and handle expected timeout termination so it does not produce a misleading crash dialog (prefer a graceful stop where possible).

All 14 normal save files were hash-verified unchanged. Not tested: a full Windows rebuild at this PR head, the full game-free suite, gameplay/FPS, or a successful graceful shutdown. No game files, saves or raw traces are attached.

Windows test of PR #860 at `38ad084a572ab15f11f580273e787953e2bef843` (base `bbe6fdf`): **mixed; the wrappers work with environment workarounds, but the requested run does not close cleanly.** Windows 11 Home, i5-13420H, 32 GB RAM, RTX 4050 Laptop 6 GB (driver 621.14). Tools: mise 2026.11.8 windows-x64, its pinned Python 3.12.15, Git Bash. Used a separate tooling environment and test user directory. **Task checks** - `mise tasks` lists the new commands. - The fake-builder argv test passes, including spaces, brackets and the trailing Windows backslash. - With the unmodified configuration, `test_standalone_and_packs_help` fails for build-dev, build-fast and packs before their commands run: `aqua:pre-commit/[email protected]` reports `unsupported env: windows/amd64 (supported: ["darwin", "linux"])`. That tool declaration already exists in the base; this is not a new declaration in #860. - With process-scoped `MISE_DISABLE_TOOLS=aqua:pre-commit/pre-commit`, all **3 focused tests pass**. The pinned build requirements install into mise's isolated Python, and the development/packs help entry points work. **`run-win` check** - With that provider excluded, the normal invocation is still blocked on this PC because Windows PowerShell's execution policy is `Restricted`: `scripts/run-vk.ps1 cannot be loaded because running scripts is disabled`. - For a diagnostic retry only, I set `PSExecutionPolicyPreference=RemoteSigned` in the child process environment. The machine policy stayed `Restricted` afterward. - `mise run run-win -Seconds 2 -Name mise-smoke-860 -Romfs <existing-romfs> -Priority BelowNormal` then returned exit 0: peak working set 1059 MB, `stopped after 2 s`. It launched an isolated copy of the **existing Nightly 189 executable**, not a newly rebuilt game at this PR head. The log reached NVIDIA Vulkan device enumeration; no screenshots were produced in that short run. - The game's crash watcher subsequently displayed **“Longshot closed unexpectedly during the start”**, explaining that it was closed from outside. The player confirmed the dialog with a screenshot. This matches the existing launcher script's `Stop-Process -Force` timeout path: task exit 0 is not a graceful-shutdown pass. This observation is not evidence of an out-of-memory crash. Suggested follow-ups: document/provide Windows-compatible tooling prerequisites and the script-execution prerequisite, and handle expected timeout termination so it does not produce a misleading crash dialog (prefer a graceful stop where possible). All 14 normal save files were hash-verified unchanged. **Not tested:** a full Windows rebuild at this PR head, the full game-free suite, gameplay/FPS, or a successful graceful shutdown. No game files, saves or raw traces are attached.
Some checks failed
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
Website / Website on Cloudflare (pull_request) Has been skipped
PR description / Description follows the template (pull_request_target) Successful in 3s
CI / Conventional Commit title (pull_request) Successful in 3s
CI / Workflow lint (actionlint) (pull_request) Successful in 6s
Guide screenshots / Guide images and local UI source review (pull_request) Failing after 5s
Third-party parts / As their notes say (pull_request) Successful in 7s
This pull request is marked as a work in progress.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u 'builder/mise-build-task:Marcuss2-builder/mise-build-task'
git switch 'Marcuss2-builder/mise-build-task'
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
3 participants
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
MagicBeanDev/Longshot!860
No description provided.