`release.linux.yaml` now declares `architecture: [x64, arm64]` and the
runner loops the entire pipeline once per architecture. depot_tools
fetches both Linux sysroots automatically — `git_setup` idempotently
ensures `target_cpus = ['x64', 'arm64']` is in `.gclient` before
`gclient sync`, so cross-compiling arm64 from an x64 host just works.
The resolver returns `List[Context]` (single-element for the common
single-arch case), and `build/cli/build.py` loops `execute_pipeline` over
the per-arch contexts. Modules stay 100% arch-agnostic — no new
orchestration module, no new YAML schema beyond the list form.
Also fix a cross-compile bug in `build/modules/package/linux.py`: the
appimagetool binary must match the BUILD machine's arch (it executes
locally), not the target arch. Split into a host-keyed
`LINUX_HOST_APPIMAGETOOL` lookup vs the existing target-keyed
`LINUX_ARCHITECTURE_CONFIG`. Target arch is still passed to appimagetool
via the `ARCH` env var.
- build/common/resolver.py: scalar OR list `architecture` -> List[Context]
- build/cli/build.py: loop pipeline per arch, log multi-arch headers
- build/config/release.linux.yaml: `architecture: [x64, arm64]`
- build/modules/setup/git.py: idempotent `target_cpus` edit on Linux
- build/modules/package/linux.py: host vs target appimagetool split
- build/modules/package/linux_test.py: cover the host/target split
* 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