You've already forked zblade.dev
feat(changelog): add v0.2.0 bug fixes and screenshot showcase
This commit is contained in:
@@ -20,6 +20,43 @@ import BaseLayout from '../layouts/BaseLayout.astro';
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<!-- v0.2.0 Section -->
|
||||
<section class="changelog-section">
|
||||
<div class="container">
|
||||
<div class="version-card">
|
||||
<div class="version-header">
|
||||
<div class="version-info">
|
||||
<h2 class="version-number">v0.2.0</h2>
|
||||
<span class="version-date">TBD</span>
|
||||
</div>
|
||||
<span class="version-badge badge-development">Development</span>
|
||||
</div>
|
||||
|
||||
<div class="version-content">
|
||||
<div class="changes-section">
|
||||
<h3 class="changes-title">
|
||||
<span class="changes-icon">🐛</span>
|
||||
Bug Fixes
|
||||
</h3>
|
||||
<ul class="changes-list">
|
||||
<li><strong>Diff view showing up on wrong lines.</strong> Fixed issue where diff view would appear on incorrect lines due to stale data in the editor. Added proper cleanup and state invalidation when editor content changes. <em>Files: <code>DiffView.tsx</code>, <code>EditorPane.tsx</code></em></li>
|
||||
<li><strong>Model selector sluggishness.</strong> Reduced avoidable work in the compact selector by memoizing derived lists and selected model. Removed delayed/smooth scroll on open (which can feel laggy) and switched to <code>requestAnimationFrame</code> + instant nearest scroll. <em>Files: <code>CompactModelSelector.tsx</code></em></li>
|
||||
<li><strong>History titles missing.</strong> Added a resilient fallback title strategy: use <code>conversation.title</code> if present, else use <code>preview</code>, else synthesize from last active timestamp (<code>Conversation X ago</code>). <em>Files: <code>HistoryTab.tsx</code></em></li>
|
||||
<li><strong>Natural chat autoscroll + user can interrupt with wheel.</strong> Reworked autoscroll to use the real scroll container ref. Split behavior: scroll on new message if user is at bottom / just sent; during streaming, only keep following while user remains at bottom. This preserves manual scroll interruption. <em>Files: <code>ChatPanel.tsx</code></em></li>
|
||||
<li><strong>Settings save feels slow.</strong> Changed save flow to close modal immediately, then persist in background. Keeps UI responsive while save + model refresh continue asynchronously. <em>Files: <code>SettingsModal.tsx</code></em></li>
|
||||
<li><strong>General snappiness + launch flicker.</strong> Removed duplicate no-tab editor rendering path that could cause visual churn. Tightened startup flow to show window after first frame and fade out loading overlay immediately (no extra nested delays). <em>Files: <code>Layout.tsx</code>, <code>main.tsx</code></em></li>
|
||||
<li><strong>Modernized title bar buttons.</strong> Updated window controls to compact rounded buttons with tighter spacing and better active feedback. <em>Files: <code>TitleBar.tsx</code></em></li>
|
||||
<li><strong>Terminal too close to sidebar shadow.</strong> Increased left padding in terminal content area. <em>Files: <code>TerminalPane.tsx</code></em></li>
|
||||
<li><strong>Fixed crash in read_file_range on out-of-bounds slice.</strong> Added bounds clamping to prevent panic when requesting lines beyond EOF (e.g., start_line: 350 on a 259-line file). Now returns safe empty output for extreme or inverted ranges instead of crashing.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- v0.1.2 Section -->
|
||||
<section class="changelog-section">
|
||||
<div class="container">
|
||||
@@ -639,4 +676,92 @@ import BaseLayout from '../layouts/BaseLayout.astro';
|
||||
font-size: 1.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
/* Screenshot Showcase */
|
||||
.screenshot-showcase {
|
||||
padding: var(--space-2xl) 0;
|
||||
background: var(--color-bg-secondary);
|
||||
border-top: 1px solid var(--color-border);
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.showcase-header {
|
||||
text-align: center;
|
||||
margin-bottom: var(--space-xl);
|
||||
}
|
||||
|
||||
.showcase-label {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 0.875rem;
|
||||
color: var(--color-accent);
|
||||
letter-spacing: 0.1em;
|
||||
margin-bottom: var(--space-sm);
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.showcase-title {
|
||||
font-size: clamp(1.75rem, 4vw, 2.5rem);
|
||||
font-weight: 900;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: -0.02em;
|
||||
color: var(--color-text);
|
||||
margin-bottom: var(--space-sm);
|
||||
}
|
||||
|
||||
.showcase-subtitle {
|
||||
font-size: 1rem;
|
||||
color: var(--color-text-secondary);
|
||||
line-height: 1.6;
|
||||
max-width: 600px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.showcase-grid {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.showcase-item {
|
||||
width: 100%;
|
||||
max-width: 1200px;
|
||||
}
|
||||
|
||||
.showcase-image-wrapper {
|
||||
position: relative;
|
||||
border-radius: var(--radius-lg);
|
||||
overflow: hidden;
|
||||
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
|
||||
border: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
.showcase-image {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
max-width: 1400px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.showcase-caption {
|
||||
padding: var(--space-md) var(--space-lg);
|
||||
font-family: var(--font-mono);
|
||||
font-size: 0.85rem;
|
||||
color: var(--color-text-secondary);
|
||||
background: var(--color-bg);
|
||||
border-top: 1px solid var(--color-border);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.screenshot-showcase {
|
||||
padding: var(--space-lg) 0;
|
||||
}
|
||||
|
||||
.showcase-title {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.showcase-subtitle {
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user