Commit Graph

33 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
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
Nikhil
2bc5d6f5e4 fix: gate Soul page behind server version 0.0.67 (#407)
Add SOUL_SUPPORT feature flag to capabilities system requiring
minServerVersion 0.0.67. Hides "Agent Soul" nav item in settings
sidebar for older servers that lack the /soul endpoint.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 18:20: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
16eaa90932 feat: ToolLoopAgent (#354)
* fix: lint issues

* chore: upgrade ai sdk

* fix: typescript errors

* feat: created tool loop agent route

* feat: session store

* feat: agent compaction logic

* feat: make chat use the new endpoint

* chore: pulled main

* chore: refactor chat v2 route with toolloop agent (#348)

* chore: refactor chat v2 route with toolloop agent

* refactor: move agent runtime files into agent/tool-loop module

---------

Co-authored-by: Dani Akash <DaniAkash@users.noreply.github.com>

* feat: added support for filesystem tools (#352)

* feat: tool adapter

* chore: error handling and log metrics

* fix: tool adapter format

* feat: install pi agent

* feat: setup filesystem tools

* fix: types in pi-tool-adapter

* feat: update adapter for new cdp tools

* chore: use old chat endpoint

* chore: eliminate dead code

---------

Co-authored-by: shivammittal274 <mittal.shivam103@gmail.com>
Co-authored-by: shivammittal274 <56757235+shivammittal274@users.noreply.github.com>
2026-02-23 10:36:08 -08:00
Felarof
d775cadc17 feat: move connect apps into main sidebar (#344) 2026-02-19 18:35:31 -08:00
Nikhil
f35ed67617 fix: add scroll support to dialog when content overflows (#340)
Added max-h-[85vh] and overflow-y-auto to DialogContent component
to enable scrolling when dialog content exceeds viewport height.
This fixes the scheduled task dialog not showing scroll when
content is too long.

https://claude.ai/code/session_01CP8aUnunJpW9mYwTbt3gpt

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-16 10:44:31 -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
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
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
Dani Akash
09b71c02ce fix: standardize workspace selector dropdown style (#294)
* fix: standardize workspace selector

* fix: set the position to bottom on the workspace selector
2026-02-03 18:18:19 +05:30
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
aeb1fb37e7 fix: remove default theme prompt in theme-provider 2026-01-23 21:58:00 +05:30
Felarof
ee29881669 feat: onboarding fixes (#272)
* feat: improve onboarding page

* fix: new media urls

* fix: re-arrange grid

* fix: add expolore features to sidebar

* fix: lint & typecheck

---------

Co-authored-by: Nikhil Sonti <nikhilsv92@gmail.com>
2026-01-22 09:56:27 -08:00
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
Nikhil
f472b2f13a feat: file selection ui fixes, and to sidepanel too (#245)
* fix: workspace no folder better naming

* fix: remove tab selector hiding for agent
2026-01-19 12:21:00 -08:00
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
Nikhil
5cfd0a7511 feat: workspace folder selection (#238)
* feat: v1 ui for the file selector

* feat: integrate with browseros.choosePath API

* feat: gate workspace folder for 0.36.0.4 as requires new browserOS.choosePath API

* fix: add default folder option

* fix: clean-up old code
2026-01-15 15:06:13 -08:00
Nikhil
07745799db fix: tables should remaining within container width (#227) 2026-01-14 15:24:28 -08:00
Felarof
64cd2b9dd9 fix: import 2026-01-14 15:07:00 -08:00
Felarof
dbfe70a0cf feat: add chat header to workflows chat -- that is a better UX
- moved chatprovider selector to a shared component

- reimplement chat header as it was simple and we can have graph mode specific options there instead of reusing chat header from sidepanel
2026-01-14 14:51:36 -08:00
Dani Akash
50f64a715b feat: workflow graph UI (#220)
* feat: custom node component

* feat: create resizable panels for graph ui

* feat: setup hono rpc on agent

* feat: created getClient util

* feat: created rpc client provider

* chore: reafctor agent sdk

* chore: created usechat hook

* chore: graph create update endpoint return ai sdk stream

* chore: graph create update endpoint return ai sdk stream

* chore: graph create update endpoint return ai sdk stream

* chore: graph create update endpoint return ai sdk stream

* feat: graph chat component

* feat: integrate input field

* feat: make getActionForMessage optional

* feat: integrate chat messages ui

* feat: update graph canvas with latest message

* feat: support editing graph with new message

* feat: create chat test function

* fix: created chat test api integration

* chore: remove background window state

* chore: improve agent ui stream

* chore: print error

* feat: create workflow storage

* feat: created workflows screen on options page

* feat: added error handling to workflows chat

* chore: ignore graph code generation folder

* fix: provide a better header title name

* fix: buttons accessibility on graph canvas

* feat: improve test and save workflow button state

* chore: provide autofocus to the workflow header

* feat: setup save and edit options on the workflow

* feat: open the workflow in edit mode

* fix: use sentry to capture server exception

* feat: integrate run workflow using dialog box

* feat: display errors in the run dialog box

* fix: use rpc client to delete workflows

* feat: fix panel sizes on graph creation

* fix: provide suspense fallback boundary for the options page

* feat: auto fitview on graph updates

* fix: node colors in the graph

* chore: make minimap movable

* feat: provide styling to react flow controls

* fix: missing imports

* fix: pass personalization to workflow runs

* feat: provide back button in workflow page

* feat: added confirmation when leaving workflow page without saving

* feat: provide animation to nodes

* feat: autofit canvas to resizepanel size

* feat: added workflows to newtab page

* fix: typescript lint errors

* feat: enforce bun version

* fix: typecheck command

---------

Co-authored-by: shivammittal274 <mittal.shivam103@gmail.com>
2026-01-14 21:30:17 +05:30
Nikhil
e4830f485a feat: tab at selector (#217)
* feat(agent): add @ tab mention support in chat input

* fix: tab-selector and tab-popover share components

* fix: remove usecallback, sort by last accessed

* fix: focus issues

* fix: better @tabs tips

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-13 14:25:43 -08:00
Nikhil
9798fb70bc fix: wait for finish in scheduled tasks (#204)
* fix: wait for finish in scheduled tasks

* fix: make schedule pop-up slightly larger
2026-01-10 13:31:57 -08:00
Nikhil
3525dc9026 fix: schedule task show errors (#191)
* fix: add debug logging for start:dev

* feat: use eventsource-parser for schedule tasks

* fix: remove reasoning traces, minor UI updates for schedule task

* fix: bug with textdelta
2026-01-08 18:16:05 -08:00
shivammittal274
7dbf458989 fix: scheduled tasks error display (#166) 2026-01-06 19:03:34 +05:30
Nikhil
f66fdae2c1 feat: fix all typescript errors and biome errors (#153)
* feat: fix all typescript errors and biome errors

* fix: address review feedback
2026-01-02 15:36:08 -08:00
Dani Akash
c4dac9380b feat: scheduled tasks (#146)
* feat: scheduled tasks base ui

* chore: fix biome version

* fix: type issues

* chore: remove use callback

* chore: refactor scheduleStorage types

* feat: create storage hooks for job & job runs

* feat: integrate listing with store

* feat: schedule tasks dialog integration

* feat: integrate view and runs

* feat: sync alarm state

* fix: check for enabled jobs in alarm state

* feat: createAlarmFromJob utility

* feat: updated edit hooks to update alarms

* feat: getChatServerResponse util

* feat: run jobs in schedule

* feat: update job run stat with storage

* feat: discard old runs over 15

* feat: provide graph mode entry

* feat: footer link with scheduler option

* feat: use a nicer loader for task runs

* feat: schedule results component

* feat: scheduler results in new tab page

* feat: nicer date formatting with dayjs

* feat: use run-result-dialog for displaying run results in new tab

* chore: delete mocked storage methods

* chore: remove unused code

* chore: remove all job runs when a job is deleted

* feat: use shadcn elements for schedule results component

* feat: render results in markdown view

* chore: added important update on logic sharing

* chore: remove loading state in scheduledtaskslist

* feat: run the background job in a unfocused window

* feat: provide mcp options to the background scheduled tasks

* chore: clean up stale jobs on chrome restart or update

* fix: background window not cleaned up on error

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* chore: fix type issues

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-01-03 00:08:51 +05:30
Dani Akash
025780faea feat: agent code in monorepo (#137)
* feat: added agent code to monorepo

* chore: update bun lock file
2025-12-29 18:39:52 +05:30