fix(streaming): reconnectable streams + UI/branding updates#16
Merged
Conversation
Troubleshooting and checklist docs are no longer needed.
Rename the display brand name across the frontend UI — page title, sidebar, welcome screens, onboarding wizard, and Electron error dialog. Internal package names, storage keys, and code identifiers unchanged.
Cowork is now the primary experience. Chat mode is hidden by default and only appears when explicitly enabled via a toggle in Settings > Sandbox, which also requires an E2B API key. - Default mode changed from "chat" to "cowork" (frontend + backend) - Added chat_enabled flag to SandboxConfig - Mode toggle in header hidden unless chat_enabled && e2b_api_key set - URL routing guards redirect /chat to /cowork when Chat unavailable - Onboarding wizard no longer shows E2B setup (legacy feature) - Settings sandbox tab: VM card first, Chat Mode card with toggle - Brand color updated to red gradient matching new logo
Swap the old favicon SVG for the new uniai.png brand logo in the sidebar header.
- WelcomeScreen: translate mounting/preparing status messages - OnboardingWizard, SettingsModal: remove Chinese from restart-detection regex - vmSetup: remove Chinese from restart regex and WSL status labels
| <meta charset="UTF-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <title>Generative Art Viewer</title> | ||
| <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.7.0/p5.min.js"></script> |
Check warning
Code scanning / CodeQL
Inclusion of functionality from an untrusted source Medium
| <meta charset="UTF-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <title>Generative Art Viewer</title> | ||
| <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.7.0/p5.min.js"></script> |
Check warning
Code scanning / CodeQL
Inclusion of functionality from an untrusted source Medium
Add 12 skill packages (data-insight-report, deep-research, doc, email-mail-master, excel-xlsx, find-skills, frontend-dev, mcp-builder, pdf, pptx-plus-linux, skill-creator, web-design-guidelines) to both examples/ and public/ directories. Update .gitignore to track these bundled skills.
…nnectable streams
Agent responses now run as background asyncio tasks that write SSE events
into a per-conversation buffer. This fixes the crash when users refresh
during streaming (RuntimeError: aclose() on running generator) and enables
reconnecting to in-flight streams after page refresh.
Key changes:
- Add StreamManager with ConversationStream (event buffer + fan-out)
- Extract _generate_events() from event_stream(), run via background task
- Add GET /api/chat/{id}/stream endpoint for reconnecting subscribers
- Frontend auto-reconnects to active streams on page load via subscribeToStream()
- Include server-side timestamps in SSE events for accurate thinking durations on replay
- Make STREAM_START idempotent to handle duplicate events during replay
665c11b to
58de927
Compare
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.
Summary
GET /streamendpoint.Test plan
RuntimeErrororCancelledErrorin backend logs on disconnect