Repository navigation
Desktop: keep background startup lightweight and prove Linux packaged-shell E2E #5493
Copy link
Copy link
Closed
Labels
priority: P2Medium: provider/client-specific bug with a workaround, bounded enhancement tied to a tracked issue,Medium: provider/client-specific bug with a workaround, bounded enhancement tied to a tracked issue,
Description
Area
Desktop app performance and Linux release confidence.
Why
The Tauri shell now has the correct startup, ownership, drain, updater, and platform-dialog boundaries, but two release questions remain:
- A login/autostart launch still navigates the hidden main webview to the full dashboard after the runtime becomes ready. That pays the React dashboard's startup and background-work cost before the user asks to open it.
- Linux CI compiles and unit-tests the Rust shell, while the installed-artifact workflow is dispatch-only, lives on
devrather than the default branch, has no registeredopencodex-gate-linuxrunner, and requires already-published artifacts. There is no ordinary hosted proof that the packaged AppImage/deb can show a window, launch the bundled sidecar, become healthy, and drain on close in a session with no tray host.
Proposed work
- Keep Tauri and the single bundled
ocxsidecar; do not add Electron, another daemon, SSH, VM, or multi-window infrastructure. - On a hidden autostart launch, retain the lightweight startup surface after Ready and defer loading the full dashboard until the first explicit Open action. Manual launches keep the current immediate dashboard behavior. Startup failures remain visible and retryable.
- Ensure hidden dashboard/popup surfaces do not retain unnecessary polling; refresh once when shown.
- Add bounded Linux packaged-shell E2E on GitHub-hosted Ubuntu under Xvfb/dbus. Exercise AppImage and deb payloads without modifying the runner's real home or package database: isolated HOME/CODEX_HOME/OPENCODEX_HOME, packaged binary/resources, real bundled sidecar, health identity, visible window, no-tray close, and confirmed app/runtime exit.
- Keep the existing self-hosted installed-artifact gate as the later proof for real dpkg/AppImage installation, elevation, takeover, and in-place updates. The hosted E2E must not claim those operations.
- Record cold/attach readiness time, process-tree RSS, and background request counts as evidence first; set regression budgets only from a reviewed baseline rather than invented thresholds.
Acceptance
- Linux hosted E2E is bounded, isolated, cleanup-safe, and runs only trusted repository code with read-only workflow permissions.
- Both package formats exercise the same behavioral assertions and upload a small diagnostic report on failure.
- No access to
/home/ubunturuntime state and no barebun test,ocx sync, or daemon restart. - Desktop structure documentation distinguishes hosted packaged-shell E2E from the privileged installed-artifact gate.
- Exact-head CI is green before merge.
@lidge-jun I am taking the Linux packaged-app E2E and the small background-startup efficiency follow-up as separate reviewable PRs. I will keep the release/credential boundary unchanged.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
priority: P2Medium: provider/client-specific bug with a workaround, bounded enhancement tied to a tracked issue,Medium: provider/client-specific bug with a workaround, bounded enhancement tied to a tracked issue,
Activity
Ingwannu commentedon Sep 22, 2026
Progress update:
2.61.0(approximately3170 msAppImage and2778 msdeb readiness), visible-window proof, health identity checks, and clean app/runtime drain.28,462passed /35failed in unchanged launchd, remote-workspace, and release-fixture paths), so the PR records that limitation instead of claiming full-suite success.Both branches were based directly on the current
devhead when pushed. No user runtime configuration or daemon was modified.fix(desktop,cli): bundle lane G — sidecar signing, restart warning, p…
lidge-jun commentedon Sep 23, 2026
Partial progress from #5682 (squash-merged as 7f8d538): hidden autostart now defers the dashboard (carrying #5498), and CI boots the real Linux AppImage and deb packages end to end (carrying #5502). Still open: stopping dashboard polling while the window is hidden, and the performance baselines.
fix(desktop,gui): pause dashboard polling while the desktop window is…
fix(desktop,gui): pause dashboard polling while the desktop window is…
fix(desktop,gui): pause dashboard polling while the desktop window is…
fix(desktop,gui): bundle L5 — macOS reopen, hidden-window polling, He…
lidge-jun commentedon Sep 27, 2026
Release train 4 triage (dev
24b2f39b, T4-I-5493): Keeping this open for its remaining measurement acceptance. #5682 delivered lazy hidden autostart and hosted AppImage/deb E2E; #5742 added hidden-window polling control. The desktop shell record includes readiness and RSS but not attach time, background request counts, or a reviewed regression baseline. Record those measurements and a baseline decision, then this tracker can close.lidge-jun commentedon Oct 6, 2026
Maintainer decision (interview 2026-10-06): closing as feature-complete.
On current
dev(f924820652), #5682 (lazy hidden autostart + Linux AppImage/deb E2E) and #5742 (hidden-window polling control) are in. Remaining attach-time / background-request-count / reviewed regression baselines are follow-up measurement work, not required to keep this tracker open.