Skip to content

feat: add deterministic cross-platform GUI installer support#49

Merged
ian-pascoe merged 15 commits intomainfrom
feat/gui-app-integration
Feb 25, 2026
Merged

feat: add deterministic cross-platform GUI installer support#49
ian-pascoe merged 15 commits intomainfrom
feat/gui-app-integration

Conversation

@ian-pascoe
Copy link
Contributor

Summary

  • Add first-class installer artifact support across platforms (msi, dmg, appimage, exe, pkg, deb, rpm, msix, appx) with deterministic extraction, explicit host guards, and actionable fail-closed errors.
  • Implement GUI app exposure and native registration lifecycle wiring (launcher/assets projection, best-effort native registration warnings, state tracking, uninstall/replacement cleanup, and collision hardening).
  • Expand test coverage across core/installer/CLI for archive parsing/inference, host-guard contracts, extraction command paths, and update architecture/install/manifest docs for the new policy surface.

Test Plan

  • cargo fmt --all --check
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo test --workspace
  • scripts/validate-snapshot-flow.sh

@ian-pascoe
Copy link
Contributor Author

@codex review for bugs and security issues

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 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".

Comment on lines 2619 to 2620
let mut extract_member = build_deb_member_extract_command(artifact_path, &data_member);
extract_member.current_dir(&extract_dir);

Choose a reason for hiding this comment

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

P2 Badge 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 👍 / 👎.

@ian-pascoe ian-pascoe force-pushed the feat/gui-app-integration branch from 0a2dc2f to f87c041 Compare February 25, 2026 12:21
@ian-pascoe ian-pascoe merged commit 61e01c6 into main Feb 25, 2026
4 checks passed
@ian-pascoe ian-pascoe deleted the feat/gui-app-integration branch February 25, 2026 13:10
@crosspack-bot crosspack-bot bot mentioned this pull request Feb 25, 2026
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