Matthias Nott
2026-03-21 a85c355d27a2016d3fe3f942ae6edfd9978d0e30
refs
author Matthias Nott <mnott@mnsoft.org>
Saturday, March 21, 2026 17:18 +0100
committer Matthias Nott <mnott@mnsoft.org>
Saturday, March 21, 2026 17:18 +0100
commita85c355d27a2016d3fe3f942ae6edfd9978d0e30
tree 9b597874052401f111d277db73c1cf172aa633b7 tree | zip | gz
parent
feat: PAILot Flutter app - complete rewrite from React Native

Voice-first AI communicator mobile app connecting to AIBroker daemon via WebSocket.

- Full chat interface with text, voice, and image messaging
- Multi-session support with drawer, switching, rename, remove
- WebSocket service with dual-URL fallback, heartbeat, auto-reconnect
- Voice recording (AAC) with singleton playback and chain play
- Navigate screen with terminal screenshot and vim key grid
- Settings with server config, Wake-on-LAN
- Per-session message persistence with catch_up protocol
- Multi-image picker with text or voice captions
- Cross-session toast notifications and unread badges
- Material 3 dark/light theme, Riverpod state, GoRouter
- iOS and Android adaptive icons from PAILot.svg
- Build/deploy scripts matching Glidr patterns
166 files added
changed files
.gitignore diff | view | blame | history
.metadata diff | view | blame | history
README.md diff | view | blame | history
analysis_options.yaml diff | view | blame | history
android/.gitignore diff | view | blame | history
android/app/build.gradle.kts diff | view | blame | history
android/app/src/debug/AndroidManifest.xml diff | view | blame | history
android/app/src/main/AndroidManifest.xml diff | view | blame | history
android/app/src/main/kotlin/com/tekmidian/pailot/MainActivity.kt diff | view | blame | history
android/app/src/main/res/drawable-v21/launch_background.xml diff | view | blame | history
android/app/src/main/res/drawable/launch_background.xml diff | view | blame | history
android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml diff | view | blame | history
android/app/src/main/res/mipmap-hdpi/ic_launcher.png diff | view | blame | history
android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png diff | view | blame | history
android/app/src/main/res/mipmap-mdpi/ic_launcher.png diff | view | blame | history
android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png diff | view | blame | history
android/app/src/main/res/mipmap-xhdpi/ic_launcher.png diff | view | blame | history
android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png diff | view | blame | history
android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff | view | blame | history
android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png diff | view | blame | history
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff | view | blame | history
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png diff | view | blame | history
android/app/src/main/res/values-night/styles.xml diff | view | blame | history
android/app/src/main/res/values/colors.xml diff | view | blame | history
android/app/src/main/res/values/styles.xml diff | view | blame | history
android/app/src/profile/AndroidManifest.xml diff | view | blame | history
android/build.gradle.kts diff | view | blame | history
android/gradle.properties diff | view | blame | history
android/gradle/wrapper/gradle-wrapper.properties diff | view | blame | history
android/settings.gradle.kts diff | view | blame | history
ios/.gitignore diff | view | blame | history
ios/Flutter/AppFrameworkInfo.plist diff | view | blame | history
ios/Flutter/Debug.xcconfig diff | view | blame | history
ios/Flutter/Release.xcconfig diff | view | blame | history
ios/Podfile diff | view | blame | history
ios/Podfile.lock diff | view | blame | history
ios/Runner.xcodeproj/project.pbxproj diff | view | blame | history
ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff | view | blame | history
ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff | view | blame | history
ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff | view | blame | history
ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme diff | view | blame | history
ios/Runner.xcworkspace/contents.xcworkspacedata diff | view | blame | history
ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff | view | blame | history
ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff | view | blame | history
ios/Runner/AppDelegate.swift diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png diff | view | blame | history
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png diff | view | blame | history
ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json diff | view | blame | history
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png diff | view | blame | history
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png diff | view | blame | history
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png diff | view | blame | history
ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md diff | view | blame | history
ios/Runner/Base.lproj/LaunchScreen.storyboard diff | view | blame | history
ios/Runner/Base.lproj/Main.storyboard diff | view | blame | history
ios/Runner/Info.plist diff | view | blame | history
ios/Runner/Runner-Bridging-Header.h diff | view | blame | history
ios/Runner/SceneDelegate.swift diff | view | blame | history
ios/RunnerTests/RunnerTests.swift diff | view | blame | history
lib/main.dart diff | view | blame | history
lib/models/message.dart diff | view | blame | history
lib/models/server_config.dart diff | view | blame | history
lib/models/session.dart diff | view | blame | history
lib/providers/providers.dart diff | view | blame | history
lib/router.dart diff | view | blame | history
lib/screens/chat_screen.dart diff | view | blame | history
lib/screens/navigate_screen.dart diff | view | blame | history
lib/screens/settings_screen.dart diff | view | blame | history
lib/services/audio_service.dart diff | view | blame | history
lib/services/message_store.dart diff | view | blame | history
lib/services/websocket_service.dart diff | view | blame | history
lib/services/wol_service.dart diff | view | blame | history
lib/theme/app_theme.dart diff | view | blame | history
lib/widgets/command_bar.dart diff | view | blame | history
lib/widgets/image_viewer.dart diff | view | blame | history
lib/widgets/input_bar.dart diff | view | blame | history
lib/widgets/message_bubble.dart diff | view | blame | history
lib/widgets/session_drawer.dart diff | view | blame | history
lib/widgets/status_dot.dart diff | view | blame | history
lib/widgets/toast_overlay.dart diff | view | blame | history
lib/widgets/typing_indicator.dart diff | view | blame | history
lib/widgets/voice_button.dart diff | view | blame | history
linux/.gitignore diff | view | blame | history
linux/CMakeLists.txt diff | view | blame | history
linux/flutter/CMakeLists.txt diff | view | blame | history
linux/flutter/generated_plugin_registrant.cc diff | view | blame | history
linux/flutter/generated_plugin_registrant.h diff | view | blame | history
linux/flutter/generated_plugins.cmake diff | view | blame | history
linux/runner/CMakeLists.txt diff | view | blame | history
linux/runner/main.cc diff | view | blame | history
linux/runner/my_application.cc diff | view | blame | history
linux/runner/my_application.h diff | view | blame | history
macos/.gitignore diff | view | blame | history
macos/Flutter/Flutter-Debug.xcconfig diff | view | blame | history
macos/Flutter/Flutter-Release.xcconfig diff | view | blame | history
macos/Flutter/GeneratedPluginRegistrant.swift diff | view | blame | history
macos/Podfile diff | view | blame | history
macos/Runner.xcodeproj/project.pbxproj diff | view | blame | history
macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff | view | blame | history
macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme diff | view | blame | history
macos/Runner.xcworkspace/contents.xcworkspacedata diff | view | blame | history
macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff | view | blame | history
macos/Runner/AppDelegate.swift diff | view | blame | history
macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json diff | view | blame | history
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png diff | view | blame | history
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png diff | view | blame | history
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png diff | view | blame | history
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png diff | view | blame | history
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png diff | view | blame | history
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png diff | view | blame | history
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png diff | view | blame | history
macos/Runner/Base.lproj/MainMenu.xib diff | view | blame | history
macos/Runner/Configs/AppInfo.xcconfig diff | view | blame | history
macos/Runner/Configs/Debug.xcconfig diff | view | blame | history
macos/Runner/Configs/Release.xcconfig diff | view | blame | history
macos/Runner/Configs/Warnings.xcconfig diff | view | blame | history
macos/Runner/DebugProfile.entitlements diff | view | blame | history
macos/Runner/Info.plist diff | view | blame | history
macos/Runner/MainFlutterWindow.swift diff | view | blame | history
macos/Runner/Release.entitlements diff | view | blame | history
macos/RunnerTests/RunnerTests.swift diff | view | blame | history
pubspec.lock diff | view | blame | history
pubspec.yaml diff | view | blame | history
test/widget_test.dart diff | view | blame | history
tools/build-android.sh diff | view | blame | history
tools/build.sh diff | view | blame | history
tools/deploy-android.sh diff | view | blame | history
tools/deploy.sh diff | view | blame | history
web/favicon.png diff | view | blame | history
web/icons/Icon-192.png diff | view | blame | history
web/icons/Icon-512.png diff | view | blame | history
web/icons/Icon-maskable-192.png diff | view | blame | history
web/icons/Icon-maskable-512.png diff | view | blame | history
web/index.html diff | view | blame | history
web/manifest.json diff | view | blame | history
windows/.gitignore diff | view | blame | history
windows/CMakeLists.txt diff | view | blame | history
windows/flutter/CMakeLists.txt diff | view | blame | history
windows/flutter/generated_plugin_registrant.cc diff | view | blame | history
windows/flutter/generated_plugin_registrant.h diff | view | blame | history
windows/flutter/generated_plugins.cmake diff | view | blame | history
windows/runner/CMakeLists.txt diff | view | blame | history
windows/runner/Runner.rc diff | view | blame | history
windows/runner/flutter_window.cpp diff | view | blame | history
windows/runner/flutter_window.h diff | view | blame | history
windows/runner/main.cpp diff | view | blame | history
windows/runner/resource.h diff | view | blame | history
windows/runner/resources/app_icon.ico diff | view | blame | history
windows/runner/runner.exe.manifest diff | view | blame | history
windows/runner/utils.cpp diff | view | blame | history
windows/runner/utils.h diff | view | blame | history
windows/runner/win32_window.cpp diff | view | blame | history
windows/runner/win32_window.h diff | view | blame | history