818 Commits

Author SHA1 Message Date
Nikhil Sonti
7566f0ee82 fix: sidepanel request focus fix 2026-03-10 18:39:19 -07:00
Nikhil Sonti
ffe1f8a469 chore: server ota 2026-03-10 18:31:37 -07:00
Nikhil Sonti
a5e7c359e3 chore: Merge branch 'main' 2026-03-10 18:22:19 -07:00
Nikhil Sonti
3f4cccdf12 chore: bump PATCH and OFFSET 2026-03-10 18:22:15 -07:00
Nikhil
866fe88acd feat: fix hidden window and tab tools (#417) 2026-03-10 18:21:10 -07:00
Nikhil
a824078f6d fix: compaction config for small context windows (≤32K) (#466)
* fix: compaction config for small context windows (≤32K)

Raise COMPACTION_SMALL_CONTEXT_WINDOW from 16K to 32K so models like
Haiku 4.5 (30K context) use proportional 50% reserve instead of the
fixed 20K reserve. Also scale fixedOverhead for small contexts (capped
at 40% of context window) to prevent the doom loop where overhead alone
triggers compaction on every step.

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

* docs: add compaction tuning guidance to limits constants

Explain the relationship between SMALL_CONTEXT_WINDOW and
FIXED_OVERHEAD so devs know the 24K minimum constraint when
tweaking these values.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 18:12:20 -07:00
Nikhil Sonti
ae49da6e09 fix: sidepanel request focus fix 2026-03-10 17:27:54 -07:00
Nikhil Sonti
4472c2b890 chore: bump PATCH and OFFSET 2026-03-10 15:12:18 -07:00
Nikhil
de70525889 fix: grab handle size (#414) 2026-03-10 12:26:08 -07:00
Nikhil
5b27933c63 feat: add 2-stage pruning to compaction pipeline (#455)
* feat: add 2-stage pruning to compaction pipeline before LLM summarization

Add two new lightweight stages to the compaction prepareStep pipeline that
recover context tokens cheaply before falling back to expensive LLM
summarization:

- Stage 2: Use AI SDK's pruneMessages to remove old tool call/result
  pairs beyond the last 6 messages entirely
- Stage 3: Replace remaining tool output values with short placeholders
  ("[Cleared — N chars]") while preserving tool call structure and IDs

Both stages re-estimate tokens from message content (not stale step
usage) after modifying messages. The existing LLM summarization and
sliding window fallback remain as Stage 4.

Also adds estimateTokensForThreshold() helper, clearToolOutputs()
function, and COMPACTION_PRUNE_KEEP_RECENT_MESSAGES /
COMPACTION_CLEAR_OUTPUT_MIN_CHARS constants.

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

* fix: reorder compaction pipeline — truncate before clear, protect recent tools

- Stage 0: Check threshold, return untouched when under (no data loss)
- Stage 1: Prune old tool call/result pairs beyond last 6 messages
- Stage 2: Truncate large tool outputs to 15K chars (keeps partial content)
- Stage 3: Clear old tool outputs with placeholders, protect last 2
- Stage 4: LLM-based compaction with sliding window fallback

clearToolOutputs now accepts keepRecentCount parameter (default 2) to
skip the N most recent tool messages from clearing.

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

* fix: limits fixes

* fix: address review — preserve toKeep context, derive test values from constants

- When Stage 3 (clearToolOutputs) doesn't resolve overflow, pass
  truncated (not cleared) messages to Stage 4 so toKeep retains
  meaningful tool outputs for the agent's immediate context
- Add comment explaining intentional conservatism in post-prune
  token estimation (step usage is stale, must re-estimate safely)
- Refactor computeConfig tests to derive expected values from
  AGENT_LIMITS constants instead of hardcoding magic numbers

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:41:34 -07:00
Nikhil
7d20768d8e feat: persist large tool outputs to disk (#452)
* feat: persist large tool outputs to disk

* fix: address PR review comments for tool output limits

* chore: raise filesystem read line limit to 500
2026-03-10 09:25:19 -07:00
Felarof
1e6b5ac7a8 chore: sync packages/browseros-agent submodule (to f35ac0d) 2026-03-10 12:20:28 +00: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
797c75baee chore: sync packages/browseros-agent submodule (to 44071cb) 2026-03-09 21:13:22 +00:00
shivammittal274
44071cb0f4 fix: fix compaction tool output truncation and token estimation (#448)
- truncateToolOutputs: handle all output.type variants (text, json,
  content) by checking output.value directly instead of branching on
  type. The old code missed type 'content' (array of content parts),
  causing 1M+ char tool results to pass through untouched.

- estimateTokens: change chars/4 to chars/3 — HTML/Markdown content
  tokenizes at ~3.14 chars/token empirically, not 4.

- COMPACTION_FIXED_OVERHEAD: 5K → 12K to account for system prompt
  (~2.5K tokens) + tool definitions as JSON Schema (~8-9K tokens).

- Apply truncateToolOutputs in prepareStep (Stage 0) before token
  estimation, not just during summarization.
2026-03-10 02:39:54 +05:30
Nikhil
b035278ad9 fix: OTA binary discovery for artifact-extracted structure (#411)
* fix: support artifact-extracted directory structure in OTA binary discovery

The download_resources system now extracts server binaries into
platform-specific subdirectories (e.g., darwin-arm64/resources/bin/),
but the OTA module only looked for flat binary names. This adds
find_server_binary() which checks both layouts, keeping backward
compatibility with --binaries while supporting the new structure.

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

* feat: download server binaries from R2 instead of requiring --binaries

Remove the --binaries flag from `ota server release`. The module now
downloads artifact zips from artifacts/server/latest/ in R2, extracts
them, then signs and packages as before. This eliminates the need to
have mono build output locally.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 13:20:08 -07:00
Felarof
04ca38c93b chore: sync packages/browseros-agent submodule (to 09bd10c) 2026-03-09 19:20:33 +00:00
Felarof
93b59633c7 chore: sync packages/browseros-agent submodule (to 3808faf) 2026-03-09 09:24:07 +00:00
Felarof
a94d6d918c chore: sync packages/browseros-agent submodule (to eb208b0) 2026-03-08 18:11:51 +00:00
Felarof
c7990566d9 chore: sync packages/browseros-agent submodule (to 60a4167) 2026-03-08 03:06:57 +00:00
Felarof
6ce0fd35a0 chore: sync packages/browseros-agent submodule (to c8a674f) 2026-03-07 11:07:29 +00:00
Nikhil Sonti
135fa65a2e chore: bump PATCH and OFFSET 2026-03-06 17:06:13 -08:00
Felarof
5c774501f3 chore: sync packages/browseros-agent submodule (to 2e79933) 2026-03-07 00:39:44 +00:00
Nikhil
65b5e74a75 fix: windows header (#407) 2026-03-06 16:08:51 -08:00
Felarof
d2fd02e72e chore: sync packages/browseros-agent submodule (to db3d38a) 2026-03-06 23:11:18 +00:00
Felarof
7f39f95c8e chore: sync packages/browseros-agent submodule (to dafad1d) 2026-03-06 21:11:43 +00:00
Felarof
a9bb4602cd chore: sync packages/browseros-agent submodule (to fb2ad66) 2026-03-06 20:12:19 +00:00
Nikhil Sonti
d6d024fcea bump offset & version 2026-03-06 11:51:40 -08:00
Felarof
b3ec17b4ff chore: sync packages/browseros-agent submodule (to bc53ff5) 2026-03-06 18:19:01 +00:00
Nikhil
7759d6769f feat: download latest bundled BrowserOS server resources (#401)
* feat: download latest bundled BrowserOS server resources

* fix: guard artifact metadata root type
2026-03-06 09:30:15 -08:00
Felarof
5bcf3fe875 chore: sync packages/browseros-agent submodule (to 9b0c484) 2026-03-06 14:18:02 +00:00
Felarof
9336ede323 chore: sync packages/browseros-agent submodule (to d778cd6) 2026-03-06 12:18:26 +00:00
Felarof
4807f533cd chore: sync packages/browseros-agent submodule (to 3477772) 2026-03-06 04:38:03 +00:00
Felarof
402d9c0538 chore: sync packages/browseros-agent submodule (to 696d520) 2026-03-06 03:04:47 +00:00
Felarof
696d520199 Revert "feat: integrate models.dev registry for model defaults (#425)"
This reverts commit ddc376a026.
2026-03-05 17:48:12 -08:00
Felarof
00922aadc4 chore: sync packages/browseros-agent submodule (to c561861) 2026-03-06 00:44:49 +00:00
Felarof
48a0efeb81 feat: fix macOS icon size to match Apple HIG padding (#396)
The app icon was oversized in the macOS Dock because the source icon
filled the entire 1024x1024 canvas with no padding. Apple's macOS Big
Sur+ HIG requires ~100px padding on each side (artwork at 824x824
within 1024x1024 canvas). Resized the source icon and regenerated all
platform icons.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 16:30:59 -08:00
Felarof
ddc376a026 feat: integrate models.dev registry for model defaults (#425)
* feat: integrate models.dev registry for auto-populated model defaults

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

* fix: fall back to upstream provider for model registry lookup

When the browseros meta-provider is used, the registry lookup now
also tries the upstream provider (e.g., openrouter, anthropic) so
that BrowserOS-hosted models get correct context window and image
support defaults.

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

* fix: add Object.hasOwn guards to prevent prototype chain lookup

Addresses Greptile review: bracket notation on the registry object
could return prototype-chain properties for keys like __proto__ or
constructor, bypassing the 404 guard in the route handler.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 16:27:14 -08:00
Felarof
6f99d14e78 chore: sync packages/browseros-agent submodule (to b7e63a4) 2026-03-05 23:28:50 +00:00
Felarof
706c0768a7 chore: sync packages/browseros-agent submodule (to e37d19d) 2026-03-05 22:11:50 +00:00
Felarof
909c430988 chore: sync packages/browseros-agent submodule (to 88cb227) 2026-03-05 21:14:56 +00:00
Felarof
93c75e354f chore: sync packages/browseros-agent submodule (to 2b605bd) 2026-03-05 20:16:47 +00:00
Felarof
c0e5ffb378 chore: sync packages/browseros-agent submodule (to 52570bd) 2026-03-05 19:31:56 +00:00
Felarof
5a1fc2285f chore: sync packages/browseros-agent submodule (to fb58a6e) 2026-03-05 18:43:03 +00:00
Nikhil
a91bef1cd1 feat: remove legacy gemini agent and provider adapter (#415)
* feat: remove legacy gemini agent and provider adapter

* fix: remove redundant run graph schema refine
2026-03-05 10:34:43 -08:00
Nikhil
05887026fb feat: rename bros CLI tool to bdev (#394) 2026-03-05 10:06:41 -08:00
Felarof
7d65603e14 chore: sync packages/browseros-agent submodule (to 915ab12) 2026-03-05 16:23:52 +00:00
Felarof
12ceeb81e6 chore: sync packages/browseros-agent submodule (to 2bc5d6f) 2026-03-05 03:05:05 +00:00
Nikhil
12228a9392 feat: chromium 146 upgrade (#393)
* feat: update to 146, fix clean

* fix: update all 16 failed patches for Chromium 146.0.7680.31

- Update BASE_COMMIT to 4d3225104176d (Chromium 146)
- Shift BrowserOS command IDs to avoid upstream 40300-40302 conflict
- Fix settings BUILD.gn and menu patches for upstream removals
- Shift syncable prefs IDs to 100379-100380 after upstream additions
- Migrate theme patch from theme_service_factory.cc to theme_service.cc
  (RegisterProfilePrefs moved upstream)
- Fix toolbar_actions_model.cc for upstream API changes
- Fix toolbar_pref_names.cc for upstream base::ListValue usage
- Fix ui_features.cc/.h for removed kPopupBrowserUseNewLayout
- Fix api_sources.gni for new upstream entries
- Shift infobar delegate ID to 132
- Shift extension histogram values by +4 (1961-1985)
- Shift api_permission_id kBrowserOS to 265
- Update histogram enums.xml to match shifted values
- Delete chromium_install_modes.cc patch (file removed in 146)

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

* feat: enable vertical tabs

* feat: default browseros theme

* chore: bump PATCH and OFFSET

* fix: update extensions-manifestv2 series patch for Chromium 146

Regenerated the patch from a clean diff against 146.0.7680.31 to fix
line number offsets and context mismatches in extensions_ui.cc.

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

* fix: update vertical_tab_strip_state_controller patch for Chromium 146

Upstream refactored includes and renamed NotifyStateChanged to
NotifyModeChanged. Regenerated patch with correct context.

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

* fix: update default theme to neutral gray (136,136,136)

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

* fix: rename base::Value::Dict/List to base::DictValue/ListValue for Chromium 146

Chromium 146 moved base::Value::Dict and base::Value::List to top-level
classes base::DictValue and base::ListValue. Updated all 23 patch files.

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

* fix: regenerate browseros_prefs.cc patch (fix corrupt trailing newline)

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

* fix: update patches for Chromium 146 build API changes

- browseros_action_utils.h: remove nonexistent base/containers/contains.h include
- chrome_content_browser_client.cc: PrivateNetworkRequestPolicyOverride → LocalNetworkAccessRequestPolicyOverride
- extension_updater.cc: InstallStageTracker::Get → InstallStageTrackerFactory::GetForBrowserContext
- toolbar_actions_model.cc: base::Contains → std::ranges::contains

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 18:31:20 -08:00