feat: add deterministic cross-platform GUI installer support#49
feat: add deterministic cross-platform GUI installer support#49ian-pascoe merged 15 commits intomainfrom
Conversation
|
@codex review for bugs and security issues |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8ec432b42b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| let mut extract_member = build_deb_member_extract_command(artifact_path, &data_member); | ||
| extract_member.current_dir(&extract_dir); |
There was a problem hiding this comment.
Resolve DEB artifact path before changing extraction directory
stage_deb_payload constructs ar x <artifact_path> <member> and then switches the command working directory to extract_dir; when artifact_path is relative, ar resolves it from extract_dir and cannot find the archive, so .deb installs fail before payload unpacking. This is reachable whenever callers pass relative paths (for example, relative prefix/cache roots), so the DEB path should be absolutized (or the command should run from the original cwd) before current_dir is set.
Useful? React with 👍 / 👎.
Introduce manifest GUI app metadata and wire installer/CLI preflight, exposure, and stale cleanup so GUI assets are handled deterministically with collision safety across install, upgrade, and uninstall.
Split GUI launcher rendering into per-target cfg functions so Windows and Linux builds no longer report unreachable code under -D warnings while preserving platform-specific launcher output.
0a2dc2f to
f87c041
Compare
Summary
msi,dmg,appimage,exe,pkg,deb,rpm,msix,appx) with deterministic extraction, explicit host guards, and actionable fail-closed errors.Test Plan
cargo fmt --all --checkcargo clippy --workspace --all-targets --all-features -- -D warningscargo test --workspacescripts/validate-snapshot-flow.sh