Go to file
Krzysztof kuhy Rudnicki d4c8162e0e Split capture_screen.dart into ten files under the cap
739 -> 249 lines. As with note_editor, the ~600-line State class needed
decomposing rather than moving:

  capture_draft.dart         the note being captured and its write-through
                             to storage -- the model behind "every keystroke
                             is already persisted". Lazy row creation stays
                             here; the screen just logs that it happened.
  capture_sync_runner.dart   one sync pass, with no BuildContext. This also
                             de-duplicates the two callers: the manual button
                             and the background tick ran byte-identical
                             runSync blocks differing only in the snackbar
                             and the 'auto' log flag.
  capture_status.dart        SyncStatusStore (the persisted last outcome) and
                             describeSyncResult.
  capture_app_bar.dart       the app bar.
  capture_meta_row.dart      the priority/status pickers.
  capture_status_footer.dart the two status lines.
  capture_screen_{widget,sync}.dart
                             parts, for the same reason as note_editor's.

The mounted checks are preserved exactly, including the one in
SyncStatusStore.restore that must fire AFTER its await rather than before
(writing the notifier post-dispose is the bug it exists to prevent), which
is why it takes a stillLive callback instead of a bool.

Verified: 313 tests pass, analyze clean, every capture file at 100%
coverage. lib/ and bin/ are now down to three files over the cap.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-14 16:25:51 +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 Enforce the 250-line file cap, and split the first four files 2026-08-14 16:01:24 +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 Do not open a window when provisioning hits the port-recovery path 2026-08-09 22:47:16 +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 Split capture_screen.dart into ten files under the cap 2026-08-14 16:25:51 +02:00
mcp Add read-only MCP server for the backlog 2026-07-10 21:20:39 +02:00
packaging/aur packaging/aur: track the current release tag 2026-08-10 07:18:53 +02:00
scripts Enforce the 250-line file cap, and split the first four files 2026-08-14 16:01:24 +02:00
test Migrate Sync settings to the shared sync_settings_ui package 2026-08-12 23:25:16 +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
.pre-commit-config.yaml Enforce the 250-line file cap, and split the first four files 2026-08-14 16:01:24 +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 Migrate Sync settings to the shared sync_settings_ui package 2026-08-12 23:25:16 +02:00
pubspec.yaml Split capture_screen.dart into ten files under the cap 2026-08-14 16:25:51 +02:00
README.md Initial commit: offline-first CRDT notes app (capture + GitHub sync) 2026-06-14 14:20:19 +02:00
refactor_claude_todo.md Update refactor_claude_todo.md counts after gate exemption fixes 2026-08-14 15:59:20 +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.