fix(refedit): objects created during the session join the block

REFCLOSE only wrote the temp copies made at REFEDIT entry back into
the block, so anything drawn (or pasted / offset) during the session
stayed behind in model space (#423). The session now captures a
handle watermark at entry; on close, every current-space entity
allocated at or above it joins the working set — Save folds it into
the block through the same inverse transform, Discard removes it.
Covers every creation path with no per-command hooks.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Hakan SevenandClaude Fable 5 committed 2026-07-21 11:13:47 +03:00
1 parent f03288f120
commit 554921c66f
2 files changed
+54 -5

No files matched your search

+6
View File
@@ -55,6 +55,12 @@ pub struct RefEditSession {
pub forward: acadrust::types::Transform,
/// World → block-local, applied on SAVE to bring edits back.
pub inverse: acadrust::types::Transform,
/// Handle watermark captured before the temp copies were created: every
/// entity allocated at or above it during the session (drawn, pasted,
/// offset, …) belongs to the working set, so Save folds it into the block
/// and Discard removes it (#423). Catches every creation path without
/// per-command hooks.
pub handle_watermark: u64,
}
// ── REFEDIT pick command ───────────────────────────────────────────────────