Loading workspace insights... Statistics interval
7 days30 daysLatest CI Pipeline Executions
091ca1bb Adopted correctnessRules in apps/admin + cleaned 14 violations
no ref
apps/admin's standalone ESLint config now spreads correctnessRules from eslint.shared.mjs — matches the rule posture every factory-using workspace already has.
5 curly violations autofixed (single-statement if returns now braced).
5 source fixes:
- nav-content.tsx: count != null → count !== null && count !== undefined (eqeqeq with always — the variable is number | null | undefined)
- 4 console.error calls untouched: workspace overrides 'no-console' to ['error', { allow: ['error', 'warn'] }] since console.error is the conventional browser error sink
Scoped exemptions added to apps/admin/eslint.config.js (mirrors ghost/core's pattern):
- Test files (*.test.{ts,tsx}, *.spec.{ts,tsx}, test-utils/**): no-plusplus + no-promise-executor-return off (renderCount++, await new Promise(r => setTimeout(r, N)) are common test idioms)
- Build scripts at workspace root (*.ts/*.mts/*.cts — vite-backend-proxy.ts, vite-ember-assets.ts, vite.config.ts): no-console + no-promise-executor-return off (Node side, intentional)
The 'ghost/filenames/match-regex' rule from the previous config is now covered by correctnessRules (same rule, same args), so its explicit line is dropped. 091ca1bb Adopted correctnessRules in apps/admin + cleaned 14 violations
no ref
apps/admin's standalone ESLint config now spreads correctnessRules from eslint.shared.mjs — matches the rule posture every factory-using workspace already has.
5 curly violations autofixed (single-statement if returns now braced).
5 source fixes:
- nav-content.tsx: count != null → count !== null && count !== undefined (eqeqeq with always — the variable is number | null | undefined)
- 4 console.error calls untouched: workspace overrides 'no-console' to ['error', { allow: ['error', 'warn'] }] since console.error is the conventional browser error sink
Scoped exemptions added to apps/admin/eslint.config.js (mirrors ghost/core's pattern):
- Test files (*.test.{ts,tsx}, *.spec.{ts,tsx}, test-utils/**): no-plusplus + no-promise-executor-return off (renderCount++, await new Promise(r => setTimeout(r, N)) are common test idioms)
- Build scripts at workspace root (*.ts/*.mts/*.cts — vite-backend-proxy.ts, vite-ember-assets.ts, vite.config.ts): no-console + no-promise-executor-return off (Node side, intentional)
The 'ghost/filenames/match-regex' rule from the previous config is now covered by correctnessRules (same rule, same args), so its explicit line is dropped. 091ca1bb Adopted correctnessRules in apps/admin + cleaned 14 violations
no ref
apps/admin's standalone ESLint config now spreads correctnessRules from eslint.shared.mjs — matches the rule posture every factory-using workspace already has.
5 curly violations autofixed (single-statement if returns now braced).
5 source fixes:
- nav-content.tsx: count != null → count !== null && count !== undefined (eqeqeq with always — the variable is number | null | undefined)
- 4 console.error calls untouched: workspace overrides 'no-console' to ['error', { allow: ['error', 'warn'] }] since console.error is the conventional browser error sink
Scoped exemptions added to apps/admin/eslint.config.js (mirrors ghost/core's pattern):
- Test files (*.test.{ts,tsx}, *.spec.{ts,tsx}, test-utils/**): no-plusplus + no-promise-executor-return off (renderCount++, await new Promise(r => setTimeout(r, N)) are common test idioms)
- Build scripts at workspace root (*.ts/*.mts/*.cts — vite-backend-proxy.ts, vite-ember-assets.ts, vite.config.ts): no-console + no-promise-executor-return off (Node side, intentional)
The 'ghost/filenames/match-regex' rule from the previous config is now covered by correctnessRules (same rule, same args), so its explicit line is dropped.