pub enum DerivePolicy {
Legacy,
Reset {
threshold_tokens: usize,
},
Incremental {
budget_tokens: usize,
},
OracleReplay {
lookahead: usize,
},
}Expand description
Per-session derivation strategy selector.
Defaults to DerivePolicy::Legacy so existing code paths that do
not opt into a new policy get the Phase A behaviour unchanged.
Variants§
Legacy
Phase A clone + experimental + enforce_on_messages + pairing.
The historical pipeline.
Reset
Lu et al. (arXiv:2510.06727) reset-to-(prompt, summary).
When the request’s estimated token cost exceeds
threshold_tokens, replace everything older than the last user
turn with a single RLM-generated summary. The derived context for
the next provider call contains [summary, active_task_tail...]
so short continuation turns do not drop the task-defining prompt.
Fields
Incremental
Liu et al. (arXiv:2512.22087) incremental select-then-pack derivation.
Score every entry against the latest user turn’s
RelevanceMeta and
greedy-pack the highest-scoring set into budget_tokens. The
recent window is always retained; older entries are kept only
when their relevance to the active task is high.
Fields
OracleReplay
ClawVM replay oracle (Phase B step 22). Evaluation-only.
Given a recorded trace, picks representations with h-turn
future-demand lookahead to minimise fault count. Not suitable
for production — only for benchmarking online vs oracle gap.
Implementations§
Source§impl DerivePolicy
impl DerivePolicy
Sourcepub fn kind(&self) -> &'static str
pub fn kind(&self) -> &'static str
Human-readable short name for logs, journal entries, and telemetry.
§Examples
use codetether_agent::session::derive_policy::DerivePolicy;
assert_eq!(DerivePolicy::Legacy.kind(), "legacy");
assert_eq!(
DerivePolicy::Reset { threshold_tokens: 0 }.kind(),
"reset",
);Trait Implementations§
Source§impl Clone for DerivePolicy
impl Clone for DerivePolicy
Source§fn clone(&self) -> DerivePolicy
fn clone(&self) -> DerivePolicy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DerivePolicy
impl Debug for DerivePolicy
Source§impl Default for DerivePolicy
impl Default for DerivePolicy
Source§impl<'de> Deserialize<'de> for DerivePolicy
impl<'de> Deserialize<'de> for DerivePolicy
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for DerivePolicy
impl Serialize for DerivePolicy
impl Copy for DerivePolicy
Auto Trait Implementations§
impl Freeze for DerivePolicy
impl RefUnwindSafe for DerivePolicy
impl Send for DerivePolicy
impl Sync for DerivePolicy
impl Unpin for DerivePolicy
impl UnsafeUnpin for DerivePolicy
impl UnwindSafe for DerivePolicy
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<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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