Skip to content

Oya Browser AGENTS.md changelog

io.github.oyadotai/oya-browser

4 changes recorded. MCP Harbor re-reads this listing from the official registry every six hours and asks the live server what it exposes, and keeps what changed between one look and the next.

  • AGENTS.md +2 −2

    https://raw.githubusercontent.com/oyadotai/oya-browser/HEAD/AGENTS.md

    − Keel's own browser (the `browser_*` tools on server `keel`, the lane's Browser tab) is the browser− and Oya's tools are withheld on purpose; use it the same way. The team+ use the `browser_*` tools on server `keel`. They use the browser selected for the session: Inside+ Keel or the person's local Oya Browser. Keep to owned tabs and report connection failures. The team

  • AGENTS.md +88

    https://raw.githubusercontent.com/oyadotai/oya-browser/HEAD/AGENTS.md

    + ## Production+ The production checklist the reviewers enforce is in `docs/PRODUCTION.md`. It applies.+ ## How a request becomes a change+ Every request that changes the product runs this pipeline, in this order, and the person sees one+ report at the end of it — not a stream of half-decisions along the way. The stages are the team's+ subagents (`.claude/agents/`, `.agents/agents/`, `.codex/agents/` — one per coding agent). They run **one after another**, never in parallel, because each one reads+ what the last one returned; and what a stage returned is handed to the next **verbatim**, because+ a subagent starts with an empty context and a paraphrase is where a scope quietly grows.+ **In Codex**, run a stage with `spawn_agent`: `task_name` is the stage's name (`pm`, `designer`,+ …) and the message says to follow the `developer_instructions` in `.codex/agents/<stage>.toml`,+ followed by the brief: the person's ask in their own words and what the previous stage returned,+ verbatim. Wait for it to finish before starting the next stage. Do not do a stage's work yourself+ instead of spawning it.+ 1. **`pm`** — given the ask in the person's own words. Returns build / change / cut / not yet,+    and the smallest version worth shipping with its out-list. *Build* and *change* carry on, to+    the scope the PM set. **`cut` and `not yet` stop the pipeline and go back to the person**, with+    the reasoning. They can overrule it in one word.+ 2. **`designer`** — given the ask and the PM's scope, whenever anything a person reads changes: a+    page, a label, an error message, CLI output, an API response a client renders. Returns the+    states table, the layout, the copy. Skipped — and said to be skipped — when nothing visible+    moves.+ 3. **`principal`** — given the ask, the scope and the design. Reviews both for what they missed,+    then returns the technical design: the modules touched, what is reused, the invariants at risk,+    and the tests that will pin it. If the scope or the design cannot stand, that goes back through+    the stage that owns it once, not around it.+ 4. **Implementation** — the main loop, not a subagent, so the work is visible as it is written.+    It follows the principal's design; a deviation is written down with its reason, not made+    silently, and it keeps to "Engineering rules" below. Done means the gate is green, then+    `reviewer` on the diff — and `security` or+    `reliability` when their descriptions say the change is theirs.+ 5. **`qa`** — given the ask, the scope and what changed. *Do not ship* means fix and run `qa`+    again, **twice at most**; after that the person gets the change and the open bug list rather+    than a loop with no end.+ **Direct mentions:** When the person tags a member, give that member the requested task directly;+ do not require unrelated pipeline stages. `oya-browser` is the browser specialist for research,+ web interaction, screenshots and browser QA. Use Oya exclusively for all browser work; if its+ connection is unavailable, report the blocker and never substitute another provider. Inside Keel,+ Keel's own browser (the `browser_*` tools on server `keel`, the lane's Browser tab) is the browser+ and Oya's tools are withheld on purpose; use it the same way. The team+ ships role playbooks, specialist engineering skills, and Oya research with supporting assets.

    Showing the first 40 of each.

  • AGENTS.md +10

    https://raw.githubusercontent.com/oyadotai/oya-browser/HEAD/AGENTS.md

    + ## Native agent-control boundary (required)+ - Oya's internal browser and agent operations must use browser-owned native APIs, not CDP.+ - The patched engine is the Linux cloud runtime only. Desktop apps (macOS, Windows) ship stock Electron: use stock non-CDP Electron APIs there, and return the unsupported-capability error where only the patched engine has one.+ - CDP is permitted only as an external front-door compatibility protocol for agents connecting to Oya.+ - The front door must translate supported requests into native Oya operations. It must not proxy requests to a Chromium debugging endpoint or use Electron's debugger as its backend.+ - Do not rename or wrap CDP helpers and describe them as native. Do not fall back to CDP when a native capability is unavailable; return an explicit unsupported-capability error.+ - Retain authorization, human/agent control ownership, tab/frame isolation, persona and egress protections throughout migration. Do not remove safety checks to eliminate CDP calls.+ - Test through Oya and its native APIs. Do not launch Chrome, Chromium, Playwright, or another browser as a substitute.+ - **Exception (maintainer decision, 2026-10-12):** the external front door passes standard page-session CDP methods it has no native answer for to that tab's own debugger, so Playwright, Puppeteer and Stagehand clients work. It lives only in `browser/src/main/app/cdp-passthrough.ts` (the one file `tests/unit/native-boundary.test.ts` exempts) and keeps ownership, Human Mode, persona and egress refusals. Do not remove it as a boundary violation, and do not extend debugger use beyond it; replace pa+ - Existing internal CDP dependencies are migration debt, not an exception to this requirement. Do not claim Oya is internally CDP-free or release it on that basis until enforcement and native integration tests prove it.

  • AGENTS.md +11 −4

    https://raw.githubusercontent.com/oyadotai/oya-browser/HEAD/AGENTS.md

    − | `browser/` | `npm run lint` · `npm run format:check` | none (plain JavaScript) | `npm test` (unit + regressions) · `npm run test:shell` · `npm run test:control` · `npm run test:identity` · `npm run test:sync` (real Electron) |− - `server/src/modules/control/egress.ts` and `browser/governance.js` share a−   host matcher that must stay byte-identical. A test compares the two.−   `browser/anonymity/*`) are visible to the pages they run in, including+ | `browser/` | `npm run lint` · `npm run format:check` | `npm run typecheck` · `npm run build` (electron-vite, into `out/`) | `npm test` (unit + regressions) · `npm run test:shell` · `npm run test:control` · `npm run test:recording` · `npm run test:identity` · `npm run test:workflow` · `npm run test:sync` (real Electron) |+ - `server/src/modules/control/egress.ts` and+   `browser/src/main/identity/host-rules.ts` share a host matcher that must+   stay byte-identical. A test compares the two.+   `browser/anonymity/{stealth,fingerprint,inject}.js`, and the page-script+   strings in `browser/src/main/actions/scripts.ts`, `src/main/tabs/` and+   `src/page/`) are visible to the pages they run in, including+ - **Never mention Claude in commits or pull requests.** No `Co-Authored-By: Claude`+   trailer, no "Generated with Claude Code" line, no claude.ai session link, and+   never commit as `Claude <noreply@anthropic.com>`. Commits are authored by the+   maintainer alone.