fix(linux): isolate host processes from AppImage libraries - #273
Conversation
|
Thanks for picking this back up, @xDenside — and for porting the diagnosis forward rather than reviving #229 as-is. Deliberately dropping the draft's post-install re-detection change, with the reason stated (the memoised login-shell PATH can legitimately stay stale until restart), is the part I'd have worried about most; good that it's called out rather than quietly carried along. The three-flavour helper set is the right shape. Verified on your branch merged onto current
One thing I checked rather than took on trust, because it's the load-bearing claim of the whole PR and your test can't actually prove it. Three things, one of which needs a diff. 1. New compiler warning
#[cfg(any(target_os = "linux", test))]
use crate::core::process_env::strip_appimage_std_command;
#[cfg(test)]
use crate::core::process_env::APPIMAGE_RUNTIME_ENV_VARS;Your verification list says clippy passes with "existing unrelated warnings" — this one is new, so it looks like it got counted as pre-existing. 2. The ADR states a policy; the code enforces it at roughly half the boundariesThis is the one worth a conversation, and I'm not asking you to widen the PR unilaterally. You cover Launch-page installers and terminals, MCP stdio, and the agent shell and PTY. But these all resolve a host executable from Two of those are the same failure you're fixing, not analogues of it. The reason I'd rather not merge this as-is isn't the individual gaps — the PR is strictly better than 3. Question: does your AppRun also prefix
|
|
Synced this branch with Re-verified on the merged tree (macOS host):
The Two small follow-ups, neither blocking this PR:
Otherwise ready to merge. |
Describe Your Changes
curland other host tools from loading the Ubuntu 22.04libssl.so.3bundled inside the AppImage.APPIMAGEorAPPDIR, so source and development runs preserve intentional environment overrides.curl | shellagent installer through Bash withpipefail, including the current Atomic Agent installer, so a failed download cannot be reported as a successful install.This replaces the older closed draft #229. It ports the original diagnosis to current
main, covers Atomic Agent (added after that draft), covers Agent shell / PTY processes, and avoids the draft's post-install re-detection change because the memoized login-shell PATH can legitimately remain stale until restart.Fixes Issues
Verification
cargo check --manifest-path src-tauri/Cargo.toml --libcargo test --manifest-path src-tauri/Cargo.toml --lib core::process_env::tests— 3 passedcargo test --manifest-path src-tauri/Cargo.toml --lib core::system::commands::tests— 7 passedcargo clippy --manifest-path src-tauri/Cargo.toml --lib— passes; existing unrelated warnings remainrustfmt --checkfor every changed Rust filegit diff --checkSelf Checklist