Commit Graph

2457 Commits

Author SHA1 Message Date
Nikhil Sonti
1880bba9dd chore: Merge branch 'main' 2026-03-02 15:33:46 -08:00
Nikhil Sonti
bc8f874579 chore: bump PATCH and OFFSET 2026-03-02 15:33:42 -08:00
Nikhil Sonti
54f7e90a61 chore: bump server version 2026-03-02 15:23:08 -08:00
Nikhil
793d35c5e5 fix: create default tab which is browseros tab in onboarding (#387) 2026-03-02 15:13:18 -08:00
Felarof
ecc02fd2e7 chore: sync packages/browseros-agent submodule (to c5afcea) 2026-03-02 23:09:49 +00:00
shivammittal274
c5afcea1fb fix: per-request MCP server+transport for SDK 1.26.0 security fix (#386)
* fix: use fresh browser context for selected tabs on each message

Previously, session.browserContext (set on the first message) always
took precedence via the nullish coalescing operator. On subsequent
messages with different tab selections, the new selectedTabs from the
request were silently ignored.

Now normal messages always use request.browserContext so freshly
selected tabs are included. Scheduled tasks still use the stored
session context to preserve the hidden window's pageId/windowId.

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

* fix: use singleton transport for MCP route

MCP SDK 1.26.0 added a strict guard in Protocol.connect() that throws
"Already connected to a transport" if called when already connected.
The previous code created a new transport per request and called
connect() each time, causing every request after the first to fail
with -32603 Internal server error.

Move transport creation outside the request handler and add
isConnected() check per @hono/mcp docs pattern.

* fix: per-request MCP server+transport for SDK 1.26.0 compat

MCP SDK 1.26.0 patched a security vulnerability (GHSA-345p-7cg4-v4c7)
where sharing a singleton McpServer across requests could leak
cross-client response data via message ID collisions.

Create fresh McpServer + StreamableHTTPTransport per request:
no shared state, no race conditions, no ID collisions.

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 15:03:14 -08:00
Nikhil Sonti
e8ea4d1858 fix: llm chat shortcuts 2026-03-02 15:02:43 -08:00
Nikhil Sonti
3717ab4fe8 chore: create new tmp user-data-dir when --new with bun run dev:watch 2026-03-02 14:48:01 -08:00
Nikhil Sonti
6d19db73d5 fix: first run url 2026-03-02 14:42:08 -08:00
Nikhil Sonti
b57c7480f4 fix: onboarding url 2026-03-02 14:40:27 -08:00
Nikhil Sonti
bd4b176db2 feat: update browseros-first-run to browseros-welcome 2026-03-02 14:07:35 -08:00
Nikhil Sonti
3e1c567425 fix: clean-up old nxtscape settings page 2026-03-02 14:07:05 -08:00
Nikhil Sonti
954dd7c06a feat: bundle install support 2026-03-02 14:06:30 -08:00
Nikhil Sonti
1de49a63f5 fix: clean-up old clawd support 2026-03-02 14:06:05 -08:00
Nikhil Sonti
b0795ab217 fix: update extension manifest url 2026-03-02 14:02:23 -08:00
Nikhil Sonti
21ecaa084e chore: bump patch version 2026-03-02 10:56:41 -08:00
Nikhil Sonti
2a7bebaf46 chore: Merge branch 'main' 2026-03-02 10:41:35 -08:00
Nikhil Sonti
cfac2e3227 fix: cdp port resolve issue 2026-03-02 10:41:31 -08:00
Nikhil Sonti
713ad8f64a chore: Merge branch 'main' 2026-03-02 09:26:35 -08:00
Felarof
7b55226651 chore: sync packages/browseros-agent submodule (to 2988bf3) 2026-03-02 11:19:05 +00:00
shivammittal274
2988bf3640 feat: add workspace directory awareness to agent system prompt (#383)
The agent had no knowledge of its working directory, so it couldn't
reference created files by absolute path or help users locate them.

Pass sessionExecutionDir into buildSystemPrompt for both AiSdkAgent
and GeminiAgent so the prompt includes a <workspace> section with
the resolved directory path.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 16:12:18 +05:30
shivammittal274
3aca3a6f5c fix: use fresh browser context for selected tabs on each message (#384)
Previously, session.browserContext (set on the first message) always
took precedence via the nullish coalescing operator. On subsequent
messages with different tab selections, the new selectedTabs from the
request were silently ignored.

Now normal messages always use request.browserContext so freshly
selected tabs are included. Scheduled tasks still use the stored
session context to preserve the hidden window's pageId/windowId.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 16:12:04 +05:30
Felarof
e92c28be82 chore: sync packages/browseros-agent submodule (to 61cd98c) 2026-03-02 08:20:18 +00:00
Dani Akash
61cd98cbd6 feat: update wxt version (#382) 2026-03-02 13:37:01 +05:30
Dani Akash
80fe2493e7 fix: resolve all bun audit vulnerabilities with package overrides (#338)
* fix: resolve all bun audit vulnerabilities with package overrides

Add overrides for 8 vulnerable transitive dependencies: qs, markdown-it,
lodash-es, @modelcontextprotocol/sdk, axios, diff, @isaacs/brace-expansion,
and hono. This resolves 11 security vulnerabilities including DoS, ReDoS,
prototype pollution, XSS, and data leak issues.

https://claude.ai/code/session_01D3vmc2S4564FJSFqsRaTfM

* fix: vulnerabilites

* fix: remove overrides

* fix: vulnerable versions

* fix: versions

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-03-02 13:30:14 +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
Felarof
dbd44a2535 chore: sync packages/browseros-agent submodule (to 91cb030) 2026-02-28 22:07:55 +00:00
Nikhil Sonti
d65246e43a chore: Merge branch 'main' 2026-02-28 13:57:16 -08:00
Nikhil
91cb0300d4 fix: make CDP discovery resilient on localhost-only setups (#378)
* chore: bump server version

* feat: add loopback fallback for cdp discovery
2026-02-28 13:56:56 -08:00
Nikhil
bc7bf8140d feat: improve bros patch sync pull/push workflows (#386)
* feat: improve bros pull/push sync and patch safety

* fix: address PR review comments for go_cli_patch_sync

* test: add mock-repo unit and e2e coverage for bros operations
2026-02-28 08:57:57 -08:00
Nikhil Sonti
6cd68605ab chore: bump server version 2026-02-27 18:16:56 -08:00
Nikhil Sonti
1600978cc6 chore: bump patch 2026-02-27 18:16:25 -08:00
Felarof
ad606fe0d9 chore: sync packages/browseros-agent submodule (to a3cbcb1) 2026-02-27 18:19:40 +00:00
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
Nikhil
47a70b43de feat: improve scroll reliability and tool response latency (#374)
* feat: improve scroll reliability and tool response latency

* fix: address PR review comments for fix_scroll_tool
2026-02-27 09:24:29 -08:00
Felarof
338649319a chore: sync packages/browseros-agent submodule (to 3060411) 2026-02-27 16:16:20 +00:00
Nikhil Sonti
3060411b7b chore: Merge branch 'main' 2026-02-27 07:47:55 -08:00
Felarof
6bdc1d170d chore: sync packages/browseros-agent submodule (to 1cba45e) 2026-02-27 05:28:12 +00:00
Nikhil
1cba45e7b7 fix: stabilize cdp connect and reconnect lifecycle (#373)
* chore: bump server

* fix: harden cdp connect and reconnect flow
2026-02-26 20:48:41 -08:00
Felarof
13faa47383 chore: sync packages/browseros-agent submodule (to 96797ed) 2026-02-27 04:39:03 +00:00
Nikhil Sonti
afcf4d9e00 chore: bump patch version 2026-02-26 19:25:00 -08:00
Nikhil Sonti
3cf222fb36 chore: bump server 2026-02-26 19:23:14 -08:00
Nikhil
96797ed101 fix: remove health check remove (#371) 2026-02-26 19:22:18 -08:00
Nikhil Sonti
032e1e57c9 chore: Merge branch 'main' 2026-02-26 19:09:43 -08:00
Nikhil Sonti
b790da199e chore: bump patch version 2026-02-26 19:09:37 -08:00
Felarof
19555cea78 chore: sync packages/browseros-agent submodule (to f9fb2f8) 2026-02-27 03:04:37 +00:00
Nikhil Sonti
f9fb2f8a02 chore: bump server version 2026-02-26 18:23:36 -08:00
Nikhil
e02ba395f9 feat: fix input key (#370)
* feat: fix input key

* fix: more tests
2026-02-26 18:22:53 -08:00
Nikhil Sonti
5eb6968c41 Merge branch 'main' of https://github.com/browseros-ai/BrowserOS 2026-02-26 17:55:55 -08:00
Nikhil Sonti
04bb55fdd1 fix: hidden window fix 2026-02-26 17:55:30 -08:00