todo-app/lib/sync
Krzysztof kuhy Rudnicki f46b65750e
Some checks failed
file-length / file length <= 250 lines (push) Has been cancelled
release-apk / release (APK) (push) Has been cancelled
Use the shared github_device_auth package
todo was the donor for both halves of the GitHub device flow -- its
`lib/sync/github_device_auth.dart` was byte-identical to home_inventory's,
and `lib/ui/device_code_dialog.dart` was the public version of the modal
diet-guard and wake-alarm each carried privately. All of it now lives in
`github_device_auth` in the kuhyx/utils monorepo.

The package is not a straight copy of what left here: it takes the more
capable variant of each divergence found across the four apps, so this app
gains two fixes it never had --

  * `pollForToken` retries a transient `ClientException` instead of
    failing, because GitHub can close the connection at the moment the
    user authorizes (wake-alarm's fix)
  * the dialog catches `on Object`, not `on Exception`, so an
    `ArgumentError` surfaces as an error message instead of leaving the
    dialog spinning forever

The local `test/github_device_auth_test.dart` is deleted; its cases live in
the package now, where they gate all four consumers. 300 tests pass and
`test/github_mirror_device_flow_test.dart` -- which drives the shared
dialog end to end -- is among them.

Deployed to the phone as versionCode 17 via phone_deploy.sh (signer
verified, `adb install -r`, no uninstall): launches with all 109 notes
intact.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U4Rj3s7K2qzrLNgJqqPhno
2026-08-15 16:15:10 +02:00
..
backlog_export_io.dart Cut the llm-design-spec template from 12 sections to 7 2026-07-26 22:03:35 +02:00
backlog_export_web.dart Make the app compile and run for web, behind platform seams 2026-07-20 13:14:03 +02:00
backlog_export.dart Make the app compile and run for web, behind platform seams 2026-07-20 13:14:03 +02:00
desktop_wrapper.dart Make the app compile and run for web, behind platform seams 2026-07-20 13:14:03 +02:00
firebase_account_store.dart Enforce the 250-line file cap, and split the first four files 2026-08-14 16:01:24 +02:00
firebase_backend.dart Enforce the 250-line file cap, and split the first four files 2026-08-14 16:01:24 +02:00
firebase_client.dart Enforce the 250-line file cap, and split the first four files 2026-08-14 16:01:24 +02:00
firebase_project.dart Enforce the 250-line file cap, and split the first four files 2026-08-14 16:01:24 +02:00
google_platform_io.dart Fix desktop Firebase sync: seed a Google-derived session, not a dead password 2026-08-12 19:35:18 +02:00
google_platform_web.dart Fix desktop Firebase sync: seed a Google-derived session, not a dead password 2026-08-12 19:35:18 +02:00
google_platform.dart Fix desktop Firebase sync: seed a Google-derived session, not a dead password 2026-08-12 19:35:18 +02:00
google_sign_in_backend.dart Fix desktop Firebase sync: seed a Google-derived session, not a dead password 2026-08-12 19:35:18 +02:00
local_backup_factory_io.dart Make the app compile and run for web, behind platform seams 2026-07-20 13:14:03 +02:00
local_backup_factory_web.dart Make the app compile and run for web, behind platform seams 2026-07-20 13:14:03 +02:00
local_backup_factory.dart Make the app compile and run for web, behind platform seams 2026-07-20 13:14:03 +02:00
local_backup.dart Switch to very_good_analysis, matching the rest of the Flutter ecosystem 2026-07-20 11:05:13 +02:00
notes_markdown.dart Switch to very_good_analysis, matching the rest of the Flutter ecosystem 2026-07-20 11:05:13 +02:00
run_sync.dart Simplify capture UI behind an advanced-mode toggle, add usage analytics 2026-08-12 21:30:40 +02:00
sync_service.dart Fix desktop Firebase sync: seed a Google-derived session, not a dead password 2026-08-12 19:35:18 +02:00
sync_settings.dart Switch to very_good_analysis, matching the rest of the Flutter ecosystem 2026-07-20 11:05:13 +02:00
sync_state_factory_io.dart Sync through Firebase, mirroring to GitHub, and stop re-downloading peers 2026-08-04 23:36:24 +02:00
sync_state_factory_web.dart Sync through Firebase, mirroring to GitHub, and stop re-downloading peers 2026-08-04 23:36:24 +02:00
sync_state_factory.dart Sync through Firebase, mirroring to GitHub, and stop re-downloading peers 2026-08-04 23:36:24 +02:00