Repository navigation
feat(desktop): implement optional Linux native integration #2110
Description
Goal
Provide the native Desktop boundaries required on Ubuntu 24.04 LTS x86_64 with GNOME while reusing the shared UI and public Server contracts.
Parent: #1428. Optional follow-up to first-wave delivery #2099. Work item: F1-08a.
PR breakdown
-
PR 08-E — Linux personal service integration (optional workstream). Adapt the shared structured Ops/installer boundary to systemd --user and the qualified Linux runtime resources. Preserve existing controller ownership, explicit-stop semantics, and user-session lifetime; test actual service registration/start/stop/removal and recovery. Document login/logout behavior without silently enabling system-wide persistence or requiring root.
-
PR 08-A — Linux credentials and packaged application boundary. Implement native persistent credential storage, explicit session-only fallback choice, packaged navigation/IPC, and required platform configuration. Cover unavailable/locked credential storage without plaintext fallback.
-
PR 08-B — Constrained diagnostics and desktop integration. Implement trusted registered diagnostic launchers and necessary Linux desktop behavior, preserving deadlines, bounded output, cancellation, and descendant cleanup.
Dependencies and coordination
-
This is owner-driven optional work: name a contributor with access to the target Linux sessions before scheduling acceptance. Tracking: ship Desktop with local Server setup on Windows and macOS #2099 and required Windows/macOS implementation/publication do not wait for this issue.
-
Consume feat(installer): bootstrap a managed local PowerContext runtime #2115/feat(ops): expose structured personal Server lifecycle operations #2116 shared resource, ownership, plan, and operation contracts for Linux local setup; avoid Linux branches that block or redefine the required Windows/macOS contracts.
-
Coordinate with build(desktop): package and qualify the optional Ubuntu Desktop preview #2111 on distro/system dependencies, package identity, and Wayland/X11 qualification. Native work and packaging scaffolding can proceed in parallel.
-
Reuse shared transport/context boundaries from feat(desktop): integrate Server discovery and operation compatibility #2101 and review applicable Unix process-management work from feat(desktop): add macOS native preview support #2056 without assuming macOS acceptance qualifies Linux.
-
Coordinate diagnostic outputs with feat(desktop): visualize health and processing observations #2105 and shared UI expectations with feat(desktop): establish the shared application layout and navigation #2102; avoid Linux-specific business semantics.
Acceptance criteria
-
A named Linux owner records real systemd --user behavior for local provisioning/management, including unavailable user service manager, login/session lifecycle, explicit stop, damaged runtime, and preserved data. Reuse feat(ops): expose structured personal Server lifecycle operations #2116's semantics; GUI exit is not a Server stop command.
-
Missing Linux adapters/builds cannot fail required Windows/macOS release jobs or advertise Linux support prematurely. build(desktop): package and qualify the optional Ubuntu Desktop preview #2111 qualifies the complete Linux package before public support is claimed.
-
Packaged navigation and typed IPC work on Linux through the intended local origin without broadening remote renderer/network authority.
-
Native credential storage persists and deletes only the application's own credentials. Unavailable/locked storage is actionable; session-only storage requires explicit choice, with no plaintext downgrade.
-
Registered diagnostics verify trusted executable identity and accept only supported fixed operations. No arbitrary renderer command or PATH-first executable selection is added.
-
Deadline, output limits, cancellation, and descendant cleanup hold under actual Linux process execution. Absence/failure of local tools does not disable remote operations.
-
Native behavior works in the declared GNOME session environments; share actual results and system dependencies with build(desktop): package and qualify the optional Ubuntu Desktop preview #2111.
-
Focused regression checks preserve transport/credential boundaries; mocks or direct hook invocation are distinguished from real Linux native execution.
Delivery priority
Windows 11 x64 and macOS Apple Silicon/Intel are required for #2099. Linux #2110 and #2111 are optional, owner-driven work under #1428; missing Linux implementation, packaging, or qualification does not block this issue's first-wave acceptance or the Windows/macOS release. Any advertised Linux support requires its own actual qualification.
Non-goals
No Debian publication in this issue, arbitrary shell execution, universal Linux distribution support, system-wide/root service installation, or independent Linux business rules. Shared Installer/Ops remain owned by #2115/#2116.
References and delivery rules
- Product scope and PR breakdown; static UI prototype. The prototype uses sample data, not production state logic.
- RFC docs(rfc): propose Tauri desktop control center #1455 and the Desktop delivery plan.
- Keep focused PRs independently reviewable and intermediate merges usable. An internal adapter may land before its page; do not expose incomplete features as operational. Close this issue only after its complete outcome is verified.
- Preserve the reviewed native transport, credential, public API, and context boundaries. Record actual backend/platform execution separately from mocks and CI-only fixtures.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsTodo
Activity
[-]feat(desktop): implement Linux native integration[/-][+]feat(desktop): implement optional Linux native integration[/+]CX33071 commentedon Oct 25, 2026
I would like to take ownership of the Linux work for #2110.
I have Ubuntu 24.04 LTS x86_64 with GNOME, Wayland/X11, systemd --user, GNOME Keyring/Secret Service, and a working .deb build and installation environment.
For the PR breakdown, I propose starting with PR 08-A (Linux credentials and packaged application boundary), then coordinating PR 08-B (constrained diagnostics). PR 08-E (systemd --user service integration) should follow the shared contracts from #2115 and #2116 rather than defining Linux-specific lifecycle semantics.
Please let me know if this ownership and breakdown work for the project.