Struct ChannelForgeAdapter
pub struct ChannelForgeAdapter { /* private fields */ }Expand description
ForgeCommentAdapter over the daemon’s channel map: posts by driving the git
channel’s normal outbound path (Channel::send with an owner/repo#number
recipient — the same path an agent reply takes), so it is provider-agnostic
(GitHub / Gitea / Forgejo alike) and reuses chunking + auth as-is.
Unlike the fire-and-forget approval route adapter, this WAITS for the send
result. The timeout is a soft alert boundary: if the channel send is still in
flight at that point, the bridge joins it and returns the eventual result
instead of letting a public comment continue in the background while the SOP
takes on_failure. The sync->async bridge runs the send on a DEDICATED
thread with its own small runtime (see run_bridged_to_completion) rather
than spawning onto the host runtime: the capability executes while blocking a
host thread, and on a current-thread host context a task spawned back onto
that same runtime cannot be polled until the caller unblocks — a guaranteed
timeout (observed in the field before this design).
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ChannelForgeAdapter
impl !RefUnwindSafe for ChannelForgeAdapter
impl Send for ChannelForgeAdapter
impl Sync for ChannelForgeAdapter
impl Unpin for ChannelForgeAdapter
impl UnsafeUnpin for ChannelForgeAdapter
impl !UnwindSafe for ChannelForgeAdapter
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more