Go to file
Krzysztof kuhy Rudnicki 85ba556af2
Some checks are pending
release-apk / release (APK) (push) Waiting to run
Sync on a Firebase-only device, and say why loadAccount failed
Fleet audit for the bugs found on diet-guard's desktop; two were live here.

`_autoSync` and the manual `_sync` both gated on `settings.isConfigured`,
which means "has a GitHub token". A device connected only to Firebase would
therefore never sync and would be told to "Add a GitHub token" -- advice that
is wrong now and will be wrong for every device once the mirror retires. Both
accept either backend, and the prompt names Firebase first.

This only escaped notice because this machine happens to hold a GitHub token;
diet-guard's desktop, which does not, never synced at all.

`loadAccount()` also swallowed its exception whole, hiding why a device could
not read its stored account -- indistinguishable from "no account set", and
the single most useful diagnostic when provisioning fails. It now logs at
error level with the stack trace and still returns null, so the settings
screen behaves exactly as before.

The unconfigured-Sync test now asserts the routing (unconfigured -> settings)
rather than one snackbar phrasing, which is the behaviour that actually
matters and does not break on wording.

256 tests, analyzer clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0177xwzcpfpWG2qca8Mr39q9
2026-08-09 22:29:03 +02:00
.agents/skills Add Flutter/Dart agent skills and AI rules for Claude Code 2026-06-22 22:53:03 +02:00
.github/workflows Derive versionCode from the commit count, not github.run_number 2026-08-09 18:15:34 +02:00
android Build and publish a signed APK on every push to main 2026-08-04 20:55:14 +02:00
assets/icon Regenerate launcher icon with the unified-design-system warm palette 2026-07-21 21:18:04 +02:00
bin Close the provisioning browser cleanly instead of letting it SIGKILL 2026-08-09 22:18:24 +02:00
desktop Package the desktop app as the web build, and delete the Linux embedder 2026-07-20 14:08:00 +02:00
docs Default a bare-link draft to the freeform template 2026-07-26 22:13:26 +02:00
lib Sync on a Firebase-only device, and say why loadAccount failed 2026-08-09 22:29:03 +02:00
mcp Add read-only MCP server for the backlog 2026-07-10 21:20:39 +02:00
test Sync on a Firebase-only device, and say why loadAccount failed 2026-08-09 22:29:03 +02:00
tool Cut the llm-design-spec template from 12 sections to 7 2026-07-26 22:03:35 +02:00
web Make the app compile and run for web, behind platform seams 2026-07-20 13:14:03 +02:00
.gitignore Add list filters/sort, status, priority rework, export/import, structured template 2026-06-15 16:52:59 +02:00
.mcp.json Add read-only MCP server for the backlog 2026-07-10 21:20:39 +02:00
.metadata Make the app compile and run for web, behind platform seams 2026-07-20 13:14:03 +02:00
analysis_options.yaml Switch to very_good_analysis, matching the rest of the Flutter ecosystem 2026-07-20 11:05:13 +02:00
CLAUDE.md Recover instead of crashing when port 8730 is already taken 2026-08-03 15:13:15 +02:00
DESIGN_AUDIT_TODO.md Add a design-rules audit against the new safe-design-rules checklist 2026-07-21 15:25:19 +02:00
install_arch.sh Package the desktop app as the web build, and delete the Linux embedder 2026-07-20 14:08:00 +02:00
LICENSE Add MIT license 2026-06-14 14:42:45 +02:00
MIGRATION.md Add MIGRATION.md documenting the sqlite_crdt -> crdt_sync move 2026-07-11 23:55:08 +02:00
pubspec.lock Let the desktop provision its sync account from the wrapper 2026-08-09 21:39:16 +02:00
pubspec.yaml Let the desktop provision its sync account from the wrapper 2026-08-09 21:39:16 +02:00
README.md Initial commit: offline-first CRDT notes app (capture + GitHub sync) 2026-06-14 14:20:19 +02:00
run.sh Package the desktop app as the web build, and delete the Linux embedder 2026-07-20 14:08:00 +02:00
skills-lock.json Add Flutter/Dart agent skills and AI rules for Claude Code 2026-06-22 22:53:03 +02:00

todo

A new Flutter project.

Getting Started

This project is a starting point for a Flutter application.

A few resources to get you started if this is your first Flutter project:

For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.