Feature/unified header multi pane#522
Open
gokulb20 wants to merge 22 commits intorowboatlabs:mainfrom
Open
Conversation
- Remove all Rowboat cloud sign-in (isSignedIn() always returns false) - Delete gateway.ts, billing.ts, rowboat.ts (cloud API clients) - Remove 'rowboat' from LlmProvider enum - Strip isSignedIn() branches from defaults, composio, voice, tools - Remove sign-in UI from sidebar, settings, connectors popover - Replace model settings with Ollama-only locked dropdown (GLM 5.1, Kimi K2.6, DeepSeek-v4-flash) - Skip onboarding welcome/model steps, go straight to Connect Accounts - Disable PostHog analytics (all tracking functions are no-ops) - Disable auto-updater (commented out with fork reference) - Add Bearer auth support for Ollama Cloud API key - Restore ToolsLibrarySettings component (was accidentally deleted) Net: -1124 lines of cloud-dependent code removed. App runs fully offline/self-hosted with user-provided API keys only. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
- Add Composio API key fixture (COMPOSIO_API_KEY env var, auto-seeded at startup) - Fully remove Fireflies integration (deleted sync_fireflies.ts, fireflies-client-factory.ts, OAuth provider, all UI references, prompt text, and sidebar labels — 20+ files) - Remove dead Rowboat-cloud code from sidebar-content.tsx (isRowboatConnected, useBilling, handleRowboatLogin, appUrl) - Fix settings dialog crash caused by defaulting to removed 'account' tab - Delete dead useBilling hook and AccountSettings component - Add React.memo on Message, ChatSidebar, SuggestedTopicsView, ChatInputWithMentions - Add IPC caching for model config reads (30s TTL) - Vite code splitting: settings and onboarding into separate chunks with React.lazy - Main process: only start Gmail/Calendar/Granola syncs if config files exist - Remove framer-motion from onboarding flow - Fix onboarding-modal.tsx AnimatePresence removal Net: -218 lines, +238 lines across 36 files Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…med export - Remove undefined hasUnconnectedNotes reference from connectors-popover.tsx - Remove dead isRowboatUnconnected and hasUnconnectedMeetingNotes variables - Fix React.lazy for OnboardingModal (named export needs .then wrapper) - Remove DevTools auto-open (debug only) Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…only Connect Accounts, Connectors popover, and Settings now only show Composio-based Gmail/Calendar connection. Direct Google OAuth (requiring Client ID/Secret) removed from all UI surfaces. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
- Add core Supermemory client (add, profile, search, testConnection) - Add IPC handlers for supermemory:is-configured/set-api-key/test-connection - Create MemorySettings component with API key input + test connection - Replace Connected Accounts tab with Memory tab in Settings - Skip onboarding to step 3 (completion) since Connect Accounts removed - Auto-seed SUPERMEMORY_API_KEY from environment at startup Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Decouple from Rowboat cloud: make app fully self-hosted/BYOK
…-fixture Remove Fireflies, add Composio key fixture, performance optimizations
Fix white screen crash + remove direct Google OAuth
Add Supermemory integration — Memory tab replaces Connected Accounts
- App title, product name, executable name → Assistant - Remove Connect Accounts button from sidebar (keep Settings + Help) - Replace all user-facing Rowboat strings with generic equivalents - Help popover: add GitHub repo + docs links, remove rowboatlabs TOS/privacy - Electron forge config: update app bundle ID, author, homepage - Onboarding: Welcome to Assistant, Get Started, generic sign-in text - Screen recording prompt, email block draft text: generic - Theme localStorage key: app-theme (was rowboat-theme) Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Rebrand: remove Rowboat branding, replace with generic Assistant
- New MeetingsView component with live transcription display - Record/Stop button in Meetings header starts/stops Deepgram transcription - Shows live transcript entries in real-time while recording - Recent meeting notes list (from knowledge/Meetings/) - Sidebar button: Mic icon, 'Meetings' label (was Suggested Topics) - Expose liveTranscript from useMeetingTranscription hook - Rename all suggestedTopics state → meetings throughout App.tsx - Chat sidebar stays interactive during recording Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Replace Suggested Topics with Meeting Notepad
- Add /workspace/ endpoint to local-sites server (serves any workspace file via http) - Route non-md/non-base files through embedded browser on navigate - HTML code blocks in chat get 'Open in browser' + in-line preview buttons - Browser auto-opens when clicking PDFs, images, HTML, SVG, CSV, etc. - Smooth fade-in animation on browser pane - Workspace file server with proper MIME types (PDF, CSV, MD, etc.) - Keep 'Run browser task' sidebar button as manual browser launcher Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Make browser the default file/artifact viewer
- Route HTML/image/PDF/SVG files through embedded browser via browser:newTab instead of shell:openPath, fixing bug where they opened externally - MD files now render as browser tabs via /md-view/<path> endpoint with styled HTML, dark/light mode, and Edit Source button - Add markdownToHtml() inline converter to local-sites server - browser:navigate replaced with browser:newTab for file/artifact opens so each gets its own tab - Change browser HOME_URL from google.com to localhost:3210/sites/homepage/ - Bootstrap default homepage dashboard in sites/homepage/index.html - Add rowboat://md-edit protocol for Edit Source button in MD view - Add browser:mdEdit IPC channel for md-edit actions Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
- Fix critical bug: browser:newTab IPC param was 'rawUrl' but handler uses
'args.url', causing all file opens to land on HOME_URL instead of the
actual file. Changed all callers to pass { url } not { rawUrl }
- Add Home button to sidebar above New Chat that opens browser to
https://gokul.vision (configurable in future)
- Import Home icon from lucide-react in sidebar-content.tsx
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
- Add /local-file?p=<path> endpoint to local-sites server that resolves absolute paths (including ~/) and serves files with viewable extensions - Fix SystemFileCard to detect workspace vs external paths: workspace-relative paths use /workspace/, external paths use /local-file - This fixes PDFs and other external files failing to open because /workspace/ couldn't serve paths like ~/Desktop/YZY.pdf - Security: /local-file only serves allowed extensions (.pdf, .html, .svg, .png, .jpg, etc.) and resolves ~ to home directory Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
- Changed Home button URL from gokul.vision to gokuls.vision - Fixed /local-file endpoint: path.join(os.homedir(), rawPath.slice(1)) incorrectly resolved ~/ paths because slice(1) includes leading /. Now strips leading slashes before joining with homedir. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
- Create vault.ts: config loader, folder resolution, default folder detection (workspace, Downloads, Desktop, Documents auto-detected on first boot) - Add /vault/:alias/* endpoint to local-sites server that resolves alias to physical folder and serves files with proper Content-Type - Add /vault.json endpoint returning current vault configuration - Auto-create ~/.rowboat/config/vault.json on startup with workspace plus auto-detected common folders - Update all file URLs from /workspace/ to /vault/workspace/ (workspace alias) - Keep /workspace/ and /local-file/ as backward-compatible endpoints - Path traversal protection: files can only be served from within their vault folder Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
If browser:newTab IPC call fails, fall back to shell:openPath instead of silently doing nothing. This ensures files always open somewhere even if the browser pane isn't available. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…wser z-index - Remove Meetings feature entirely (meetings-view.tsx deleted, all meeting code removed from App.tsx and sidebar) - Replace single LeftPane per tab with LeftPane[] array (leftPanesByTab) with sub-tab bar in left pane - Add sub-tab bar showing browser/markdown/bases/graph/task panes with close buttons - Unified full-width header spanning both left pane and chat sidebar - Remove ChatSidebar header (maximize button moved to unified header) - Add Globe browser toggle and Maximize button to unified header - Remove SquarePen new-chat button from header, remove Home/Run Browser Task from sidebar - Remove 🌐 prefix from tab titles - Fix browser WebContentsView appearing over search by hiding on isSearchOpen - Fix TabBar: remove max-width constraint, make scrollable, remove overflow-hidden from header - Fix temporal dead zone crash: syncPaneState uses ref for ensureFileTabForPath - Fix pane rendering: use activeLeftPane.path instead of selectedPath for null-safety - Fix ChatSidebar border: remove left border when maximized (full-width chat) - Remove old conditional buttons (expandedFrom restore, knowledge maximize, new-chat) - Wrap ContentHeader + split pane in vertical flex container for proper layout
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.
No description provided.