diff --git a/Plugin/unraid/include/ai_chat.php b/Plugin/unraid/include/ai_chat.php index b7e489f..96c575d 100644 --- a/Plugin/unraid/include/ai_chat.php +++ b/Plugin/unraid/include/ai_chat.php @@ -209,8 +209,6 @@ function vv_ai_chat_assets(): void { /* Folded answers cap at a readable height with a hard bottom edge rather than a fade — a fade over a code block reads as a rendering fault. */ -.vv-ai-fold { max-height:420px; overflow:hidden; } -.vv-ai-more { display:block; margin:4px 0 2px; } .vv-ai-last { display:flex; gap:10px; padding:0 2px 4px; } .vv-ai-lnk { background:none; border:none; padding:0; font-size:10px; color:#4a4a4a; @@ -1002,9 +1000,6 @@ vv_ai_profiles_script(); } const node = el(h + ''); chatEl().appendChild(node); - // Measured after it is in the DOM — scrollHeight is 0 on a detached node, so a fold decided - // before appending would either never fire or fire on everything. - foldIfLong(node); // Obeys Follow like every other write. This was the one place that did not, and it was the // worst place for it: unticking the box to hold your place while an answer arrives, only to // be dragged to the bottom the instant it lands. @@ -1012,19 +1007,11 @@ vv_ai_profiles_script(); syncJump(); } - // A long answer buries the composer on a 15" panel, and the composer is where the next thing - // happens. Folded to a readable height with the control always visible — never hover-revealed, - // because the surfaces this runs on have no pointer near them. - const FOLD_PX = 420; - function foldIfLong(node) { - const body = node.querySelector('.vv-ai-body'); - if (!body || body.scrollHeight <= FOLD_PX) return; - body.classList.add('vv-ai-fold'); - body.insertAdjacentHTML('afterend', - ``); - } - + // Answers render in full. They used to fold at 420px behind a "Show the rest" control, on the + // reasoning that a long answer buries the composer on a 15" panel — true, but the cost was + // paid on every answer to save a scroll, and the fold hid the part of a long answer that is + // usually the point. Scrolling is cheaper than a click plus a scroll, and Follow already + // handles keeping your place while an answer arrives. function addError(msg) { const p = $('pending'); if (p) p.remove(); chatEl().appendChild(el(`