- ci.yml: actions/checkout into the runner workspace instead of cd-ing into a
hard-coded host path and `git reset --hard origin/main` on the live checkout;
install via `pnpm install:gitea` (self-contained, no sibling common-plat
checkout); E2E step left as a TODO pointer (ci-e2e-hardening, Phase 5 P2).
- Fix the same stale /opt/bytelyst/bytelyst-devops-tools path in deploy.sh,
scripts/deploy-hotcopy.sh, DEPLOYMENT.md, DEPLOYMENT_GUIDE.md.
- Replace the no-op `lint` echoes with real ESLint 9 flat configs (js +
typescript-eslint recommended) for backend and web; add a root `pnpm lint`.
- Fix the 10 errors lint surfaced, incl. require('os') in an ESM backend
(system/repository.ts -> import * as os), prefer-const x4, and a ternary
expression-statement in web vm/page.tsx.
Verified locally: secret-scan, lint (0 errors; correctly fails on bad code),
typecheck, unit tests (backend 9 / web 11), and build all green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
28 lines
970 B
JavaScript
28 lines
970 B
JavaScript
import js from '@eslint/js';
|
|
import tseslint from 'typescript-eslint';
|
|
import globals from 'globals';
|
|
|
|
// Flat config (ESLint 9). Real linting — replaces the previous no-op `echo`.
|
|
// Correctness rules from the recommended sets stay errors and fail CI;
|
|
// stylistic/known-pattern rules are relaxed so the current tree is clean.
|
|
export default tseslint.config(
|
|
{ ignores: ['dist/**', 'coverage/**', 'node_modules/**'] },
|
|
js.configs.recommended,
|
|
...tseslint.configs.recommended,
|
|
{
|
|
files: ['**/*.{ts,mts,cts}'],
|
|
languageOptions: {
|
|
globals: { ...globals.node },
|
|
},
|
|
rules: {
|
|
// Fastify request/reply are cast to `any` at framework boundaries.
|
|
'@typescript-eslint/no-explicit-any': 'off',
|
|
// Surface dead code without failing the build on work-in-progress.
|
|
'@typescript-eslint/no-unused-vars': [
|
|
'warn',
|
|
{ argsIgnorePattern: '^_', varsIgnorePattern: '^_', caughtErrors: 'none' },
|
|
],
|
|
},
|
|
},
|
|
);
|