Skip to content

Merge upstream 0.32.0a1 + fix data ingest in DimosApp wrapper#22

Merged
spomichter merged 516 commits into
mainfrom
sync/upstream-main
May 19, 2026
Merged

Merge upstream 0.32.0a1 + fix data ingest in DimosApp wrapper#22
spomichter merged 516 commits into
mainfrom
sync/upstream-main

Conversation

@leshy
Copy link
Copy Markdown

@leshy leshy commented May 19, 2026

Brings the viewer to upstream rerun 0.32.0a1 (e73c31296e) and fixes a regression in the DimosApp wrapper that blocked all data ingest.

DimosApp overrode ui/save/etc. but not eframe::App::logic. Stock re_viewer::App drains log_receivers in logic() (via receive_messages), so the default no-op ran and the SDK→viewer pipe accepted bytes that never reached the data store. Symptom: welcome screen + "Sender blocked" warnings on the bridge side.

Companion: dimensionalOS/dimos PR bumping rerun-sdk pin to ==0.32.0a1 to match the viewer protocol.

aedm and others added 30 commits March 27, 2026 17:21
### What

Closes RR-4229

Refactors:
- Removes `VisualizerSystem::data()`
- Moves it to `VisualizerExecutionOutput`

---------

Source-Ref: 1f5fb9eb27bf4d14a859106f97a791b99faab404
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…ie-breaking

Fixes draw order issues / z-fighting of coplanar textured rects (e.g.
two coplanar image planes below a pinhole, grid maps, ...).

Clusters textured opaque & transparent rects that share the same plane
in world space and overlap and forces them into a single sort group that
gets ordered via a secondary sort key (draw order) for the transparent
draw phase. This ensures deterministic ordering without z-fighting in
the renderer.

One small tradeoff of this change: outline masks are shared for a
cluster.

Adds a snapshot test with co-planar pinholes (opaque & transparent, with
varying draw order).

Closes: https://linear.app/rerun/issue/RR-4195
Closes: rerun-io#3163

Related: rerun-io#1025

Source-Ref: fed394e6806f1879c80c5ca9f3fd65348bd32842
…uplicated) windows dependencies

### Related

* upstream proper fix gfx-rs/wgpu#9325

### What

ci fix. And no more `windows` library duplications for the moment!

Source-Ref: 28de28cd16d6d2dc745d39e385a6f3b8abfa5fb4
Useful when anaylizing grafana logs from CLI

---------

Source-Ref: 02bc8d78a5dfd305288db2bf28848600f7dbef16
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
### Related

