What's Changed
- fix(shell): prevent Rich default markdown styles from leaking background colors by @RealKai42 in #1739
- feat(tools): add totalLines and tail mode to ReadFile tool by @RealKai42 in #1740
- fix(todo): refactor SetTodoList to persist state and prevent tool call storms by @RealKai42 in #1742
- fix(shell): use git ls-files for @ file mention in large repos by @n-WN in #1588
- feat(logging): add diagnostic logging at key error paths and bundle logs in export by @RealKai42 in #1756
- feat(btw): add /btw side question command with unified input routing and dual-layer rendering by @RealKai42 in #1743
- feat(shell): add Ctrl+A directory scope toggle to /sessions picker by @n-WN in #1797
- fix(shell): exit gracefully with crash report when CWD is removed during session by @n-WN in #1622
- fix(shell): slash completion accept+submit in single Enter by @n-WN in #1793
- fix(shell): exclude empty current session from session picker by @n-WN in #1799
- fix(kosong): classify base openai.APIError as retryable for streaming disconnections by @RealKai42 in #1800
- fix(kosong): treat think-only model responses as incomplete response errors by @RealKai42 in #1801
- fix(auth): add cross-process file lock for multi-instance token refresh coordination by @n-WN in #1822
- fix(context): cap list_directory to 500 entries (GH-1809) by @n-WN in #1827
- feat(shell): add blocking update gate on startup by @RealKai42 in #1826
- docs: add changelog entry for list_directory tree rewrite by @n-WN in #1828
- chore: bump kimi-cli 1.31.0, kosong 0.49.0 by @RealKai42 in #1829
Full Changelog: 1.30.0...1.31.0