Files
g3/g3-plan/completed_todo_2025-12-10_10-35-18.md
2025-12-10 11:29:10 +11:00

69 lines
2.8 KiB
Markdown

# Planner Mode UI Output Fixes
## Phase 1: Read and Understand Current Code
- [x] Read crates/g3-planner/src/llm.rs
- [x] Read crates/g3-planner/src/planner.rs
- [x] Read crates/g3-core/src/lib.rs (logs directory function)
## Phase 2: Fix Tool Call Display (Single Line Output)
- [x] Modify `PlannerUiWriter::print_tool_header()` in crates/g3-planner/src/llm.rs
- [x] Change implementation to use proper single-line formatting
- [x] Truncate args at char boundary (use char_indices)
- [x] Use `println!` with explicit single line format
- [x] Add flush after output
- [x] Fix import for std::io::Write
## Phase 3: Fix LLM Text Response Display
- [x] Modify `PlannerUiWriter::print_agent_response()` in crates/g3-planner/src/llm.rs
- [x] Change from `println!()` to `print!()` to avoid extra newlines
- [x] Keep the flush for real-time display
- [x] Ensure no carriage returns or status line clearing
## Phase 4: Fix Logs Directory Location
- [x] Debug where logs are actually being written
- [x] Add debug prints to verify G3_WORKSPACE_PATH is set
- [x] Add debug prints in get_logs_dir() to show what path is returned
- [x] Build succeeded - compilation verified
## Phase 5: Testing Instructions
The code has been successfully modified and compiled. To test:
1. **Test tool call display:**
```bash
cd /tmp
g3 --planning --codepath ~/RustroverProjects/g3
```
- Verify tool calls appear on single lines like:
`🔧 [1] read_file {"file_path":"/path/to/file"}`
- Verify NO extra blank lines between tool calls
2. **Test LLM text response:**
- Verify LLM explanatory text appears as contiguous, readable text
- Verify no text is overwritten or mangled
3. **Test logs directory:**
- Run: `rm -rf ~/RustroverProjects/g3/logs/*.log ~/RustroverProjects/g3/logs/*.txt`
- Run: `cd /tmp && g3 --planning --codepath ~/RustroverProjects/g3`
- Check debug output shows: `🔍 DEBUG: Set G3_WORKSPACE_PATH to: ...`
- Check: `ls ~/RustroverProjects/g3/logs/` - should contain log files
- Check: `ls /tmp/logs/` - should NOT exist or be empty
4. **After testing succeeds:**
- Remove debug print statements from:
- crates/g3-planner/src/planner.rs (2 debug prints)
- crates/g3-core/src/lib.rs (2 debug prints in get_logs_dir)
- Rebuild: `cargo build --release`
## Summary of Changes
### Files Modified:
1. **crates/g3-planner/src/llm.rs**
- Fixed `print_tool_header()`: Uses char_indices for safe truncation, always shows args
- Fixed `print_agent_response()`: Changed to `print!()` instead of `println!()`
- Added `use std::io::Write;` import
2. **crates/g3-planner/src/planner.rs**
- Added debug prints to verify G3_WORKSPACE_PATH is set (temporary)
3. **crates/g3-core/src/lib.rs**
- Added debug prints to get_logs_dir() (temporary)