WIP: feat(ui): Migrate to new UI implementation

This commit is contained in:
2026-06-22 06:47:16 +04:00
parent 873aa8d7b5
commit bb4334f68d
109 changed files with 13499 additions and 1257 deletions
+23 -10
View File
@@ -23,15 +23,14 @@ The launcher is responsible for:
## Prerequisites
Use the latest stable Flutter SDK available from the official Flutter release
channel. This project does not support FVM-pinned SDK workflows.
Install FVM. The repository `.fvmrc` tracks the latest stable Flutter channel,
and all Dart and Flutter commands are run through FVM.
```powershell
flutter pub get
fvm flutter pub get
```
If `flutter` is unavailable, restart the shell after installing Flutter or
fix PATH so `flutter --version` works.
Verify the configured SDK with `fvm flutter --version`.
## Configuration
@@ -53,21 +52,32 @@ feeds must use HTTPS.
Example run command:
```powershell
flutter run -d windows --dart-define=MOONWELL_API_BASE_URL=https://host --dart-define=MOONWELL_APPCAST_URL=https://host/launcher/updates/appcast.xml
fvm flutter run -d windows --dart-define=MOONWELL_API_BASE_URL=https://host --dart-define=MOONWELL_APPCAST_URL=https://host/launcher/updates/appcast.xml
```
## Development
Run the component catalog from its standalone workspace:
```powershell
cd widgetbook
fvm dart run build_runner build
fvm flutter run -d windows
```
See `docs/widgetbook.md` for the required use-case naming, knobs, callback,
asset, and coverage conventions.
Regenerate dependency injection after changing injectable services:
```powershell
dart run build_runner build --delete-conflicting-outputs
fvm dart run build_runner build --delete-conflicting-outputs
```
Run static analysis:
```powershell
flutter analyze
fvm flutter analyze
```
See `docs/linting.md` for the full format, analyze, test, and Lefthook
@@ -76,7 +86,7 @@ pre-commit workflow.
Build the Windows launcher:
```powershell
flutter build windows --dart-define=MOONWELL_API_BASE_URL=https://host --dart-define=MOONWELL_APPCAST_URL=https://host/launcher/updates/appcast.xml
fvm flutter build windows --dart-define=MOONWELL_API_BASE_URL=https://host --dart-define=MOONWELL_APPCAST_URL=https://host/launcher/updates/appcast.xml
```
The Inno Setup installer script lives at `installer/moonwell_launcher.iss`.
@@ -85,7 +95,9 @@ manual release procedure.
## Architecture
The UI lives in `lib/app`, with shared UI widgets under `lib/app/widgets`.
The UI lives in `lib/app`. Presentation-only design-system components live in
`lib/app/design_system` and are catalogued by the standalone `widgetbook/`
workspace before they are integrated into production screens.
Launcher domain models, sync use cases, API clients, installation services, and
preferences live under `lib/features`.
@@ -111,3 +123,4 @@ See `docs/launcher_web_api_spec.md` for the API and sync contract.
upgrade feasibility notes
- `docs/launcher_web_api_spec.md`: current launcher Web API and sync behavior
- `docs/launcher_self_update.md`: Windows self-update and release operations
- `docs/widgetbook.md`: Widgetbook use-case generation and catalog conventions