Commit Graph

49 Commits

Author SHA1 Message Date
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
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
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
Nikhil
2f8ba0817a fix: ship AppArmor profile in .deb for Ubuntu 23.10+ (#392)
* chore: bump PATCH and OFFSET

* fix: add AppArmor profile and improve .deb packaging for Ubuntu 23.10+

Ship an AppArmor profile with the .deb package that grants the
`userns` permission, fixing the fatal sandbox crash on Ubuntu 23.10+
and other distros that restrict unprivileged user namespaces via
AppArmor (closes #165).

Also adds: Qt5/Qt6 shim libraries for native file dialogs on KDE,
update-alternatives registration for default browser selection,
prerm cleanup script, and Provides/Recommends metadata.

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

* fix: correct CDN download path for .deb and add multi-size icons

Update .deb download path from lowercase "browseros.deb" to "BrowserOS.deb"
to match the URL advertised in README (cdn.browseros.com/download/BrowserOS.deb).
Also install icons at all available sizes instead of only 256x256.

Closes #368

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

* feat: add multi-size icons and AppStream metainfo to .deb package

Install product icons at all standard hicolor sizes (16, 22, 24, 32,
48, 64, 128, 256) instead of only 256px, so desktop environments can
pick the appropriate resolution for panels, menus, and task switchers.

Ship AppStream metainfo at /usr/share/metainfo/browseros.metainfo.xml
so GNOME Software, KDE Discover, and other software centers can
discover and display BrowserOS in their catalogs.

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

* fix: guard postinst update-alternatives with $1=configure check

Matches prerm's pattern — only register alternatives during normal
configure, not during dpkg error-recovery paths (abort-upgrade, etc.)
where /usr/bin/browseros may not exist yet.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 12:35:20 -08:00
Nikhil
f97d74661b feat: ship bun runtime with binary signing (#391)
* feat: add bun binary signing for macOS and Windows

Register the bun runtime binary in the code signing pipelines so it gets
properly signed and notarized alongside browseros_server and codex.

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

* feat: add bun runtime download and copy resource configs

Add bun binary entries for all platform/arch combos (macOS arm64/x64,
Linux arm64/x64, Windows x64) to download from R2 and copy into the
Chromium build output alongside browseros_server.

Also adds the server bundle (index.js) download and copy entries.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 11:59:23 -08:00
Nikhil Sonti
221d2a0ee8 fix: clean third_party/ also now 2026-02-21 15:55:21 -08:00
Nikhil Sonti
be83e728ea fix: debug builds not fail on un-used args 2026-02-16 17:09:12 -08:00
Nikhil
e3d25892a9 feat: login session import fix (#364)
* feat: cookie import fix

* chore: bump offset + version

* feat: fixes to keychain macos signing
2026-02-12 13:56:40 -08:00
Nikhil
478a35e4ef feat: chromium 145 upgrade (#362)
* feat: new apply --force

* chore: update chromium version

* feat: chromium 145 updated patches

* fix: disable series patches for nwo

* chore: bump offset + version

---------

Co-authored-by: Nikhil <shadowfax@mac.local.meter>
2026-02-11 14:03:02 -08:00
Nikhil
4a8fd5f12a feat: support windows ota signing on macos (#323) 2026-01-16 16:23:06 -08:00
Nikhil Sonti
7c20f4da90 fix: executable flag for download resources 2026-01-07 11:18:26 -08:00
Nikhil
c4f3e93778 feat: new download resources (#289) 2026-01-06 17:38:21 -08:00
Nikhil
90512e58df feat: cli support for server ota (#286)
* feat: ota release

* chore: clean-up old binaries

* fix: ota cli sub-commands, path fixes

* chore: browseros server binary update

* fix: add sparkle sign_update path as ENV

* fix: CLOUDFLARE_API_TOKEN to env

* fix: use same upload r2 module

* feat: upload appcast is separate

* feat: write sparkle sign in python

* fix: handle appcast update

* fix: add missing sparkle.py file

* fix: remove redudant cli options in ota

* chore: 0.0.37 macos signed release

* chore: linux browseros server ota

* fix: copy binaries to temp file and then sign
2026-01-06 13:51:18 -08:00
Nikhil Sonti
af4d7a8944 chore: Merge branch 'main' 2025-12-31 16:57:55 -08:00
Nikhil Sonti
a35cbfbcee fix: extract module better patch deletion support 2025-12-31 16:57:53 -08:00
Nikhil
888d4bbf50 feat: improve extension installer + updater (#278)
* feat: new extension installer + bundle support

* feat: support bundle extension download in cli

* chore: update release yaml to include new bundle_extensions module
2025-12-31 16:35:21 -08:00
Nikhil
8cbfbf7769 fix: sparkle build flag (#260)
* fix: enable sparkle build flag

* feat: cli new apply changed command for dev cli

* fix: sparkle patch fix

* fix: dev cli changed minor fix

* fix: dev cli - for download add --output support
2025-12-19 10:27:56 -08:00
Nikhil Sonti
5d04119d70 Revert "fix(packaging): Correctly enable SUID sandbox for .deb (#243)"
This reverts commit ea2216b4a584e3630b51e7d177280e205a54db54.
2025-12-18 16:32:51 -08:00
Nikhil
63cbbeaa86 feat: mac sparkle fixes and browseros path refactor (#258)
* patch: fix sparkle build

* fix: update browseros_server binary path after refactor

* fix: sparkle + browseros server build patch

* fix: build.py --prep dont apply series patches

* fix: build cli -- in prep configure too

* fix: cli annotate -- only add description

* fix: features.yaml update for new paths

* fix: more patch fixes

* fix: sparkle pointer exclusion

* fix: remove su-updater

* fix: sparkle update notification
2025-12-18 16:26:34 -08:00
Nikhil Sonti
09b4ee710b chore: Merge branch 'main' 2025-12-18 10:52:57 -08:00
Nikhil Sonti
eca4f1e8e7 fix: release-cli improvements to better list release 2025-12-18 10:52:52 -08:00
Shan Qayyum
53129328de fix(packaging): Correctly enable SUID sandbox for .deb (#243)
packages
2025-12-18 10:31:00 -08:00
Nikhil Sonti
82466bd019 fix: release-cli - fix github upload and version name 2025-12-18 10:01:40 -08:00
Nikhil Sonti
90e64e06c6 Revert "feat: browseros server fixes (#250)"
This reverts commit 9cd8ce72ca681e7983208c7eb2d0f19477439a25.
2025-12-17 18:21:33 -08:00
Nikhil
009f08909c feat: browseros server fixes (#250)
* fix: handle rename during extract properly with deleting old patch

* patch: refactor broweros patches to be in chrome/browser/browseros

* patch: rename browseros_actions_config

* fix: features.yaml update to include new browseros folder

* patch: revalidate ports on restart

* patch: disable cdp notifications

* chore: new browseros-server binaries
2025-12-17 12:13:18 -08:00
Nikhil
d320ba5007 fix: cli improvements (#248)
* fix: handle extract deleted file in commit properly

* fix: handle commit delete
2025-12-16 17:23:19 -08:00
Nikhil
a9e3b9d4f9 fix: package linux include correct icon (#235) 2025-12-12 15:25:37 -08:00
Nikhil Sonti
99d747f2b8 fix: add misisng validation.py module 2025-12-11 12:12:30 -08:00
Nikhil Sonti
03cddbe424 fix: --reset-to delete file if not present in old commit 2025-12-11 12:10:35 -08:00
Nikhil
320de09753 fix: cli improvements (#230)
* fix: feature support add-update

* feat: feature name validation
2025-12-11 11:00:15 -08:00
Nikhil Sonti
14d5c91dee fix: more features.yaml updates 2025-12-11 10:47:45 -08:00
Nikhil Sonti
4618611265 feat: download module in release cli 2025-12-09 09:27:29 -08:00
Nikhil Sonti
dc5272396e feat: add download urls in release cli 2025-12-09 09:19:35 -08:00
Nikhil
ffb1dfdf2a cli improvements (#222)
* feat: support annotate

* feat: extract supports --feature

* feat: support classify in dev cli
2025-12-06 17:04:00 -08:00
Nikhil
2901e73547 patches & fixes for 0.31.1 release (#219)
* chore: new browseros-server binaries

* bugfix: was writing chromium_patches/ in wrong location

* patch: ntp footer disabled by default

* patch: browseros alpha flag

* patch: add log for port saving

* chore: increment PATCH

* feat: use packages/browseros as root_dir properly in context.py
2025-12-05 16:39:56 -08:00
Nikhil
9436fef0a8 chromium patch upates (#217)
* Fix: disable new tab footer

* fix: features.yaml update

* feat: series per platoform

* feat: import few essential patches from ungoogle-chromium

* bump patch

* clean-up: remove codex binary

* fix: further fixes to hide customize toolbar

* bump browseros version

* fix: save ports from CLI even if browseros-server is disabled
2025-12-05 12:41:16 -08:00
Nikhil
1523335d19 cli improvements, new release cli (#215)
* feat: new upload to r2, better semantic app name, sparkle signing as part of build

* feat: consistent artifact naming

* minor: add additional logging in build.py

* minor

* feat: better notify, so it's not too verbose

* refactor: rename R2UploadModule to just UploadModule

* fix: sparkle signature uplaod.py

* minor: debugging

* fix: sparkle update and metadata for release artificats

* feat: v1 release module

* feat: new release cli with modules/

* minor: env update
2025-12-03 17:39:25 -08:00
Nikhil Sonti
a11e0ed7ff clean-up: removed old build files 2025-12-03 13:24:48 -08:00
Nikhil
24e9cfd8f2 chromium 142 upgrade, new cli (#214)
* refactor 1: new typer based cli and browseros cli module

* refactor 2: fixes to context.py

* refactor 3: common/ and notify

* new sign and package module

* update .gitignore

* refactor 5: dev.py and modules for each

* refactor 6: clean-up old files

* refactor 7: organise modules fruther

* refactor 8: renaming nxtscape to browseros

* refactor 9: dev.py remove cli load

* fix: pyproject.toml

* fix: typer pretty exception disable

* refactor 10: cli/build.py set to primary

* refactor 10: cli/build.py set to primary, move OS detection

* refactor: context split, env and module dataclass

* reactor: clean and git moved ot new module type

* refactor: compile and configure

* reactor: sign and package module update

* refactor: new build.py cli

* 'refactor: remove reducant OS checks

* refactor: rename BuildContext to Context

* refactor: rename BuildModule to CommandModule

* refactor: dev.py to use the new modules

* build.py: improve help output

* remove old patching way

* clean-up: remove old build.py stuff

* refactor: move to proper yaml parsing

* clean-up: remove legacy args gating

* fix: patches issues

* fix: clean-up build.py and ars resolver

* minor: gitignore

* fix: patches.py issue

* support universal build

* fix: ENV variable and YAMLs

* fix: move compile to folder to avoid compflics

* fixes: more env fixes

* fix: build_type override in CLI fix

* fix: universal clean all archs before starting

* fix: universal build type constants

* fix: linter, extract options

* fix: linter

* fix: remove chromium_src as a not a conflicting flag

* fix: support chromium_src from cli in config mode

* fix: notify with better messages

* feat: new apply patch with --reset-to feature

* feat: refactor apply and extract into separate sub modules

* 142 patches working (#211)

* updates to build.py apply/patch

* removed all old patches

* 142 build update

* fix: get updated patches from main to 142

* fix: correct patches dir

* fix: import path

* add pyright

* fix: setup pyright

* fix: new updated patches from 137 rebased on 142

* feat: new extract_patch command

* fix: add mising side_panel build patch

* fix: extension uninstall for browseros

* fix: prefs fix

* fix: ota extension updater patch fix

* fix: llm hub and chat

* feat: unvisersal module also package individual archs

* fix: add browseros-server binaries

* fix: attach color for notify

* fix: attachment for slack

* fix: update chromium version to 142.0.7444.175

* feat: add new icons needed

* fix: disable settings in menu

* fix: uv add build-backend

* minor: chromium version bump

* clean-up: removed old files of extnesion and sidepanel

* fix: product logo generate and assets.car and appicon.icns

* feat: few chromium UI fixes

* fix: update features.yaml

* fix: features.yaml path in context

* refactor: rename to get_patches_dir()

* feat: show browserOS version in about page

* fix: copy browseros_version on the build time and rename other to offset

* bump offset

* fix: update features.yaml

* feat: load env from .env files too

* fix: enable split view

* clean-up: removed old prefs

* fix: minor import issue

* fix: linux flag update
2025-12-03 13:09:23 -08:00
Nikhil Sonti
6ce5fc0477 Revert "updates to build.py apply/patch"
This reverts commit 933a94159a92ec7682d969de845da51e97b6c1e2.
2025-11-10 15:40:21 -08:00
Nikhil Sonti
6812f5ed63 updates to build.py apply/patch 2025-11-09 16:45:09 -08:00
Nikhil
1b0a277afd Fixes for new agent release (#186)
* bump version

* patch: browoseros_server path and copy

* patch: fix: browoser_server cmdline bug

* update browseros_server binaries

* update browseros_server binaries

* tmp: disable valiation of binary

* fix: arch copy fixed

* fix: windows executable path

* update binaries

* bump version

* update codex binary

* update browseros_server binaries

* browseros_server: pass resources_dir as arg

* update browseros_server binaries

* bump version

* binary test

* updated binaries

* bump version

* update browseros_server binaries

* keep browosos extensions alive patch

* bump version

* fix: browseros_server windows path

* fix: codex windows binary

* package_windows: rebuild with setup too

* revert: windows visual element fix

* browseros execution-dir creation

* update binaries

* bump version

* update browseros_server binaries

* package linux file

* updates to package.linux

* browseros_server: file locking - only one instance running

* browseros_server: kill on terminate of browser

* bump version

* browseros_server terminate fixes

* browseros_server: support restart through pref

* update browseros_server binaries

* browseros_server: restart pref and missing files

* extension ota: force setup udpate url
2025-11-04 18:09:28 -08:00
Nikhil
7f6fdd754b build fixes (#156)
* architecture based copy

* update entitilements

* sign binaries in macos update

* update package windows to also sign binaries properly

* codex binaries
2025-10-25 17:26:34 -07:00
Nikhil
f327a41281 browseros mcp support (#135)
* disable: navigator.webdriver

* implement browseros server

* fix: browseros api fixes for prefs

* copy browoser binaries on build

* support browseros binary override

* BUMP version

* update binaries

* browseros server updates: include agent-port, better port handling

* bump version

* add browseros_server to macos sign.py

* fix: linux package to copy browseros-server

* minor

* browseros server: windows file path fix

* fix: windows packaging + signing

* update browseros_server

* update browseros_server

* add controller extension ID

* minor update to first_run

* add chrome://browseros/settings URI

* update to metrics

* windows fix for browseros_server

* update patch version

* fix: browseros_server entitlements

* fix: windows browseros_server location

* appcast update
2025-10-17 12:51:15 -07:00
Nikhil Sonti
c03ed1abb2 upload .deb file 2025-10-10 16:21:02 -07:00
Nikhil Sonti
45f5c94072 adding debian package 2025-10-10 11:17:55 -07:00
Nikhil Sonti
596ed3ccb5 fix signing in windows as part of build 2025-10-10 10:56:41 -07:00
Nikhil Sonti
37893f5334 uplaod to gcs cli 2025-10-01 10:19:08 -07:00
Felarof
3de4cbce0b chore(monorepo): move BrowserOS under packages/browseros (preserve history) 2025-09-25 11:39:55 -07:00