Repository navigation
chore: remove the old BrowserOS server, extension and onboarding code - #3135
capy-ai[bot] wants to merge 3 commits into
Conversation
Delete apps/server, apps/app, apps/app-onboard and the five shared packages only they used, with their build scripts, codegen, package scripts, env keys and dev tooling. The dev and dogfood Go tools now run BrowserOS neo only.
|
PR author is not in the allowed authors list. |
The manifest it read, scripts/build/config/server-prod-resources.json, was removed with the old server.
There was a problem hiding this comment.
Graphify reviewed this change.
No issues found by static checks — no coupling regressions or blocking issues in the code graph. That is not the same as safe to merge: see what was not checked.
Not checked: tests were not run; no formal proof of the changed code.
Graphify review — findings
Adds a dogfood daemon tool that starts, health-checks, restarts and refreshes a dev BrowserOS build under a locked operation, with its own log lifecycle. Restart requests reject --force without a pull, and start refuses a dirty checkout that sits on a different branch. Extends the dev watch command to poll Rust claw inputs for changes and fail early when cargo is missing. Also removes the test-ui skill and the VITE_ALPHA_FEATURES and BROWSEROS_TRUSTED_ORIGINS env entries, and updates the release-suite and CI affected-suite tests.
Review partial — this diff was larger than one review pass covers, so later files were not reviewed; some findings may be missing.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 988 functions depend on the 902 functions this change touches.
Health — this change adds coupling hotspots:
- worse:
product_record()— 7 callers, 5 callees - worse:
resolveResetTarget()— 8 callers, 3 callees - worse:
main()— 1 callers, 21 callees - worse:
buildAndStartEnvironment()— 2 callers, 8 callees
Verification — 988 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 979 function(s) in the blast radius were not formally verified this run
Docs that may be stale (advisory)
.claude/skills/ask-internal/SKILL.md§ When to use (lines 14-20): references changed symbolsOpenClaw.claude/skills/ask-internal/SKILL.md§ Step 0: Pre-flight (lines 41-53): references changed symbolsstatus,update.claude/skills/ask-internal/SKILL.md§ Step 2: Multi-source search (lines 62-83): references changed symbolsconfig,json.claude/skills/ask-internal/SKILL.md§ Step 3: Synthesize answer (lines 84-93): references changed symbolspath.claude/skills/ask-internal/SKILL.md§ Step 4: Offer execution (only if commands surfaced) (lines 94-103): references changed symbolsstate,status.claude/skills/ask-internal/SKILL.md§ Citation discipline (lines 121-128): references changed symbolscleanup.claude/skills/write-docs/SKILL.md§ Step 2: Gather Screenshots (lines 28-35): references changed symbolsname.claude/skills/write-docs/SKILL.md§ Step 3: Write the Documentation (lines 36-64): references changed symbolsname,step.claude/skills/write-docs/SKILL.md§ Step 4: Update Navigation (lines 65-68): references changed symbolsjson.claude/skills/write-docs/SKILL.md§ Key Directories (lines 104-110): references changed symbolsjson
…and 10 more.
· 4 more finding(s) on lines outside this diff (see the check run).
✅ Tests passed: 3301/3311Ran 9 of 9 suites (0 not affected by this change).
|
…s-code Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> # Conflicts: # packages/browseros-agent/tools/dev/cmd/target.go # packages/browseros-agent/tools/dev/cmd/watch.go # packages/browseros-agent/tools/dev/cmd/watch_test.go
Part 1 of 4 in the BrowserOS retirement stack (FEL-1): code #3135 → CI #3136 → docs #3137 → bos_build #3139. The README layer already shipped on its own as #3140. Each layer stands on its own, so #3139 can be left out.
Removes the old BrowserOS product's source from
packages/browseros-agent. Neo doesn't import, bundle or ship any of it: neo's Chromium build ships the Rustclaw-serverandclaw-app.Removed
apps/server(Bun MCP server and agent loop),apps/app(BrowserOS extension) andapps/app-onboard.apps/serverused:browser-core,browser-mcp,cdp-protocol,acpx-ai-provider,agent-mcp-manager.scripts/build/server*,scripts/build/app-onboard*,scripts/codegen/cdp-protocol.tsand its emitters,scripts/generate-models.ts,scripts/dev/inspect-ui.ts,server.json,process-compose.yaml,.vscode/launch.json, thetest-uiskill, and the package scripts that drove them (start:server,build:server*,build:agent*,dev:app-onboard,build:app-onboard*,test:env,test:main,gen:cdp,generate:models,dev:manual,devtools, …).bun.lockwas regenerated.packages/sharedmodules with no remaining importer (schemas/{sidecar-config,browser-context,llm,chat-error,conversation-panels,agent},sentry/sanitize,types/server-config,constants/exit-codes) and the env keys only the old server and extension read (VITE_ALPHA_FEATURES,BROWSEROS_TRUSTED_ORIGINS,BROWSEROS_AI_SDK_DEVTOOLS).ci/affected-suites.tsandscripts/run-test-suite.ts, and the matching tsconfig, biome and fallow entries.packages/browseros/tools/vendor_uploads: the contract test that read the deletedserver-prod-resources.json.tools/devandtools/dogfoodare neo-only now.watchalways runs neo,--clawis hidden and deprecated,--manualand thetestcommand are gone, and BrowserOS binary arguments, the server sidecar config and the BrowserOS watch state are removed.Kept, and why
scripts/env/migrate-local.tsstill reads legacyapps/server/.env*files, because it migrates old local checkouts to the root env.config.dev.json/config.sample.jsonmatch the sidecar config format claw-server's tests use.release/suite_test.pytherefore writes stand-in manifests for the deleted packages into its fixture repository, andspecs_testonly checks the neo extension's manifest on disk.Verification
bun run check(lint, typecheck, fallow),bun run test,bun test ci,env:examples:check,codegen:claw-api:checkandtest:claw-api-contractall pass. The claw MCP smoke skips unlessBROWSEROS_BINARYis set, as it does on main.cargo fmt --check,cargo checkandcargo test --workspace --lockedpass.cargo clippy -D warningsfails on thefetch_updatedeprecation under cargo 1.99, and it fails the same way on main.go build/vet/testandgofmtare clean intools/devandtools/dogfood.patchkit.batch_apply_test×3 and a git-bootstrap workflow test). Ruff is clean.Open decisions for Nithin (nothing in this stack changes these)
updates/browser/appcast{,-x86_64,-win,-win-arm64}.xml(BrowserOS browser),updates/server/appcast-server{,.alpha}.xml(BrowserOS server OTA) and the BrowserOS agent entry (bflpfmnmnokmjhmgnolecpppdbdophmk) inupdates/extensions/update-manifest*.xml/extensions*.jsonare still committed and published throughupdates/upload.shandrelease-extension-feeds.yml. Keep serving, freeze, or remove?publish-server-ota.ymlstays because neo's nightly andrelease-claw-server.ymlcall it. Its BrowserOS server target and feed are untouched./features/bring-your-own-llm,/features/chatgpt-pro-oauth,/features/github-copilot-oauth,/features/qwen-code-oauth,/features/scheduled-tasks,/features/use-with-claude-codeand/changelog. The docs layer removes their source, so they 404 once the docs site redeploys unless redirects are added.bot/release-nightly-704e7328df92are part of the release ledger neo reads. Closing the PR doesn't remove it from the ledger, so this stack leaves both alone.