You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: correct Flutter Loro status and allow flat bind-twin gates
flutter/AGENTS.md still said Loro was missing; Phase A already landed.
scripts/consolidation-measure.py --kind bind-twins allows a flat
production line count so a shared fixture is not rejected as a no-op.
Co-authored-by: joepmeindertsma <joepmeindertsma@gmail.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,7 @@ See [STATUS.md](server/STATUS.md) to learn more about which features will remain
9
9
10
10
-**Commit ingest is one function.** HTTP `/commit`, hub WS `COMMIT`, Iroh/peer `COMMIT`, and Flutter WS catch-up all call `ingest_commit_json` with a named preset (`hub` / `peer` / `replica`). Replica still skips write-rights and timestamp — the hub already checked, and a replica's ACL graph may be incomplete. WASM `applyCommit` is unchanged (its own `CommitOpts`, signature off).
11
11
-**Subscribe auth is one helper.**`Subscribe`, `SubscribeDrive`, and `SubscribeQuery` share `authorize_read` in the commit monitor.
12
+
-**Search and server-URL twins share fixtures.**`testdata/search-query.json` binds Rust and TS Tantivy escaping; `testdata/server-url.json` binds the browser and Flutter `normalizeServerUrl`. Empty server-URL input still disagrees (TS `https://`, Dart `''`) — not changed here.
Copy file name to clipboardExpand all lines: flutter/AGENTS.md
+31-21Lines changed: 31 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,9 +33,17 @@ The Kotlin app stores Loro snapshots as local files. The Flutter app uses **atom
33
33
- Rust source lives in `/rust/src/`
34
34
-`atomic_lib` is referenced as a local path dependency: `../../../atomicdata-dev/atomic-server/lib`
35
35
36
-
### Loro CRDT: Not Yet Integrated in Flutter
36
+
### Loro CRDT: canvas strokes are Loro-backed
37
37
38
-
The Kotlin app has full Loro CRDT integration (via JNI). The Flutter app currently stores strokes as plain JSON strings to atomic-server. Loro integration is the biggest remaining gap — it needs to be added as a Rust dependency and exposed through `flutter_rust_bridge` for proper offline-first CRDT sync and persistent history.
38
+
Phase A of [`canvas-undo-consolidation.md`](../planning/canvas-undo-consolidation.md)
39
+
landed. Strokes live in a `LoroList<LoroMap>`; tap-undo / tap-redo go through
scrub uses `warmResourceHistory` / version checkout. This is **not** the
42
+
biggest remaining gap — do not add a second Loro integration.
43
+
44
+
Phase B is still open: the Dart `_allActions` stack exists to snapshot
45
+
discarded branches and the eraser path. Until that lands, do not delete
46
+
`HistoryAction` / `_replayActions`.
39
47
40
48
### Canvas Coordinate System
41
49
@@ -50,7 +58,11 @@ The Kotlin app has full Loro CRDT integration (via JNI). The Flutter app current
50
58
51
59
### History System
52
60
53
-
Uses sealed `HistoryAction` classes (`StrokeAdded`, `StrokesDeleted`, `StrokesReplaced`). Undo/redo works by reversing/replaying actions. The Kotlin app also has `DiscardedBranch` — when you undo and then draw, the discarded future is preserved as a branch you can restore. This is partially ported (model exists) but not fully wired up.
61
+
Tap-undo / redo and the undo-button scrub gesture are Loro. The sealed
- flutter_rust_bridge setup with atomic_lib bindings
95
108
- Login/auth screen
96
109
- Theme system (Material 3)
97
110
98
-
## What's Missing (~65%)
111
+
## What's Missing
99
112
100
113
### Critical (must-have for parity)
101
-
1.**Loro CRDT integration** — add loro crate to Rust, expose through bridge. Needed for offline-first sync, persistent history, and conflict resolution
114
+
1.**Phase B canvas undo** — drop the Dart action stack; keep discarded branches (see the canvas-undo plan)
0 commit comments