Skip to content

feat: establish Linux development runtime and native CI - #714

Open
enaboapps wants to merge 4 commits into
docs/710-linux-support-planfrom
feat/712-linux-foundation
Open

feat: establish Linux development runtime and native CI#714
enaboapps wants to merge 4 commits into
docs/710-linux-support-planfrom
feat/712-linux-foundation

Conversation

@enaboapps

@enaboapps enaboapps commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Linux currently cannot compile because its runtime dispatch and cursor-overlay implementation are missing. This provides a development-only Linux runtime that reports Bluetooth and input unavailable, rejects pairing, clears session state, and opens no input device or overlay windows.

The Linux main window stays visible even with --start-hidden, and closing it follows the existing confirmation flow to quit, so an absent tray host cannot strand the app. Ubuntu 24.04 joins native CI for format, Clippy, tests and a development build. Shared code remains covered by fake-input tests.

Stack: #711 (plan) → this PR → #715 (Linux setup/status UX). The base is the planning branch as requested for stacked implementation. BlueZ and actual input support follow separately. Merge in stack order only when explicitly authorized.

Closes #712.

Validation: local formatting, whitespace and frontend checks passed. Independent review of latest head 290712dd8734aeab0232742866a1281f00153447 found no actionable issues. All latest-head CI checks passed: Ubuntu, Windows and macOS native checks/builds; frontend; dependency audit; CodeQL; and automated review. Native/frontend CI run.

The connection-history test uses an explicit in-memory pairing-token store so it does not require a desktop keyring. Native credential-store tests retain their original adapters and production storage is unchanged.

Linux hardware and graphical runtime behavior have not been qualified. Local native checks were blocked by unavailable GTK/WebKit development packages; native validation runs in CI. No Linux release artifacts or functional Bluetooth/input support are provided by this PR.

@greptile-apps

greptile-apps Bot commented Sep 10, 2026

Copy link
Copy Markdown

Greptile Summary

This change establishes a development-only Linux runtime that reports Bluetooth, input, dwell, and overlay capabilities as unavailable rather than attempting unsupported operations. It keeps the main window recoverable without tray integration, adds Linux-native CI checks, and uses in-memory credentials for persistence tests that do not require a desktop keyring.

The Linux start-hidden and close behavior was exercised successfully: start-hidden is disabled when no tray is available, closing requests quit, and the built application remained running under an Xvfb and D-Bus session. The unavailable-runtime reset path, native formatting, strict linting, complete Rust test suite, and debug no-bundle build also completed successfully. No defects were found.

Confidence Score: 5/5

Safe to merge based on the exercised Linux lifecycle, fail-closed unavailable-feature behavior, native quality checks, test suite, build, and graphical startup probe.

No publishable findings remain after execution verified the principal Linux lifecycle and unavailable-feature failure paths. The Rust formatter, strict Clippy checks, complete native test suite, and debug application build all succeeded.

Files Needing Attention: No files need corrective attention. Future Linux feature work should continue to validate real Bluetooth hardware, desktop input, and overlay behavior before enabling those capabilities.

T-Rex T-Rex Logs

What T-Rex did

  • The focused Linux lifecycle tests passed, including the --start-hidden disabled check and the close-quit behavior, and the unavailable-runtime reset test passed with the active state cleared and the credential preserved.
  • The Rust validation and native build checks completed: formatting and Clippy passed, 211 library tests and 7 configuration tests succeeded, and the no-bundle Tauri debug run produced the Linux executable.
  • The built Linux application was started under a direct Xvfb display and D-Bus session with --start-hidden, and it remained running through the timeout without crashing or entering an unrecoverable hidden state.
  • A consolidated review of all artifacts from the Linux lifecycle, native validation, and start-hidden runtime runs was performed to verify recoverability and build outputs.

View all artifacts

T-Rex Ran code and verified through T-Rex

Reviews (1): Last reviewed commit: "test: retain native storage coverage wit..." | Re-trigger Greptile

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.

1 participant