Dependabot PR Triage — 2026-05-18

Repo: metaverbe-hub/Multiverbe Branch base: master Workspace: frontend/multiverbe-app (pnpm, ADR-006 no-hoist strict) Hard gate: 10 Giu 2026 → 23 giorni di margine Context stack snapshot (from package.json):

  • React 19.2.6 · Vite 5.4.21 · TypeScript 5.4.5 · Tailwind 3.4.x · three 0.171.0 · @react-three/fiber 9.6.1 · @react-three/drei 10.7.7 · @react-three/postprocessing 3.0.4
  • @anthropic-ai/sdk 0.95.2 · date-fns 4.1.0

Tutte e 5 le PR sono in stato Vercel BUILD = FAILURE già adesso. Significa che il merge cieco di una qualunque di esse romperebbe ulteriormente il deploy. Da capire se il fail è causato dal bump stesso o da un problema preesistente di master (vedi nota "Vercel-FAILURE root cause" in fondo).


PR #65 · date-fns 4.1.0 → 4.2.0

  • Tipo: semver MINOR (4.x → 4.x)
  • Risk pre-launch: low
  • Breaking changes: NESSUNO. Il changelog upstream dice testualmente: "This is a minor release in all senses, it only includes documentation updates… Added Temporal API references to the JSDoc annotations of add, addBusinessDays, and addDays." → solo JSDoc + browserslist update + dev-deps interne. Zero modifiche runtime.
  • Co-installed cascade: nessuna. date-fns non ha peer deps verso altre lib del nostro stack.
  • Recommendation: MERGE
  • Justification: bump cosmetico, alta confidenza, e Dependabot compatibility score di norma 100% per release "docs-only" date-fns. Se il build Vercel resta rosso dopo questo merge è certamente per altra causa (vedi root-cause section).
  • Post-merge verify:
    1. pnpm install in frontend/multiverbe-app → lockfile aggiornato pulito.
    2. pnpm build (tsc + vite build) verde.
    3. Smoke su qualunque pagina che usa date-fns (booking calendar, CRM activity timeline) → render OK.

PR #64 · three 0.171.0 → 0.184.0

  • Tipo: semver MINOR secondo SemVer dichiarato da Dependabot, ma three.js usa bump 0.x.y dove ogni 0.x è di fatto un breaking (è policy storica del progetto: API changes a ogni minor — vedi migration.md upstream).
  • Salto: 13 versioni minor in 5 mesi.
  • Risk pre-launch: HIGH
  • Breaking changes potenziali (in arco 0.172 → 0.184, da release notes upstream):
    • WebGPU renderer maturity changes
    • Material API refinements
    • Geometry attribute changes
    • Math utility signatures riviste
    • MeshBasicNodeMaterial and TSL nodes ridefiniti (potenzialmente impatto su shaders custom)
    • L'allineamento @types/three (pinned a ^0.171.0 in devDependencies) NON è incluso nella PR → type mismatch quasi certo al build TS.
  • Co-installed cascade — critica:
    • @react-three/fiber 9.6.1 dichiara three come peer dep con range >=0.140.0 <0.190.0: tecnicamente OK fino a 0.184.
    • @react-three/drei 10.7.7 + @react-three/postprocessing 3.0.4 sono i veri rischi: drei usa internal three primitives che cambiano frequentemente.
    • three-stdlib 2.36.1 → ha la sua propria pinning di three, può rompersi.
    • maath 0.10.8 → idem.
    • @types/three 0.171.0 → deve essere bumpato in lockstep (PR non lo include = TS2305/TS2307 garantito).
  • Recommendation: WAIT-POST-LAUNCH
  • Justification: Multiverbe ha 13 componenti R3F che importano direttamente da three (Sole, Pianeta, NucleoSphere, SatelliteOrbiters/Orbits/Logo, OrbitRings, CameraRig, Bloom, StarField, DustMotes, MidStars, DeepStars). La scena 3D è il moat visivo del prodotto (sistema solare Osservatorio). Un bump di 13 versioni minor di three pre-launch è gambling. Va testato in branch dedicato con @types/three, three-stdlib, maath bumpati in cascata.
  • Post-launch retry path: aprire branch chore/three-184-upgrade, bumpare in 4 step (0.171 → 0.175 → 0.180 → 0.184), test visual regression su /3d-preview a ogni step.
  • If forced merge now (NOT recommended): minimo verificare:
    1. pnpm install non rompe peer deps.
    2. pnpm build (TS strict — fallirà su @types/three).
    3. Visual smoke su /3d-preview (Sole + 6 pianeti renderizzati, nessuna scena nera).

