Skip to content

First chat: one bound session/tab on open, empty-chat starters, narrow-layout fixes - #68

Merged
kngsly merged 3 commits into
mainfrom
fix/first-chat-polish
Nov 1, 2026
Merged

kngsly merged 3 commits into
mainfrom
fix/first-chat-polish

Conversation

@kngsly

@kngsly kngsly commented Nov 1, 2026

Copy link
Copy Markdown
Member

Fixes

  • Duplicate session/tab creation on project open. Opening a project from Get started created 4 sessions and 9 chat tabs and logged 6 "Orphaned session tabs recovered" warnings (reproduced in a production bundle, not a StrictMode artifact). The first-session and first-tab effects re-ran on every render while the create was in flight; both are now single-flight.
  • Chat tabs were never bound to their chat session. renderPanel matched tabs by t.id === panel.id, which never holds for backend tab ids, so onChatSessionCreated never found the tab: tabs stayed chatSessionId = null (orphan warnings) and prompts queued for a new chat were never delivered. Panels now record their backing tab and bind it whichever of tab/session finishes first.

UX

  • Empty chat shows three starters (Describe this project /schematic, Generate ideas /idea generate, Plan before editing /plan on). en + zh-CN, zh-TW regenerated.
  • Composer controls no longer overlap in narrow panels (container query on the composer; only the model chip shrinks).
  • Sidebar update CTA fits its footer; label is now "Restart to update".
  • "Generating ideas…" notice clears when the run settles instead of staying after a setup error.
  • Mock check_for_updates returns the full UpdateInfo shape (a production mock bundle crashed on policy.mandatory).

Verification

  • npx tsc --noEmit, npm run build, check:ui-invariants, check:i18n
  • npm run test:e2e: 566 passed, 3 skipped
  • New first-open-chat.spec.ts fails on main, passes here.
  • Visual check in the mocked renderer at 1280×800 and 960×640 (two chats side by side). Not yet checked in a tauri dev window.

…o its tab

Opening a project re-ran the first session/tab effects on every render while the create was in flight (4 sessions, 9 tabs, orphan warnings). Chat tabs were looked up by panel id, which never matches a backend tab id, so tabs never got their chat session and prompts queued for a new chat were dropped.
An empty chat offers Describe this project, Generate ideas and Plan before editing; each runs its slash command. Composer controls no longer overlap in narrow panels, the sidebar update CTA fits its footer ("Restart to update"), and the Generating ideas notice clears when the run settles.
@kngsly
kngsly force-pushed the fix/first-chat-polish branch from 5a52c27 to 51cbbcb Compare November 1, 2026 09:35
@kngsly
kngsly merged commit 9d97e74 into main Nov 1, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant