Commit Graph

35 Commits

Author SHA1 Message Date
Dani Akash
f35ac0ddd3 feat: new onboarding tools (#385)
* feat: new tools for breadcrumbs

* feat: setup scheduled task card

* feat: added dismiss cooldown

* chore: update prompt

* fix: support api key tool

* fix: prompt text to limit nudges

* fix: scheduled tasks card

* fix: update nudges prompt

* feat: skip nudges when user dismisses nudge

* fix: ensure nudges only show if they are not dismissed

* Revert "fix: ensure nudges only show if they are not dismissed"

This reverts commit d825254698829b8e9941aae7873bd440027d0c74.

* Revert "feat: skip nudges when user dismisses nudge"

This reverts commit 12b552b454d10ec4209b88668fc48681423ff6fc.

* Revert "fix: update nudges prompt"

This reverts commit 80b7520b953b4d3cbed2ed477b9e508e39938dca.

* feat: update agent with mcp when new mcp connection is added

* feat: created connect apps option as a blocking card system

* feat: schedule tasks passive without dismiss

* fix: nudges and prompt texts

* fix: biome lint errors

* fix: review comments

* fix: resolve comments

* fix: review comments

* fix: review comments

* fix: auto resolve state

* fix: eliminate the race where the async delete could resolve after the
new session

* feat: track ignored apps list

* fix: empty response text object on message reply

* feat: sync previously connected mcps

* feat: sync integrations with klavis

* feat: account for unauthenticated connections

* fix: analytics events

* fix: typescript issues

* fix: klavis client issue

* fix: invalid mcps causing entire responses from failing

* fix: prompt with card for integrations when the integration fails

* fix: prompt structure to support declined apps

* fix: refresh session on mcp changes
2026-03-10 17:44:10 +05:30
shivammittal274
b6b45404ee feat: add agent skills system with catalog, loader, and UI (#450)
* feat: add agent skills system with catalog, loader, and UI

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

* fix: return 500 for server errors in PUT/DELETE skill routes

Previously both handlers returned 404 for all errors, masking filesystem
failures (disk full, permission denied) as "not found". Now only
"not found" errors return 404; everything else returns 500.

* fix: align SKILL.md format with agentskills.io spec

- Move `enabled` and `version` into `metadata` field (spec only allows
  name, description, license, compatibility, metadata, allowed-tools)
- Frontmatter `name` now matches directory name (lowercase kebab-case)
- Human-readable name stored in `metadata.display-name`
- Add index signature to SkillMetadata for arbitrary string keys
- Validate frontmatter with type guard in getSkill (remove unsafe cast)
- updateSkill now preserves existing frontmatter fields (license, etc.)
- Tighten buildSkillMd param from Record<string, unknown> to SkillFrontmatter

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:24:05 +05:30
Felarof
60a4167a0e fix: update Kimi K2.5 context window from 128K to 256K (#440)
The Kimi K2.5 model supports a 256,000 token context window, not
128,000. Updated the provider template and model config to reflect
the correct value.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:58:52 -08:00
Nikhil
db3d38ae3c feat: gate Moonshot AI provider behind Kimi launch flag (#432)
* feat: gate Moonshot AI provider behind VITE_PUBLIC_KIMI_LAUNCH flag

Hide all Moonshot/Kimi provider UI when the launch flag is off:
- Filter moonshot from provider templates and type dropdown
- Gate Kimi flare badges in HubProviderRow
- Gate Kimi auto-insertion in LLM hub storage
- Add analytics events for Kimi API key configuration and guide clicks

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

* fix: allow editing existing moonshot providers when launch flag is off

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 14:21:34 -08:00
Nikhil
dafad1dd14 feat: add vertical tabs customization toggle (#430) 2026-03-06 12:44:10 -08:00
Nikhil
fb2ad66c91 feat: add search provider settings page (#429)
* feat: add search provider settings page with 5 engine options

Allow users to select their preferred search engine (Google, DuckDuckGo,
Bing, Brave Search, Yahoo) from a new settings page. The selected provider
drives search suggestions, search URL navigation, placeholder text, and
analytics tracking. Replaces all hardcoded Google references with the
stored preference. Adds Brave Search support, replacing Yandex.

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

* fix: add error handling for search provider storage writes

Write to storage before updating React state so UI never diverges from
persisted value on failure. Add try/catch in the settings page to show
an error toast if the write fails.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 12:08:39 -08:00
shivammittal274
9b0c484d06 fix: migrate stale 400k context window for browseros provider (#427)
* fix: migrate stale 400k context window for browseros provider

Existing installations cached the old 400k default in extension storage.
Always normalize the browseros provider's contextWindow to 200k on load,
matching the current default and preventing compaction from failing.

* fix: add browseros-auto model with 200k context length

* fix: setup migrations using the migrations api for context window size

---------

Co-authored-by: Dani Akash <DaniAkash@users.noreply.github.com>
2026-03-06 18:58:23 +05:30
Felarof
a21efd7325 feat(agent): update kimi launch provider branding 2026-03-04 18:16:42 -08:00
Felarof
609341a445 feat: add Kimi/Moonshot partnership branding with feature flag
## Summary
- Add `VITE_PUBLIC_KIMI_LAUNCH` feature flag controlling Kimi partnership branding
- BrowserOS provider card shows "Powered by Kimi K2.5 from Moonshot AI" badge and "Extended usage limits for the next 2 weeks!" when flag is on
- Moonshot/Kimi highlighted as "Recommended" in provider templates
- LLM Hub defaults to Kimi, ChatGPT, Claude, Gemini (with legacy defaults migration)
- Kimi hub row shows "Powered by Moonshot AI" flare
- Model selector locked to kimi-k2.5
- "How to get a Kimi API key" link in provider dialog
- Moonshot provider fully integrated across frontend and backend
2026-03-04 17:55:40 -08:00
Dani Akash
52f9dfb2e4 feat: soul and memory (#401)
* feat: install fuse.js

* feat: implement soul and basic memory system

* fix: memory recall

* fix: memory search pattern

* feat: create soul.md file progressively

* fix: soul vs core memory

* fix: provide a soul read tool

* feat: display soul on settings page

* feat: refresh soul document

* fix: chat mode avoids memory and soul tools

* fix: date construction on memory cleanup

* fix: atomicity of write operation

* chore: upgrade biome
2026-03-04 19:12:47 +05:30
Dani Akash
8f01c614dd feat: simplified onboarding (#381)
* feat: new onboarding flow

* feat: co-ordinate the sign in and import hints

* fix: ux on step one

* fix: make custom option friendlier

* feat: added required fields

* feat: setup step two redirection

* fix: remove copy url button

* feat: store profile info from onboarding

* feat: sync onboarding profile to api

* feat: show confetti when the onboarding completes

* fix: change the options in onboarding demo

* feat: setup missing analytics events

* fix: lint issues

* ci: fix typescript error

* fix: sign in hint
2026-03-02 12:59:02 +05:30
Dani Akash
1322638681 feat: update scheduled tasks to run in background (#359)
* feat: ensure scheduled tasks open in hidden tab

* fix: update scheduled task result in the UI

* fix: remove unnecessary useEffect

* fix: race condition with deleteSession
2026-02-24 18:31:00 +05:30
Nikhil
81a6d20fe8 feat: cdp tools (#353)
* feat: unified CDP + controller tools architecture

Merge CDP and controller tools into a single Browser abstraction with
backend-agnostic tool definitions. Replaces old separate cdp/controller
tool registries with unified registry, adds new tools (bookmarks,
tab-groups, history, keyboard, mouse, snapshot, content-markdown).

* feat: fix bookmarks and history, move browseros-info tool

* chore: bump server version

* fix: increase console truncate limit

* fix: previous conversation fix

* chore: bump server version

* fix: tab-group cdp

* fix: update types based on pdl

* fix: enable tab grouping

* fix: prompt enable tab grouping

* chore: bump server version
2026-02-23 07:28:45 -08:00
Felarof
1204697873 fix: minor text change 2026-02-20 07:45:00 -08:00
Felarof
2e1fc2e8f9 feat: add API key auth flow for Klavis MCP servers (#343)
* feat: update to support more klavis MCP servers

* fix: minor icon fix

* fix: normalize klavis mcp auth flow compatibility

* feat: add API key auth flow for Klavis MCP servers

Servers that use API key authentication (Stripe, Cloudflare, Brave
Search, Exa, Mem0, Resend, Mixpanel, PostHog, Postman, Zendesk,
Intercom) were failing with "Failed to add app" because the frontend
only handled OAuth flows. This adds the complete API key auth path:

- Backend: apiKeyUrls in StrataCreateResponse, submitApiKey() method,
  /servers/submit-api-key route
- Frontend: ApiKeyDialog component, useSubmitApiKey hook, ConnectMCP
  updated to show dialog for API-key servers instead of opening OAuth

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

* fix: remove broken success check in Klavis submitApiKey

The Klavis /mcp-server/instance/set-auth endpoint returns
{ message: "Authentication updated successfully." } without a
success field. Our code checked `data.success` which was always
undefined, causing API key auth to fail even when Klavis accepted
the key. The request() method already throws on non-2xx responses,
so the explicit check was redundant and incorrect.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 19:31:59 +05:30
Felarof
d775cadc17 feat: move connect apps into main sidebar (#344) 2026-02-19 18:35:31 -08:00
Felarof
5e4187a294 feat: collapse workflow generation tidbits in place (#341)
* fix: setup

* fix: compact workflow tidbits within streamed assistant parts

feat: collapse workflow tidbit status messages in graph chat

* Revert "fix: compact workflow tidbits within streamed assistant parts"

This reverts commit f5fa6d6b7a480dfc001ede6de7949f45c7777f37.

* fix: collapse workflow tidbit status messages in graph chat

Tidbit messages (jokes/status ending with ...) during workflow execution
now replace each other in place instead of stacking as separate chat
bubbles. Handles both consecutive tidbit messages and multiple tidbit
text parts within a single streamed message.

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

* fix: compact multi-line tidbits within a single text part

Tidbits arrive as text-deltas accumulated into a single text part
(e.g. "Generating workflow…\nReticulating splines…\n..."). The previous
fix only handled separate parts and separate messages but not multiple
tidbit lines within one part. Added compactTidbitLinesInPart to trim
multi-line tidbit text to just the last line.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:42:10 -08:00
Dani Akash
f4f92053f7 feat: enable posthog app connection support (#313)
* fix: dev scripts

* feat: setup posthog mcp

* feat: api auth UI

* chore: remove agent command

* feat: setup posthog connection

* fix: better error handling

* chore: refactor to use llm proxy

* feat: auto update authenticate status for posthog

* feat: integrate posthog to the app selector

* feat: update biome

* chore: update server restart

* chore: update codegen process

* feat: install klavis in server project

* feat: update posthog icon

* fix: updated review comment

* feat: address code reviews
2026-02-11 18:28:45 +05:30
Nikhil
9f3562eb85 feat: new tab tips section (#304)
* fix: tips

* fix: show tips only 1/5 times

* fix: guard against empty tips array in getRandomTip

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

* fix: biome exhaustive deps in SurveyChat voice effect

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 15:04:08 -08:00
Dani Akash
e7ab1b6b6d feat: scheduled tasks ux improvement (#300)
* feat: show scheduled tasks tab if job runs are empty

* chore: switch tabs after creating new tasks

* feat: provide option to cancel and retry scheduled tasks

* feat: provide option to retry and cancel jobs on the popups

* chore: fix minor race condition between window cleanup and job status
update
2026-02-04 16:37:12 +05:30
Dani Akash
7788695230 feat: added new events across agent (#297)
* chore: update claude.md

* feat: setup analytics for new tab page

* feat: added events to workflows

* feat: added analytics events for sidepanel

* chore: remove emoji from new label
2026-02-03 23:16:12 +05:30
Dani Akash
a6e2845778 feat: usability updates for the mcp page (#291)
* feat: added new mcp icons

* feat: added missing icons

* feat: change mcp text to apps

* feat: added custom app tip

* fix: airtable icon color

* feat: display unauthenticated apps in add mcp dialog

* feat: app selector for the Newtab search

* chore: update apps dropdown to use plug zap icon

* feat: setup app selector on sidepanel chat

* feat: compact apps selector dropdown

* fix: settings url in the app selector

* feat: added tooltip for app selector

* feat: added new label to the apps section
2026-02-03 18:20:33 +05:30
Nikhil
a6171ebbcf feat: new proxy port in mcp section (#292)
* feat: proxy port support + capabilities

* fix: wxt for dev mode with proxy
2026-02-02 10:35:09 -08:00
Dani Akash
24971a144a feat: improved scheduled task results (#290)
* feat: new scheduled task results

* feat: run missed tasks in scheduled tasks

* fix: added a missed job guard to prevent duplicate runs
2026-02-02 15:58:21 +05:30
Dani Akash
8639f2b20a feat: browseros API (#284)
* feat: created auth client

* feat: created login page for testing auth

* feat: setup logout page

* feat: setup graphql codegen

* feat: setup graphql + react query utils

* feat: setup queryprovider with localforage

* feat: created auth provider

* feat: update claude.md

* feat: documents for bulk conversation upload

* chore: install missing package

* fix: setup codegen to scan for .ts files

* chore: setup check conversation query

* feat: upload conversation by profileId

* chore: upload messages in batches

* feat: account for edge cases in conversation upload

* feat: delete uploaded conversations from localstorage

* feat: load conversation history from api

* feat: implement delete conversation using graphql

* feat: delete confirmation for conversation history

* fix: issue with clearing conversations after upload

* feat: implement pagination for graphql chat history

* chore: update CLAUDE.md

* chore: update claude.md

* feat: save conversations to server

* fix: handle streaming check on remote conversation save

* feat: restore conversation from graphql

* fix: timestamp issue on the chat history page

* feat: sync llm providers from background script

* feat: update llm providers on change via background script

* chore: added a try catch block

* feat: display incomplete providers in separate UI

* feat: delete provider on server when initiated by user

* feat: setup scheduled tasks storage to sync to graphql

* feat: auto run sync in background script

* fix: sync all keys of scheduled tasks based on updatedAt timestamp

* feat: added login dropdown on the sidebar

* feat: simplify sidenav header

* feat: update header design after login

* feat: setup profile page

* feat: added back button to profile page

* fix: scrollbar flash in profile page

* feat: finish login handshake

* feat: clear storage on logout

* fix: logout page style

* feat: added tooltip to encourage user to sign in

* feat: added back button to login page

* fix: upload logic for profile picture

* feat: account for profile name in sidebar branding

* chore: set file upload url from backend request

* chore: remove default placeholder from profile component

* chore: sync with main

* Revert "chore: sync with main"

This reverts commit 77e06b894ce30235d1bfa31c8e2699b34df423a5.

* Reapply "chore: sync with main"

This reverts commit dd921d97cc9794d1872e13689c881f68e4dfee47.

* chore: updated lock file

* fix: run codegen before build:ext

* fix: run codegen before build:gent

* fix: remove hardcoded localhost header in magic link

---------

Co-authored-by: Nikhil Sonti <nikhilsv92@gmail.com>
2026-01-30 23:33:57 +05:30
Dani Akash
89a53eec5e Revert "fix: show only last received loading message on workflow creation (#282)"
This reverts commit 5a74215af1.
2026-01-29 21:29:40 +05:30
Dani Akash
5a74215af1 fix: show only last received loading message on workflow creation (#282)
* chore: change placeholder text

* feat: simplify agent response to single line in workflow chat

* chore: fix deepscan issue

* chore: fix deepscan issue
2026-01-29 21:08:05 +05:30
Dani Akash
aeb1fb37e7 fix: remove default theme prompt in theme-provider 2026-01-23 21:58:00 +05:30
Dani Akash
36656f4c1d feat: delay the loading text in create graph (#268)
* feat: delay the loading text in create graph

* fix: biome version in biome.json
2026-01-22 11:21:44 +05:30
Dani Akash
6c68f6c9dd feat: added help icons to workflows and schedule pages (#261)
* feat: added help icons to workflows and schedule pages

* fix: lint issue
2026-01-21 23:24:31 +05:30
Dani Akash
8657146fb6 fix: reduce suspense boundary depth and improve background color speed (#259)
* fix: move suspense boundary closer to corresponding pages

* fix: pre-resolve the client via singleton to speed up the clientPromise

* feat: apply theme background faster with plain script

* chore: update biome version

* feat: make rpc client persist promise with useMemo and remove loading
text

* fix: replace dvh with vh

* fix: replace dvh with vh in create graph
2026-01-21 23:09:58 +05:30
Nikhil Sonti
a4bae1f0c7 feat: analytics for graph 2026-01-20 12:39:50 -08:00
Dani Akash
bf86fc2496 fix: added missing focus grid to the newtab page (#249) 2026-01-20 18:41:40 +05:30
Dani Akash
fa1c5040e9 feat: sidepanel ux improvements (#248)
* chore: update bun lock

* feat: created unified app component

* feat: created unified app directory

* feat: refactor all html files

* feat: setup sidebar

* feat: simplify theme toggle

* feat: setup collapsible sidebar

* feat: remove navigation label

* feat: use smoother animation for sidebar collapse

* fix: collapsible sidebar on theme toggle

* chore: hide sign in button

* chore: persist collapsible state

* feat: make sidebar logo larger

* feat: added personalize screen to navbar

* fix: personalize layout

* feat: added keyboard shortcuts to the sidebar

* fix: update sidebar navigation capabilities

* feat: separate sidebar for the settings page

* fix: settings sidebar layout

* feat: hide the footer links in the newtab page

* chore: slightly reduce the width of the scheduled tasks

* feat: persist scheduled task collapsible state

* fix: sidebar accent on light mode

* fix: isActive state for the sidebar navigation
2026-01-20 18:28:51 +05:30
Dani Akash
a497ac4f0d feat: new sidepanel (#243)
* chore: update bun lock

* feat: created unified app component

* feat: created unified app directory

* feat: refactor all html files

* feat: setup sidebar

* feat: simplify theme toggle

* feat: setup collapsible sidebar

* feat: remove navigation label

* feat: use smoother animation for sidebar collapse

* fix: collapsible sidebar on theme toggle

* chore: hide sign in button

* chore: persist collapsible state

* feat: make sidebar logo larger
2026-01-19 11:17:21 -08:00