Commit Graph

120 Commits

Author SHA1 Message Date
Nikhil
3e23796724 fix: auto-focus chat input when side panel opens (#465)
Add window focus listener in ChatFooter that focuses the textarea when
the side panel receives focus. Handles both initial open (via
document.hasFocus check on mount) and re-focus scenarios (via window
focus event). Guards against stealing focus from other interactive
elements.

Companion Chromium fix: side_panel_coordinator.cc now always calls
RequestFocus() in PopulateSidePanel(), not just when there's no
previous entry — ensuring the side panel WebContents receives focus
on every open/toggle.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:29:15 -07:00
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
eb208b0515 feat: update new tab placeholder copy (#441)
* feat: update new tab placeholder copy

* fix: simplify new tab placeholder logic
2026-03-08 11:06:41 -07:00
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
2b605bdaa3 feat: add inline chat experience to new tab page (#418)
* feat: add inline chat experience to new tab page

Bring the full sidepanel chat experience to the new tab page. When
users select an AI suggestion from the search bar, the page transitions
inline to a full chat view instead of opening the sidepanel.

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

* fix: remove unnecessary comments from NewTab.tsx

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

* fix: address PR review comments

- Move NEWTAB_CHAT_STARTED_EVENT tracking to startInlineChat where it
  actually fires (was dead code in NewTabChat handleSubmit)
- Add NEWTAB_CHAT_RESET_EVENT tracking to handleNewConversation

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

* feat: gate newtab chat behind NEWTAB_CHAT_SUPPORT feature flag

When the flag is off (BrowserOS < 0.40.0), falls back to opening the
sidepanel via openSidePanelWithSearch (previous behavior). In dev mode
all features are enabled, so inline chat works during development.

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

* feat: add newtab origin context to chat system prompt

When chatting from the new tab page, the AI is instructed to open
content in new tabs rather than navigating the current tab, keeping
the user's new tab page accessible.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 12:02:39 -08:00
Dani Akash
915ab12c40 fix: prevent sending multiple messages when chat is running (#409) 2026-03-05 21:01:57 +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
Felarof
51505e1de6 feat: add "don't show again" checkbox to survey popup (#404)
* feat: add "don't show again" checkbox to JTBD survey popup

Mirrors the ImportDataHint pattern — adds a checkbox that permanently
suppresses the survey popup when checked and dismissed.

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

* fix: persist dontShowAgain when user clicks Take Survey

Addresses Greptile review — if the checkbox is checked and the user
clicks "Take Survey", persist the flag before opening the survey so
the popup won't reappear if the survey tab is closed without starting.

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

* feat: show "don't show again" only after 2nd popup, increase interval to 10 msgs

- Track shownCount in storage, only show checkbox on 3rd+ appearance
- Increase MESSAGE_THRESHOLD from 5 to 10 messages between popups
- Add DONT_SHOW_AGAIN_AFTER constant (2) for configurability
- Pass showDontShowAgain through the component chain

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

* fix: thread dontShowAgain through onTakeSurvey to avoid duplicate analytics

Addresses Greptile review — previously clicking "Take Survey" with the
checkbox checked would fire both dismissed and clicked events. Now the
dontShowAgain flag is threaded through onTakeSurvey, which persists it
without firing a dismiss event.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 11:20:55 -08:00
Nikhil
92c20eef73 fix: filter empty-parts messages to prevent follow-up conversation crash (#402)
* fix: filter out messages with empty parts to prevent follow-up crash

When an assistant response is interrupted or errors before producing content,
a UIMessage with empty parts remains in the chat state. On the next send, the
AI SDK validates all messages and rejects the empty-parts message with
"Message must contain at least one part". This filters them out when not
streaming and adds a safety guard in formatConversationHistory.

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

* fix: filter empty-parts messages before persisting to storage

Addresses race condition where the save effect could persist messages
with empty parts before the cleanup effect's state update applies.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 10:20:36 -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
Nikhil
6d736e9158 fix: gate previousConversation array format for older servers (#400)
* fix: gate previousConversation array format behind BrowserOS 0.41.0.0

Older servers reject the array format for previousConversation with a
ZodError ("Expected string, received array"). Gate the feature behind
BrowserOS >= 0.41.0.0 which bundles server >= 0.0.64 that accepts both
array and string formats.

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

* fix: use minServerVersion 0.0.64 for previousConversation gate

Server version is the direct indicator of schema support, more accurate
than using BrowserOS version as a proxy.

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

* fix: fall back to string format for previousConversation on old servers

Instead of omitting previousConversation entirely on servers < 0.0.64,
serialize the conversation history as a "role: content" string which
old servers accept via their z.string() schema.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 15:58:59 -08:00
Nikhil
793d35c5e5 fix: create default tab which is browseros tab in onboarding (#387) 2026-03-02 15:13:18 -08:00
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
Nikhil
a3cbcb16df fix: restore glow overlay for CDP-based tools (#375)
* fix: restore glow overlay for CDP-based tools

After migrating to CDP tools, glow broke because the hook looked for
input.tabId (controller tools) while CDP tools use input.page (pageId).

- Server: add getTabIdForPage() to Browser, include tabId in tool output
- Client: extract tabId from output, fall back to active Chrome tab

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

* refactor: use ToolResultMetadata for tabId resolution

Move tabId resolution from tool-adapter into the framework layer:
- response.ts: add ToolResultMetadata interface with tabId field
- framework.ts: auto-resolve pageId→tabId after tool execution
- tool-adapter.ts: just forward metadata (no domain logic)

This makes metadata available to all ToolResult consumers, not just
the AI SDK adapter, and the metadata bag is extensible for future fields.

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

* fix: add todo

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 10:16:06 -08:00
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
cb8aa6c60e feat: fix new cdp tests for tools (#358)
* feat: new tools tests

* fix: lint warnings by disabling or TODO

* fix: minore update to branch cleaner
2026-02-23 16:08:34 -08:00
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
0b38310ae0 feat: assign daily limit survey users to random experiment buckets (#350)
Instead of a hardcoded experimentId=daily_limit, randomly assign users
to one of four survey direction buckets (competitor, switching, workflow,
activation) matching the round 2 survey pattern.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 16:41:54 -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
Nikhil
3b393f0639 feat: increase tips show probability to 0.3 (#336)
https://claude.ai/code/session_01EwJaviDJJM3jugajAff4Y4

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-16 08:45:21 -08:00
shivammittal274
2c8c6f6120 feat: inject stop button to pages controlled by agent (#334)
* chore: baseline setup

* feat(agent): When the agent is running, right now we inject an orange glow. See the `apps/age

Task ID: TOiaMuDz

* fix: clean up agent storage

* fix: improve the stop button style

* fix: type issues with stopAgentStorage

---------

Co-authored-by: BrowserOS Coding Agent <coding-agent@browseros.com>
Co-authored-by: Dani Akash <DaniAkash@users.noreply.github.com>
2026-02-16 17:42:32 +05:30
Nikhil Sonti
d6b02703df fix: minor fixes to tips 2026-02-11 10:58:32 -08:00
Nikhil Sonti
27c9a9748e fix: dismiss duration 7 days 2026-02-11 10:52:58 -08:00
Dani Akash
be4ab73d61 fix: adds a don't ask again option for sync prompt (#326) 2026-02-11 18:49:36 +05:30
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
Nikhil
862cd944b5 feat: tab-picker with @ on newtab (#298) 2026-02-03 12:51:31 -08:00
Nikhil
b36d74638c feat: tab-picker + tab-popover merged with simple ui (#296)
Co-authored-by: Dani Akash <DaniAkash@users.noreply.github.com>
2026-02-03 09:53:09 -08:00
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
163e27ac12 fix: added loading indicator to ensure chat history is consistent when loading from history (#295)
* fix: keep previous data in chat history

* feat: use react query for restoring conversation messages

* fix: loading issue with chat history

* fix: use state instead of ref for the restoredConversationId

* fix: handle not found scenario on both local and remote restoration

* Revert "fix: handle not found scenario on both local and remote restoration"

This reverts commit d4725134087af047fe18bc6519f5ad5244104544.

* fix: handle conversation not found scenario

* chore: added a loading indicator for the chat history page

* chore: reset restored conversation id state
2026-02-03 19:18:42 +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
Felarof
882c227ee0 feat: added new tab opened metric (#293) 2026-02-02 14:01:28 -08:00
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
303d593bb9 fix: minor race condition on sign in prompt (#287)
* feat: account for race condition in sign in hint

* fix: signin race condition
2026-02-02 12:18:43 +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
Felarof
9cc2b02fb7 fix: show link to doc when MCP server has crashed (#275) 2026-01-26 18:35:58 -08:00
Dani Akash
aeb1fb37e7 fix: remove default theme prompt in theme-provider 2026-01-23 21:58:00 +05:30