build: migrate to TypeScript 7 - #387
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
Codex review: needs maintainer review before merge. Reviewed August 10, 2026, 2:16 PM ET / 18:16 UTC. ClawSweeper reviewWhat this changesMigrates all workspace builds to TypeScript 7, replaces the import-cycle parser with oxc-parser, and patches image-size against zero-length parser loops. Merge readinessKeep open for explicit owner review. The branch is a coherent TypeScript toolchain migration with focused cycle-gate and dependency-patch coverage; no discrete correctness defect was found in the reviewed diff. Priority: P2 Review scores
Verification
How this fits togetherWorkspace scripts compile the CLI, core library, and browser extension, while an architecture test scans source imports to prevent cycles. The extension’s transitive image decoder processes image metadata, so its patched parsing behavior affects extension tooling. flowchart LR
A[Workspace source] --> B[TypeScript build scripts]
A --> C[Import-cycle check]
C --> D[Dependency graph]
E[Extension dependency tree] --> F[Patched image decoder]
B --> G[CLI core and extension artifacts]
F --> G
Decision needed
Why: This owner-authored toolchain migration changes the compiler that produces published CLI and core artifacts; source review cannot make the release-compatibility acceptance decision. Before merge
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Adopt TypeScript 7 after the clean-head build, full check gate, Chrome extension suite, and release-package verification confirm unchanged published artifact behavior. Do we have a high-confidence way to reproduce the issue? Not applicable: this PR performs build-toolchain and dependency maintenance rather than fixing a single user-reproducible report. Is this the best way to solve the issue? Yes, conditionally: replacing the removed compiler-specific traversal with a parser visitor is a narrow maintainable path, provided release-artifact compatibility is accepted after integration validation. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against de5f5d0f9d71. LabelsLabel changes:
Label justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
|
Summary
tscbinary across every workspace packageoxc-parser, preserving static import, re-export, dynamic import, and import-type detection; add a deliberate two-file cycle fixtureundiciand patchimage-sizezero-length box/ICNS loops because upstream has no fixed release; add a timeout-isolated regression testProof
pnpm -s buildpnpm -s check— 556 files passed, 3,015 tests passed, 29 files / 43 tests skippedpnpm -C apps/chrome-extension test:chrome— 3 native/slides tests passed, then 111 passed / 8 skipped in the full Chromium suitepnpm -C apps/chrome-extension buildscripts/release.sh verify— packed core and CLI, installed both tarballs, ran CLI help, and extracted one slide through the FFmpeg WebAssembly fallbackAudit note
pnpm audit --audit-level highstill identifies the twoimage-size@2.0.2advisories by package version because the registry lists no patched version. This PR fixes both vulnerable loops through pnpm's checked-in dependency patch without muting the advisories, and the regression probe fails closed on zero-length ISO boxes and ICNS entries.