Skip to content

Add atomic insertion of transform batches - #2

Draft
TomCC7 wants to merge 1 commit into
masterfrom
bugfix/atomic-batch-insertion
Draft

TomCC7 wants to merge 1 commit into
masterfrom
bugfix/atomic-batch-insertion

Conversation

@TomCC7

@TomCC7 TomCC7 commented Oct 22, 2026

Copy link
Copy Markdown
Owner

A rejected multi-transform message can leave earlier insertions or retention evictions behind. Add Registry::add_transforms to stage a batch in private registry storage and commit it only when every insertion succeeds. No public Clone implementation or dependency is added.

DimOS needs this when applying one standard ROS TFMessage to its shared frame tree: dimensionalOS/dimos#4774 . An invalid packet must not partially update the graph. The operation needs sealed history and topology, so callers cannot implement rollback through the existing public API. Staging currently copies retained history.

The regression rejects a cyclic batch after an insertion would evict an older sample, then checks that the original sample and topology survive. It also verifies a valid batch composes correctly.

Validation: rustup run nightly tests/test_all.sh completed with GATE PASSED, including std/no_std/serde tests, clippy, formatting, rustdoc, examples, benchmark smoke checks and the three ARM targets with and without serde. Stable clippy with serde also passed. The packaged crate was verified with cargo package --locked.

A rejected multi-transform message must not leave earlier inserts or retention evictions behind. Stage the batch in private registry storage and commit only after every insertion succeeds, without exposing a public registry Clone implementation.

Assisted-by: Codex:gpt-6.1-sol
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant