diff --git a/.github/workflows/sentinel.yml b/.github/workflows/sentinel.yml index c1ef923..d1f5904 100644 --- a/.github/workflows/sentinel.yml +++ b/.github/workflows/sentinel.yml @@ -107,7 +107,7 @@ jobs: if: github.event_name != 'schedule' || steps.schedule.outputs.should_run == 'true' uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: npm - name: Install diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..a45fd52 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +24 diff --git a/docs/BACKLOG.md b/docs/BACKLOG.md index c9d5da1..d75960f 100644 --- a/docs/BACKLOG.md +++ b/docs/BACKLOG.md @@ -16,8 +16,6 @@ roadmap. Una voce nel backlog non è scope approvato. crescono troppo. - Valutare un controllo automatico di dimensione repository se gli output applicativi crescono oltre una soglia pratica. -- Rendere esplicito un target Node locale se il runtime GitHub Actions non basta - più come riferimento operativo. ## Bug diff --git a/docs/CONTEXT.md b/docs/CONTEXT.md index 90cff16..08ef47b 100644 --- a/docs/CONTEXT.md +++ b/docs/CONTEXT.md @@ -5,6 +5,7 @@ - Fase: runtime operativo MVP. - Ultima versione/release: `0.1.0` in `package.json`; nessuna release GitHub pubblicata. +- Runtime Node.js target: `24.x`. - Ultimo deploy operativo: GitHub Actions su branch `main`. - Dashboard web: app Next.js pubblicabile su Vercel da CLI, con dati dinamici su Vercel Blob privato. diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 8830f8f..1895fdc 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -42,6 +42,7 @@ non ancora scelte stanno in `docs/BACKLOG.md`. - Risolto il run rosso iniziale legato ai secret email mancanti; i run manuali successivi sono verdi. - Aggiunta baseline documentale Atlas e baseline GitHub minima. +- Allineato il runtime Node.js locale e GitHub Actions a Node `24`. ## Regole diff --git a/docs/TOOLCHAIN.md b/docs/TOOLCHAIN.md index ce75db1..82a8b69 100644 --- a/docs/TOOLCHAIN.md +++ b/docs/TOOLCHAIN.md @@ -6,8 +6,8 @@ Questa pagina descrive runtime, comandi e guardrail effettivi di Sentinel. | Area | Versione/canale | Fonte | | --- | --- | --- | -| Node.js locale | compatibile con TypeScript/Vitest correnti; types allineati a Node `22` | `package.json`, `package-lock.json` | -| Node.js GitHub Actions | `22` | `.github/workflows/sentinel.yml` | +| Node.js locale | `24.x`; tipi allineati a Node `24` | `.nvmrc`, `package.json`, `package-lock.json` | +| Node.js GitHub Actions | `24` | `.github/workflows/sentinel.yml` | | npm | lockfile npm | `package-lock.json` | | TypeScript | `^6.0.3` | `package.json` | | Python | non applicabile | nessun runtime Python | @@ -35,7 +35,7 @@ Questa pagina descrive runtime, comandi e guardrail effettivi di Sentinel. | `gh` | CLI autenticata locale | PR, run GitHub Actions e diagnostica GitHub | | Vercel CLI | locale/autenticata | deploy dashboard web senza GitHub Actions | | Vercel Blob | privato | payload dinamico dashboard e ultimi report | -| GitHub Actions | `ubuntu-latest`, Node `22` | runtime operativo schedulato/manuale | +| GitHub Actions | `ubuntu-latest`, Node `24` | runtime operativo schedulato/manuale | | Dependabot | configurazione GitHub | aggiornamenti dipendenze npm e GitHub Actions | | SMTP Gmail | Doppler, secret GitHub o env locale | invio email operativo | | Portachiavi macOS | servizi `sentinel-gmail` e `sentinel-icloud` | fallback locale per password email | diff --git a/package-lock.json b/package-lock.json index a295fa2..ef57a96 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "sentinel": "dist/index.js" }, "devDependencies": { - "@types/node": "^22.19.19", + "@types/node": "^24.12.4", "@types/nodemailer": "^8.0.0", "@types/react": "^19.2.15", "@types/react-dom": "^19.2.3", @@ -31,6 +31,9 @@ "tsx": "^4.20.6", "typescript": "^6.0.3", "vitest": "^4.0.14" + }, + "engines": { + "node": "24.x" } }, "node_modules/@babel/code-frame": { @@ -3148,13 +3151,13 @@ "peer": true }, "node_modules/@types/node": { - "version": "22.19.19", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.19.tgz", - "integrity": "sha512-dyh/xO2Fh5bYrfWaaqGrRQQGkNdmYw6AmaAUvYeUMNTWQtvb796ikLdmTchRmOlOiIJ1TDXfWgVx1QkUlQ6Hew==", + "version": "24.12.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.4.tgz", + "integrity": "sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~7.16.0" } }, "node_modules/@types/nodemailer": { @@ -6203,9 +6206,9 @@ } }, "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index 22008c8..796d939 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,9 @@ "version": "0.1.0", "private": true, "type": "module", + "engines": { + "node": "24.x" + }, "bin": { "sentinel": "./dist/index.js" }, @@ -30,7 +33,7 @@ "yaml": "^2.8.2" }, "devDependencies": { - "@types/node": "^22.19.19", + "@types/node": "^24.12.4", "@types/nodemailer": "^8.0.0", "@types/react": "^19.2.15", "@types/react-dom": "^19.2.3",