mirror of
https://github.com/kuhyx/diet-guard.git
synced 2026-11-11 14:27:39 +01:00
The inline `_DeviceCodeDialog` in `github_mirror_screen.dart` (88 lines) was byte-for-byte identical to wake-alarm's, and `services/github_device_auth.dart` was a fourth copy of the auth client. Both now come from `github_device_auth` in the kuhyx/utils monorepo. This app's copy was the one that mattered most to get right: it took the device-code and token URLs as parameters because GitHub's device-flow endpoints send no CORS headers, so the desktop **web** build has to route both through the local wrapper (`github_client_factory_web.dart` passes them). Extracting todo's simpler hardcoded version would have broken that build outright. The package carries the configurable endpoints instead, defaulting to GitHub's own URLs so the other three consumers are unaffected -- and `flutter build web` here is verified green, which is the check that would have caught it. The dialog also gains a real fix: `on Object` rather than `on Exception`, so an `ArgumentError` shows an error instead of leaving the dialog spinning on "Waiting for authorization…" forever. The unused `token_vault` import in the deleted client confirmed it had no app-specific behaviour left worth keeping. 548 tests pass, analyze clean, web build green, and the release APK is installed on the phone with meal history intact. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U4Rj3s7K2qzrLNgJqqPhno
74 lines
2.1 KiB
YAML
74 lines
2.1 KiB
YAML
name: diet_guard_app
|
|
description: "Companion phone app for diet_guard: log meals on the go."
|
|
publish_to: 'none'
|
|
|
|
version: 1.0.11+1
|
|
|
|
environment:
|
|
sdk: ^3.12.2
|
|
|
|
dependencies:
|
|
crdt_sync:
|
|
git:
|
|
url: https://github.com/kuhyx/utils
|
|
ref: crdt_sync_dart-v0.10.0
|
|
path: crdt_sync_dart
|
|
crypto: ^3.0.6
|
|
flutter:
|
|
sdk: flutter
|
|
flutter_local_notifications: ^22.0.1
|
|
flutter_secure_storage: ^10.3.1
|
|
|
|
# One-tap sign-in for the sync account. App-side only: crdt_sync stays pure
|
|
# Dart so it keeps working on Linux desktop and headless.
|
|
github_device_auth:
|
|
git:
|
|
url: https://github.com/kuhyx/utils
|
|
ref: github_device_auth-v0.3.0
|
|
path: github_device_auth
|
|
google_sign_in: ^7.2.0
|
|
http: ^1.6.0
|
|
idb_shim: ^2.9.6+2
|
|
path: ^1.9.1
|
|
path_provider: ^2.1.5
|
|
permission_handler: ^12.0.3
|
|
shared_preferences: ^2.5.5
|
|
|
|
# Shared "Sync settings" screen (Firebase + optional local backup), reused
|
|
# across every kuhy app that syncs. GitHub mirror stays app-local (see
|
|
# lib/screens/github_mirror_screen.dart) since connecting it here also
|
|
# triggers a real log sync, not just a settings save.
|
|
sync_settings_ui:
|
|
git:
|
|
url: https://github.com/kuhyx/utils
|
|
ref: sync_settings_ui-v0.1.0
|
|
path: sync_settings_ui
|
|
url_launcher: ^6.3.2
|
|
uuid: ^4.5.3
|
|
web: ^1.1.1
|
|
workmanager: ^0.9.0+3
|
|
|
|
dev_dependencies:
|
|
# Generates the Android launcher icons from assets/icon/ (see
|
|
# python_pkg/app_icons in testsAndMisc for the shared style).
|
|
flutter_launcher_icons: ^0.14.4
|
|
flutter_test:
|
|
sdk: flutter
|
|
url_launcher_platform_interface: ^2.3.2
|
|
very_good_analysis: ^10.2.0
|
|
|
|
flutter:
|
|
uses-material-design: true
|
|
|
|
# Launcher icon generation. Source art is produced by the shared generator:
|
|
# PYTHONPATH=~/testsAndMisc python3 -m python_pkg.app_icons generate --app <key>
|
|
# then run: dart run flutter_launcher_icons
|
|
flutter_launcher_icons:
|
|
android: true
|
|
ios: false
|
|
image_path: "assets/icon/icon.png"
|
|
adaptive_icon_background: "#211D1B"
|
|
adaptive_icon_foreground: "assets/icon/icon_foreground.png"
|
|
adaptive_icon_monochrome: "assets/icon/icon_monochrome.png"
|
|
min_sdk_android: 21
|