# Changelog

## Score

- CAI 38 → 51 (+12.3)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.16) — scores are not directly comparable.

## Lenses

- Code Health 69 → 71 (+1.4)
- Architecture 41 → 60 (+19.1)
- Maturity 61 → 80 (+18.7)
- Readiness 23 → 54 (+31.0)
- Security 62 → 65 (+3.0)
- Accessibility 41 (new)
- Performance 60 (new)

## Resolved (127)

- (anonymous) (cognitive 16) (utils/generate_types/index.js)
- (anonymous) (cognitive 17) (utils/doclint/cli.js)
- (anonymous) (cognitive 20) (browser_patches/firefox/juggler/protocol/PageHandler.js)
- (anonymous) (cognitive 25) (utils/roll_browser.js)
- (anonymous) (cognitive 27) (utils/doclint/documentation.js)
- (anonymous) (cognitive 30) (utils/linux-browser-dependencies/inside_docker/list_dependencies.js)
- (anonymous) (cyclomatic 16) (utils/doclint/documentation.js)
- (anonymous) (cyclomatic 21) (utils/linux-browser-dependencies/inside_docker/list_dependencies.js)
- (anonymous) (cyclomatic 21) (utils/roll_browser.js)
- AwaitExpression (cyclomatic 16) (utils/eslint-plugin-progress/index.js)
- Coverage not measured — test suite did not build
- Dimension evaluation failed
- FileTooLong: content/FrameTree.js (browser_patches/firefox/juggler/content/FrameTree.js)
- FileTooLong: content/Runtime.js (browser_patches/firefox/juggler/content/Runtime.js)
- FileTooLong: utils/markdown.js (utils/markdown.js)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- …and 107 more

## New (1983)

- (anonymous) (cognitive 26) (utils/roll_browser.js)
- (anonymous) (cognitive 31) (utils/linux-browser-dependencies/inside_docker/list_dependencies.js)
- (anonymous) (cyclomatic 22) (utils/linux-browser-dependencies/inside_docker/list_dependencies.js)
- (anonymous) (cyclomatic 22) (utils/roll_browser.js)
- (computed) (cognitive 20) (browser_patches/firefox/juggler/protocol/PageHandler.js)
- (computed) (cyclomatic 16) (browser_patches/firefox/juggler/protocol/PageHandler.js)
- APIRequestContext._innerFetch (cognitive 53) (packages/playwright-core/src/client/fetch.ts)
- APIRequestContext._innerFetch (cyclomatic 39) (packages/playwright-core/src/client/fetch.ts)
- APIRequestContext._sendRequest (cognitive 74) (packages/playwright-core/src/server/fetch.ts)
- APIRequestContext._sendRequest (cyclomatic 65) (packages/playwright-core/src/server/fetch.ts)
- APIRequestContext.fetch (cognitive 24) (packages/playwright-core/src/server/fetch.ts)
- APIRequestContext.fetch (cyclomatic 20) (packages/playwright-core/src/server/fetch.ts)
- ApiParser.parseArgument (cognitive 26) (utils/doclint/api_parser.js)
- ApiParser.parseArgument (cyclomatic 17) (utils/doclint/api_parser.js)
- BidiChromium._innerDefaultArgs (cognitive 21) (packages/playwright-core/src/server/bidi/bidiChromium.ts)
- BidiChromium._innerDefaultArgs (cyclomatic 16) (packages/playwright-core/src/server/bidi/bidiChromium.ts)
- BidiConnection._dispatchMessage (cognitive 33) (packages/playwright-core/src/server/bidi/bidiConnection.ts)
- BidiConnection._dispatchMessage (cyclomatic 19) (packages/playwright-core/src/server/bidi/bidiConnection.ts)
- BidiNetworkManager._onBeforeRequestSent (cognitive 32) (packages/playwright-core/src/server/bidi/bidiNetworkManager.ts)
- BidiNetworkManager._onBeforeRequestSent (cyclomatic 19) (packages/playwright-core/src/server/bidi/bidiNetworkManager.ts)
- …and 1963 more

## Changes since last survey

- 300 commits — 192 feature/other, 108 fixes

## By area

- packages/playwright-core — 123 commits
- docs/src — 39 commits
- packages/playwright — 19 commits
- packages/isomorphic — 14 commits
- .github/workflows — 12 commits
- tests/library — 12 commits
- tests/page — 12 commits
- browser_patches/firefox — 9 commits
- packages/trace-viewer — 9 commits
- tests/playwright-test — 8 commits
- (root) — 6 commits
- packages/html-reporter — 6 commits
- tests/mcp — 6 commits
- packages/injected — 5 commits
- packages/utils — 3 commits
- tests/config — 3 commits
- .claude/skills — 2 commits
- packages/extension — 2 commits
- packages/web — 2 commits
- .azure-pipelines/publish.yml — 1 commit

## Notable commits

- fix:  chore: remove fix flakes bot - it is noise (#42432)
- fix: Revert "docs(cli): cover Python pytest CLI debug in skills and coding-agents guide" (#42412)
- fix: Revert "feat(tracing): allow configuring the screenshots size" (#42411)
- fix: Revert "fix(mcp): drop the backend after browser_close with a shared browser" (#42492)
- fix: devops(bidi): fix publishing when a single csv report is uploaded (#42764)
- fix: fix(agents): add missing parentheses in test-generator example (#42744)
- fix: fix(android): include the `from` point in the swipe path (#42349)
- fix: fix(android): match webview process by exact pid (#42410)
- fix: fix(aria): annotate aria-hidden elements in AI snapshots (#42268)
- fix: fix(aria): treat searchbox as textbox in embedded control accname (#42433)
- fix: fix(aria-snapshot): quote names that only look like regexes (#42811)
- fix: fix(bidi): don't deserialize the toString property (#42677)
- fix: fix(chromium): allow more screencast frames in flight (#42929)
- fix: fix(chromium): bypass service workers on the storage state page (#42664)
- fix: fix(chromium): disable more background requests to Google services (#42909)
- fix: fix(chromium): dispose worker sessions when their frame session is disposed (#42282)
- fix: fix(chromium): re-apply touch emulation after screenshot beyond viewport (#42617)
- fix: fix(chromium): replay execution contexts when connecting to Android WebView (#42447)
- fix: fix(chromium): report 204 subresource responses as finished (#42834)
- fix: fix(chromium): report numpad location on keyup (#42913)
- …and 280 more
