feat: typed sort keys for mcap/ulog tables + mosaico sort indicators#229
Merged
Conversation
Adopt dialog SDK 0.18.0 typed table cells so numeric columns sort numerically instead of lexicographically: - mcap: Msg Count keys its native uint64 (exact past 2^53). - ulog: Value/Timestamp cells keep their %g / %.2f rendering and key the full-precision double. Info keys are deliberately double, not native integers: the single Value column mixes integer- and float-typed fields and the host refuses mixed-class key columns, while a double is exact for every realistic info scalar. Info cells decode via the native variant with display parity preserved: array values show their first element (matching ulog_cpp's scalar accessor semantics), char goes through unsigned char, and unconvertible values stay keyless "N/A". - mosaico: declares its sort state via setTableSortIndicator so the host paints the header arrow; its onHeaderClicked sorting becomes reachable with the new host wiring. SDK_VERSION 0.17.0 -> 0.18.0. extern/plotjuggler_core moves to the v0.18.0 tag (scripts/bump_core_version.py 0.18.0) once the SDK release is tagged; until then the --check guard is expected to fail on this branch.
JFrog has no plotjuggler_sdk/0.18.0 binary yet, so CI's acquire-core falls back to building the SDK from this submodule — which pinned the 0.17.0 sources and would have packaged them under the 0.18.0 name, with no PJ::TableItem to compile against. Point it at the SDK feature commit; the landing step re-points it to the v0.18.0 release tag via scripts/bump_core_version.py once that tag exists.
GNERSIS
force-pushed
the
feat/table-item-typed-values
branch
from
July 17, 2026 15:43
9c02565 to
336c519
Compare
The branch pinned a pre-release 0.18.0 commit (5219944, the typed sort-keys feature only). The released tag additionally carries the table-delta feature and the PJ_DIALOG_PLUGIN MSVC legacy-preprocessor fix (plotjuggler_sdk#153). SDK_VERSION was already 0.18.0. Validated: fleet rebuilt against the tag, ctest 26/26 passed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
facontidavide
marked this pull request as ready for review
July 18, 2026 14:16
facontidavide
added a commit
that referenced
this pull request
Jul 18, 2026
…LUGIN (#232) Two leftovers from the #229/#230 merge race: - extern/plotjuggler_core -> 9def534, the RETAGGED v0.18.0 (#229 merged moments before the repin landed, so main pinned the pre-retag 7abaccb and missed the sort-key-aware table deltas, plotjuggler_sdk#154). SDK_VERSION already reads 0.18.0. - All 20 dialog registration sites back to the documented two-arg PJ_DIALOG_PLUGIN(Class, kManifest) form (+ docs). The WITH_MANIFEST spelling was a Windows workaround for the macro dispatch bug that v0.18.0 fixes (plotjuggler_sdk#153), so it is no longer needed now that main pins 0.18.0. Validated: fleet rebuilt against the retagged SDK (168/168), ctest 26/26 passed. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
4 tasks
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.
What
Adopts dialog SDK 0.18.0 typed table cells (PlotJuggler/plotjuggler_sdk#149) so numeric columns sort numerically instead of lexicographically, and makes Mosaico's header sorting visible. Host-side companion: PlotJuggler/PJ4#442.
Msg Countkeys its nativeuint64(exact past 2⁵³); display text unchanged.Value/Timestampcells keep their%g/%.2frendering and key the full-precisiondouble. Info keys are deliberatelydouble, not native integers: the single Value column mixes integer- and float-typed fields and the host refuses mixed-class key columns (no exact cross-class order exists), while a double is exact for every realistic info scalar. Info cells decode viaasNativeTypeVariant()with display parity preserved — array values show their first element (matchingulog_cpp's scalar accessor semantics),chargoes throughunsigned char, unconvertible values stay keyless"N/A".setTableSortIndicatorso the host paints the header arrow; its existingonHeaderClickedsorting becomes reachable with the new host wiring (no changes to the sort logic itself).Old hosts are unaffected: they never read
column_valuesand keep today's behavior.Draft — blocked on the SDK release
SDK_VERSIONis bumped to 0.18.0, butextern/plotjuggler_corecannot move until the SDK tag exists. Once PlotJuggler/plotjuggler_sdk#149 merges andv0.18.0is tagged, run:commit the submodule move onto this branch, and mark the PR ready. Until then
bump_core_version.py --check(the CI guard) is expected to fail here.