Fix Spinner Updates During Compaction
Resolves: #769
Screencast from 2025-05-06 15-39-23.webm
Solution
Implemented concurrent spinner updates using tokio::join! to properly show progress during compaction:
- Created an async block for spinner updates that runs alongside compaction
- Eliminated need for
SpinnerManager cloning
- Ensured proper cleanup after compaction completes
Changes
- Modified the compact command handler in
crates/forge_main/src/ui.rs
- Replaced task spawning with concurrent execution using
tokio::join!
- Added proper spinner cleanup after operation completes
Testing
The changes have been tested by:
- Running the
/compact command
- Verifying spinner updates every 500ms with elapsed time
- Confirming spinner stops properly after compaction completes
/claim #769