I3829 — A provider declares whether its client drives a browser beside the server, and preflight says when this machine's bridge is missing
Give the provider declaration a third capability axis, `browser` (`bridge` when the provider's client drives a browser through a vendor extension whose tools arrive in the same session as this repository's MCP server, `none` otherwise), with the cited evidence every axis carries; project it through every surface that reports provider capability; and let preflight report, for a provider that declares a bridge and whose client configuration is present, whether this machine has the bridge's native messaging host, with the person-level remedy when it does not.
PŘIPRAVENO vlna 0 · p2 · profil implementation · bezpečné souběžně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3829 bude přijato.
Cíl
Give the provider declaration a third capability axis, `browser` (`bridge` when the provider's client drives a browser through a vendor extension whose tools arrive in the same session as this repository's MCP server, `none` otherwise), with the cited evidence every axis carries; project it through every surface that reports provider capability; and let preflight report, for a provider that declares a bridge and whose client configuration is present, whether this machine has the bridge's native messaging host, with the person-level remedy when it does not.
Proč
docs/MCP.md#claude-in-the-browser describes the one path that drives a page and the live mesh in one session (Claude Code with the Claude in Chrome bridge), but nothing declares it and nothing notices when it is missing: on 2026-10-21 a session found the bridge unconnected only by calling a browser tool, after the owner asked for the Claude, extension and browser integration to work by itself, be described and be enforced. A project cannot turn the bridge on (Claude Code ignores CLAUDE_CODE_ENABLE_CFC in a project's settings, code.claude.com/docs/en/chrome), so the repository's part is to declare the capability with its citation and to say, at the session's start, what the person has to do once. Id from id-block-0c, handed over by 0c on the board. A consequence found by a3 composing train 2 (2026-10-21): share/providers.yaml is read with unknown keys refused (ProviderOffersEntry, deny_unknown_fields), so an executable built before this issue refuses a tree that declares `browser` with \"unknown field `browser`\"; every seat whose cached MAJORDOMUS_BIN predates it must refresh it once this lands. That refusal is the vocabulary rule working, not a fault to relax.
Aktuální stav
share/providers.yaml declares episode and prompts per provider; nothing says which client drives a browser, and no check looks for the Claude in Chrome native host.
Cílový stav
Every provider carries browser + browser_evidence; providers.md, product providers, the MCP tool and the site's provider cards show it; preflight reports a missing bridge host as a finding with the /chrome remedy, never as a failure, and says nothing for a provider that declares none.
Rozsah
- share/providers.yaml
- apps/majordomus-cli/src/share.rs
- apps/majordomus-cli/src/product.rs
- apps/majordomus-cli/src/environment/preflight.rs
- apps/majordomus-cli/tests/provider_browser.rs
- .ai/repo/rules/project/a-provider-capability-cites-its-evidence.v2.md
- scripts/provider-evidence-check
- test/cases/3829_a_provider_declares_its_browser_bridge.sh
- docs/MCP.md
- docs/CLAIMS.yaml
- docs/claims
- docs/generated
- web
Mimo rozsah
- Turning the bridge on for a person (a user setting; a project cannot)
- Pre-approving any browser tool in .claude/settings.json
- A remote connector for the Claude in Chrome side panel (I3285, and 0c's hosted hub)
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- A provider entry without browser_evidence, or with a browser word outside the vocabulary, fails the read of share/providers.yaml with the path named
- claude-code declares browser: bridge with a citation; every other provider declares its value with one
- Preflight in a checkout whose .mcp.json is present reports the missing Claude Code native messaging host as a finding naming /chrome, and reports nothing when the host is present
- docs/generated/providers.md and majordomus product providers show the browser column from the one declaration
Validace
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test provider_browser
- bash test/cases/3829_a_provider_declares_its_browser_bridge.sh
Požadované důkazy
- case_a_provider_declares_its_browser_bridge
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3829.yaml. Read it back with majordomus plan show I3829.