Skip to content

Avalonia Migration Refactor#4557

Open
taooceros wants to merge 4 commits into
devfrom
avalonia-migration-minimal
Open

Avalonia Migration Refactor#4557
taooceros wants to merge 4 commits into
devfrom
avalonia-migration-minimal

Conversation

@taooceros

@taooceros taooceros commented Jul 4, 2026

Copy link
Copy Markdown
Member

Summary

Migration to Avalonia, based on dev, with unrelated fixes split out.

could potentially resolves #894.

Build/artifact wiring

  • Flow.Launcher.sln adds Flow.Launcher.Avalonia so solution builds produce the Avalonia host.
  • Flow.Launcher.Avalonia/Flow.Launcher.Avalonia.csproj writes host output to Output\Avalonia\$(Configuration).
  • Built-in plugin .csproj files copy plugin outputs into Output\Avalonia\$(Configuration)\Plugins\... for Avalonia runtime loading.
  • Scripts/post_build.ps1 packages Avalonia setup/portable artifacts separately under Output\Packages\Avalonia.
  • .github/workflows/dotnet.yml uploads Avalonia Setup and Avalonia Portable Version artifacts.

What changed in the existing WPF/shared surface

These are the non-Flow.Launcher.Avalonia/ changes reviewers should expect:

  • Flow.Launcher/Languages/en.xaml — shared localization keys used by Avalonia UI.
  • Flow.Launcher.Infrastructure/Hotkey/GlobalHotkey.cs — exposes hotkey callback/key conversion needed by the Avalonia host.
  • Flow.Launcher.Plugin/Interfaces/ISettingProvider.cs — adds CreateSettingPanelAvalonia() for native Avalonia plugin settings without exposing Avalonia types to WPF plugin reflection.
  • Built-in plugin .csproj, Main.cs, and Views/Avalonia/* files — native Avalonia settings views and copy targets.
  • Flow.Launcher.sln — includes the Avalonia project in normal solution builds.
  • Scripts/post_build.ps1 and Scripts/flowlauncher-avalonia.nuspec — create Avalonia setup/portable artifacts without changing release deployment workflows.
  • .github/workflows/dotnet.yml — uploads Avalonia CI artifacts only.

Existing WPF behavior intentionally left alone

  • WPF host runtime behavior was not intentionally refactored.
  • Existing WPF plugin settings remain the compatibility/fallback path.
  • The JsonStorage temp-file truncation fix was split out to PR Fix JsonStorage temp file truncation #4558 and is no longer part of this PR.

Verification

CI artifact sizes from run 28725559998 before the JsonStorage split cleanup:

  • Flow Installer: 101,089,952 bytes

  • Portable Version: 204,621,638 bytes

  • Avalonia Setup: 85,188,274 bytes

  • Avalonia Portable Version: 172,204,291 bytes

  • The original Flow Launcher installer works.

  • The Avalonia installer works.

Review notes

Highest-risk areas:

  • Flow.Launcher.Avalonia/AvaloniaPublicAPI.cs plugin API compatibility.
  • Flow.Launcher.Avalonia/ViewModel/MainViewModel.cs query/result lifecycle and plugin async query behavior.
  • Flow.Launcher.Avalonia/App.axaml.cs startup sequence, WPF resource compatibility shim, and plugin initialization.
  • Build artifact paths: Avalonia must stay under Output\Avalonia\$(Configuration) so WPF package inputs under Output\Release remain close to dev.

Copilot AI review requested due to automatic review settings July 4, 2026 21:37
@github-actions github-actions Bot added this to the 2.2.0 milestone Jul 4, 2026

This comment was marked as resolved.

cubic-dev-ai[bot]

This comment was marked as resolved.

@coderabbitai

This comment has been minimized.

coderabbitai[bot]

This comment was marked as resolved.

@taooceros taooceros changed the title Add minimal Avalonia host migration Avalonia Migration Refactor Jul 4, 2026
@taooceros taooceros removed this from the 2.2.0 milestone Jul 4, 2026
@taooceros taooceros force-pushed the avalonia-migration-minimal branch 3 times, most recently from fd20405 to f290f41 Compare July 4, 2026 22:57
coderabbitai[bot]

This comment was marked as resolved.

@taooceros taooceros force-pushed the avalonia-migration-minimal branch 2 times, most recently from d252f54 to b0ec04b Compare July 4, 2026 23:56
coderabbitai[bot]

This comment was marked as resolved.

@taooceros taooceros force-pushed the avalonia-migration-minimal branch 6 times, most recently from cd86075 to 3e7be8e Compare July 5, 2026 22:54
@taooceros taooceros force-pushed the avalonia-migration-minimal branch from 3e7be8e to 88ea811 Compare July 6, 2026 04:03
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.

First Query after Flow Launcher starts up is very slow

2 participants