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
indicatifspinner 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:
console0.16
Release Workflow
- Reordered CI release jobs: Homebrew tap update now waits for
publish-releaseto 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
statsweekly 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