pub struct RelevanceMeta {
pub files: Vec<String>,
pub tools: Vec<String>,
pub error_classes: Vec<String>,
pub explicit_refs: Vec<usize>,
}Expand description
Per-entry syntactic relevance signals.
Parallel-array friendly: one RelevanceMeta per entry in
Session::messages. Lives in a
<session-id>.relevance.jsonl sidecar once wired into
Session::save (a future commit).
Fields§
§files: Vec<String>Path-like tokens found in the message’s text parts.
tools: Vec<String>Names of any ToolCall or ToolResult content parts.
error_classes: Vec<String>Short error-class tags surfaced by common error markers
(Error:, error[E, failed, panicked, Traceback).
explicit_refs: Vec<usize>Message indices this entry explicitly references (reserved for future N-back extraction; empty in Phase B v1).
Implementations§
Source§impl RelevanceMeta
impl RelevanceMeta
Sourcepub fn project_bucket(&self) -> Bucket
pub fn project_bucket(&self) -> Bucket
Project the relevance signals onto a coarse CADMAS-CTX bucket.
Heuristic (Phase B v1):
| Bucket field | Rule |
|---|---|
tool_use | Yes when Self::tools is non-empty |
dependency | Chained when ≥ 2 files, or any path has / |
difficulty | errors-per-entry ladder: 0 → Easy, 1–2 → Medium, ≥3 → Hard |
§Examples
use codetether_agent::session::relevance::{
Dependency, Difficulty, RelevanceMeta, ToolUse,
};
let meta = RelevanceMeta {
files: vec!["src/a.rs".into(), "tests/b.rs".into()],
tools: vec!["Shell".into()],
error_classes: vec!["Error:".into(), "panicked".into(), "failed".into()],
explicit_refs: Vec::new(),
};
let bucket = meta.project_bucket();
assert_eq!(bucket.tool_use, ToolUse::Yes);
assert_eq!(bucket.dependency, Dependency::Chained);
assert_eq!(bucket.difficulty, Difficulty::Hard);Trait Implementations§
Source§impl Clone for RelevanceMeta
impl Clone for RelevanceMeta
Source§fn clone(&self) -> RelevanceMeta
fn clone(&self) -> RelevanceMeta
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 RelevanceMeta
impl Debug for RelevanceMeta
Source§impl Default for RelevanceMeta
impl Default for RelevanceMeta
Source§fn default() -> RelevanceMeta
fn default() -> RelevanceMeta
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for RelevanceMeta
impl<'de> Deserialize<'de> for RelevanceMeta
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 RelevanceMeta
impl PartialEq for RelevanceMeta
Source§impl Serialize for RelevanceMeta
impl Serialize for RelevanceMeta
impl Eq for RelevanceMeta
impl StructuralPartialEq for RelevanceMeta
Auto Trait Implementations§
impl Freeze for RelevanceMeta
impl RefUnwindSafe for RelevanceMeta
impl Send for RelevanceMeta
impl Sync for RelevanceMeta
impl Unpin for RelevanceMeta
impl UnsafeUnpin for RelevanceMeta
impl UnwindSafe for RelevanceMeta
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