Commit graph

145 commits

Author SHA1 Message Date
Ramnique Singh
63a1d4952b remove default exa server 2026-03-19 18:46:08 +05:30
arkml
affc9956f4
Livenote2 (#440)
* tasks execute immediately

* response formatting

* remove at rowbot block for single tasks

* show last ran time stamp
2026-03-19 01:34:10 +05:30
arkml
91030a5fca
Blocks (#439)
Added blocks to notes and updated assistant skill with this.

Image blocks — images with alt text and captions
Embed blocks — inline YouTube videos, Figma designs, or link cards
Chart blocks — line, bar, and pie charts from inline data or JSON files
Table blocks — styled data tables with named columns
2026-03-18 23:33:12 +05:30
tusharmagar
47ecc31988 Refactor ConnectorsPopover and SettingsDialog components to enhance account management features. Introduce AccountSettings and ConnectedAccountsSettings components for improved user experience in managing Rowboat account connections. Update billing information structure to include user email and ID. Implement dynamic tab visibility based on connection status in SettingsDialog. 2026-03-18 16:15:02 +05:30
tusharmagar
b066aa2b24 Update COMPOSIO_LOOKBACK_DAYS to 30 in sync_gmail.ts for extended sync period 2026-03-18 10:27:02 +05:30
Tushar
86818e7d21
Onboarding rebased (#426)
* Enhance onboarding modal to support multiple paths (Rowboat and BYOK). v1

* new onboarding flow

* Resolve stash merge conflicts: keep both inline-task and billing features

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Refactor billing information structure and API integration

* onboarding ui refactor

* Update import path for getAccessToken in billing.ts to reflect new directory structure

* Implement Gmail integration with Composio, enhancing onboarding flow to support Gmail connection status and API key management. Update ConnectorsPopover and SettingsDialog components to reflect new functionality, including dynamic tab visibility based on Rowboat connection status.

* use composio for calendar

* Enhance onboarding flow to support Google Calendar integration with Composio. Add state management for Google Calendar connection status, loading states, and connection handling. Update UI components to reflect Google Calendar connectivity in onboarding steps.

* Integrate Google Calendar sync functionality with Composio, enhancing the connection handling in composio-handler and oauth-handler. Update onboarding modal and connectors-popover to manage connection states and provide user feedback during the sync process. Implement Composio-based event syncing in sync_calendar.ts.

* Maximize window on ready-to-show event in main.ts to improve user experience by preventing blank screen on launch.

* Enhance WelcomeStep component in onboarding flow with new feature highlights and animations. Introduce icons for memory, connectivity, and privacy features. Update logo display with ambient glow effect and improve user feedback during connection states.

* Refactor voice availability check in App component to trigger on OAuth state changes. Update SidebarContentPanel to enhance billing display with improved styling and clearer upgrade call-to-action.

* Enhance OAuth event handling by notifying the renderer on provider disconnection. Update ConnectorsPopover to listen for OAuth state changes, and refine WelcomeStep component by removing feature highlights and adjusting layout for improved user experience.

* Implement Rowboat model settings in the settings dialog, including loading and saving model configurations based on Rowboat connection status. Enhance chat input component to manage Rowboat connection state and update model loading logic accordingly.

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Arjun <6592213+arkml@users.noreply.github.com>
2026-03-17 12:04:57 +05:30
Arjun
65e2b3b868 add Notes folder and move sync state out of knowledge
- Add knowledge/Notes/ folder created on startup, pinned to top of sidebar
- New Note/New Folder default to creating inside Notes/
- Move Granola sync state to ~/.rowboat/granola_sync_state.json
- Move Fireflies sync state to ~/.rowboat/fireflies_sync_state.json

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 23:26:28 +05:30
Arjun
09395a72c7 fix voice memos and move metadata to properties
- Fix duplicate tab bug via onNoteCreatedRef (stale closure in recorder.onstop)
- Fix transcription not showing: read file from disk and update editor directly
- Move voice memo type/recorded/path from body to YAML frontmatter (Properties)
- Update note creation agent to detect voice memos via frontmatter

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 23:26:28 +05:30
Arjun
7e15c1231d meetings and knowledge improvements
- Limit Granola sync to 30-day lookback period
- Move Granola and Fireflies sync dirs under knowledge/Meetings/
- Note creation agent links to source meeting notes in activity entries
- Note creation agent links to Gmail threads via web URL
- Add Meetings to note type definitions with recursive tag scanning
- Tagging agent extracts meeting metadata (date, source, attendees, title, topic)
- Clicking Knowledge with no tab open auto-opens Bases view

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 23:26:28 +05:30
Ramnique Singh
16b8975b00 auto-enable composio gmail sync when signed in 2026-03-16 11:01:22 +05:30
Arjun
dd361cb6bf fix composio API integration: URL construction, schema validation, and executeAction calls
- Fix URL construction in composioApiCall to preserve base path (/api/v3)
- Make ZToolkit and ZTool schema fields optional to match actual API responses
- Fix error detection to not trigger on successful responses with null error
- Fix executeAction calls in sync_gmail to use correct request object shape
- Use .successful instead of .success to match ZExecuteActionResponse schema

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 09:57:55 +05:30
Arjun
17bb625ab9 use composio for google optionally 2026-03-16 09:40:31 +05:30
Ramnique Singh
d2bb11f104 support managed composio 2026-03-15 23:39:48 +05:30
arkml
d0a48d7f51
Download notes (#423)
* download notes to md, pdf or docx
2026-03-14 21:29:53 +05:30
Ramnique Singh
1400e94c68 use managed exa+brave search when signed in 2026-03-13 23:10:20 +05:30
Ramnique Singh
7097cb064a use managed deepgram when signed in 2026-03-13 22:26:28 +05:30
Arjun
604d521ac2 added search button to chat input 2026-03-13 13:58:30 +05:30
Ramnique Singh
c845a7c40d support for managed tts 2026-03-13 12:42:25 +05:30
Arjun
779ad51f9f faster voice responses 2026-03-13 11:32:10 +05:30
Arjun
47d5118448 voice mode with TTS input/output 2026-03-13 10:39:05 +05:30
Arjun
d150294af1 app navigation 2026-03-13 10:39:05 +05:30
Ramnique Singh
8f1adfb6a5 fix api urls 2026-03-12 23:29:43 +05:30
Ramnique Singh
7311501343 use rowboat model gateway when logged in 2026-03-12 23:29:42 +05:30
Ramnique Singh
bd6ef0df28 wire up to local supabase oidc oauth 2026-03-12 23:29:20 +05:30
arkml
0be3e60560
Slack2 (#410)
* agent slack

* add to settings

* select workspace

* skill changes

* chain commands

* fix: Use Git Bash on Windows instead of hardcoded /bin/sh for command execution

* Refactor command execution shell handling

Replace the getShell() function with EXECUTION_SHELL for consistency in command execution. This change simplifies the code and aligns with the recent updates from the dev branch.

---------

Co-authored-by: Tushar Magar <tushmag@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 16:26:51 +05:30
Arjun
70635ad245 filter low quality emails 2026-03-10 15:39:10 +05:30
Arjun
bd4cc1145d inline task agent v1 2026-03-10 15:39:10 +05:30
Arjun
5131fb7f9e email labels 2026-03-10 15:39:10 +05:30
arkml
5a72ee06e1
Model switch (#413)
Add ability to switch models in chat
2026-03-02 21:42:46 +05:30
arkml
d7dc27a77e
History (#406)
* notes history
2026-02-27 20:22:54 +05:30
arkml
9df1bb6765
Config graph model (#411)
* config to specify graph model
2026-02-27 15:52:19 +05:30
Tushar
cccb7a8a65
Add plus button to prompt input for file and image attachments (#381)
* Add plus button to prompt input for file and image attachments

Co-authored-by: Cursor <cursoragent@cursor.com>

* Refactor chat message attachment handling and improve UI for attachments in chat input and sidebar

* fixed review comments

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Arjun <6592213+arkml@users.noreply.github.com>
2026-02-26 21:41:17 +05:30
tusharmagar
b5424d92f9 Add OS-aware runtime context for cross-platform shell execution
Detect the runtime platform and default shell at startup, inject
platform context into assistant instructions, and replace hardcoded
/bin/sh with the detected shell in command executors (cli + electron).

Made-with: Cursor
2026-02-26 11:42:43 +05:30
tusharmagar
a3e74931bf Implement enhanced wiki link rewriting and cache invalidation for renamed files 2026-02-24 20:47:51 +05:30
tusharmagar
34792e9c19 Enhance wiki link handling during file renaming 2026-02-24 20:20:52 +05:30
Arjun
53d48ab4f3 add session and always permission scopes for command execution
Session-scoped permissions are stored in the run log and rebuilt by
the state-builder, scoping them to a single run. Always-scoped
permissions persist to security.json. The backend derives command
names from the run log instead of receiving them from the frontend.
Uses regex-based command parsing with subshell/parenthesis support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 13:00:08 +05:30
Ramnique Singh
3ea416ac71 preserve refresh token if not reissued 2026-02-21 22:59:28 +05:30
Ramnique Singh
f5d585ac7e refactor build-oauth-url params 2026-02-21 22:59:16 +05:30
Ramnique Singh
a358ae7051 refactor oauth repo interface 2026-02-21 22:58:38 +05:30
Ramnique Singh
99e219b8a0
Merge pull request #352 from RinZ27/security-fixes-path-traversal-cmd-injection
fix path traversal and CLI command validation
2026-02-21 06:47:21 +05:30
RinZ27
dc42bceb77
security: fix command injection bypass in apps/x 2026-02-20 08:42:29 +07:00
Ramnique Singh
097efb39b1 fix tool-call / text part order in step-message builder 2026-02-18 22:08:59 +05:30
Ramnique Singh
737c3a75b4 send reasoning blocks back to llm 2026-02-18 22:08:59 +05:30
Ramnique Singh
d7b423404c add more debug logs for llm-events 2026-02-18 22:08:59 +05:30
Arjun
7329d0ad0d Add global search across knowledge and chats
Cmd+K / Ctrl+K opens a spotlight-style search dialog that searches
knowledge files (by content and filename) and chat history (by title
and message content). Results are grouped by type with filter toggles
preselected based on the active sidebar tab.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 18:08:24 +05:30
Arjun
5e2be4531a fix assistant instruction for output format 2026-02-18 17:43:23 +05:30
tusharmagar
f22087cbc3 fix: update userId in executeAction to a static value and improve error logging
- Changed userId from connectedAccountId to a static value 'rowboat-user'.
- Enhanced error logging to include detailed error information in JSON format.
2026-02-18 13:23:22 +05:30
Ramnique Singh
9d4f25895e oauth: persist client state, simplify IPC, and refactor
connected-accounts UI

This refactor simplifies OAuth storage/IPC and updates the Electron UI
to use the new client-facing contract. OAuth state is now persisted per
provider with tokens, optional clientId, and an error string. A new oauth:getState
IPC returns only client-facing state (connected + error), and the UI renders
error/reconnect flow based on that.

  Core changes
  - Replace OAuth config with providers { tokens, clientId?, error? }
    and add zod-based migration from legacy token maps.
  - Persist Google clientId after successful OAuth and keep error state
    in repo.
  - Surface provider errors from refresh/credential failures in Google +
    Fireflies.
  - Add oauth:getState in IPC, returning client-facing config; remove
    old status wiring in the UI.

  UI changes
  - Switch renderer status checks to oauth:getState and derive connected/error
    from config.
  - Add alert dialog for account issues and update copy to “Connected
    accounts”.
  - Provide “View connected accounts” CTA that opens the Connectors popover.
  - Add shadcn alert-dialog component and Radix dependency.

  Notes
  - Adds @radix-ui/react-alert-dialog and shadcn wrapper.
  - pnpm-lock updated accordingly.
2026-02-17 09:54:34 +05:30
Arjun
3f23191ecd feat: enhance presentation skill with templates, validation, and theming
- Add 35 slide layout types with design guidelines and selection heuristic
- Add theme selection (dark professional, light editorial, bold vibrant)
- Add visual consistency rules for unified color palettes across slides
- Add content planning workflow (hook, argument, evidence, CTA)
- Add post-generation validation (title overflow, bounds, fonts, theme)
- Add HTML template examples for 20 reference slide layouts
- Expand PDF export rules (no external images, no box-shadow)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 21:23:07 +05:30
tusharmagar
96e2625c6e Merge branch 'dev' of github.com:rowboatlabs/rowboat into dev 2026-02-16 16:41:09 +05:30