Audit repo · lavoro non mergiato / non in produzione (2026-06-03)

Richiesto dal founder (timore: sessioni che hanno lasciato codice non mergiato / non in prod / non su master). Audit completo di metaverbe-hub/Multiverbe (codice app). Verità = git/GitHub.

TL;DR

  • Nessun lavoro perso: tutte le sessioni reali hanno pushato i loro branch. Nessun worktree di sessione ha modifiche non committate o commit non pushati. L'unico "dirty" è 1 file in un worktree sub-agent transitorio (usa-e-getta, non lavoro founder).
  • ⚠️ Lavoro fatto ma NON in produzione = solo le PR aperte (sotto). Il grosso dell'MVP+ (#117→#149) è mergiato e in produzione.
  • 🧹 I tanti branch remoti "non mergiati" che git elenca sono avanzi di squash-merge (il lavoro È in master sotto un altro commit): pulizia, non lavoro perso.

Aggiornamento esecuzione (2026-06-03, stessa sessione · founder ha detto "sblocca")

  • #127 tier gating → MERGIATO in produzione (commit 3ba891a). Era conflittuale: conflitto semantico con l'accesso-per-pianeta-team di master (#141/#143). Risolto combinando i due filtri (visibilità = accesso team, lock = tier), + fix budget lint (TIER_RANK → Map). CI verde, deploy OK.
  • Dependabot: NESSUNO mergiato (scelta di sicurezza). Diagnosi: le PR app-deps (#64 three, #135-139 supabase/stripe/next/posthog/dev-tooling) falliscono il Typecheck + build vero → romperebbero la produzione (servono rebase + test funzionale, soprattutto i runtime). Le PR CI-action (#1-4) falliscono solo i job security secret-gated (rumore che fallisce su OGNI PR Dependabot), ma sono salti di versione major dell'infra CI (blast radius alto se rompono il workflow). → Gestire in un passaggio dedicato: rebase + test, non merge alla cieca. Fatto ora: triggerato @dependabot rebase su #64/#135/#136/#137/#138/#139 (rinfresco su master, la CI ri-gira). Restano APERTE: la sessione fresca mergia quelle che diventano verdi DOPO test funzionale (i runtime three/supabase/stripe/next vanno visti a occhio). Le CI-action #1-4 lasciate ferme.
  • #145/#147: NON rebasato (troppo rischioso alla cieca). #145 è 38 file, compliance-critical: infrastruttura sovrana EU net-new (api/_lib/sovereign/* fail-closed) + riscritture pesanti degli STESSI file riscritti da #144 (sole-identity, già mergiato): content/generate-text.ts (287 righe), sales/generate-outreach.ts (192 righe). Risolvere alla cieca rischia di rompere il fail-closed EU (dati verso provider USA = responsabilità penale founder). È anche infra-gated (Vertex EU). → Deve reconciliarlo chi ha fatto il sovrano, con test, quando l'infra è pronta. Le 5 migrazioni di #145 sono già in prod (backano #146).

PR APERTE = lavoro non ancora in produzione (qui le decisioni)

PR Cosa Stato CI Mergeabilità Raccomandazione · chi decide
#145 Pianeta Content: bonifica completa + routing sovrano EU reale verde CONFLITTUALE (master è andato avanti: collide su tier-cap-check, sector-deduction, sole-crm-suggestions, content/generate-text, sales/generate-outreach) Founder. Probabilmente in parte superato da #144 (sole-identity) e #146 (content "Crea a 3 tap") già mergiati. Il valore unico residuo è il routing sovrano EU (api/_lib/sovereign), che è comunque bloccato sull'infra founder (Vertex EU, Azure, DPA). Decidere: rebase + merge della sola parte sovrana quando l'infra è pronta, oppure chiudere come superato. NON mergiare com'è (conflitti + rischio regressione su file già evoluti).
#147 Sovereign bonifica · estensione di #145 (NER, all-paths, runbook) verde MERGEABLE (clean) Founder. Dipende da #145: ha senso solo dopo aver deciso #145. Da sequenziare.
#127 feat(planets): F-2 tier-based gating · 3/5/6 pianeti per Starter/Pro/Business verde (5 check) da ricontrollare (GitHub non ha ricomputato) Candidato merge: sembra finito e verde, ed è coerente col pricing per tier. Aperta dal 27 mag. → revisione veloce + merge.
#95 feat(3d): shader iride procedurale + banco prova /iris-lab (step 2 pianeti) verde (5 check) da ricontrollare WIP "in pausa allo step 5" (memoria project_iris_lab_aaa). Decidere: riprendere o chiudere. Non urgente per il gate.
#139 #138 #137 #136 #135 Dependabot: dev-tooling, posthog-js, supabase-js, stripe, next-react da verificare da verificare Batch Dependabot: rivedere CI/conflitti e mergiare (igiene sicurezza). Attenzione a supabase/stripe/next (test prima).
#64 Dependabot: three 0.171→0.184 da verificare da verificare Bump 3D grosso: testare la scena Sole/pianeti prima di mergiare.
#4 #3 #2 #1 Dependabot: GitHub Actions (checkout, setup-node, github-script, pnpm action) da verificare da verificare Bump CI a basso rischio: mergiare a batch.

Abbandonate (closed non-merged): solo #103 (dev-tooling bump superato da #139). Nient'altro buttato.

Branch stale senza PR (solo pulizia · il lavoro è già in master)

design/*, feat/3d-*, feat/booking-engine-stream-b, feat/agent-core-runtime, feat/compliance-*, chore/sole-glb-v8, claude/* di sessioni concluse, ecc. — sono avanzi di squash-merge. Azione: git push origin --delete <branch> a batch quando si vuole pulire. Nessuna urgenza, nessun rischio.

Worktree (igiene locale)

git worktree list mostra ~17 worktree. I worktree-agent-* sono sub-agent transitori (uno con 1 file sporco usa-e-getta). I named (sessione-1/2, multiverbe-f2-tier-gating, multiverbe-iris-wt, nucleo-3d-v2, ecc.) sono puliti e pushati. Azione (facoltativa): git worktree prune + rimuovere i worktree-agent-* lockati e i named di sessioni chiuse.

Drift DB↔codice (verificato · rischio BASSO)

Le 5 migrazioni della sessione content sono in produzione (confermato su DB prod): content_compliance_2026_06_02a, content_engine_2026_06_02b, content_quota_ring_2026_06_02c, idempotency_keys_2026_06_02d, content_security_fixes_2026_06_02e. Ma #146 è mergiato e dal titolo ("Crea a 3 tap + cervello strategico + ring quota") usa proprio content_engine + content_quota_ring → le migrazioni fanno da supporto a codice mergiato (#146), non sono orfane. Residuo: confermare con chi ha fatto content che nessuna delle 5 serva solo al codice non-mergiato di #145 (improbabile: sono migrazioni feature-content tutte coperte da #146). Niente schema orfano evidente.

Azioni proposte (priorità)

  1. Decisione #145/#147 (sovrano EU): rebase-e-merge della parte ancora valida o chiusura come superato. È il nodo principale. Dipende dall'infra founder (Vertex EU).
  2. Rivedere + mergiare #127 (tier gating) se confermato done.
  3. Batch Dependabot (#1-4, #135-139, #64): mergiare i sicuri, testare three/supabase/stripe/next.
  4. #95 iris: decidere riprendere o chiudere.
  5. Pulizia branch stale + worktree (facoltativo, nessun rischio).
  6. Verifica drift DB migrazioni #145 in prod vs codice.

Nota: NON ho mergiato nulla autonomamente — ognuna di queste è una decisione rilevante (conflitti, dipendenze infra, scope feature) che spetta al founder. Dimmi quali sbloccare e procedo.

Aggiornamento 2026-06-03 (sessione "verifica live + Dependabot")

  • Sole Action Catalog VERIFICATO LIVE in prod (Inngest sincronizzato + loop 3-approvazioni + promozione ad auto + kill-switch). Dettaglio in execution/decisions-log.md § 2026-06-03 "VERIFICA LIVE".
  • ⛔→🔎 Dependabot — root cause CORRETTO: la diagnosi precedente ("break reale del dep") era errata. Tutte le 6 app-deps (#64/#135/#136/#137/#138/#139) falliscono Typecheck + build per ERR_PNPM_OUTDATED_LOCKFILE — Dependabot aggiorna package.json ma non rigenera pnpm-lock.yaml (--frozen-lockfile fallisce prima del typecheck). NON è incompatibilità di codice. Fix: pnpm install --lockfile-only per-PR + push (CI Linux valida), o config Dependabot pnpm. Rimandato post-gate, nessuno mergiato. CI-action #1-4 ferme.
  • 🆕 #154 (bonifica WARNING Semgrep) green + mergeable, ma fuori dallo scope di questa sessione → decisione founder.