Context
PR #1208 caused `lint:js:changed` to run over a much wider set of files than any recent PR has, exposing pre-existing ESLint errors that weren't introduced by #1208 — they were simply not being checked before because nobody had touched those files recently.
Two categories of pre-existing errors were unblocked in #1208:
1. `import/no-unresolved` on `@popup-maker/*` workspace packages
Workaround applied: Added `^@popup-maker/` to the `ignore` list in `.eslintrc.js`. This silences the rule but doesn't actually fix the underlying resolver issue.
Root cause: `eslint-plugin-import`'s default resolver can't follow pnpm workspace symlinks in CI's strict install layout, even though the imports work correctly at runtime (via tsconfig paths + webpack aliases).
Proper fix: Add `eslint-import-resolver-typescript` or equivalent that reads `tsconfig.json` paths, then remove the workaround ignore entry.
2. `@wordpress/i18n-translator-comments` placeholder format
Several pre-existing `sprintf()` / `_n()` calls used legacy comment formats:
- `// translators: 1. number of items` (numbered format)
- `// translators: 1. call to action label` (wrong description for actual `%d`)
- Missing translator comments entirely
Fixed in #1208 for touched files only. Similar errors likely exist in other files that weren't part of that PR's diff.
What's needed
- Proper ESLint resolver config so `@popup-maker/*` imports resolve without an ignore list.
- Audit all `sprintf`/`_n`/`_x` call sites in `packages/` and `assets/js/src/` for translator comment compliance.
- Optional: configure `lint:js` to run repo-wide in CI (not just changed files) so these don't accumulate.
Acceptance
References
Context
PR #1208 caused `lint:js:changed` to run over a much wider set of files than any recent PR has, exposing pre-existing ESLint errors that weren't introduced by #1208 — they were simply not being checked before because nobody had touched those files recently.
Two categories of pre-existing errors were unblocked in #1208:
1. `import/no-unresolved` on `@popup-maker/*` workspace packages
Workaround applied: Added `^@popup-maker/` to the `ignore` list in `.eslintrc.js`. This silences the rule but doesn't actually fix the underlying resolver issue.
Root cause: `eslint-plugin-import`'s default resolver can't follow pnpm workspace symlinks in CI's strict install layout, even though the imports work correctly at runtime (via tsconfig paths + webpack aliases).
Proper fix: Add `eslint-import-resolver-typescript` or equivalent that reads `tsconfig.json` paths, then remove the workaround ignore entry.
2. `@wordpress/i18n-translator-comments` placeholder format
Several pre-existing `sprintf()` / `_n()` calls used legacy comment formats:
Fixed in #1208 for touched files only. Similar errors likely exist in other files that weren't part of that PR's diff.
What's needed
Acceptance
removed from \import/no-unresolved` ignore listReferences