docs: chromium exact-pin to version range ADR (refs #117 #118 #126) - #136
Conversation
ADR 0002 captures the decision behind PR #126 (issues #117/#118): why the exact-pin gate became MIN_SUPPORTED_CHROMIUM_MAJOR..=MAX_SUPPORTED_ CHROMIUM_MAJOR, what range bumps require, and how e2e-chromium tests fail loud by default. Adds the new ADR to the book index. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
This PR adds only two Markdown files. Items 1–4 (determinism, layering, error handling, test coverage) are not applicable — there are no code changes. The review focuses on documentation accuracy and convention adherence. Documentation reviewTechnical accuracy — all symbols verified against the codebase:
AI-writing check ( RFC 2119 usage: MUST used correctly in the version-range contract (§2 checklist). No lowercase ambiguity for normative statements.
Punch list
Historical claim in §4 (unverifiable from codebase): Verdict: APPROVE |
Summary
Phase 1 remediation follow-up for PR #126 (issues #117 / #118). PR #126 merged before the Claude review thread reached approval; this PR captures the durable rationale that should have shipped alongside the code change.
ADR 0002 covers:
MIN_SUPPORTED_CHROMIUM_MAJOR..=MAX_SUPPORTED_CHROMIUM_MAJORrange, and what each bound represents.cargo test -p plumb-cdp --features e2e-chromiumagainst the candidate major (including the byte-identical determinism check) and land the constant bump in the same PR as the verification work.e2e-chromiumtest suite —ChromiumNotFoundandUnsupportedChromiumpropagate by default;PLUMB_E2E_CHROMIUM_SKIP=1is the explicit opt-in for hosts without Chromium.131..=150and how subsequent ADRs are required when widening crosses a Chromium release that changes DOMSnapshot output.The book index (
docs/src/adr.md) is updated to link the new ADR.Why this is an ADR (not just a docs note)
crates/plumb-cdp/CLAUDE.mdrecords the invariant: "Widening or shifting the range needs an ADR." This ADR exists so a future contributor reading the constants inplumb-cdp/src/lib.rsfinds the rationale and the validation procedure in one place.Test plan
mdbook build(CIDocsjob) succeeds with the new entry.cargo doc --workspace --no-deps(CIDocsjob) succeeds — no rustdoc-link change.bash scripts/check-agents-md.sh— passes locally; AGENTS.md scope contract unchanged.docs(adr): …first line, scope under 72 chars.cargo fmt,cargo clippy, andcargo testjobs run unchanged.Refs #117, #118, #126.
🤖 Generated with Claude Code