pub struct EditionDefaults {
pub default_max_episode_steps: i64,
pub trial_index_option_key: &'static str,
pub driver_owned_reset_modes: &'static [AutoresetMode],
pub success_info_keys: &'static [&'static str],
pub conformance_warning_info_key: &'static str,
}Expand description
Fields§
§default_max_episode_steps: i64Per-episode step bound applied when the session sets no explicit
max_episode_steps and the runtime owns resets, so a broken termination
condition surfaces as a truncation instead of hanging the run.
Not named in the prose of docs/editions/2026.06.md, but observable in
the episode ledger the edition’s “Episode Accounting” section governs
(“When a sub-environment reports terminated or truncated, its episode
completes”), and pinned by the 05-default-truncation-bound fingerprint.
Mirrored by _MAX_STEPS_PER_EPISODE in
python/rlmesh/src/rlmesh/_models/_eval.py, which bounds the Python
Session loop identically. The two loops must agree, so an edition that
changes this row changes that constant in the same commit.
trial_index_option_key: &'static strThe single reserved ResetRequest.options key this edition defines.
docs/editions/2026.06.md, Reset: “This edition reserves exactly one,
trial_index: the 0-based ordinal of the episode being started, an
integer for a single lane or a per-lane list aligned to the lanes being
reset.”
driver_owned_reset_modes: &'static [AutoresetMode]The autoreset modes under which the RUNTIME owns lane restarts (it issues
the Resets), as opposed to the env rolling its own lanes.
docs/editions/2026.06.md, Episode Accounting: “AUTORESET_MODE_DISABLED:
only an explicit Reset restarts a lane.” and “AUTORESET_MODE_UNSPECIFIED:
treated as DISABLED.”
success_info_keys: &'static [&'static str]The final_info keys this edition reads an episode’s task outcome from,
in priority order: the first key present decides, and a numeric value
coerces by truthiness (1/1.0 → true).
Which keys count is an edition-governed promise — an env that reports its
outcome under one of these names has it surface on the episode summary
and the EpisodeCompleted event; one that uses any other name does not.
Gymnasium’s is_success leads; success and task_success follow as the
two spellings the ecosystem also ships.
The Python Session loop reads the outcome from the same info with
bool(info[key]) (_success_from_info in
python/rlmesh/src/rlmesh/_models/_eval.py); an edition that changes this
row revisits that sweep in the same commit.
conformance_warning_info_key: &'static strThe reserved info-map key a served env reports value-conformance warnings under.
docs/editions/2026.06.md, Value Conformance: “A conformance warning is
reported in-band under the reserved rlmesh.conformance.warning key in
the info map returned by reset and step, at most once per (deviation
kind, value path) per session.”
Trait Implementations§
Source§impl Clone for EditionDefaults
impl Clone for EditionDefaults
impl Copy for EditionDefaults
Source§impl Debug for EditionDefaults
impl Debug for EditionDefaults
impl Eq for EditionDefaults
Source§impl PartialEq for EditionDefaults
impl PartialEq for EditionDefaults
impl StructuralPartialEq for EditionDefaults
Auto Trait Implementations§
impl Freeze for EditionDefaults
impl RefUnwindSafe for EditionDefaults
impl Send for EditionDefaults
impl Sync for EditionDefaults
impl Unpin for EditionDefaults
impl UnsafeUnpin for EditionDefaults
impl UnwindSafe for EditionDefaults
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request