mirror of
https://github.com/kuhyx/todo-app.git
synced 2026-11-10 17:07:03 +01:00
First step of moving the desktop app off Flutter's Linux embedder, which tops
out at ~20fps at 4K (see docs/desktop-performance-findings.md). Android is
unaffected and keeps every existing code path.
The blocker was that `dart:io` was imported by note_repository, capture_screen
and settings_screen. On web it compiles to a stub and then throws at runtime --
the first web build rendered a blank white window. So each `dart:io` use now
sits behind a conditional export, with the shared logic hoisted into pure Dart:
- note_repository loses `dart:io`/sqlite entirely. Platform wiring moves to
repository_factory{,_io,_web}, and the legacy sqlite import moves to its own
io-only library. The HLC-from-updated_at seeding is preserved verbatim, so
independently-migrating devices still resolve pre-cutover edits by real edit
time.
- Notes persist to IndexedDB on web, not localStorage: the log is the primary
copy of the backlog and localStorage caps at ~5-10MB and is evicted eagerly.
- BACKLOG.md and the explicit Export keep working through a local wrapper
(added next). A browser cannot write `~/todo/BACKLOG.md`, and the user's
tooling plus the todo MCP server read that path, so leaving it to rot was not
an option. Writes are best-effort so the app still works with no wrapper.
- Notes are also mirrored to the wrapper's on-disk copy, so a wiped Chrome
profile is not a total-loss event for notes that have not reached GitHub yet.
`openRepository` is split so `openRepositoryIn` keeps the migration tests; the
suite stays at 174 green and 100% coverage.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
31 lines
964 B
Plaintext
31 lines
964 B
Plaintext
# This file tracks properties of this Flutter project.
|
|
# Used by Flutter tool to assess capabilities and perform upgrades etc.
|
|
#
|
|
# This file should be version controlled and should not be manually edited.
|
|
|
|
version:
|
|
revision: "ee80f08bbf97172ec030b8751ceab557177a34a6"
|
|
channel: "stable"
|
|
|
|
project_type: app
|
|
|
|
# Tracks metadata for the flutter migrate command
|
|
migration:
|
|
platforms:
|
|
- platform: root
|
|
create_revision: ee80f08bbf97172ec030b8751ceab557177a34a6
|
|
base_revision: ee80f08bbf97172ec030b8751ceab557177a34a6
|
|
- platform: web
|
|
create_revision: ee80f08bbf97172ec030b8751ceab557177a34a6
|
|
base_revision: ee80f08bbf97172ec030b8751ceab557177a34a6
|
|
|
|
# User provided section
|
|
|
|
# List of Local paths (relative to this file) that should be
|
|
# ignored by the migrate tool.
|
|
#
|
|
# Files that are not part of the templates will be ignored by default.
|
|
unmanaged_files:
|
|
- 'lib/main.dart'
|
|
- 'ios/Runner.xcodeproj/project.pbxproj'
|