Skip to content

fix(carla): stamp status snapshots from the broadcast clock - #7755

Merged
kixelated merged 13 commits into
mainfrom
pullfrog/7691-carla-json-timestamp
Nov 4, 2026
Merged

kixelated merged 13 commits into
mainfrom
pullfrog/7691-carla-json-timestamp

Conversation

@pullfrog

@pullfrog pullfrog Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Problem

moq-dev/moq#7691 made every JSON write take a broadcast-clock timestamp and refuses an untimed JSON track. It missed the in-tree CARLA status publisher: demo/carla/sim/moq_carla_sim/publish.py still created the status track with moq.TrackInfo(compress=True) and called SnapshotProducer.update(payload) without a timestamp. So on main, just check fails at check carla (pyright reports the missing argument), and the worker, which installs the bindings from this checkout, would fail with TimestampMismatch at startup.

Approach

  • Give the status track timescale=1_000.
  • Stamp every StatusPublisher.publish with moq.media.CatalogProducer(broadcast).now(). That is the broadcast clock the bridge's video tracks are shifted onto, so status and video share one timeline.
  • Update the test stub's SnapshotProducer.update to take (value, timestamp) and add a CatalogProducer stub. A call that drops the timestamp now fails the tests instead of being hidden by the stub.

I searched the rest of the tree (Python, Go, Kotlin, Swift, Dart, C/C++, the interop clients, demos, and doc samples) for other JSON writers that #7691 left untimed. There are none: CARLA's status track was the only one. The JS @moq/json package has its own implementation, which #7691 did not change.

Impact

Checks

  • just carla check: pyright found 0 errors, pytest passed 169 tests, and the launcher, server, systemd, and bridge GPU script tests all passed.
  • ruff check and ruff format --check in demo/carla/sim: clean.

Review

  • Reviewer: Codex (quest review), gpt-6.1-sol, medium effort.
  • Head: aeac7c8, against origin/main at 7e4ed93.
  • Round 1 reported no findings.

(Written by Claude Opus 5.5)

kixelated and others added 12 commits November 2, 2026 23:21
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d-timestamp

# Conflicts:
#	dart/moq/MIGRATE.md
#	rs/moq-ffi/MIGRATE.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d-timestamp

# Conflicts:
#	cpp/moq/MIGRATE.md
#	dart/moq/MIGRATE.md
#	go/wrapper/MIGRATE.md
#	kt/moq/MIGRATE.md
#	py/moq-rs/MIGRATE.md
#	rs/moq-c/MIGRATE.md
#	rs/moq-ffi/MIGRATE.md
#	swift/MIGRATE.md
# Conflicts:
#	cpp/moq/MIGRATE.md
#	dart/moq/MIGRATE.md
#	go/wrapper/MIGRATE.md
#	kt/moq/MIGRATE.md
#	py/moq-rs/MIGRATE.md
#	rs/moq-ffi/MIGRATE.md
#	rs/moq-mux/src/json.rs
#	swift/MIGRATE.md
@kixelated
kixelated marked this pull request as ready for review November 3, 2026 23:19

@kixelated kixelated left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Automated review by review (OpenAI)

Reviewed head aeac7c8.

No actionable findings. The timed status track and broadcast-clock timestamp address the constructor and update mismatch introduced by #7691, and the test stub now requires the timestamp. Using the shared broadcast clock is the right direction for alignment with media.

Verification: GitHub-only static review of the CARLA change, binding contract, and tests. I did not run the checks or exercise CARLA.

@kixelated
kixelated added this pull request to the merge queue Nov 3, 2026
Merged via the queue into main with commit 2e96501 Nov 4, 2026
10 checks passed
@kixelated
kixelated deleted the pullfrog/7691-carla-json-timestamp branch November 4, 2026 00:11
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