Skip to content

Complete automatic integration recovery and public settings compatibility #219

Description

@Staphylococcus

Parent: #89. Follow-up to the GNOME/Plasma MVP in #216, #217 and #218. Target: v1.8.0.

Outcome

Complete the automatic-integration product experience: understandable current diagnostics, recoverable setup, and a coherent public settings and upgrade contract. Delivered by the source-runtime work, diagnostics refinement, shared onboarding in #247 and final public-settings cleanup in #248. The cleanup passed all 14 CI checks and is included in published v1.8.0.

Current contract

  • Normal settings expose behavior without a desktop/backend selector. Existing explicit gnome, wayland and swayidle configurations retain their meaning until an explicit transition. The merged cleanup removes screen.backend from CLI settings list and unqualified settings describe.
  • Explicit legacy CLI get, describe, set and unset screen.backend operations remain available for scripts. Accepted values, raw reads, mutation output and exit behavior are retained; unset restores auto. Their save-before-apply contract remains explicit: an apply failure leaves the value saved and returns an error, and repeating the command retries application. The GUI Use automatic transition validates native activity where needed and restores the previous configuration on apply failure. These are distinct documented contracts, not a second migration mechanism. detect-backend remains hidden compatibility output, not a resolver for the composed source set.
  • Recovery uses independent source reconnection and the shared GUI/CLI onboarding flow. Startup assessment compares applicable requirements with current observations; Complete setup resumes unmet requirements. Basic services have no remembered opt-out. Missing optional sources remain reduced runtime coverage, with other sources continuing normally. Applicable incomplete setup does not block ordinary operation. Add KWin inhibition source with prebuilt plugins and local compilation fallback #233 owns prebuilt → local build → no KWin source. No global desktop selector or extra engine policy is introduced.
  • Diagnostics follow the agreed current snapshot first, bounded logs second presentation. Activity and scheduling come from the running monitor; fresh read-only inhibition-source queries and effective settings describe current observations and legacy overrides. They do not resolve a whole-session backend, activate services, feed the monitor's decisions or present cached permission as current. Historical evaluations belong in logs. This replaces the earlier requirement to center the GUI report on the last coordinator evaluation.
  • Setup, explicit GUI migration and supported upgrades preserve existing behavior settings/credentials through cancellation or failure and remain resumable. Unrelated functionality stays usable with built-in idle monitoring disabled. The retained legacy CLI write contract above is intentional compatibility, not transactional setup.

Delivered evidence

Acceptance

  • Normal public settings omit backend selection; explicit legacy CLI compatibility is documented and tested. Delivered in Retire backend selection from public CLI discovery #248.
  • Demonstrated source/setup recovery is available and observable. Remaining source absence is supported reduced coverage; applicable unmet setup remains discoverable without blocking normal operation.
  • Supported setup, GUI migration and upgrade paths preserve existing settings/credentials on cancellation or failure and remain recoverable. Legacy CLI writes retain their separately documented save-before-apply contract.
  • Product diagnostics present current activity/source observations, settings and legacy overrides followed by bounded history, without a second resolver or cached permission presented as authoritative.
  • Cross-version and release-bundle coverage verifies the final public-interface contract as well as existing configuration/recovery guarantees. The cleanup adds the same real-binary compatibility check to regular CI, installed-bundle and cross-version-upgrade tests; all 14 candidate hosted checks passed in run 35175100260.
  • MVP field findings are triaged, supported combinations are documented, and Make desktop integration automatic #89 reflects the current diagnostics/setup contracts. The residual mpv case is recorded without expanding this issue to every application's inhibition behavior.

Release handoff and boundaries

User-facing release notes should state that desktop integration is automatic, incomplete setup can be completed through the shared flow, and backend selection is removed from normal CLI discovery while explicit legacy commands continue working. Publishing those notes follows the separate release process.

#87 owns final swayidle removal; #137 owns the separate v2 retired-configuration migration; #220 and other adapters remain separate. Supporting every desktop or resolving every application's inhibitor behavior is not a completion condition.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions