PR #3744 fixed autocomplete ghost lines by introducing a local contentCursorRow initialized from this.cursorRow, but this.cursorRow tracks the content end (last line), not where the cursor actually ended up after rendering. This caused computeLineDiff to compute wrong movement deltas, making content clear and jump on every keystroke. Fix: add an instance field contentCursorRow that stores finalCursorRow after content rendering but before positionHardwareCursor moves the cursor for IME. This correctly separates three cursor concepts: - cursorRow: logical content end (viewport calculation) - contentCursorRow: post-render cursor position (movement baseline) - hardwareCursorRow: actual terminal cursor (may differ due to IME) Closes #3764 |
||
|---|---|---|
| .. | ||
| daemon | ||
| mcp-server | ||
| native | ||
| pi-agent-core | ||
| pi-ai | ||
| pi-coding-agent | ||
| pi-tui | ||
| rpc-client | ||