Go to file
Krzysztof kuhy Rudnicki 135f3f07ea Start a merged task outside the MCP lock
The board refreshes its notes through this MCP server, and add_task
held the server's serial lock while waiting for the board to show
the merged section, so the board could never see it (T1865). The
Start now runs after the lock is released.

Todo: 64d39ab5

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 18:24:24 +01:00
.agents/skills Add Flutter/Dart agent skills and AI rules for Claude Code 2026-06-22 22:53:03 +02:00
.github/workflows Bump Flutter to 3.47.9, Gradle to 9.8.2 2026-11-02 12:01:25 +01:00
android Bump Gradle wrapper to 9.9.0 2026-11-09 08:22:15 +01:00
assets/icon Launcher: label Todo (Android, desktop entry, PKGBUILD), icon fitted to the shared 340px ink circle 2026-10-23 14:38:14 +02:00
bin One open note per repo, merge tool 2026-11-02 14:11:21 +01:00
desktop Launcher: label Todo (Android, desktop entry, PKGBUILD), icon fitted to the shared 340px ink circle 2026-10-23 14:38:14 +02:00
docs Re-point paths for the ~ reorganisation (home-tidy) 2026-09-11 19:49:03 +02:00
lib Start a merged task outside the MCP lock 2026-11-09 18:24:24 +01:00
mcp Add one-command MCP go-live + live verify 2026-11-02 10:45:45 +01:00
packaging/aur Launcher: label Todo (Android, desktop entry, PKGBUILD), icon fitted to the shared 340px ink circle 2026-10-23 14:38:14 +02:00
scripts Add todo app git hooks 2026-11-02 14:28:08 +01:00
test Start a merged task outside the MCP lock 2026-11-09 18:24:24 +01:00
tool Attach images to notes, stored on dufs and kept offline 2026-09-25 14:11:15 +02:00
web Launcher: label Todo (Android, desktop entry, PKGBUILD), icon fitted to the shared 340px ink circle 2026-10-23 14:38:14 +02:00
.fvmrc Bump Flutter to 3.47.9, Gradle to 9.8.2 2026-11-02 12:01:25 +01:00
.gitignore Latest stable dependencies, and the gate that keeps them there 2026-08-28 14:46:50 +02:00
.mcp.json MCP: Dart task server replaces Python todo_mcp 2026-11-02 09:36:44 +01: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 Add todo app git hooks 2026-11-02 14:28:08 +01:00
AGENTS.md One open note per repo, merge tool 2026-11-02 14:11:21 +01:00
analysis_options.yaml Exclude platform dirs from analysis; refresh the lockfile 2026-08-14 17:20:51 +02:00
CLAUDE.md Adopt the four markdown namespaces and gate them 2026-08-24 15:54:35 +02:00
install_arch.sh Desktop: no stray browser window from extensions; keyboard stays down after backing out of a note 2026-10-23 12:00:26 +02:00
LICENSE Add MIT license 2026-06-14 14:42:45 +02:00
pubspec.lock crdt_sync 0.12.1: serialized FileLogPersistence writes 2026-11-09 15:29:03 +01:00
pubspec.yaml Start a merged task outside the MCP lock 2026-11-09 18:24:24 +01:00
README.md Add headless note CLI (bin/todo_note.dart) reusing app CRDT sync 2026-10-16 15:35:46 +02:00
run.sh Export the backlog to ~/src/todo, not the pre-reorganisation ~/todo 2026-09-12 17:13:21 +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.

Headless note CLI

bin/todo_note.dart adds, lists, reads and deletes notes from the PC without the app, as one more sync node (own node_id and CRDT log under $XDG_DATA_HOME/todo-cli, or ~/.local/share/todo-cli). It needs the desktop Firebase session at ~/.config/todo/firebase_auth.json (seed it with python3 ~/src/utils/crdt-sync/tool/seed_session.py --app todo).

dart run bin/todo_note.dart --text "Title

body" --priority high --status in_progress     # prints the new note id
echo "Title" | dart run bin/todo_note.dart     # text from stdin
dart run bin/todo_note.dart --list             # id, priority, status, title
dart run bin/todo_note.dart --get <id>         # full note
dart run bin/todo_note.dart --delete <id>

--list and --get never push; --data-dir <dir> selects a throwaway node. Exit codes: 0 ok, 1 sync/auth failure or note not found, 2 bad arguments. All logic is in lib/cli/ (tested in test/cli/); --help lists every flag.