dsh-neotui 0.0.12 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/views.js +3 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-neotui",
3
- "version": "0.0.12",
3
+ "version": "0.0.13",
4
4
  "description": "Neo-TUI: mouse-driven terminal UI client for DeepSeek Harness (B-tier per dsh-tui-design.md)",
5
5
  "type": "module",
6
6
  "bin": { "dsh-neotui": "bin/dsh-tui.js" },
package/src/views.js CHANGED
@@ -851,11 +851,10 @@ export class ChatView extends Widget {
851
851
  // Expand/collapse changes the line count ABOVE the viewport, which would
852
852
  // leave scrollY pointing at unrelated content (the "chaotic" jump).
853
853
  // Anchor: after the rebuild, scroll so the clicked block's first line
854
- // sits at the top of the viewport. At the bottom the tail-follow snap
855
- // in setLines is the right behavior instead.
856
- const wasAtBottom = this.view.scrollY + this.view.h >= this.view.lines.length - 1;
854
+ // sits at the top of the viewport. This applies ALWAYS even at the
855
+ // bottom: the tail-follow snap would otherwise fling the clicked header
856
+ // out of view when a folded block re-expands.
857
857
  const reanchor = (match) => {
858
- if (wasAtBottom) return;
859
858
  let fallback = -1;
860
859
  for (let i = 0; i < this.lineMap.length; i++) {
861
860
  if (!match(this.lineMap[i])) continue;