Add external object row assignment command

This commit is contained in:
2026-08-02 18:38:38 +02:00
parent dac19b093c
commit 1a7dd7fe03
10 changed files with 693 additions and 12 deletions
+7 -3
View File
@@ -287,9 +287,13 @@ version introduced by additive migration `0004`; it is distinct from the CSV
configuration JSON schema version.
Phase 14.3 migration `0005` adds `CircuitDeviceRow.manualQuantity`, backfills
existing rows from `quantity` and keeps `quantity` as the materialized total.
Normal manual row inserts and quantity edits update both values together. Future
external-object assignment commands must set the total to `manualQuantity` plus
the sum of linked objects' effective quantities in the same transaction.
Normal manual row inserts and quantity edits update both values together.
`external-object.update-row-assignment` atomically assigns external objects to
existing rows, moves them between existing rows or detaches them. It preserves
the manual quantity, validates the materialized total against every target
link, rejects project/board/category/room/selection-marker mixing and requires
explicitly listed confirmations for other planning-value conflicts. Its exact
inverse supports persistent Undo/Redo, and detach never deletes the row.
Confirmed initial state is written only through
`external-import.apply-initial`. The command rechecks configuration version,
original-byte SHA-256, parsed matrix, complete IFCGUID/source values, explicit