Repo-scripts
Repo-scripts zijn shellscripts die je per repository configureert (Instellingen →
Repository’s → het terminalpictogram in de rij van een repo) en die de server van
Control Center uitvoert tegen de worktree van een ruimte van die repo — de
geïsoleerde checkout onder
<dataDir>/<workspaceId>/spaces/<spaceId>/repos/<repo>/ waar agenten werken.
Er zijn twee soorten:
| Script | Wanneer het draait | Waarvoor je het gebruikt |
|---|---|---|
| Installatie | Direct nadat er een worktree voor een ruimte is ingericht | Dependencies installeren, bestanden genereren, .env kopiëren |
| Archivering | Vlak voordat een worktree wordt vernietigd of door garbage collection wordt opgeruimd | Bronnen buiten de worktree opruimen (docker-netwerken, tunnels, externe state) |
Waar de scripts draaien
Sectie getiteld “Waar de scripts draaien”Beide scripts draaien via bash -lc (een login-shell, zodat tools die met
Homebrew of nvm zijn geïnstalleerd op PATH staan), met de worktree als
werkmap en de volgende omgevingsvariabelen ingesteld:
| Variabele | Waarde |
|---|---|
CC_WORKSPACE_PATH |
De worktree (de werkmap van het script) |
CC_ROOT_PATH |
De geregistreerde bronrepo — je eigen checkout |
CC_SPACE_ID |
De ruimte waartoe de worktree behoort |
CC_SPACE_NAME |
De weergavenaam van de ruimte |
CC_REPO_NAME |
De weergavenaam van de repo |
Een installatiescript dat bijvoorbeeld dependencies installeert en de
gitignored .env van de repo binnenhaalt:
pnpm installcp "$CC_ROOT_PATH/.env" .envpnpm run buildGedrag bij fouten
Sectie getiteld “Gedrag bij fouten”- Een installatiescript dat niet-nul afsluit (of de time-out van 5 minuten overschrijdt) laat het inrichten van de ruimte mislukken: de ruimte toont de mislukte status met een optie om het opnieuw te proberen, en de staart van de uitvoer van de run wordt vastgelegd. Een nieuwe poging richt een schone worktree in en draait het script opnieuw — schrijf installatiescripts zo dat een herhaling na een gedeeltelijke installatie werkt (pakketbeheerders doen dit al zo).
- Een archiveringsscript is best-effort: een fout (of de time-out van 2 minuten) wordt vastgelegd, maar blokkeert het verwijderen nooit. Archivering draait op GC-paden waar niemand een prompt kan beantwoorden (ruimte verwijderd, PR gemerged, geplande opschoning).
Installatie draait alleen op een verse worktree: agenten opnieuw naar een warme ruimte dispatchen hergebruikt de bestaande checkout en laat je de installatie niet opnieuw betalen.
Uitvoeringsgeschiedenis
Sectie getiteld “Uitvoeringsgeschiedenis”Elke uitvoering wordt vastgelegd met status, duur, exitcode en een begrensde
staart van de uitvoer, zichtbaar in dezelfde instellingendialoog onder “Recente
uitvoeringen” (het abonnement repos.watchScriptRuns streamt dit live).
Machtigingen
Sectie getiteld “Machtigingen”Scripts zijn shell die de server uitvoert, dus het schrijven ervan is
beperkt tot werkruimtebeheerders en wordt bewaakt door de actieklasse
processSpawn — hetzelfde vangnet aan beveiligingen dat elke andere bewerking
die een proces start afschermt.