Persist section renumbering

This commit is contained in:
2026-07-25 21:30:29 +02:00
parent abcb468807
commit c45afd0981
24 changed files with 317 additions and 638 deletions
+12 -11
View File
@@ -220,17 +220,18 @@ After saving, the row becomes linked to the new project device.
## Undo / Redo
The editor's visible undo/redo stack remains session-local while renumber
operations are being migrated. Existing Circuit and CircuitDeviceRow cell
edits, standalone insertion/deletion, CircuitDeviceRow moves and Circuit
reorders already execute persistent project commands; their toolbar undo/redo
actions use the project-wide history endpoints. Applying a sorted view across
multiple sections is one atomic `circuit.reorder-sections` command and one undo
step. Insertions and generated move targets use client-generated stable UUIDs,
and undo restores the same ids from complete server snapshots. The tree
response supplies the optimistic `currentRevision`; obsolete direct field
PATCH, structure POST, move, reorder, Circuit and CircuitDeviceRow DELETE
routes are removed.
The editor's visible undo/redo stack remains session-local and is not yet
reconstructed after reload. All currently supported Circuit and
CircuitDeviceRow writes execute persistent project commands; their toolbar
undo/redo actions use the project-wide history endpoints. Applying a sorted
view across multiple sections is one atomic `circuit.reorder-sections` command
and one undo step. Explicit renumbering uses the collision-safe
`circuit.renumber-section` command and is never triggered implicitly.
Insertions and generated move targets use client-generated stable UUIDs, and
undo restores the same ids from complete server snapshots. The tree response
supplies the optimistic `currentRevision`; obsolete direct field PATCH,
structure POST, move, reorder, renumber, identifier-restore, Circuit and
CircuitDeviceRow DELETE routes are removed.
Reloading the page does not yet reconstruct the visible editor stack.
CircuitDeviceRow moves between existing circuits and moves that create one new
placeholder target circuit are persisted. The latter stores the complete empty