PR #63 · dev-tooling group (4 pkg: @types/node, @vitejs/plugin-react, typescript, vite)

  • Tipo: gruppo combinato con 3 MAJOR bumps:
    • @types/node 22.19.10 → 25.8.0 (3 major, dev-only type defs)
    • @vitejs/plugin-react 4.7.0 → 6.0.2 (2 major)
    • typescript 5.9.3 → 6.0.3 (1 MAJOR — language version)
    • vite 5.4.21 → 8.0.13 (3 MAJOR — build pipeline rewrite)
  • Risk pre-launch: HIGH (di fatto critical)
  • Breaking changes — confermati:
    • TypeScript 6.0: rilascio appena uscito (announcing blog post), nuove regole strict, possibili regressioni noUnusedLocals + strict su codice esistente; impatto su Phosphor types, R3F generic inference, Anthropic SDK zod v4 types appena fixed in 0.96 (vedi PR #62), Supabase generated types.
    • Vite 6 → 8 (salto di 3 major): passaggio a rolldown 1.0.1 come bundler default (sperimentale fino a poco fa, ora stabile in v8). Plugin API è cambiata; il nostro vite.config.ts ha optimizeDeps.include con maath/easing, three, three-stdlib, @react-three/* che esercita pesantemente la pipeline. Inoltre manualChunks rollup option potrebbe richiedere rename verso rolldownOptions (deprecation message già attivo in Vite 8.0.12).
    • @vitejs/plugin-react 4 → 6: rimuove Babel come dipendenza diretta. Se in futuro vorremo react-compiler servirà @rolldown/plugin-babel esplicito. Per ora low-impact ma comunque rewrite del plugin.
    • @types/node 22 → 25: 3 major sui type defs Node. Impatto su dotenv, @vercel/node, scripts che usano node:fs/node:path.
  • Co-installed cascade: enorme. Vite 8 può richiedere bump di tutti i plugin Vite (ne abbiamo 1 esplicito + transitivi via drei/r3f).
  • Recommendation: WAIT-POST-LAUNCH (split + sequenziato)
  • Justification: combinare 4 major in un singolo group update è dependency-hell garantito. La policy founder ha già scelto "transitive deps direct-declaration" (memoria pnpm_strict_transitive_deps) proprio per ridurre questi rischi. Pre-launch con 23 giorni rimanenti, accollarsi un Vite 5→8 + TypeScript 5→6 = scope creep critico. TS 6 e Vite 8 sono entrambi appena rilasciati (release blog post linkato nella PR = "Announcing TypeScript 6.0").
  • Post-launch retry path: dopo 10 Giu, splittare in 4 PR singole:
    1. @types/node 22 → 25 (low risk, dev-only).
    2. typescript 5.9 → 6.0 (medium — richiede sweep pnpm tsc --noEmit + fix typings).
    3. vite 5.4 → 6.x (NON saltare a 8, fare 5 → 6 → 7 → 8 in step).
    4. @vitejs/plugin-react 4 → 6 (in lockstep con Vite ≥6).
  • If merged now (BLOCK): il build TS fallirà certo, e il rolldown bundler potrebbe non gestire i nostri manualChunks 3D allo stesso modo.

PR #62 · @anthropic-ai/sdk 0.95.2 → 0.96.0

  • Tipo: semver MINOR (0.95 → 0.96, anche se SDK pre-1.0 di Anthropic è convenzionalmente "minor = additive")
  • Risk pre-launch: low / mid
  • Breaking changes:
    • Solo additivi feature-wise: BetaManagedAgentsSearchResultBlock types nuovi, support cache diagnostics beta.
    • Una bug fix sui zod types importante: "ensure only zod/v4 types are used" (PR #992 upstream). Importante perché il nostro package.json ha zod ^3.25.76se l'SDK ora richiede zod v4, il build romperà. Da verificare nella PR upstream se è transitiva o se richiede zod v4 nel consumer.
  • Co-installed cascade: potenziale conflict con zod ^3.25.76. Da verificare.
  • Recommendation: NEEDS-FOUNDER-DECISION → in pratica MERGE WITH CAUTION se la zod v4 fix è solo type-internal; WAIT se richiede zod v4 nel consumer.
  • Justification: minor SDK Anthropic = di solito sicuro. Ma il dettaglio zod v4 è un yellow flag specifico per il nostro stack che usa zod v3 ovunque (Stripe webhook validators, Supabase parsing, AI structured output). Vale 5 min di check dello changelog del PR #992 upstream prima di mergere.
  • Pre-merge check (5 min):
    • Aprire https://github.com/anthropics/anthropic-sdk-typescript/pull/992 e verificare se zod è ancora peer dep ^3 || ^4 o forced ^4.
    • Se rimane ^3 || ^4 → MERGE safe.
    • Se forced ^4 → bisogna prima migrare nostro zod a v4 (è un major nostro, NO pre-launch).
  • Post-merge verify:
    1. pnpm install lockfile pulito.
    2. pnpm build TS verde.
    3. Smoke test su /api/ai/sector-deduction.ts (Vercel serverless Sonnet 4.6 — usa l'SDK).
    4. Verifica risposte AI ancora correttamente parsate (no breaking response shape).

PR #61 · tailwindcss 3.4.19 → 4.3.0

  • Tipo: semver MAJOR (v3 → v4) — rewrite di intera architettura Tailwind.
  • Risk pre-launch: HIGH (di fatto critical)
  • Breaking changes — Tailwind v4 è una full rewrite:
    • CSS-first config: il tailwind.config.js (132 righe di custom config nel nostro repo) deve essere migrato a @theme block in CSS. Tutto il design system Osservatorio (colors accent-sky, accent-green, font Bricolage Grotesque + Geist, custom fontSize tokens caption/label/body/subtitle/title/display/hero, spacing 4.5/13/15/18/22, keyframes 7 custom animations, boxShadow neon/card) deve essere riscritto.
    • PostCSS plugin cambiato: tailwindcss: {} in postcss.config.js va sostituito con @tailwindcss/postcss come pacchetto separato (non più direct).
    • Directives cambiate: @tailwind base/components/utilities (riga 3-5 di src/index.css) → diventa @import "tailwindcss". Il nostro @layer base + @layer components esistenti vanno verificati per compat.
    • @apply semantics: leggermente cambiate; abbiamo 2 file con @apply (src/index.css).
    • Browser support: v4 richiede Safari 16.4+ / Chrome 111+ / Firefox 128+. Possibile impatto su utenti Safari iOS più vecchi (CH market: clientela 40-60+ anni nelle PMI Ticino — non ignorabile).
    • No legacy IE/older Safari fallbacks.
    • Plugin ecosystem: tutti i plugin Tailwind (noi non ne usiamo, plugins: []) devono essere v4-compatible.
  • Co-installed cascade:
    • autoprefixer 10.5 → potrebbe non più servire (v4 gestisce vendor prefixing internamente).
    • postcss 8.5 → resta, ma config va riscritta.
    • Nuovo deps: @tailwindcss/postcss o @tailwindcss/vite (preferenziale per Vite — riduce build time).
  • Recommendation: WAIT-POST-LAUNCH
  • Justification: questo è il rischio più alto delle 5 PR. Il design system Osservatorio è LA brand identity di Multiverbe (skill multiverbe-design, decisione founder 2026-05-14, 132 righe di custom config). Riscrivere tutto in CSS v4 = 4-8h minimo + testing visivo full su tutte le pagine + audit Safari iOS compat. Zero giustificazione pre-launch. Tailwind 3.4 è LTS perfettamente stabile.
  • Post-launch retry path: aprire branch dedicato chore/tailwind-v4-migration con upgrade tool ufficiale npx @tailwindcss/upgrade, audit screenshot regression page-by-page, deploy preview prima di merge. Stimare 1-2 giorni full focus.
  • If forced merge now (BLOCK): il build PostCSS fallirà certo perché manca @tailwindcss/postcss, e anche se installato manualmente, le 132 righe di config v3 sintassi sono incompatibili con v4 CSS-first.

Vercel-FAILURE root cause — nota orizzontale

Tutte le 5 PR sono in stato build FAILURE su sia multiverbe-app che multiverbe-sites. Per PR #65 (date-fns docs-only) il fail non può essere dovuto al bump stesso. Va verificato se:

  1. Master è già rotto (i.e. il fallimento è ereditato dal base branch). In tal caso le PR Dependabot non sono il problema — fix master prima.
  2. pnpm lockfile mismatch post-rebase Dependabot (vedi memoria pnpm_strict_transitive_deps + ADR-006). Possibile che il pnpm install --frozen-lockfile fallisca perché Dependabot aggiorna package.json ma non il lockfile in modo compatibile col workspace.
  3. Vercel project misconfig (memoria multiverbe-sites zombie / project list caotica + vercel_git_author_email_verification).

Azione raccomandata mother coordinator: prima di triare i merge, aprire una build log Vercel di una delle 5 PR (es. il targetUrl di PR #65 — date-fns docs-only) e leggere il vero errore. Se il fail non c'entra con il bump, lo si applica a tutte le 5.


Summary recommendation

PR Package Bump Risk Recommendation
#65 date-fns 4.1.0 → 4.2.0 low MERGE (docs-only)
#62 @anthropic-ai/sdk 0.95.2 → 0.96.0 low/mid MERGE WITH CAUTION (verify zod v4 5min)
#64 three 0.171.0 → 0.184.0 HIGH WAIT-POST-LAUNCH (R3F regression risk + @types/three lockstep)
#63 dev-tooling group (TS6 + Vite8 + …) 4 MAJOR HIGH WAIT-POST-LAUNCH (split in 4 PR sequenziali)
#61 tailwindcss 3.4 → 4.3 HIGH WAIT-POST-LAUNCH (rewrite design system)

Final tally

  • MERGE now: 1 (PR #65)
  • MERGE with 5-min pre-check: 1 (PR #62)
  • WAIT post-launch 10 Giu: 3 (PR #61, #63, #64)
  • CLOSE definitivamente: 0

Prerequisite block

Tutte le 5 PR sono in build FAILURE su Vercel. Prima di mergere anche solo #65, accertare la root cause del fail (master rotto / lockfile / Vercel config) — vedi sezione "Vercel-FAILURE root cause".

Suggested Dependabot config follow-up (post-launch)

In .github/dependabot.yml aggiungere ignore rules per:

  • three major-version updates (manuali con lockstep @types/three + three-stdlib + @react-three/*)
  • typescript major (manuali)
  • vite major (manuali)
  • tailwindcss major (manuale, design system rewrite)

Lasciare automatici: patch + minor di tutti gli altri pacchetti.