pub enum FallbackStrategy {
Rlm,
ChunkCompress,
Truncate,
}Expand description
Which fallback path the compaction pipeline selected.
Ordered from highest to lowest fidelity. Emitting this as structured
telemetry (rather than a free-form reason string) is what lets the
trace-driven self-tuning job group runs by strategy.
§Examples
use codetether_agent::session::FallbackStrategy;
assert_eq!(FallbackStrategy::Rlm.as_str(), "rlm");
assert!(FallbackStrategy::Truncate.is_terminal());
assert!(!FallbackStrategy::Rlm.is_terminal());Variants§
Rlm
Recursive Language Model summarisation (preferred path).
ChunkCompress
Deterministic chunk-based compression (when RLM is unavailable or exhausted without converging).
Truncate
Hard truncation to a fixed fraction of the budget. Terminal successful fallback — guarantees a valid request at the cost of silently dropping older context.
Implementations§
Source§impl FallbackStrategy
impl FallbackStrategy
Sourcepub const fn is_terminal(self) -> bool
pub const fn is_terminal(self) -> bool
Returns true when this strategy is the last resort before
CompactionFailure.
§Examples
use codetether_agent::session::FallbackStrategy;
assert!(FallbackStrategy::Truncate.is_terminal());
assert!(!FallbackStrategy::ChunkCompress.is_terminal());Trait Implementations§
Source§impl Clone for FallbackStrategy
impl Clone for FallbackStrategy
Source§fn clone(&self) -> FallbackStrategy
fn clone(&self) -> FallbackStrategy
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FallbackStrategy
impl Debug for FallbackStrategy
Source§impl<'de> Deserialize<'de> for FallbackStrategy
impl<'de> Deserialize<'de> for FallbackStrategy
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for FallbackStrategy
impl PartialEq for FallbackStrategy
Source§impl Serialize for FallbackStrategy
impl Serialize for FallbackStrategy
impl Copy for FallbackStrategy
impl Eq for FallbackStrategy
impl StructuralPartialEq for FallbackStrategy
Auto Trait Implementations§
impl Freeze for FallbackStrategy
impl RefUnwindSafe for FallbackStrategy
impl Send for FallbackStrategy
impl Sync for FallbackStrategy
impl Unpin for FallbackStrategy
impl UnsafeUnpin for FallbackStrategy
impl UnwindSafe for FallbackStrategy
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
Mutably borrows from an owned value. Read more
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
Compare self to
key and return true if they are equal.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§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>
Converts
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>
Converts
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>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more