Skip to content

fix(tauri): disable Linux CEF GPU startup path#1807

Merged
senamakel merged 2 commits into
tinyhumansai:mainfrom
therahul-yo:fix-1697-linux-cef-gpu-fallback
May 15, 2026
Merged

fix(tauri): disable Linux CEF GPU startup path#1807
senamakel merged 2 commits into
tinyhumansai:mainfrom
therahul-yo:fix-1697-linux-cef-gpu-fallback

Conversation

@therahul-yo
Copy link
Copy Markdown
Contributor

@therahul-yo therahul-yo commented May 15, 2026

Summary

  • Fixes AppImage does not launch on Manjaro #1697
  • Adds Linux CEF startup flags to disable the hardware GPU path when launching the packaged app
  • Extracts platform-specific CEF GPU workarounds into a testable helper while preserving the existing Intel macOS fallback
  • Adds unit coverage for Linux, Intel macOS, and unaffected platform argument selection

Validation

  • PASS: cargo fmt --manifest-path app/src-tauri/Cargo.toml --check
  • BLOCKED: cargo test --manifest-path app/src-tauri/Cargo.toml platform_cef_gpu_workarounds
    • Cargo dependency fetch timed out downloading tokio-tungstenite from crates.io: [28] Timeout was reached (Operation too slow. Less than 10 bytes/sec transferred the last 30 seconds)

Notes

The reported AppImage failures on Manjaro/Arch show CEF/Chromium failing to create EGL GPU contexts before launch completes. For packaged Linux builds, preferring software compositing is a smaller recovery path than touching the bundler or distro-specific runtime dependencies.

Summary by CodeRabbit

  • Refactor

    • Centralized GPU startup handling to unify platform-specific workarounds, improving startup reliability on Linux and Intel macOS.
  • Tests

    • Updated unit tests to validate the consolidated GPU handling across platforms.

Review Change Stack

@therahul-yo therahul-yo requested a review from a team May 15, 2026 10:25
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 15, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 68b5856e-906f-49cb-bf02-493592f5440b

📥 Commits

Reviewing files that changed from the base of the PR and between e8a115e and c6aa5c0.

📒 Files selected for processing (1)
  • app/src-tauri/src/lib.rs
🚧 Files skipped from review as they are similar to previous changes (1)
  • app/src-tauri/src/lib.rs

📝 Walkthrough

Walkthrough

Refactors CEF GPU startup command-line workarounds into a reusable helper. Adds CefCommandLineArg and append_platform_cef_gpu_workarounds which append platform/arch-specific Chromium flags (Linux: --disable-gpu, --disable-gpu-compositing; macOS x86_64: --disable-gpu-compositing), updates the CEF args vector usage, and adds tests for these cases.

Changes

CEF GPU Workaround Helper Refactoring

Layer / File(s) Summary
CEF GPU workaround helper and type alias
app/src-tauri/src/lib.rs
CefCommandLineArg type alias and append_platform_cef_gpu_workarounds helper that conditionally appends GPU-disable flags for Linux (both flags) and Intel macOS x86_64 (compositing only), with info logs when flags are added.
Vector type update and helper invocation
app/src-tauri/src/lib.rs
CEF command-line args vector element type updated to CefCommandLineArg; prior inline platform/arch GPU flag blocks replaced by a call to append_platform_cef_gpu_workarounds.
Unit tests for helper behavior
app/src-tauri/src/lib.rs
Tests call append_platform_cef_gpu_workarounds directly to assert Linux disables GPU & GPU compositing, Intel macOS x86_64 disables GPU compositing only, and other OS/arch combinations add no GPU flags.

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs:

  • tinyhumansai/openhuman#1809: Also modifies Tauri CEF command-line argument construction to add Linux GPU-disabling flags and touches app/src-tauri/src/lib.rs.

"🐰 I hopped through code with careful paws,
Extracted flags and tidied up the cause.
Linux mutes GPU, macOS tames compositing,
Tests check each path—no logic omitting.
A little rabbit cheers the cleaner laws!"

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: disabling Linux CEF GPU startup, which directly addresses the Manjaro AppImage launch failure.
Linked Issues check ✅ Passed The PR successfully implements the objective from #1697 by adding Linux CEF GPU disable flags, extracting platform-specific workarounds into a testable helper, and adding unit test coverage.
Out of Scope Changes check ✅ Passed All changes are directly related to the linked issue #1697: refactoring CEF GPU workarounds, adding Linux GPU flags, and updating tests for platform-specific argument selection.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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 and usage tips.

coderabbitai[bot]
coderabbitai Bot previously approved these changes May 15, 2026
Resolve conflict in app/src-tauri/src/lib.rs by keeping the
append_platform_cef_gpu_workarounds() helper (this PR) and dropping the
inline #[cfg]-gated blocks that landed via tinyhumansai#1809. The helper already
covers issue tinyhumansai#1697 (Linux --disable-gpu + --disable-gpu-compositing) and
issue tinyhumansai#1012 (Intel macOS --disable-gpu-compositing), and is exercised by
the new unit tests.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@therahul-yo
Copy link
Copy Markdown
Contributor Author

Heads-up for reviewers: the two failing checks (Rust Core Tests + Quality, Rust Core Coverage) are pre-existing failures on main — not caused by this PR.

Specifically:

  • composio::auth_retry::tests::retries_once_only_even_when_second_call_still_errors — asserts 4 gateway hits, got 2. The test's own comment says it's pinning a compound-retry shape and will surface "if a future collapse of the two layers" happens; fix(jira): collect Atlassian subdomain and handle ConnectedAccount_MissingRequiredFields #1726 looks like it collapsed one of the layers.
  • accessibility::automation_state::tests::concurrent_mark_and_readassertion failed: system_events_denied() in a concurrency test.

Happy to rebase once main is green. Let me know if you'd like me to open a separate fix for the composio assertion.

@senamakel senamakel merged commit c76b2d9 into tinyhumansai:main May 15, 2026
21 of 23 checks passed
AusAgentSmith pushed a commit to AusAgentSmith/openhuman that referenced this pull request May 23, 2026
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
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.

AppImage does not launch on Manjaro

2 participants