docs(changelog): add bug fix entries and remove screenshot section

This commit is contained in:
2026-02-15 21:44:07 +01:00
parent 5baed2ad08
commit ffc7beb0f2
2 changed files with 13 additions and 51 deletions
+13
View File
@@ -57,8 +57,21 @@ import BaseLayout from '../layouts/BaseLayout.astro';
<li><strong>Ollama Cloud support.</strong> Added support for Ollama Cloud. Requires an account at ollama.com.</li> <li><strong>Ollama Cloud support.</strong> Added support for Ollama Cloud. Requires an account at ollama.com.</li>
</ul> </ul>
</div> </div>
<div class="changes-section">
<h3 class="changes-title">
<span class="changes-icon">🐛</span>
Bug Fixes
</h3> </h3>
<ul class="changes-list"> <ul class="changes-list">
<li><strong>CodeMirror "Ranges must be added sorted" crash.</strong> Three extensions could add decorations in unsorted order causing CodeMirror to crash:
<ul style="margin-top: 0.5rem; margin-left: 1rem; list-style: disc;">
<li><code>diffDecorations.ts</code> — Sort was <code>(from, to)</code> but CodeMirror requires <code>(from, startSide, to)</code>. Fixed by tracking <code>startSide</code> on each decoration and sorting by <code>(from, startSide, to)</code>.</li>
<li><code>rainbowBrackets.ts</code> — Visible ranges expanded to line boundaries could overlap, causing duplicate/unsorted bracket decorations. Fixed by tracking <code>maxProcessed</code> to skip already-processed positions and sorting all brackets before adding.</li>
<li><code>indentGuides.ts</code> — Same overlapping visible ranges risk. Fixed with <code>maxProcessed</code> guard.</li>
</ul>
</li>
<li><strong>Chat becomes inert after UI reload.</strong> After a UI reload (e.g. crash recovery), the frontend's <code>loading</code> state was <code>false</code> even though the backend was still streaming. Added <code>get_chat_status</code> Tauri command that returns <code>true</code> if the backend is streaming. Frontend <code>init()</code> now calls <code>get_chat_status</code> and restores <code>loading = true</code> if the backend is still active. <em>Files: <code>chat.rs</code>, <code>lib.rs</code>, <code>useChat.ts</code></em></li>
<li><strong>Can't scroll to bottom after crash/reload.</strong> After reload, the scroll container starts at the top. The <code>isUserAtBottomRef</code> quickly becomes <code>false</code> from the scroll handler, so streaming auto-scroll stops working. Added an initial scroll-to-bottom effect that fires once when messages first load, ensuring the user sees the latest content and <code>isUserAtBottomRef</code> stays <code>true</code> for streaming auto-scroll. <em>Files: <code>ChatPanel.tsx</code></em></li>
<li>Fixed the Blade Terminal echo bug when the model is using the <code>run_command</code> tool call.</li> <li>Fixed the Blade Terminal echo bug when the model is using the <code>run_command</code> tool call.</li>
<li>Fixed <code>run_command</code> tool calls in AI Chat appearing above already run (or failed) commands instead of below them.</li> <li>Fixed <code>run_command</code> tool calls in AI Chat appearing above already run (or failed) commands instead of below them.</li>
<li>Fixed bug in the Ollama and Ollama Cloud implementation that resulted in errors.</li> <li>Fixed bug in the Ollama and Ollama Cloud implementation that resulted in errors.</li>
-51
View File
@@ -44,57 +44,6 @@ const version = pkg.version ?? "";
</div> </div>
</section> </section>
<!-- Screenshot Showcase Section -->
<!-- <section class="screenshot-showcase">
<div class="features-layout">
<div class="feature-primary showcase-card">
<div class="feature-num">00</div>
<div class="showcase-flex">
<div class="feature-content">
<h3>THE INTERFACE</h3>
<p>Native desktop app powered by Tauri v2. Clean, fast, and built for real development workflows. AI chat integrated seamlessly alongside your code.</p>
<div class="feature-tag">LIVE PREVIEW</div>
</div>
<div class="showcase-image-box" onclick="openModal()">
<img width="800" src="/screenshot-1.png" alt="Zaguán Blade editor interface" />
<div class="showcase-overlay">
<span>Click to expand</span>
</div>
</div>
</div>
</div>
</div>
</section> -->
<!-- Screenshot Modal -->
<!-- <div id="screenshot-modal" class="modal" onclick="closeModal(event)">
<div class="modal-content" onclick="event.stopPropagation()">
<span class="modal-close" onclick="closeModal()">&times;</span>
<img width="1200" src="/screenshot-1.png" alt="Zaguán Blade editor interface full size" />
</div>
</div> -->
<script is:inline>
function openModal() {
const modal = document.getElementById('screenshot-modal');
modal.classList.add('active');
document.body.style.overflow = 'hidden';
}
function closeModal(event) {
if (event && event.target !== event.currentTarget) return;
const modal = document.getElementById('screenshot-modal');
modal.classList.remove('active');
document.body.style.overflow = '';
}
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape') {
closeModal();
}
});
</script>
<!-- Features Section --> <!-- Features Section -->
<section id="features" class="features"> <section id="features" class="features">
<div class="features-header"> <div class="features-header">