pub struct TaskLog { /* private fields */ }Expand description
Handle to a session’s task log file.
All writes append a single JSON line; reads return events in insertion order. The log is intentionally tiny and synchronous at the line level — one event per line, newline-terminated.
Implementations§
Source§impl TaskLog
impl TaskLog
Sourcepub fn for_session(session_id: &str) -> Result<Self>
pub fn for_session(session_id: &str) -> Result<Self>
Open (or lazily create) the log for the given session id.
Sourcepub async fn append(&self, event: &TaskEvent) -> Result<()>
pub async fn append(&self, event: &TaskEvent) -> Result<()>
Append a single event as a JSON line.
Sourcepub async fn read_all(&self) -> Result<Vec<TaskEvent>>
pub async fn read_all(&self) -> Result<Vec<TaskEvent>>
Read every event, skipping malformed lines.
Sourcepub fn read_all_blocking(&self) -> Result<Vec<TaskEvent>>
pub fn read_all_blocking(&self) -> Result<Vec<TaskEvent>>
Blocking read — suitable for sync contexts like system-prompt assembly, which runs on each turn and must not depend on a tokio runtime. The log is small (goal + open tasks), so this is cheap in practice.
Sourcepub fn append_blocking(&self, event: &TaskEvent) -> Result<()>
pub fn append_blocking(&self, event: &TaskEvent) -> Result<()>
Blocking append — used by the TUI slash-command handler which runs inside an async context but wants a single synchronous write.
Auto Trait Implementations§
impl Freeze for TaskLog
impl RefUnwindSafe for TaskLog
impl Send for TaskLog
impl Sync for TaskLog
impl Unpin for TaskLog
impl UnsafeUnpin for TaskLog
impl UnwindSafe for TaskLog
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> 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> 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