fix(desktop): startup flash, titlebar overlap, clickable file cards#146
Open
oratis wants to merge 3 commits into
Open
fix(desktop): startup flash, titlebar overlap, clickable file cards#146oratis wants to merge 3 commits into
oratis wants to merge 3 commits into
Conversation
…cards Three issues from live tauri:dev review: 1. Startup B&W "cat" flash — in dev, Vite injects index.css via JS, so the first paint was unstyled and the BrandMark <svg> (no explicit size, fill=currentColor) ballooned to a full-size black silhouette on white. Add render-blocking critical CSS to index.html (dark surface + pinned .mark box) so the first paint matches the app — no flash. 2. Transparent titlebar overlapped content (sidebar brand / chat-header pills / inspector head clipped). Add a 30px top inset on .app-shell so all columns clear the macOS traffic-light/title region (box-sizing is global border-box; the native title strip stays OS-draggable; no app-region drag so chat text stays selectable). 3. File outputs now get a clickable card. ToolCard gains an `onOpen` affordance; Repl passes it for any tool with a `file_path` (Read/Write/ Edit), wired through App → renderScreen → ReplScreen to fp.open — clicking loads the file into the right-side preview panel. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
When DeepSeek emits a Write/Edit/Read call with no arguments (typically output-token truncation on a large file before the args stream), the tool returned a cryptic "missing file_path". Now it explains the likely cause (ran out of output tokens — raise Effort / smaller file) or lists the keys that did arrive, which both helps the user and gives the model a usable hint. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sidebar sessions showed raw ids and had no management actions. - Titles: title a brand-new session from its first user message (mac-agent sessionSetTitle) so the sidebar shows a human label immediately instead of the id; the Rust read-time derive remains the fallback. - Archive / Delete: new session_delete + session_archive Rust commands (archive moves the .jsonl into sessions/archived/, excluded from the list; delete removes it — both guarded against path-traversal ids) + tauri-api wrappers. Sidebar rows reveal 🗄/🗑 on hover (delete confirms); removing the active session resets the chat via a new onSessionRemoved callback. - Freshness: the sidebar now polls (8s) + reloads on active-session change so titles and new sessions surface without a remount. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three issues from live
tauri:devreview:index.cssvia JS, so the first paint was unstyled and theBrandMark<svg>(no explicit size,fill=currentColor) ballooned to a full-size black silhouette on white. Added render-blocking critical CSS toindex.html(dark surface + pinned.markbox) so the first paint matches the app — no flash..app-shellso all columns clear the macOS traffic-light/title region. Chat text stays selectable (no shell-wideapp-region: drag); the native title strip stays draggable.ToolCardgains anonOpenaffordance; the Repl passes it for any tool with afile_path(Read/Write/Edit), wired App → renderScreen → ReplScreen →fp.open. Clicking loads the file into the right-side preview panel (the §3.11 panel from feat(desktop): right-side file panel — Source/Diff/History + tabs + resize (#11) #145).Typecheck + desktop build green.
🤖 Generated with Claude Code