zot/internal/agent/modes
patriceckhart ec79818512 interactive: keep viewport anchored when streaming below
scrollOffset is measured from the bottom of the chat buffer, so when
the agent appends new lines while the user has scrolled up to read
history, the visible window slides down through the buffer and the
content the user was reading drifts off the top.

Track the previous chat line count and column width across redraws.
While the user is in free-scroll (scrollOffset > 0) and the terminal
hasn't been resized, bump scrollOffset by the chat-length delta so
the visible content stays pinned. Compensation is skipped on resize
(line counts aren't comparable across reflows) and when following
the tail (scrollOffset == 0), where new content should keep pushing
the viewport as before.
2026-04-27 09:42:44 +02:00
..
telegram feat(telegram): mirror tui prompts into telegram thread 2026-04-20 09:33:03 +02:00
btw_dialog.go fix(tui): blinking cursor in /btw, proper idle redraws, tighter status bar 2026-04-21 18:09:10 +02:00
changelog_dialog.go feat: changelog on update, full-width highlights, @ file picker docs 2026-04-25 11:24:09 +02:00
confirm_dialog.go fix(cli): load extensions in print and json modes too 2026-04-19 20:00:36 +02:00
dialog_frame.go fix(tui): cell-aware width math for dialog header rules + add /btw 2026-04-19 13:47:39 +02:00
ext_panel_dialog.go feat(ext): interactive extension panels + persistence 2026-04-22 08:53:21 +02:00
file_suggest.go feat(tui): @ file picker with directory navigation 2026-04-25 10:52:20 +02:00
help.go style: replace middle-dot separators with ascii hyphens 2026-04-21 17:39:08 +02:00
image_scroll_test.go fix(tui): stabilize inline image scrolling 2026-04-26 11:20:25 +02:00
interactive.go interactive: keep viewport anchored when streaming below 2026-04-27 09:42:44 +02:00
json.go feat(tui): live-stream file body during write/edit tool calls 2026-04-20 08:37:14 +02:00
jump_dialog.go style: replace middle-dot separators with ascii hyphens 2026-04-21 17:39:08 +02:00
login_dialog.go feat: provider labels in login/logout, graceful unknown provider fallback, model picker filtering 2026-04-25 19:25:51 +02:00
logout_dialog.go feat(auth,tui): dark login pages + /logout picker 2026-04-19 20:14:22 +02:00
model_dialog.go feat: provider labels in login/logout, graceful unknown provider fallback, model picker filtering 2026-04-25 19:25:51 +02:00
print.go initial commit 2026-04-17 20:36:38 +02:00
session_dialog.go feat: session rename with r key in /sessions 2026-04-25 20:01:05 +02:00
session_ops_dialog.go feat: changelog on update, full-width highlights, @ file picker docs 2026-04-25 11:24:09 +02:00
session_tree_dialog.go feat(session): /session fork + /session tree 2026-04-20 11:10:56 +02:00
skills_dialog.go feat: skills — reusable instructions discovered from SKILL.md files 2026-04-19 14:32:30 +02:00
slash_suggest.go fix: reorder /jail and /unjail together in slash catalog 2026-04-24 15:30:41 +02:00
spinner.go tweak(tui): stable spinner phrase per turn 2026-04-20 16:00:10 +02:00
telegram_dialog.go feat(tui): /telegram connect | disconnect | status 2026-04-20 09:18:04 +02:00
update_banner.go feat: custom models with baseUrl + domain migration to www.zot.sh 2026-04-24 14:00:31 +02:00
welcome.go tui: show binary version in the welcome banner for 1 second 2026-04-19 13:22:10 +02:00