- Vendor browser-use/browser-harness@216a2c9 verbatim into packages/bcode-browser/harness/
- Rename SYNC.md to opencode-sync.md (paired with new harness-sync.md)
- Add harness-sync.md: file-by-file copy workflow, no git subtree
- Consolidate harness sync state into UPSTREAM.md (drop separate PROVENANCE.md);
adds §3 Harness divergences table and path-allowlist policy
- First divergence recorded: harness/.gitignore adds .venv/ for smoke-test workflow
- Update bcode-browser README/index.ts cross-refs
Smoke test (verified): from harness dir, uv run python -c 'import run, helpers, daemon, admin' → imports ok
Summary
Vendor browser-use/browser-harness@216a2c9 into packages/bcode-browser/harness/. Add harness-sync.md runbook for future updates. Pair-rename SYNC.md → opencode-sync.md.
This is ROADMAP A2 — the harness is now in-tree. After this lands we have both the code and the maintenance protocol for it; we are "initialized" for harness work.
What changed
Sync protocol files
Vendored harness
Bcode-browser package wiring
Divergences (initial)
No other deliberate deltas yet. Future BrowserCode-specific edits to helpers.py (screenshot-attachment hook, etc.) will land in subsequent PRs and append rows to this table.
Verification
Out of scope (next PRs)