pub struct DeltaDisplayFormatter { /* private fields */ }Expand description
Delta display formatter
Formats delta content for user display with consistent styling across all parsers.
Implementations§
Source§impl DeltaDisplayFormatter
impl DeltaDisplayFormatter
Sourcepub fn format_thinking(
&self,
content: &str,
prefix: &str,
colors: Colors,
terminal_mode: TerminalMode,
) -> String
pub fn format_thinking( &self, content: &str, prefix: &str, colors: Colors, terminal_mode: TerminalMode, ) -> String
Format thinking content specifically.
Thinking content has special formatting to distinguish it from regular text.
§Terminal Mode Behavior
TerminalMode::Full/TerminalMode::Basic: May include ANSI colors.TerminalMode::None: MUST be plain text (no ANSI sequences).
Sourcepub fn format_tool_input(
&self,
content: &str,
prefix: &str,
colors: Colors,
terminal_mode: TerminalMode,
) -> String
pub fn format_tool_input( &self, content: &str, prefix: &str, colors: Colors, terminal_mode: TerminalMode, ) -> String
Format tool input specifically
Tool input is shown with appropriate styling.
§Terminal Mode Behavior
-
Full mode (TTY): Renders the full
[prefix] └─ contentpattern for each delta, providing real-time feedback with clarity about which agent’s tool is being invoked. -
Basic/None modes (non-TTY): Suppresses per-delta output to prevent repeated prefixed lines in logs and CI output. Tool input is accumulated and rendered ONCE at completion boundaries (
message_stop).
§CCS Spam Prevention (Bug Fix)
This implementation prevents repeated “[ccs/glm]” and “[ccs/codex]” prefixed lines for tool input deltas in non-TTY modes. The fix is validated with comprehensive regression tests that simulate real-world streaming scenarios.
See comprehensive regression tests:
tests/integration_tests/ccs_delta_spam_systematic_reproduction.rs(NEW: systematic reproduction test)tests/integration_tests/ccs_all_delta_types_spam_reproduction.rs(comprehensive coverage)tests/integration_tests/ccs_nuclear_spam_test.rs(tool input with 500+ deltas)tests/integration_tests/ccs_streaming_spam_all_deltas.rs(all delta types including tool input)
§Future Enhancement
For streaming tool inputs with multiple deltas in Full mode, consider suppressing
the [prefix] on continuation lines to reduce visual noise:
- First tool input line:
[prefix] Tool: name - Continuation:
└─ more input(aligned, no prefix)
This would require tracking whether the prefix has been displayed for the current tool block, likely via the streaming session state.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DeltaDisplayFormatter
impl RefUnwindSafe for DeltaDisplayFormatter
impl Send for DeltaDisplayFormatter
impl Sync for DeltaDisplayFormatter
impl Unpin for DeltaDisplayFormatter
impl UnwindSafe for DeltaDisplayFormatter
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> 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