Skip to content

feat(desktop): implement optional Linux native integration #2110

Open

Description

@knqiufan

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

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

Activity

  1. added
    desktopDesktop application, native platform integration, and packaging
    on Oct 20, 2026
  2. changed the title [-]feat(desktop): implement Linux native integration[/-] [+]feat(desktop): implement optional Linux native integration[/+] on Oct 20, 2026
  3. CX33071 commented on Oct 25, 2026

    @CX33071
    Contributor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

desktopDesktop application, native platform integration, and packaging

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions