feat!: deliver runtime v2 and world-first Live simulation - #476
feat!: deliver runtime v2 and world-first Live simulation#476jBernavaPrah wants to merge 7 commits into
Conversation
Signed-off-by: jbernavaprah <webjure@gmail.com>
Signed-off-by: jbernavaprah <webjure@gmail.com>
Signed-off-by: jbernavaprah <webjure@gmail.com>
Signed-off-by: jbernavaprah <webjure@gmail.com>
|
Follow-up corrections on this PR: transaction-owned host SIGTERM now uses orderly world cleanup and retains WorldStopped/Complete in native rollback proof; native parsing now depends directly on webots-proto-ast, removing unused JavaScript/template/resolver dependencies and their fast-float advisory chain; tracked-source policy, Rust 1.98 chunk-iteration lints, and profile-specific rustdoc have been corrected. Native package tests pass locally (76 + 4 + 11 + 3), all 17 policy rules pass, and strict rustdoc passes across the five explicit host/authoring profile combinations. Linux CI is rerunning. The existing Zenoh lz4_flex advisory is not claimed as resolved. Remaining native and published-artifact acceptance gates in the PR body still apply. |
Signed-off-by: jbernavaprah <webjure@gmail.com>
|
Linux CI follow-up: workspace policy and Clippy now pass. The renderer diagnostic identified missing libEGL.so.1 on the runner, rather than a version mismatch. The native renderer job now installs the runtime library set from the R2025a upstream installation script: https://github.com/cyberbotics/webots/blob/R2025a/scripts/install/linux_runtime_dependencies.sh. CI is rerunning with those prerequisites; no renderer pass is claimed yet. |
Signed-off-by: jbernavaprah <webjure@gmail.com>
Signed-off-by: jbernavaprah <webjure@gmail.com>
|
The cancelled long-running test jobs were still compiling participant-metadata fixture binaries, not stuck in runtime simulation. The all-feature job had already passed 604 core tests and the preceding integration suites before those cold fixture builds. I cancelled the already-failed run to inspect this, so the full suites remain unverified remotely, not failed assertions or successful runs. The new rerun includes the exact Mesa environment-notice handling; all asset warnings and errors remain fatal in the renderer proof. Latest local host library checks pass 77 tests plus the explicit native renderer probe, with Clippy warnings denied. |
Purpose
Deliver world-first Live simulation together with the supervisor-backed runtime bootstrap and monotonic scheduling foundation.
This is one breaking implementation train, not two independently releasable changes.
WorldBundleassets and provenance, shared geometry, and a complete robot simulation plan.StepEventprogress through existing bounded delivery lanes with transition-correlated monotonic timestamps.Important boundaries
Live supports Webots R2025a and native
REAL_TIMEonly.Physics progress is not execution time and never gates service or brain scheduling.
There is no accelerated mode, profile selector, participant acknowledgement, public advance endpoint, or Lockstep implementation.
Native controller binaries are not supported on musl or Linux aarch64 in this release.
OBJ support is a conservative robot-mesh subset; authored world meshes remain self-contained GLB.
The exported contract is breaking relative to 0.67.1 and requires 0.68.0 or later.
The existing managed 0.67.2 release proposal is not the release vehicle for this implementation as currently generated.
Do not publish a bootstrap-only intermediate train.
Validation
ae7affeaaac984e9d6ba7c0dcd38f85e27a6a8c4, including the Linux native renderer, full workspace tests, and canonical consumer-profile matrix.Local native evidence, not released-artifact acceptance
Using one coherent local owner checkout on macOS arm64 with R2025a and disposable robot-model copies with test brains:
Expired, no selected command, and appliedStopfor both motors.SupervisorLostwith complete cleanup.ControllerLost, retained memberControllerFault, and reported unavailable isolation as incomplete cleanup instead of claiming recovery.UnsupportedNativeMode, named the observedFastmode, retained terminal evidence, and removed native processes.Cleanup correctly recorded the missing controller stop acknowledgement after the fatal exit.
Host-discovered startup, paused import, sensor anchoring, orderly removal, park acknowledgement, authority loss, and terminal classification defects have regression tests and native reruns.
Still required before final acceptance
This PR remains a draft because the complete acceptance matrix is not yet proven.
The Mac became available for the native Fast-mode check, then locked again before final multi-robot visual acceptance.
An isolated stalled-output-drain test, pre-activation command rejection, cooperative controller-local fault, constrained-world pacing, and real multi-artifact compatibility cases still need explicit acceptance evidence beyond their deterministic coverage.
Suspending an execution router produced native sample-eviction evidence while physics continued, but also triggered supervisor loss and a session-close timeout, ending the world as
RemovalFailedwith complete native cleanup.That experiment is not represented as isolated controller-fault recovery or lossless-lane saturation.
Artifact inspection found shared Cargo target reuse between disposable test projects, so these runs are not claimed as unmodified-brain acceptance.
Their project compilation caches are now isolated before repeating that case.
The repeated compositional run now verifies the original no-op brain: its staged SHA-256 matches the fresh isolated build, neither slow-probe marker is present, q leaves the execution and world live, native REAL_TIME advancement succeeds, and confirmed world stop plus deferred robot cleanup complete successfully.
This is still a local-owner overlay, not published-artifact acceptance.
Review and merge this owner only under the normal human review and CI gates, then publish the complete breaking train.
The dependent CLI must refresh real dependency pins and lockfiles to that published owner and repeat the released workflow before consumer merge/publication and migration-repository retirement.