# Changelog

## Score

- CAI 43 → 50 (+6.7)
- Rubric changed (rubric-2026.08.17 → rubric-2026.08.18) — scores are not directly comparable.

## Lenses

- Code Health 36 → 39 (+3.1)
- Architecture 56 → 85 (+29.2)
- Maturity 74 → 78 (+4.3)
- Readiness 33 → 39 (+5.5)
- Security 60 → 67 (+6.6)
- Domain Modelling 100 → 100 (+0.0)
- Event Sourcing 100 → 100 (+0.0)

## Resolved (176)

- (anonymous) (cognitive 17) (ext/fetch/21_formdata.js)
- (anonymous) (cognitive 21) (runtime/js/99_main.js)
- (anonymous) (cognitive 61) (ext/fetch/27_eventsource.js)
- (anonymous) (cyclomatic 49) (ext/fetch/27_eventsource.js)
- (computed) (cognitive 30) (ext/websocket/01_websocket.js)
- AddRmPackageReq.parse (cyclomatic 18) (cli/tools/pm/mod.rs)
- ByonmNpmResolver.resolve_package_folder_from_package (cognitive 18) (libs/resolver/npm/byonm.rs)
- Change coupling: lib.dom.d.ts ↔ lib.dom.iterable.d.ts (cli/tsc/dts/lib.dom.d.ts)
- Change coupling: lib.dom.d.ts ↔ lib.webworker.d.ts (cli/tsc/dts/lib.dom.d.ts)
- Change coupling: lib.dom.d.ts ↔ lib.webworker.iterable.d.ts (cli/tsc/dts/lib.dom.d.ts)
- Change coupling: lib.dom.iterable.d.ts ↔ lib.webworker.d.ts (cli/tsc/dts/lib.dom.iterable.d.ts)
- Change coupling: lib.dom.iterable.d.ts ↔ lib.webworker.iterable.d.ts (cli/tsc/dts/lib.dom.iterable.d.ts)
- Change coupling: lib.dom.iterable.d.ts ↔ typescript.d.ts (cli/tsc/dts/lib.dom.iterable.d.ts)
- Change coupling: lib.webworker.d.ts ↔ lib.webworker.iterable.d.ts (cli/tsc/dts/lib.webworker.d.ts)
- Change coupling: lib.webworker.iterable.d.ts ↔ typescript.d.ts (cli/tsc/dts/lib.webworker.iterable.d.ts)
- Change coupling: module_hooks.rs ↔ 01_require.js (ext/node/ops/module_hooks.rs)
- CliFactory.npm_installer_factory (cognitive 16) (cli/factory.rs)
- CliModuleLoader.load (cyclomatic 17) (cli/module_loader.rs)
- ConfigData.load_inner (cyclomatic 16) (cli/lsp/config.rs)
- Coverage not included — suite not readable by the collector
- …and 156 more

## New (225)

- #handle (cognitive 28) (ext/fetch/27_eventsource.js)
- #handle (cyclomatic 21) (ext/fetch/27_eventsource.js)
- #loop (cognitive 29) (ext/fetch/27_eventsource.js)
- #loop (cyclomatic 27) (ext/fetch/27_eventsource.js)
- #receiveDatagrams (cognitive 18) (ext/web/webtransport.js)
- (anonymous) (cognitive 26) (runtime/js/99_main.js)
- (anonymous) (cyclomatic 16) (runtime/js/99_main.js)
- (computed) (cognitive 29) (ext/websocket/01_websocket.js)
- ByonmNpmResolver::resolve_package_folder_from_package::inner (cognitive 18) (libs/resolver/npm/byonm.rs)
- ByonmNpmResolver::resolve_pkg_json_and_alias_for_req::resolve_alias_from_pkg_json (cognitive 20) (libs/resolver/npm/byonm.rs)
- Change coupling: 99_main.js ↔ worker_bootstrap.rs (runtime/js/99_main.js)
- Change coupling: child_process.ts ↔ ipc.rs (ext/node/polyfills/internal/child_process.ts)
- Change coupling: global.rs ↔ local.rs (libs/resolver/npm/managed/global.rs)
- Change coupling: js.rs ↔ web_worker.rs (runtime/js.rs)
- Change coupling: js.rs ↔ worker.rs (runtime/js.rs)
- Change coupling: lib.rs ↔ cp.ts (ext/node/lib.rs)
- Change coupling: lib.rs ↔ promises.ts (ext/node/lib.rs)
- Change coupling: snapshot.rs ↔ worker.rs (runtime/snapshot.rs)
- Change coupling: snapshot_info.rs ↔ worker.rs (runtime/snapshot_info.rs)
- Coverage read from a committed report
- …and 205 more

## Changes since last survey

- 87 commits — 22 feature/other, 65 fixes

## By area

- ext/node — 16 commits
- tests/specs — 13 commits
- libs/core — 6 commits
- cli/tools — 5 commits
- (root) — 4 commits
- .github/workflows — 3 commits
- cli/tsc — 3 commits
- ext/net — 3 commits
- ext/web — 3 commits
- tests/util — 3 commits
- ext/napi — 2 commits
- libs/npm_cache — 2 commits
- cli/args — 1 commit
- cli/build.rs — 1 commit
- cli/js — 1 commit
- cli/rt — 1 commit
- cli/rt_desktop — 1 commit
- cli/util — 1 commit
- ext/crypto — 1 commit
- ext/ffi — 1 commit

## Notable commits

- fix: fix(cache): store Web Cache under origin data (#36145)
- fix: fix(check): type-check local wasm imports (#36178)
- fix: fix(check): write per-file check tsconfig to system temp, not project root (#36171)
- fix: fix(clean): reject symlinked node_modules cleanup roots (#36190)
- fix: fix(compile): bump libsui to 0.16.4 to fix Windows resource SizeOfImage (#36242)
- fix: fix(core): allow dynamic imports during cached module evaluation (#36258)
- fix: fix(core): don't resolve internal module imports with the user's import map (#36303)
- fix: fix(core): enforce JSON requests in FsModuleLoader (#36137)
- fix: fix(crypto): add `"raw-secret"` to `KeyFormat` type (#35708)
- fix: fix(desktop): handle colored HMR URLs and page loads (#36316)
- fix: fix(desktop): make BrowserWindow bindings typeable (#35907)
- fix: fix(ext/crypto): allow deriveBits with length 0 (#36283)
- fix: fix(ext/napi): cancel async sends after close (#36077)
- fix: fix(ext/napi): polyfill `uv_handle_size` and `uv_strerror` (#36308)
- fix: fix(ext/net): release completed QUIC stream resources (#36247)
- fix: fix(ext/node): Node compat for web streams (#36285)
- fix: fix(ext/node): apply backpressure in Readable.toWeb() (#36321)
- fix: fix(ext/node): apply backpressure to http2 stream writes (#36044)
- fix: fix(ext/node): defer TLS write completion callback to avoid reentrancy panic (#35867)
- fix: fix(ext/node): implement node:test tags (#36292)
- …and 67 more
