Skip to content

[2/3] Torch installation flow, package validation, and progress - #6

Merged
MrScripty merged 24 commits into
mainfrom
prep/torch-install-flow
Sep 29, 2026
Merged

MrScripty merged 24 commits into
mainfrom
prep/torch-install-flow

Conversation

@MrScripty

@MrScripty MrScripty commented Sep 29, 2026 •

Copy link
Copy Markdown
Owner

Outcome and scope

Install-time package resolution, RECORD validation, workspace/cache behavior, network activity, installation progress and copyable/download-speed feedback. This changes Rust producers, Torch resolver and tests, RPC contracts, generated Electron/frontend consumers and UI behavior; it is not UI-only. B1 owns the underlying persisted runtime identity and lifecycle; this range adds workspace/cache and activity behavior on top. Excludes B1 foundation and B3 image-adapter changes. It depends on #5 and must not be merged into the B1 branch.

Comparison: prep/torch-managed-foundation (current d778eeb0a41284fc1523e841b9a0d0fec02ba91b) → prep/torch-install-flow (current 818a49c18b2d8100f83e08ef2d911db9109301a2), 19 exclusive commits. The original C1 → C2 boundary was 7d82ec500edfcbb19bd49189ef56b3c20daeab41 → b68f3fce1aa0be29e8a141e349ec6e4ae28356fd, 9 exclusive commits. Later commits repair CI and the install flow, and merge the B1 workflow repair forward. This is B2, base of #4.

Verification and open gates

The original main-based B2 run 36289062901 failed Rust quality, headless RPC and Torch QA. f650fff7 repairs seven Clippy findings, the no-inference RPC schema compile error and Ruff formatting; local workspace Clippy, 231 app-manager tests, focused headless RPC test, Ruff and resolver tests passed. Later manual Build exposed two Linux-only assertions in macOS resolver tests (c302dda8) and an acceptance script that expected discovery to finish install resolution (524ed1c2). The latter now checks the persisted install resolution and managed interpreter identity. Attribution input hashes were regenerated in c083568d.

Manual B2 run 36582862305 then exposed a macOS native RPC install failure. 84cf89d6 retained a bounded launcher-owned install log; diagnostic run 36583870689 identified that pip served the plain-version macOS CPU Torch wheel from files.pythonhosted.org, which the resolver had rejected. 0f4c1c55 permits that PyPI path only for matching macOS CPU Torch/torchvision wheel identity, version and interpreter tags; SHA-256 provenance and staged RECORD validation remain required. The new focused regression, all 59 resolver tests, Ruff and attribution checks pass locally. manual B2 run 36586069996 then showed Rust rejecting the same PyPI URL after Python accepted it; 30ebc036 aligns the Rust report check with the narrow macOS wheel rule. All 232 app-manager tests, workspace Clippy and Rust formatting pass locally. Manual run 36587509603 passed native RPC on Linux and Windows and completed macOS install/restart; its macOS evidence collection hit GitHub anonymous release API rate limiting. cc1487a9 gives that bounded, same-origin evidence request the workflow read-only token, excludes it from the backend environment, and updates the attribution input hash. All 58 acceptance fixtures, Ruff and attribution checks pass locally. The full Build on cc1487a9 then found an intermittent frontend test that clicked before options loaded; 818a49c1 waits for those options. Its focused 9 tests, TypeScript check and frontend lint pass locally. Earlier successful checks apply only to their exact tested heads.

d778eeb0 adds both temporary bases to the Build pull_request trigger; its normal merge into B2 restores automatic PR checks. Current PR run 36589675747 passed on the exact current head. Full manual Build run 36588924111 tested predecessor cc1487a9: Linux, Windows and macOS native RPC jobs passed, and each retained acceptance.json reports successful install/restart and safe cleanup. Its frontend job failed on the test race fixed by 818a49c1; remaining obsolete jobs were cancelled after native evidence was retained. These are source-specific results, not a full passing run on the current head. Native RPC E2E remains manual/tag-gated; a PR Build pass alone does not qualify install/restart across platforms. The original speed-transfer record at C2 and foundation native run on 21041697 are historical evidence for their own sources. Missing or failed checks are not passing checks.

Remain draft/blocked until B1 lands, B2 targets main, and fresh applicable checks plus independent review accept the resulting tree. This setup and CI repair do not certify the intermediate tree.

Stack and later integration

Temporary draft review bases isolate the original 25 / 9 / 6 commit ranges; later repair commits and normal merge commits increase current exclusive counts. This amends the earlier roadmap's main-based PR presentation; final integration remains sequential into main. Stack: B1 #5 → B2 #6 → B3 #4. The temporary bases are review comparisons, not long-lived integration branches.

  1. Qualify and independently review B1. Once separately authorized, merge B1 into main with a normal ancestry-preserving merge commit.
  2. Retarget B2 to main after B1 lands. Incorporate necessary upstream repairs through a separately authorized normal merge, inspect conflicts, and obtain checks for the resulting candidate. Merge B2 only after its own acceptance and authorization.
  3. Retarget [3/3] Torch image adapter integration and dimension fixes #4 to main after B2 lands. Incorporate needed upstream repairs, inspect the remaining diff, and obtain fresh applicable checks and independent review before its separately authorized merge.

