Go to file
Krzysztof kuhy Rudnicki 85a45daaee
Some checks are pending
file-length / file length <= 250 lines (push) Waiting to run
release-apk / release (APK) (push) Waiting to run
Share one note form between capture and the detail screen
Editing an existing note looked nothing like capturing a new one: it
always showed the template dropdown, the View/Guided/Raw pills and the
priority/status row. The cause was one missing argument -- both screens
already embedded the same NoteEditor, but NoteDetailScreen never passed
advancedMode, which defaults to true in the widget while the app-wide
AppSettings.advancedMode defaults to false.

Extract the shared form as three single-purpose components rather than
one widget owning several jobs:

- note_meta_row.dart renders the priority/status row (was
  capture_meta_row.dart; drops the private _MetaDropdown duplicate the
  detail screen carried, which used DropdownButtonFormField where the
  shared one uses DropdownButton).
- note_form_chrome_gate.dart owns chrome visibility and nothing else,
  replacing the _chromeVisible flag both screens copy-pasted.
- note_form.dart composes those two with NoteEditor.

appSettings is now a required parameter through NotesListScreen and
NoteDetailScreen. Required, not defaulted: a silent default is exactly
what caused this, so it must not be reintroducible.

Also in the capture app bar: drop the decorative Icons.list_alt_outlined
beside the note count, since the adjacent Icons.list button already names
what is counted, and move the count to the right of that button. The
finalize-and-clear action becomes Icons.check instead of Icons.add -- it
never saved anything (every keystroke is already persisted), so a plus
sign misdescribed it.

314 tests, 100% line coverage. Verified in a running web build that edit
and capture render identically with advanced mode both off and on.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-14 17:48:39 +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 Fix three gate defects found reviewing the cap refactor 2026-08-14 17:13:31 +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 Split CLAUDE.md and the performance doc; the whole repo is under the cap 2026-08-14 16:46:54 +02:00
lib Share one note form between capture and the detail screen 2026-08-14 17:48:39 +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 Fix three gate defects found reviewing the cap refactor 2026-08-14 17:13:31 +02:00
test Share one note form between capture and the detail screen 2026-08-14 17:48:39 +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 Fix three gate defects found reviewing the cap refactor 2026-08-14 17:13:31 +02:00
analysis_options.yaml Exclude platform dirs from analysis; refresh the lockfile 2026-08-14 17:20:51 +02:00
CLAUDE.md Fix three gate defects found reviewing the cap refactor 2026-08-14 17:13:31 +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 Exclude platform dirs from analysis; refresh the lockfile 2026-08-14 17:20:51 +02:00
pubspec.yaml Share one note form between capture and the detail screen 2026-08-14 17:48:39 +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 Mark refactor_claude_todo.md done for this repo 2026-08-14 16:51:07 +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.