Skip to content

Bump rerun-sdk to 0.32.0a1 to match viewer protocol#2165

Open
leshy wants to merge 1 commit into
mainfrom
chore/bump-rerun-sdk-0.32.0a1
Open

Bump rerun-sdk to 0.32.0a1 to match viewer protocol#2165
leshy wants to merge 1 commit into
mainfrom
chore/bump-rerun-sdk-0.32.0a1

Conversation

@leshy
Copy link
Copy Markdown
Contributor

@leshy leshy commented May 19, 2026

The current dimos-viewer pin (==0.30.0a6.dev99) tracks an upstream rerun build around the 0.32.0a1 tag, but rerun-sdk was pinned at >=0.20.0 and resolving to 0.29.2 on the bridge side. That protocol mismatch caused "Sender blocked" warnings and an empty viewer. Pinning to ==0.32.0a1 (published on pypi) makes the bridge speak the viewer's protocol.

Companion: dimensionalOS/dimos-viewer#22 — the matching viewer fixes.

Merge order

  1. Merge Merge upstream 0.32.0a1 + fix data ingest in DimosApp wrapper dimos-viewer#22
  2. Publish the next dimos-viewer wheel to pypi (0.30.0a6+dev per its pyproject)
  3. Merge this PR and in the same/follow-up commit, bump dimos-viewer pin to the freshly published version — otherwise the venv will still install the pre-merge dev99 wheel (which has the logic() ingest bug) and the rerun-sdk bump alone won't help.

dimos-viewer needs to be on a rerun release that matches the Python
SDK's protocol, otherwise the bridge can't speak to the viewer (we
saw "Sender blocked" warnings + empty viewer with the 0.29.2 SDK
against a 0.32-era viewer). The current dimos-viewer pin
(==0.30.0a6.dev99) is built from a fork tracking the 0.32.0a1
upstream tag, and rerun-sdk==0.32.0a1 is published on pypi.
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 19, 2026

Greptile Summary

This PR pins rerun-sdk from the loose >=0.20.0 (which was resolving to 0.29.2) to ==0.32.0a1 in both core dependencies and the visualization extra, and regenerates uv.lock accordingly.

  • The fix directly addresses the "Sender blocked" / empty-viewer issue caused by the protocol version mismatch between the bridge (rerun-sdk 0.29.2) and dimos-viewer (tracking the 0.32.0a1 protocol).
  • The lock file update is clean: wheel URLs, hashes, and platform entries for all four supported platforms are correctly replaced.

Confidence Score: 4/5

Safe to merge — the change is a targeted dependency version bump that resolves a known protocol incompatibility, with no logic changes.

The change is minimal and purposeful. The exact alpha pin (==0.32.0a1) may create downstream dependency-resolution friction for consumers of this library who also depend on rerun-sdk, but this is consistent with how dimos-viewer is already pinned in the same file. The lock file hashes match the declared version and platform wheels.

No files require special attention beyond the intentional alpha-version pin in pyproject.toml.

Important Files Changed

Filename Overview
pyproject.toml Pins rerun-sdk from >=0.20.0 to ==0.32.0a1 in both core dependencies and the visualization extra to align with the dimos-viewer protocol version.
uv.lock Lock file updated to reflect the rerun-sdk version change from 0.29.2 to 0.32.0a1, with correct wheel URLs and hashes for all platforms.

Sequence Diagram

sequenceDiagram
    participant Bridge as dimos bridge (rerun-sdk)
    participant Viewer as dimos-viewer (0.30.0a6.dev99)

    Note over Bridge,Viewer: Before — protocol mismatch
    Bridge->>Viewer: rerun-sdk 0.29.2 frames
    Viewer-->>Bridge: Sender blocked (protocol mismatch)
    Viewer-->>Bridge: Empty viewer

    Note over Bridge,Viewer: After — protocols aligned
    Bridge->>Viewer: rerun-sdk 0.32.0a1 frames
    Viewer-->>Bridge: Frames accepted
    Viewer-->>Bridge: Viewer renders correctly
Loading

Reviews (1): Last reviewed commit: "chore(deps): bump rerun-sdk to 0.32.0a1 ..." | Re-trigger Greptile

Comment thread pyproject.toml
Comment on lines +122 to 123
"rerun-sdk==0.32.0a1",
"dimos-viewer==0.30.0a6.dev99",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Pinning a published library's dependency to an exact pre-release version (==0.32.0a1) can cause hard resolution failures for downstream projects that also depend on rerun-sdk. Alpha pins in libraries are generally discouraged for this reason. A lower-bound with an upper-bound cap would preserve the protocol-compatibility intent while giving resolvers room to manoeuvre — though given the tight protocol pairing with the viewer, this may be a deliberate trade-off.

Suggested change
"rerun-sdk==0.32.0a1",
"dimos-viewer==0.30.0a6.dev99",
"rerun-sdk>=0.32.0a1,<0.33",
"dimos-viewer==0.30.0a6.dev99",

@codecov
Copy link
Copy Markdown

codecov Bot commented May 19, 2026

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
1828 1 1827 29
View the top 1 failed test(s) by shortest run time
dimos.visualization.rerun.test_viewer_integration.TestVersionCompatibility::test_versions_within_one_minor
Stack Traces | 0.004s run time
self = <dimos.visualization.rerun.test_viewer_integration.TestVersionCompatibility object at 0x7f677ad9dbe0>

    def test_versions_within_one_minor(self):
        """rerun-sdk and dimos-viewer must be within 1 minor version.
    
        dimos-viewer is built from a rerun fork, so they track the same
        release line. If they drift by more than one minor version, the
        gRPC protocol or internal APIs are likely incompatible.
        """
        import importlib.metadata
    
        import rerun
    
        sdk_version = rerun.__version__
        viewer_version = importlib.metadata.version("dimos-viewer")
    
        sdk_major, sdk_minor = _parse_version(sdk_version)
        viewer_major, viewer_minor = _parse_version(viewer_version)
    
        assert sdk_major == viewer_major, (
            f"Major version mismatch: rerun-sdk={sdk_version}, dimos-viewer={viewer_version}. "
            f"These are likely incompatible."
        )
>       assert abs(sdk_minor - viewer_minor) <= 1, (
            f"Version drift too large: rerun-sdk={sdk_version}, dimos-viewer={viewer_version}. "
            f"Update dimos-viewer to match rerun-sdk or vice versa."
        )
E       AssertionError: Version drift too large: rerun-sdk=0.32.0-alpha.1, dimos-viewer=0.30.0a6.dev99. Update dimos-viewer to match rerun-sdk or vice versa.
E       assert 2 <= 1
E        +  where 2 = abs((32 - 30))

importlib  = <module 'importlib' from '.../usr/lib/python3.12/importlib/__init__.py'>
rerun      = <module 'rerun' from '.../dimos/dimos/.venv/lib/python3.12.../rerun_sdk/rerun/__init__.py'>
sdk_major  = 0
sdk_minor  = 32
sdk_version = '0.32.0-alpha.1'
self       = <dimos.visualization.rerun.test_viewer_integration.TestVersionCompatibility object at 0x7f677ad9dbe0>
viewer_major = 0
viewer_minor = 30
viewer_version = '0.30.0a6.dev99'

.../visualization/rerun/test_viewer_integration.py:154: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

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