OASI · Ambiente Light

Sviluppo locale git-free

Il developer non tocca mai git: la piattaforma tiene git come storico. «Il potere è locale, l'autorità è remota.»

01

Cos'è

Modifichi i file del progetto sul tuo PC → li vedi in anteprima sul sito (solo per te) → quando è pronto, un publish governato li rende live. Niente clone git, niente branch, niente push: scarichi una base firmata del progetto e mandi solo il delta (i file che tocchi) come overlay.

02

Prerequisiti

  • Node.js installato (nel PATH).
  • Essere membro del progetto — login email→PIN su https://<progetto>.oasi.io/auth/login?surface=studio.
  • Una base pubblicata per il progetto (la fa il team piattaforma: pnpm tsx scripts/publish-canonical-base.ts --project=<slug>).
03

Setup — due modi

AEstensione VS Code (consigliato)

  1. Installa l'estensione (PowerShell):
    powershell
    $v="$env:TEMP\oasi-owner-loop.vsix"; irm https://dev.oasi.io/oasi-owner-loop.vsix -OutFile $v; code --install-extension $v
    Poi ricarica VS Code (Ctrl+Shift+P → Developer: Reload Window).
  2. Attiva il transport git-free — Ctrl+Shift+P → Preferences: Open User Settings (JSON):
    json
    "oasi.ownerLoop.transport.<slug>": "overlay",
    "oasi.ownerLoop.developerId": "<tuo-id>"
    <slug> = lo slug del progetto, es. termotecnica; <tuo-id> = es. nome-cognome.
  3. Avvia — Ctrl+Shift+P → OASI Owner Loop: Avvia live-preview (o il tasto ▷ nel pannello OASI Owner Loop).
    • Crea e apre una cartella di lavoro dedicata ~/.oasi/dev-light/<slug>/workspacemodifichi lì (non il vecchio clone git).
    • Nel canale di output OASI Owner Loop compare un URL di autorizzazione: aprilo nel browser (loggato) — una volta sola (poi il token è in cache).
    • Scarica la base e si mette in watch: ad ogni salvataggio manda l'overlay → anteprima.

BClient da terminale (senza VS Code)

Certificazione + primo avvio (PowerShell):

powershell
irm https://dev.oasi.io/setup-dev-light.ps1 | iex

Watch continuo (edit → anteprima ad ogni salvataggio):

powershell
node $HOME\.oasi\dev-light\oasi-overlay-preview.mjs --slug=<slug> --dev=<tuo-id> --repo=$HOME\.oasi\dev-light\<slug>\workspace

Il client scarica la base (git-free), chiede il login una-tantum, e resta in watch.

04

Il flusso quotidiano

  1. Modifica un file dello screen o un fragment nella cartella di lavoro (~/.oasi/dev-light/<slug>/workspace).
  2. Al salvataggio parte l'overlay push → vedrai pushed overlay … @ <draft>.
  3. Il worker ricompone base + il tuo overlay in un draft governato.
05

Vedere l'anteprima

  • Da VS Code: OASI Owner Loop: Apri la mia preview.
  • Manuale (loggato): apri
    url
    https://<slug>.oasi.io/api/preview/<slug>/mint?channel=<slug>/<tuo-id>/live
    → imposta il cookie di preview e reindirizza al sito con la tua sandbox. Naviga alla schermata che hai modificato.
L'anteprima è solo per te (cookie firmato); il sito live resta invariato per gli altri.
Vale su tutte le surface — in una sola tab. Il mint imposta un solo cookie di anteprima per il progetto (path:/, valido su ogni surface: /, /admin/…, /portal/…): non va montato surface per surface. Montato una volta, naviga normalmente nella stessa tab e ogni pagina che hai il diritto di vedere mostra il tuo draft.
  • Sei in anteprima quando vedi la cornice ambra “Anteprima sandbox”. (Il banner “Aggiorna ora” è un aggiornamento dell'app, non l'anteprima.)
  • Se una pagina ti risulta live (senza cornice ambra), quella tab non è in anteprima — l'hai aperta in una tab/login diversi o è scadutari-monta col link qui sopra.
  • Le aree riservate come /admin le vedi in anteprima solo se hai il ruolo per quella surface. Le pagine di piattaforma dentro /admin (Branding, Template Email…) restano sempre live.
06

Pubblicare (rendere live) — passo governato e separato

L'anteprima è non-promotable: pubblicare è un passo distinto, con approvazione umana. Il draft viene ricostruito in modo deterministico, firmato (ricevuta KMS), riconciliato nel git canonico dalla piattaforma e deployato automaticamente. Tu non tocchi git; la piattaforma registra lo storico (ogni publish è un commit tracciato, reversibile con un publish successivo).

Su termotecnica è attivo, self-service. Quando un draft è pronto:

  1. Apri le tue anteprime (basta essere membro del progetto):
    url
    https://<slug>.oasi.io/p/<slug>/dev-light
  2. Trova il tuo draft (l'id è quello mostrato dal client dopo pushed overlay → draft <id>).
  3. Richiedi adozione. Da lì in poi è il titolare a mandarla online: la piattaforma ricostruisce, firma, riconcilia e deploya.
  4. Non /studio/preview-publish: è il banco del titolare, dietro il gate operatore di piattaforma — chi sviluppa in dev-light lo trova chiuso.
07

Risoluzione problemi

L'editor / Claude Code «non trova git» o vuole fare commit/push

È corretto: dev-light è git-free. La cartella di lavoro non è un repo git (nessun .git), non c'è niente da committare/pushare e non esiste un comando “push” da lanciare — il client/estensione (o il wrapper) manda l'overlay da solo a ogni salvataggio. Lavora dentro ~/.oasi/dev-light/<slug>/workspace (mai un vecchio clone git) e salva.

fetch failed durante il download della base

Transitorio di rete; il client/script riprende da solo (il download è idempotente, salta i file già presi). Rilancia se serve.

Blocco a >> in PowerShell

Non incollare script multi-riga nella console (li corrompe). Usa il one-liner irm … | iex o salva su file col Blocco note.

Login/mint 401

Devi essere loggato con la sessione piattaforma: https://<slug>.oasi.io/auth/login?surface=studio (email→PIN), non il login del progetto.

Non vedo la modifica

Assicurati di aver modificato uno screen/fragment reale (non un file di test) e di aver aperto l'anteprima sul canale <slug>/<tuo-id>/live.

La pagina è live (niente cornice ambra) — es. /admin

Quella tab non è in anteprima: il cookie di preview è per-browser e path / (vale su tutte le surface), quindi se una pagina è live l'anteprima è scaduta o l'hai aperta in una tab/login diversi. Ri-monta col link e resta nella stessa tab. Per /admin serve anche il ruolo admin sul progetto.

Log

~/.oasi/dev-light/cert.log — mandalo al team se qualcosa non torna.