Fix standalone Streams model module resolution

Merged
VA
3d ago
+15-2

The standalone Streams model target fails to compile after importing the production cursor through #[path]: nested modules resolve beside client/progress.rs instead of inside client/progress/, and the model assumes the full SDK crate namespace.

Use explicit nested paths and the enclosing module's Loom-backed Arc. Run the existing LATEST cursor model and its broken-generation negative control from the standalone target as well as the pool target. Ordinary cursor properties remain in the native library suite; instrumented concurrency models run inside loom::model.

Decisions

  • Three-file fix from main, independent of #710/#722 and their transport APIs. Reuse the production model without copying its implementation or adding exploration bounds.
  • Preserve the standalone target's missing-cfg compile error. The canonical model invocation remains RUSTFLAGS='--cfg acyclic_stream_loom' cargo test --manifest-path rust/crates/stream/models/Cargo.toml --test session_model.

Validation

One bb1 batch, log /home/var/log/buildbox/2026-10-16T175025638Z-445503.log:

  • Standalone Loom/property suite: 38 passed, 0.11 s, including the LATEST negative control.
  • Pool Loom/property suite: 22 passed, 0.91 s.
  • Native cursor properties: 3 passed, 0.004 s.
  • Windows stream check (local,http, lib/tests): passed, 12.26 s plus 165 s slot wait.
  • Windows standalone model-crate check (dedicated Loom cfg): passed, 4.54 s plus 30 s slot wait. The standalone package has test targets and no library target.

No runtime suite exceeds 10 seconds. Source resolution was the failing condition; the existing native and standalone targets now both compile the intended production cursor modules.


Summary by cubic

Fixes the standalone Streams model target so it compiles and runs the production cursor model. #[path] imports previously resolved nested modules beside client/progress.rs instead of inside client/progress/, and the model pulled Arc from the full SDK crate namespace.

  • Uses explicit nested paths and the enclosing module's Loom-backed Arc in progress/model.rs.
  • Adds two integration tests to session_model.rs that reuse the production cursor model: the LATEST case and a negative control that must panic on a fenced generation.
  • Gates progress/tests.rs behind cfg(test) excluding the acyclic_stream_loom cfg, so the native cursor property suite is unchanged.