| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(deps): update dependency resend to v2.41.0 | 2 天前 | |
chore(deps): update dependency @types/node to v26 | 1 个月前 | |
release: bump version to 1.3.5 | 8 天前 | |
test(i18n): guard RTL against regression Three layers, because each catches what the others cannot see. An ESLint rule rejects physical-direction utilities in class strings. It is an error rather than a warning: the codebase was converted in one pass, so there is no backlog to stage around and anything it catches is new. It knows the two exceptions the codemod knows — 50% centering insets, and Radix data-[side=*] pairs, which report the resolved physical side and are already correct. Surfaces that are deliberately LTR are listed once, next to the reason. A bun test covers raw CSS and the constants ESLint cannot reach: every physical declaration in globals.css must carry an rtl-ok comment explaining itself, the language registry must declare a direction for every locale and agree with the lazy loaders, ar.json must cover every en.json key, and the RTL list duplicated into public/dir-init.js must match lib/direction.ts. The test also compiles globals.css and asserts the RTL rules survive. That is not paranoia: the icon-mirroring block was silently dropped once because a comment above it contained `*/`, which closed the comment early and took the rule with it. No build error, no lint error — the app just stopped mirroring icons, and the source looked correct the whole time. The Playwright specs cover the three failures that are invisible in review: direction wrong on first paint, direction not following a live language switch, and horizontal overflow — the last being the cheapest way to catch a physical margin that escaped the sweep, on any route, with no screenshots to maintain. Two ESLint changes were needed for the changed-files gate to pass. Four real errors are fixed — a redundant regex escape, a React import missing where it is used in a type position, an interface shadowing its component, an unscoped const in a case block. And no-unused-vars drops to warn, joining the React Compiler rules already there for the same #800 backlog: the gate lints whole changed files, so a repo-wide change fails on debt it merely walked past. Base ESLint also cannot read TypeScript and reports parameter names inside type annotations as unused variables — those are documentation, not dead code. The real fix is adopting @typescript-eslint/no-unused-vars, which is its own change. | 22 天前 | |
fix(deps): update all non-major dependencies to v3.30.5 | 3 天前 |