Skip to content

Release v0.13.3

UI Refactor - Custom Spinner Render Loop + Streaming Code Fence Cleanup

Replaces the indicatif-based spinner with a custom render loop using the console crate for proper terminal width handling. Also fixes streamed code fence artifacts and weekly stats bar alignment.

Changed

Spinner Rewrite

  • Replaced indicatif spinner with a custom async render loop (tokio::spawn)
  • Terminal width-aware message truncation via console::truncate_str()
  • Proper physical line calculation for reflow scenarios (terminal resize)
  • ANSI escape-based cleanup on finish/drop, eliminating ghost output artifacts
  • New dependency: console 0.16

Release Workflow

  • Reordered CI release jobs: Homebrew tap update now waits for publish-release to complete, ensuring assets are available before formula update

Fixed

Streaming Code Fence Cleanup

  • LLM-generated code fences (```) printed during streaming are now erased and replaced with the cleaned message after generation completes
  • New StreamingOutput::redisplay_if_cleaned() uses ANSI escape sequences to erase raw output and re-display the clean version
  • 6 unit tests added for line erasure calculation and redisplay behavior

Weekly Stats Bar Alignment

  • Fixed misaligned bar chart in stats weekly view: bars and counts now align properly via explicit padding calculation

Upgrade

bash
# Homebrew
brew upgrade gcop-rs

# Cargo
cargo install gcop-rs

# pip
pip install --upgrade gcop-rs