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· Vite5.4.21· TypeScript5.4.5· Tailwind3.4.x· three0.171.0· @react-three/fiber9.6.1· @react-three/drei10.7.7· @react-three/postprocessing3.0.4 - @anthropic-ai/sdk
0.95.2· date-fns4.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, andaddDays." → solo JSDoc + browserslist update + dev-deps interne. Zero modifiche runtime. - Co-installed cascade: nessuna.
date-fnsnon 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:
pnpm installinfrontend/multiverbe-app→ lockfile aggiornato pulito.pnpm build(tsc + vite build) verde.- 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.mdupstream). - 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
MeshBasicNodeMaterialand TSL nodes ridefiniti (potenzialmente impatto su shaders custom)- L'allineamento
@types/three(pinned a^0.171.0in devDependencies) NON è incluso nella PR → type mismatch quasi certo al build TS.
- Co-installed cascade — critica:
@react-three/fiber9.6.1 dichiarathreecome peer dep con range>=0.140.0 <0.190.0: tecnicamente OK fino a 0.184.@react-three/drei10.7.7 +@react-three/postprocessing3.0.4 sono i veri rischi: drei usa internal three primitives che cambiano frequentemente.three-stdlib2.36.1 → ha la sua propria pinning di three, può rompersi.maath0.10.8 → idem.@types/three0.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,maathbumpati 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:
pnpm installnon rompe peer deps.pnpm build(TS strict — fallirà su@types/three).- 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/node22.19.10 → 25.8.0 (3 major, dev-only type defs)@vitejs/plugin-react4.7.0 → 6.0.2 (2 major)typescript5.9.3 → 6.0.3 (1 MAJOR — language version)vite5.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+strictsu 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.tshaoptimizeDeps.includeconmaath/easing,three,three-stdlib,@react-three/*che esercita pesantemente la pipeline. InoltremanualChunksrollup option potrebbe richiedere rename versorolldownOptions(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-babelesplicito. 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 usanonode:fs/node:path.
- TypeScript 6.0: rilascio appena uscito (announcing blog post), nuove regole strict, possibili regressioni
- 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:
@types/node22 → 25 (low risk, dev-only).typescript5.9 → 6.0 (medium — richiede sweeppnpm tsc --noEmit+ fix typings).vite5.4 → 6.x (NON saltare a 8, fare 5 → 6 → 7 → 8 in step).@vitejs/plugin-react4 → 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:
BetaManagedAgentsSearchResultBlocktypes 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.jsonhazod ^3.25.76— se l'SDK ora richiede zod v4, il build romperà. Da verificare nella PR upstream se è transitiva o se richiede zod v4 nel consumer.
- Solo additivi feature-wise:
- 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/992e verificare sezodè ancora peer dep^3 || ^4o forced^4. - Se rimane
^3 || ^4→ MERGE safe. - Se forced
^4→ bisogna prima migrare nostro zod a v4 (è un major nostro, NO pre-launch).
- Aprire
- Post-merge verify:
pnpm installlockfile pulito.pnpm buildTS verde.- Smoke test su
/api/ai/sector-deduction.ts(Vercel serverless Sonnet 4.6 — usa l'SDK). - 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@themeblock in CSS. Tutto il design system Osservatorio (colorsaccent-sky,accent-green, fontBricolage 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: {}inpostcss.config.jsva sostituito con@tailwindcss/postcsscome pacchetto separato (non più direct). - Directives cambiate:
@tailwind base/components/utilities(riga 3-5 disrc/index.css) → diventa@import "tailwindcss". Il nostro@layer base+@layer componentsesistenti vanno verificati per compat. @applysemantics: 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.
- CSS-first config: il
- Co-installed cascade:
autoprefixer10.5 → potrebbe non più servire (v4 gestisce vendor prefixing internamente).postcss8.5 → resta, ma config va riscritta.- Nuovo deps:
@tailwindcss/postcsso@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-migrationcon upgrade tool ufficialenpx @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:
- Master è già rotto (i.e. il fallimento è ereditato dal base branch). In tal caso le PR Dependabot non sono il problema — fix master prima.
- pnpm lockfile mismatch post-rebase Dependabot (vedi memoria
pnpm_strict_transitive_deps+ ADR-006). Possibile che ilpnpm install --frozen-lockfilefallisca perché Dependabot aggiornapackage.jsonma non il lockfile in modo compatibile col workspace. - Vercel project misconfig (memoria
multiverbe-siteszombie / 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:
threemajor-version updates (manuali con lockstep@types/three+three-stdlib+@react-three/*)typescriptmajor (manuali)vitemajor (manuali)tailwindcssmajor (manuale, design system rewrite)
Lasciare automatici: patch + minor di tutti gli altri pacchetti.