You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bring every existing src/lib file up to ≥90 on all four dimensions once gated — add tests where thin, and annotate genuinely-unreachable branches with a justified /* v8 ignore … -- <reason> */ (e.g. downloadFile.ts's String.split(...).pop() ?? "" defensive fallback).
Confirm npm run test:coverage (web) stays green with the broadened include.
Acceptance
src/lib/** is covered by the coverage include; the redundant single-file sandbox-csp entry is gone.
All current src/lib files clear ≥90 on lines/statements/functions/branches, or carry a justified v8 ignore for provably-dead branches.
CI's web test:coverage passes with the broadened gate.
Background
Surfaced during the Wave-1 smoke/audit pass (PRs #1586, #1588, #1592). The web coverage gate does not measure
clients/web/src/lib/**.clients/web/vite.config.tssetscoverage.includeto:src/lib/**is not in that list. So the per-file ≥90 gate (npm run test:coverage) silently does not apply to library modules undersrc/lib, including:downloadFile.ts(web: downloadFile.ts enhancements (downloadBlob, fileNameFromUri, isHttpUrl) #1560/feat(web): downloadFile.ts enhancements (downloadBlob, fileNameFromUri, isHttpUrl) #1586) — actual coverage 100/92.3/100/100, but not gate-enforced; its dead?? ""branch (line ~47) is also unannotated.sandbox-csp.ts(web: sandbox CSP builder library (lib/sandbox-csp.ts) #1558/feat(web): add sandbox CSP builder library (closes #1558) #1588) — feat(web): add sandbox CSP builder library (closes #1558) #1588 worked around this by adding only that one file to the include by name, which is why it is gated while its siblings are not.environmentFactory.ts,remoteOAuthStorage.ts(Web: migrate auth store to shared /store API (RemoteOAuthStorage parity with TUI/CLI) #1548/Web: migrate auth store to shared /store API (RemoteOAuthStorage parity with TUI/CLI) #1592) — wiring files, currently ungated.Net: new
src/libcode can regress below the four-dimension floor without CI noticing.Scope
src/lib/**(orclients/web/src/lib/**matching the existing entries' form) to thecoverage.includearray inclients/web/vite.config.ts.sandbox-csp.{ts,tsx}entry added in feat(web): add sandbox CSP builder library (closes #1558) #1588 back into the glob (remove the now-redundant single-file include).src/libfile up to ≥90 on all four dimensions once gated — add tests where thin, and annotate genuinely-unreachable branches with a justified/* v8 ignore … -- <reason> */(e.g.downloadFile.ts'sString.split(...).pop() ?? ""defensive fallback).npm run test:coverage(web) stays green with the broadened include.Acceptance
src/lib/**is covered by the coverageinclude; the redundant single-filesandbox-cspentry is gone.src/libfiles clear ≥90 on lines/statements/functions/branches, or carry a justifiedv8 ignorefor provably-dead branches.test:coveragepasses with the broadened gate.Refs: #1560, #1586, #1558, #1588, #1548, #1592, tracking #1579.