Closes RR-4036
[Notion
doc](https://www.notion.so/rerunio/Fetching-chunks-from-the-client-31fb24554b1980a7bfc3e21e94e1e9aa)

### What

`QueryDatasetRequest` now has a new parameter where the client can ask
to include direct (presigned) URLs to layer files in S3.
The SDK makes use of this, with a fallback to the old GRPC path. The
viewer is unaffected for now.

### Testing

- [X] AWS
- [x] Azure

### TODO
- [x] Azure permissions
- [x] Clean up debug env var, logs(?)

### Compatibility

This is a backwards-compatible change server-side, but
non-backwards-compatible on the SDK side. This means that an old SDK can
talk to a new server, but a new SDK is not guaranteed to work with an
old server that does not support the new parameter.
This is allowed under our backwards compat rules.

---------

Source-Ref: a6d629b9e6043fc69997aac53aa0e465478078fb
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
Co-authored-by: mailmindlin <mailmindlin@users.noreply.github.com>
### Related
rerun-io/reality#94

### What
Groups collision geometry entity paths by geometry type. This makes it
easier to toggle the different primitive types vs meshes in large
models.

Before:

https://github.com/user-attachments/assets/3e804002-14eb-4d65-b20b-052fdc9371f8

After:

https://github.com/user-attachments/assets/aa36c809-bad4-46b6-a9da-d0687fcc53c9

### Testing
Manually convert droid with this branch.

### Compatibility
This will change the entity path hierarchy for people using our default
urdf loader moving forward but the named frames won't change.

Source-Ref: f5658bf9ab2f0007dbebb677cc3d1ae6988d94d5
This lets us use Claude to, for instance, classify alerts and assign
them to incidents

Source-Ref: a3fb37f3005f1fa0b7b8335acc7ab5ce292ceedd
Source-Ref: b5831e0c94878bce72a1501dee77522b7e0cfb68
Merges main's run_with_app_wrapper refactor while preserving WebSocket-only
transport from this branch (no LCM dependency).

- Use rerun's run_with_app_wrapper for cleaner CLI handling
- WsPublisher now spawns its own tokio runtime thread (works without #[tokio::main])
- Inherits click-to-engage overlay and other UI improvements from main
- Bump version to 0.30.0-alpha.6
### What

When opening recordings through the context menu from the dataset view,
always open them in the background. This prevents the activate recording
from jumping around.

Source-Ref: 97956c87776ad557e91a7417899dd67eaa53730a
### Related

No active issue.

### What

It was discovered that `.` notation in dataset naming is causing the
table widget to not display these datasets. This PR resolves this issue.

### Testing

This has been tested against both datasets with hierarchy of names and
tables with similar naming. Both are accurately reproduced now.

### Compatibility

No expected compatibility issues.

---------

Source-Ref: 047cc99272a2bbc9b40ab6f309b5472b5d9d3deb
Co-authored-by: Andreas Reich <r_andreas2@web.de>
Co-authored-by: Gijs de Jong <14833076+oxkitsune@users.noreply.github.com>
### Related

* CI failures such as:
https://github.com/rerun-io/reality/actions/runs/23731745525/job/69128430648

### What

For the `unordered` variant of the test, which we run in CI, we exited
too early. The unordered branch of the check implicitly tests for
superfluous chunks.

Source-Ref: cee41104b39293eba9ab390799f706b94a205615
### Related

https://discord.com/channels/1062300748202921994/1075873257124810852/1488203192914280630

### What
I still don't really understand how this change happened the first time
but adding mypy at least should help prevent this in the future.
I've added this as another example why we should have someone paying
more attention to python.

Source-Ref: 41e104404cc94df3bb7e3a6da800f4c612db570b
### Related

* Part of RR-3967
* Part of RR-4182
* Part of RR-4204
* [x] Requires rerun-io#1295.

### What

This allows piping `Selectors` into anonymous functions. These functions
behave just as functions that were registered with the
`FunctionRegistry` but can't be serialized.

Source-Ref: 1183555584604813a8bb41546d5205e33d35118e
### What

Title.

### Review

Use `git diff -M10 HEAD~1..HEAD` for a nicer diff.

Source-Ref: 89f1f32c854bb6e970c1026bfc41fd68873e5029
These are for example GPS coordinates. Out of the available fields in
the Foxglove schema we can support:

* lat/lon (trivial)
* color (see new helper + test)

Since RGBA structs are quite common and we internally use packed ints, a
new `op::rgba_struct_to_uint32()` is added to `re_lenses`.

Adds also snapshot test with a minimal MCAP holding these two data
types.

Part of https://linear.app/rerun/issue/RR-3546

Source-Ref: 03067c4cd3d6b0d8d58a11b8d29693d4267e7212
Before, it was erasing **all** of the transformation to an
`DAffine::ZERO` **without** informing the user.

It's quite easy to accidentally have e.g. `[0, 0, 0, 0]` instead of `[0,
0, 0, 1]` - in that case we should ignore the rotation and log an error
once to inform the user, but not ignore other transform components like
the translation.

Fixes an issue I encountered with some datasets that have instance poses
for points with such invalid "zero" quaternions. This is arguably
imperfect data, but the viewer made it worse by implicitly collapsing
all points into the origin (ignoring the useful translation part), and
doing so without any explanation, which is super confusing.

### Related

Detected while testing rerun-io#937 (see comment there).

### Testing

Added new test case for this. Existing tests seem to be fine.

### Compatibility

Improvement for the invalid path that doesn't affect the existing happy
path.

---------

Source-Ref: 83c7d169cdaae182e52e71a65b58c3997a33374e
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
### What

Add support for the option `pose` field of point clouds. The pose
applied as an `InstancePoses3D` on the Rerun `PointCloud` entity, i.e.
an additional offset relative to the coordinate frame.

### Related

* Part of RR-3766
* Follow-up of rerun-io#728
* [x] Requires rerun-io#936
* [x] Requires rerun-io#1002

Source-Ref: 55728ce1dd0209dc147f4501002e78569c944105
### What

Our GitHub `on_push_docs.yml` action was taking ~6h and then being
cancelled by GitHub. This PR removes the generation of the index to
`docs.rs`, with the rationally that most Rust devs probably know to go
there directly.

If the latest release fails again, we need to cherry pick the changes
into `docs-latest`.

### Testing

Tested locally using:
```sh
pixi run meilisearch
pixi run search-index build
```

Source-Ref: ec83990488dc92fc7953e01e956c4f426e2a7395
### Related

* Closes RR-4238
* [x] Follow-up of rerun-io#1342

### What

Having the `Selector` own the `Runtime` was weird when piping one
`Selector` into the other.

Source-Ref: 3bb97ac8df12b1979f3b7fb31c7bf4d31f2d779f
### Related

* Contains all changes from rerun-io#12710.
* Contains all changes from rerun-io#12714.
* Supersedes rerun-io#12713.

### What

Sync PR. Includes upgraded `nightly` version for doc publishing workflow.

Source-Ref: f79063fc3bc37ef7600724f6476ed49b7ac832e3
### What

Add support for flat feature names in LeRobot datasets.

Source-Ref: 3ac4dadef90803fe871346e07c9cf68173410b05
This is the result of `ghat init` followed by moving a few workflows
over to it. Specifically:

- No unchecked checkboxes on PRs
- Label checks

I also took the time to simplify these workflows. They no longer use
`pixi`, because the runner image has enough tools to make them work.

For reviewers, the most important parts to look at are:
- `.github/ghat/workflows/*.ts`
- `.github/workflows/generated_*.yaml`
- Deleted `.yaml` files

Everything else is an implementation detail

Source-Ref: 8e3df16abfa8d5d5ce29d67cc7c564c279ab3a4e
### Related

* Closes RR-4261

### What

Flushes the recording in the `load_mcap` so all chunks make it into the
`.rrd` which is compared

Source-Ref: 61cc405b6f65ad77c68ed9cac870beb196e52e0e
This PR introduces a `max_height` method for modal windows, allowing the maximum height to be constrained, similar to the existing `max_width` setter. This adds more consistency to the API.

Source-Ref: 74a3028bded4e5ccfc59dd804f8def1115b12d98
### Related

- part of
https://linear.app/rerun/project/chunk-centric-processing-pipeline-and-lenses-apis-in-python-1cf386cd9cd3/overview

### What

First iteration in the `LazyChunkStream`:
- Python API as intended (but not feature complete)
- 3-part implementation of `LazyChunkStream`:
- mostly pure rust, mostly declarative/stateless pipeline description
(`stream.rs`)
- there are exception, the most glaring one being the python iterator
object, which can be one shot
  -  pyo3 adapter (`py_stream.rs`)
     - currently very thin + some python/rust utilities
- naive first take as an engine, likely to be heavily reworked/replaced
in future iterations (`engine.rs`)
- First draft of `RrdLoader`
- This is still very basic and a better "loader" abstraction is still
TODO.
- Currently only streaming (the RrdLoader will be indexed in the future)

### Testing

Added a bunch of e2e test for the new API surface.

Source-Ref: 3b5ebce76d540fd80ed5970239979dc507b3280e
Merges the list of supported decoders, lenses etc from `re_mcap` and
`re_data_loader`.

`foxglove` was missing from the CLI help (but still running with
defaults).

This is a bugfix. Improving the (internal/public) naming /
categorization of the decoders & lenses is out of scope for this PR.

Source-Ref: 2cbef56de7967cf6e57a300b3bf10b835f9180a6
### Related

* Part of RR-3967
* [x] Requires rerun-io#1342
* [x] Requires rerun-io#1386

### What

Transitions some of the more complicated selectors to the new
`pipe`-based approach.

Source-Ref: 639f923f9695c9db51fa16b7265ca7e9c962f02f
when only changing wgsl shader files we wouldn't run tests before.
That's bad!

Source-Ref: 2055816afa046a56407f4f35c74be0f04fd9497a
### Related
* Part of
https://linear.app/rerun/issue/RR-4074/usage-analytics-for-redap-queries

### What
We want to have analytics for what type of queries our customers do, and
what their experience is.
This PR takes the first steps:

* It adds an OTEL (OpenTelemetry) gRPC endpoint on the frontend
* It implements the
`opentelemetry.proto.collector.trace.v1.TraceService` gRPC service from
the official OTLP spec. Any OTLP-compatible client can talk to it.
* Received events are enriched with server-side context and forwarded to
both PostHog and Grafana
* `re_datafusion` collects analytics client-side and sends it to the
above endpoint
* Each connection gets its own `ConnectionAnalytics` tied to a specific
Rerun Cloud origin
* A single user query produces exactly **one** analytics event, sent
when the query completes
* Fetch stats (gRPC vs direct) are accumulated across partitions via
`PendingQueryAnalytics`

We do NOT collect any query analytics when connecting to the OSS server
(re_server). This analytics will ONLY be for Rerun Cloud Customers (at
least for now).

### What ends up in PostHog

#### Client-side OTLP → server OTEL ingest → PostHog + Grafana

One event per user query, fired when `PendingQueryAnalytics` drops (all
partitions done).

**From span attributes:**

| Property | Source |
| ------------------------------- |
---------------------------------------------- |
| `dataset_id` | The dataset being queried |
| `query_chunks` | Chunks matched by the query (subset of dataset)|
| `query_segments` | Segments involved in the query |
| `query_columns` | Columns in the query output schema |
| `query_entities` | Entity paths in the query request |
| `query_bytes` | Total bytes of queried chunks (from metadata) |
| `total_duration_us` | Full query lifecycle duration (µs) |
| `time_to_first_chunk_info_us` | Time to first `query_dataset` response
(µs) |
| `time_to_first_chunk_us` | Time to first result row returned to user
(µs) |
| `fetch_grpc_requests` | Number of gRPC fetch requests |
| `fetch_grpc_bytes` | Bytes fetched via gRPC |
| `fetch_direct_requests` | Number of direct HTTP fetch requests |
| `fetch_direct_bytes` | Bytes fetched via direct HTTP |

**From resource attributes (prefixed `client.`):**

| Property              | Source                                 |
| --------------------- | -------------------------------------- |
| `client.service.name` | `"rerun-viewer"`                       |
| `client.analytics_id` | `re_analytics` config (viewer user ID) |

**From server enrichment:**

| Property         | Source                            |
| ---------------- | --------------------------------- |
| `user_id`        | JWT `sub` claim                   |
| `trace_id`       | `x-request-trace-id` gRPC header  |
| `stack_name`     | Derived from `allowed_host`       |
| `org_id`         | `REDAP_WORKOS_ORG_ID`             |
| `stack_version`  | `exposed_version!()`              |
| `cloud_provider` | From config                       |
| `cloud_region`   | From config                       |
| `instance_id`    | From config                       |

* **`distinct_id`**: `user_id` or `"anonymous"`
* **`event` name**: `"cloud_query_dataset"`
* **Trace correlation**: `x-request-trace-id` header + OTLP span link

The client-side event also gets forwarded to Grafana (same OTLP
collector as all `tracing` spans) via `GrafanaForwarder`.

### Testing
None yet

### Compatibility
* Newer versions of the SDK will send off analytics to a missing
endpoint on older cloud
* Older versions of the SDK will be fine when working with a newer cloud

### TODO
* [x] Include the user-uuid from re_analytics
* [x] Include the trace-id
* [x] One event per user query (not separate query + fetch events)
* [x] Split fetch stats by gRPC vs direct
* [x] Time to first chunk (result row returned to user)

---------

Source-Ref: 91d718aad637b801287b6e38af68362352453990
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
emilk and others added 13 commits April 28, 2026 13:33
Source-Ref: dc55dd775f413ff3fc9b765faa9bbf72727755a4
### Related

* Flaky macOS CI:
https://github.com/rerun-io/reality/actions/runs/25008263059/job/73237002954#step:13

### What

Using `click_label` would called `run()` internally, which panics if the
UI doesn't converge.

In this test case, the closing of the selection panel might not be
converging (a global property) because the viewer might simultaneously
still be waiting (with spinner) for data to arrive in the central panel,
resulting in a race condition.

Source-Ref: ea5e4ab59dd016f605ba3b7aa3f2dacd98588eff
### Related

Closes [RR-4507](https://linear.app/rerun/issue/RR-4507)

### What

Fixes deserialization error for ROS message fields of "constant-only"
schemas.

Some user-defined ROS 2 enum message definitions may only contain
primitive-type constants (of same type) and no data field. We should use
that common primitive type in this special case, and fail if it's mixed
(impossible to parse).
```
int8 FOO = 0
int8 BAR = 1
```
Before, this got assigned a zero-byte length and failed during
deserialization.

### Testing

* add unit tests
* test with real world example (see ticket)

Source-Ref: d3b95d20b10dd02de1b975c57d8bc599dfcaa321
### Related

- Part of RR-4513.

### What

Only change is adding an if statement around traversing and checking
what entity paths are cleared.

For the 3d and 2d previews my frame-time goes from ~20 ms to 15.6 ms.

Source-Ref: 216afd1de3eecc725081e3a72ae29f3f89dd2143
### What

This improves error reporting around cancelled tasks, in particular when
a task is cancelled mid-processing.
Also surfaces a nicer error to the client in the python SDK.

Source-Ref: 871426e0cd353c980cac4bdbda2b434c87f2dbd1
### Related

External MCAP filter CLI: https://mcap.dev/guides/cli#usage

### What

Adds regex-based filter options to include or exclude channels whose
topics match the filters.
The option is available in the `rerun mcap convert` CLI and in the
Python binding `McapImporter` API.

Multiple include & exclude filters can be specified.

Allows to selectively convert only parts of an MCAP file without
requiring an intermediate file.

### Testing

* Unit tests for filter
* Tests with real data

---------

Source-Ref: 0a0a3f9b55ebdf9c526e97626cb458673877c4a6
Co-authored-by: Michael Grupp <michael@rerun.io>
Added when trying to understand dataloader perf

Source-Ref: 02778d6a143733556fad845e6d90386192d4ea6d
Extends the Python `UrdfTree` binding to allow wiring URDF chunks into
stream processing, e.g. together with the `McapReader()`.

**NOTE**: the `UrdfTree` is not in `rerun.experimental`, but I
explicitly marked this new method as experimental.

Closes: https://linear.app/rerun/issue/RR-4522

Source-Ref: bc7a975370b0490b389b76c163fd5e97d39879fc
3RTT -> 2RTT = less latency

Source-Ref: 0799a1b0c5981c4fa270bff1fb590e68d5363847
### What

Updates the changelog file to include 0.31.4 changes.

Source-Ref: 49c671d9ec51dc21209470f6e3246c98980f7d20
…lter

### Related

- part of
https://linear.app/rerun/project/py-chunk-chunk-centric-processing-pipeline-and-lenses-apis-in-python-1cf386cd9cd3

### What

Now you can do `stream.lenses(lenses, content="/my/entity")` to only
apply lenses to chunks with have a matching entity path.

### Testing

Ye

### Compatibility

Yes

Source-Ref: fb19382911204a0e8e380c13f525d66bf9916834
Migrates the plot rendering to happen within rerun using re_renderer.
This makes rendering plots a lot faster since it completely skips
tesselation (meaning more series can be shown without the viewer slowing
down).
This should also allow implementing custom visualizers for plots, by
extending the viewer.

---------

Source-Ref: 8c8275e0cbf62b298e4f7ee71f83740c06e30d51
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: lucasmerlin <8009393+lucasmerlin@users.noreply.github.com>
Co-authored-by: Andreas Reich <r_andreas2@web.de>
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Hi! Thanks for opening this pull request.

Because this is your first time contributing to this repository, make sure you've read our Contributor Guide and Code of Conduct.

leshy and others added 3 commits May 19, 2026 14:51
Targets the matching pypi `rerun-sdk==0.32.0a1` so the viewer protocol
lines up with what dimos can install.

Conflicts resolved (same shape as before):
  - commands/mod.rs: keep dimos re-exports (RerunArgs/AppWrapper/
    StartupOptionsPatch), add upstream's DownloadCommand, take upstream's
    `importers` feature-gate rename
  - commands/entrypoint.rs: take upstream's Option<String> memory_limit and
    PortArg port; keep `pub` on memory_limit/port; make `PortArg` and its
    `port()`/`is_auto()` accessors public for dimos/src/viewer.rs

API drift fixes in dimos's `run_impl_with_wrapper`:
  - add `Command::Download` match arm
  - rename `cfg(feature = "data_loaders")` → `cfg(feature = "importers")`
  - add `cors_allowed_origins: args.cors_allow_origin.clone()` to ServerOptions
  - update `SocketAddr::new(args.bind, args.port.port())`

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Use `egui::Area::anchor(RIGHT_BOTTOM, (-5, -5))` instead of `.default_pos()
+ .movable()` so the HUD stays pinned to the bottom-right on window resize
and survives across launches. Drops drag-movability, which the engaged/
disengaged HUD never needed. New area id (`dimos_keyboard_hud_br`) busts
the persisted bottom-left position from the previous default.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Default sense for a non-movable interactable `egui::Area` is `CLICK`-only,
so any click-with-mouse-motion (which is most clicks in practice) leaked
through to the spatial view's drag handler — the camera jittered for the
~1s the user held the button. Setting `.sense(Sense::click_and_drag())`
makes egui mark the pointer as consumed for both events.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Comment thread crates/store/re_redap_client/src/connection_registry.rs Dismissed
leshy and others added 4 commits May 19, 2026 14:52
Lockfile fell out of sync with Cargo.toml during the upstream merge; also
picks up patch bumps for rand 0.9.2→0.9.3 and thiserror 2.0.17→2.0.18
that cargo refreshed from registry.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
re_viewer::App drains log_receivers and ingests messages in
eframe::App::logic. DimosApp was overriding ui/save/clear_color/etc.
but not logic, so the default no-op ran instead and the inner App's
receive_messages call never fired. The viewer's gRPC pipe accepted
messages but they never reached the data store — the symptoms were
"Sender blocked" warnings on the SDK side, the connection
established, but the viewer stuck on the welcome screen with no
blueprint and no entities.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Stock rerun-cli does this and we forgot to. Without it, the viewer's
own `re_log::info/warn/error` calls produce no output, which made
debugging the data-flow bug significantly harder than it should have
been.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Brings the wrapper variant back to a near-1:1 copy of stock
start_native_viewer (delta: extra app_wrapper / startup_patch hooks
applied at the end). Restores the bits that had drifted during the
upstream merge:
  - apply args.memory_limit via app.app_options_mut().memory_limit
  - bring back the explanatory comments (text_log_rx, ctrl-c, etc.)
  - restore the "Rerun Viewer" wording in the Ctrl-C log line

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@leshy leshy force-pushed the sync/upstream-main branch from 5fd0b9e to 285e7dc Compare May 19, 2026 09:00
@leshy leshy changed the title Sync/upstream main, reposition teleop window Merge upstream 0.32.0a1 + fix data ingest in DimosApp wrapper May 19, 2026
leshy and others added 2 commits May 19, 2026 17:12
Align with the merged upstream rerun version so the wheel version
matches the rerun-sdk version dimos pins to.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Pulls in the published-but-unmerged 0.30.0a6.dev99 work (WebSocket
transport for click/teleop events, dimos-viewer-as-name-of-executable,
etc.) so the next published wheel is a proper superset of the
currently pinned dev99 instead of a parallel divergent line.

Version resolved to our 0.32.0a1 (we're past jeff's 0.30.0a6).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@spomichter spomichter merged commit 5e4e46c into main May 19, 2026
36 of 47 checks passed
@spomichter spomichter deleted the sync/upstream-main branch May 19, 2026 09:35
@leshy leshy mentioned this pull request May 19, 2026
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.