Do not merge B2 into B1 or B3 into B2. Keep prefix branches while dependents use them as bases. Changing a PR base does not guarantee needed workflows will start; verify actual runs and arrange a supported check mechanism during later qualification. Branch retirement and worktree cleanup need separate authorization. If an intermediate unit needs an essential downstream repair, record the dependency and repair the earliest responsible unit, merging the repair forward, or reconsider adjacent boundaries; do not reconstruct published commits or waive correctness for the 25 / 9 / 6 presentation. This branch/PR setup does not certify any intermediate tree.

@coderabbitai

coderabbitai Bot commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: bf5d5ac9-e1ae-4dba-8808-6986822d7de4


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@MrScripty

Copy link
Copy Markdown
Owner Author

Coordination: B2 is the installation-flow review unit (9 original commits, #5/C1 → b68f3fc); B3 is retained #4. This is not UI-only and depends on #5. The temporary draft bases isolate displayed diffs; final merges are sequential into main after independent qualification, fresh checks, and separate authorization. Build PR CI filters to base main, so missing checks here are not acceptance.

@MrScripty
MrScripty marked this pull request as ready for review September 29, 2026 17:24
@greptile-apps

greptile-apps Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 4/5

[Medium risk] Torch installation UI, progress tracking, and package validation.

The PR is not ready to merge until desktop users can select the supported Torch configurations that this flow currently makes unreachable.

Findings

  1. P1 Supported Torch choices disappear ▶

Summary

The PR moves Torch package resolution into a visible, cancellable install, adds staged wheel and RECORD validation, and surfaces download activity through RPC and desktop progress views.

  • The desktop install request now omits supported build, image-dependency, and bundled-preset choices.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart LR
  UI["Torch install dialog"] --> Token["Ready selection token"]
  Token --> Stage["Managed Python and staged pip install"]
  Stage --> Verify["Validate report, RECORD, and files"]
  Verify --> Publish["Publish runtime"]
  Stage --> Progress["RPC download progress"]
  Progress --> UI
Loading

Reviews (1) · Last reviewed commit: "test: wait for install options in B2 fal..."

Comment on lines +63 to +68
const outcome: TorchRuntimePreviewOutcome = await api.preview_torch_runtime({
tag,
build,
python: 'auto',
adapter: 'none',
});

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Supported Torch choices disappear When a user installs Torch through the desktop dialog, this request always selects the default or automatic build, automatic Python, and core-only dependencies. The dialog no longer lets Windows users request an explicit CUDA build or Linux users choose FLUX.2 dependencies or the qualified v2.9.1 bundled preset, although the backend still supports those choices. Restore a way to select supported configurations before requesting the install token.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 64d0095. The automatic/core default remains, with optional platform-supported build/profile controls and a separate fixed v2.9.1 preset submitting cu130 / python3.12 / bundled. Release/package resolution still occurs inside installation. Tests cover CUDA + FLUX.2 selection, exact preset identity, unavailable-platform choices and mismatched tokens: all 13 focused tests passed. #4 retains its prominent image-adapter radio choice together with these build/preset controls; its full frontend suite passes 750 tests. Repairs were merged forward normally, preserving published commits.

Keep the quick install UI, which already provides runtime-choice retries and removes alternative probing. Regenerate attribution from the merged source; retain foundation lifecycle, proxy, state-refresh, and evidence repairs.
@MrScripty

Copy link
Copy Markdown
Owner Author

Review repairs are in head 3cc249f: foundation fixes merged normally, optional supported build/profile choices and the fixed v2.9.1 preset restored in 64d0095, and Windows test normalization carried forward. This preserves install-time resolution and automatic/core defaults. Local evidence: 235 manager tests, 60 acceptance fixtures, 13 focused frontend tests, types/lint and attribution verification passed. Fresh CI: https://github.com/MrScripty/Pumas-Library/actions/runs/36610956667 . PR Build runs for this temporary base; full native RPC E2E remains dispatch/tag-only. The upstream license-evidence blocker from #5 remains open. Sequential integration remains #5 into main, then separately retarget/qualify #6 into main, then #4; temporary bases isolate review diffs. No merge into a prefix PR is an integration acceptance. All published commits remain preserved.

@MrScripty

Copy link
Copy Markdown
Owner Author

Carried the two missed outside-diff findings from #5 review 5356723031 forward through normal merge f7a7150. The fixes provide an actual Windows activation executable fixture and an inconclusive response for an empty managed Python catalog. All 208 foundation and 235 install-flow manager tests pass; the affected manager source in #4 matches the tested install-flow tree. Native Windows CI now explicitly exercises restart/default activation. No PR integration merge or history rewrite occurred.

@MrScripty
MrScripty changed the base branch from prep/torch-managed-foundation to main September 29, 2026 19:46
@MrScripty

Copy link
Copy Markdown
Owner Author

Sequential integration: #5 was merged into main with normal merge commit 4a4f127. This PR now targets main. Candidate a1c0f0e incorporates that ancestry through a normal merge; its source tree is unchanged from f7a7150. Fresh PR Build run: https://github.com/MrScripty/Pumas-Library/actions/runs/36621598960. Integration is authorized by the repository owner; the previously recorded release/licensing and runtime qualification gates remain open.

@MrScripty
MrScripty merged commit b639f8b into main Sep 29, 2026
17 checks passed
@MrScripty
MrScripty deleted the prep/torch-install-flow branch September 29, 2026 20:12
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