4fe5b8daea
The first message in a new conversation navigated to /c/:id, which remounted ChatScreen (two separate routes) and aborted the in-flight /stream-query fetch. Server-side that surfaced as asyncio.CancelledError, which isn't an Exception, so the except branch missed it and skipped the add_message_to_conversation save — the fully-streamed answer was never persisted. Backend: handle CancelledError and persist via a detached, shielded task so a disconnect at any point (navigation, tab close, network blip) still commits the answer. Frontend: serve "/" and "/c/:id" from a single catch-all ChatScreen route so first-message navigation no longer remounts and aborts the stream; derive the conversation id via useMatch instead of useParams. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Rsbuild project
Setup
Install the dependencies:
pnpm install
Get started
Start the dev server, and the app will be available at http://localhost:3000.
pnpm dev
Build the app for production:
pnpm build
Preview the production build locally:
pnpm preview
Learn more
To learn more about Rsbuild, check out the following resources:
- Rsbuild documentation - explore Rsbuild features and APIs.
- Rsbuild GitHub repository - your feedback and contributions are welcome!