Commit Graph
4 Commits
Author SHA1 Message Date
arcodangeandClaude Opus 5 6a5b7baa23 chore: réconcilier le trunk avec main, et corriger la note du mode vierge
DEUX CHOSES.

1. RÉCONCILIATION. Le trunk accusait 49 commits de retard, 0 d'avance : tout son
delta vivait dans l'arbre de travail, mélange d'améliorations réelles et d'état
périmé. Il est remis sur origin/main, et son état est préservé sur la branche
trunk-snapshot-20260814. Ce qui méritait d'être porté l'est ici :

  - test/main.ts : chemin Work/ au lieu de Desktop/ (l'ancien n'existe plus) et
    module TIERS activé. L'URL par défaut reste corrigée par la garde d'hôte ;
  - ansible README : la commande du playbook recurrentBackup ;
  - company.json : siteWeb arcodange.fr et email @arcodange.fr — le trunk était
    à jour sur ces deux champs quand main portait encore duckdns et gmail.

NE SONT PAS PORTÉS, délibérément :
  - le .gitignore du trunk, qui avait PERDU les règles replay-packs ;
  - company.json SAS / 6201Z, périmé — main porte SARL / 6201Z depuis le PR #77 ;
  - un console.log de débogage dans forms.ts ;
  - createEphemeralAgent + permissions.ts + orchestratorExample.ts : travail
    cohérent mais qui DOUBLE le modèle de scopes durables (scopes.ts +
    provisionAiUser.ts) effectivement livré. Deux conceptions concurrentes de la
    même chose ne se portent pas en silence — arbitrage opérateur.

2. LA NOTE DU MODE VIERGE ÉTAIT FAUSSE. Elle annonçait qu'il manquait un « golden
empty ». Rien ne manquait : la chaîne existe en entier dans test/, et c'est
main.ts qui pilote l'installeur. J'avais proposé de construire ce qui était déjà
là, faute d'avoir regardé — exactement le contrôle inscrit dans AGENTS.md le
matin même. La note décrit désormais la chaîne réelle :

  blank --yes  ->  main.ts  ->  install.lock  ->  provisionSandbox.ts

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
2026-08-14 22:04:43 +02:00
arcodangeandClaude Opus 5 e175f1fead fix(test): garde d'hôte sur main.ts — le script qui pilote l'installeur
main.ts pilote l'ASSISTANT D'INSTALLATION de Dolibarr (initialSetup.ts va sur
/install/). C'est le script le plus destructeur du dépôt, et il était le seul
des scripts UI à n'avoir aucune garde d'hôte — alors que la docstring de
guard.ts nomme précisément le danger : « test/.env ships DOLIBARR_ADDRESS
pointing at PRODUCTION, so a script run with the ambient environment would
drive the real ERP ».

Pointé sur la production avec l'environnement ambiant, il relançait l'installeur
sur l'ERP réel. assertSandbox() n'autorise désormais que le bac à sable, sauf
double opt-in explicite (ARCO_ALLOW_PRODUCTION + ARCO_PROD_CONFIRM) — que
l'installation initiale d'un nouvel environnement justifie, et qui reste un
geste d'opérateur.

Vérifié : DOLIBARR_ADDRESS=https://erp.arcodange.lab est refusé.

Ceci clôt le mode vierge, qui n'avait rien à inventer. La chaîne existait déjà
en entier :

  sandbox-lifecycle.sh blank --yes   purge la base, retire install.lock
  test/main.ts                       pilote l'installeur, société, affichage, modules
  touch install.lock                 reverrouille (procédure du README)
  test/provisionSandbox.ts           agent d'écriture, droits, clé API

Le « golden empty » proposé au commit précédent était une invention pour un
problème résolu : je n'avais pas regardé test/. C'est exactement le contrôle
inscrit dans AGENTS.md le matin même — lire l'existant avant de modéliser.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
2026-08-14 19:32:17 +02:00
arcodange f4d450c75a work in progress with deno 2025-08-08 17:57:56 +02:00
arcodange 9d4d33ef45 begin setup automation with deno and playwright 2024-11-15 16:08:41 +01:00