feat(core,fuse): queued ops name their node and folder by local id

Schema 39 adds pending_op.lid and parent_lid, backfilled from nodes. Every
op queued or retargeted gets both, and a create gets its row before it
is queued. The claim reads a parent's uid through parent_lid, and a
landing folder rewrites the ops made inside it by local id instead of by
its placeholder string. Ops queued against a row Drive listed follow it
when it is merged into the landing one.
This commit is contained in:
nvrl committed 2026-10-04 04:45:47 +02:00
1 parent f029e652a1
commit ae6650f7e0
7 files changed
+227 -33

No files matched your search

+3 -2
View File
@@ -11,8 +11,9 @@ scratch (user data in `staging/` and `recovery/` is never touched by this).
## [Unreleased]
Schema: **38**. The queue table is rebuilt so an id is never given out twice; queued changes
are kept. Queued changes get a column for the reason Drive refused them.
Schema: **39**. The queue table is rebuilt so an id is never given out twice; queued changes
are kept. Queued changes get a column for the reason Drive refused them, and name their file
and folder by local id as well as by Drive's id.
### Added
- **Sync issues.** A change Drive refuses because the storage is full, access was taken away,
+5
View File
@@ -30,6 +30,11 @@ Tracks `docs/MILESTONE-3.0.0.md`. Update it with every commit that moves a phase
cut.
2. **Planner and executor (§5.4, §5.5)**: ops keyed by local id; remove `mint_local_uid`,
`finish_create` and `adopt_real_uid`; a landing create sets `remote_uid` on its row.
- [x] Queued ops carry `lid` and `parent_lid` (schema 39). The claim reads the parent's uid
through `parent_lid`, and a landing folder rewrites the ops inside it by local id.
- [ ] The tree links by lid (`nodes.parent_lid`).
- [ ] No more placeholders: `nodes.uid` is `NULL` until a node lands.
- [ ] An executor that runs ops in dependency order, many at once.
3. **Speed (§7)**: run independent ops in parallel, batch trashes and moves; measure 1,000 files
and 100 folders on Wi-Fi against LAN (target: within 10 %).
- [x] The measurement: `a_thousand_files_drain_as_fast_on_wifi_as_on_lan` in `sim/daemon.rs`,