Repository navigation
refactor!: three changes that cannot be made after the 1.0 freeze (1.0.0) - #239
Merged
Merged
Conversation
facontidavide
force-pushed
the
refactor/pre-1.0-freeze-touchups
branch
from
November 14, 2026 08:31
2df1090 to
4b28e6b
Compare
…0.0) timestamp_ns everywhere. ImageAnnotations, FrameTransform, SceneEntity and SceneEntityDeletion named their timestamp member `timestamp`; the other sixteen builtin structs use `timestamp_ns`. The four are renamed, with their field-table names, so scripts read the same name on every type. The wire format is unchanged. Dialog tree events tolerate other top-level keys. DialogPluginTyped dispatched a tree event only when its key was the sole key of the event. That check is compiled into each plugin, so no later host could have added a key to the envelope. A valid tree key now claims the event and other keys are ignored, as beside a file-picker result. Two tree keys or a malformed payload still fail closed. PJ_widget_value_t names its padding. The 4 bytes after `kind` become `uint32_t flags` with no bit defined; size, alignment and offsets are unchanged and pinned by the layout sentinels. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
… 1.0 layout The bridge entry said no official parser returns Log or DepthImage. That stopped being true when parser_ros 1.4.0 landed. It is built against the 1.0 layout, and both new members sit at the tail of their structs. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
facontidavide
force-pushed
the
refactor/pre-1.0-freeze-touchups
branch
from
November 14, 2026 08:46
4b28e6b to
1f6a2f2
Compare
This was referenced Nov 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three small changes, each of which needs a 2.0 once 1.0.0 is tagged.
1.
timestamp_nson every builtin struct (source break)Four builtin structs named their timestamp member
timestamp; the other sixteen usetimestamp_ns.sdk::ImageAnnotationstimestamptimestamp_nssdk::FrameTransformtimestamptimestamp_nssdk::SceneEntitytimestamptimestamp_nssdk::SceneEntityDeletiontimestamptimestamp_nsThe field-table name changes with the member, so a script reads
timestamp_nson these types too. The wire format is unchanged: the proto field is stilltimestamp.Consumers: PlotJuggler and pj-official-plugins must rename their uses when they move to the next SDK pre-release. User scripts that read
.timestampon these four types must change as well.2. Dialog tree events tolerate other top-level keys
DialogPluginTypeddispatched a tree event only when its key was the sole top-level key of the event. That check is compiled into each plugin, so a later host could never have added a key to the envelope without every existing plugin dropping the event.Now a valid tree key claims the event and other keys are ignored, which is already the rule beside a file-picker result. Two tree keys, or a malformed tree payload, still fail closed. No host emits tree events yet, so nothing running changes.
docs/dialog-sdk-reference.mdrule 3 is updated to match.3.
PJ_widget_value_tnames its paddingThe 4 bytes of alignment padding after
kindbecomeuint32_t flags. No bit is defined. Size (96), alignment (8) and every offset are unchanged, and the layout sentinels now pinflagsat offset 12.A host built against 1.0 or later writes 0. A host built earlier leaves those bytes unset, and the header says so: a widget may read a bit only once a later SDK defines one together with a way to tell that the host sets it.
Verification
./build.sh --debug && ./test.sh: 107/107 under ASAN. Pre-commit clean.check_feature_floors.pypasses (158 surfaces)../test_sdk_install.sh(no packaging change).🤖 Generated with Claude Code