smart_ide/docs/repo/projects-directory.md
Nicolas Cantu ac96434351 docs: centralize README content under docs/repo/
**Motivations:**
- Single canonical documentation tree under docs/; reduce drift between README copies.

**Evolutions:**
- Add docs/repo/ with operational guides (cron, systemd, projects, logs, docv, ia_dev, services, scripts, extension).
- Replace scattered README.md files with pointers to docs/repo/*.md.
- Refresh docs/README.md index and cross-links across docs/, .cursor rules/agents.
- Bump ia_dev submodule to matching doc pointer commits.
2026-04-03 18:20:31 +02:00

4.1 KiB
Raw Blame History

Configurations projet (projects/<id>/)

Ce répertoire, à la racine du monorepo smart_ide, ne contient que les fichiers de configuration attendus par ia_dev (conf.json par identifiant de projet). Ce nest pas le répertoire des clones Git des applications.

Les sous-répertoires projects/<id>/ non listés dans le .gitignore à la racine (exceptions pour les ids versionnés) restent ignorés par Git : pour versionner un nouvel id, ajouter les lignes !projects/<id>/ et !projects/<id>/** à côté des exceptions existantes.

Clones applicatifs (docv, stacks métier, etc.)

Les dépôts sources des produits (ex. backend docv sous un chemin du type …/enso/docv, autres apps) doivent vivre ailleurs, selon la convention du poste — typiquement un répertoire frère du monorepo, par ex. ../projects/<nom>/ (relatif à la racine smart_ide), distinct de ./projects/ ici.

  • ./projects/ → uniquement conf.json (+ métadonnées légères) pour que ia_dev résolve projects/<id>/conf.json via le lien symbolique décrit dans ia_dev-module.md.
  • ../projects/ (ou autre racine configurée) → arborescences Git complètes, builds, etc. ; dans chaque conf.json, project_path et les chemins deploy.* utiles sont relatifs à la racine du monorepo smart_ide (ex. ../enso, .) ou absolus ; le script cron/git-pull-project-clones.sh et ia_dev les résolvent depuis cette racine (ia_dev/lib/conf_path_resolve.sh).

smart_ide

  • Fichier : projects/smart_ide/conf.json
  • Après clone ou réorganisation des dossiers, exécuter si besoin scripts/ensure-ia-dev-smart-ide-project-link.sh pour recréer le lien ia_dev/projects/smart_ide../../projects/smart_ide.

enso

  • Fichier : projects/enso/conf.json — clone enso frère du monorepo (project_path typique ../enso), déploiement deploy/scripts_v2, forge 4nk/enso (wiki / issues), mails ticketing AI.ENSO.*@4nkweb.com.
  • Chemins absolus sur les serveurs sous smart_ide.remote_data_access : alignés sur ENSO_REMOTE_ROOT, ENSO_SSH_HOST et data/dossiers-permanents (dépôt enso, enso-deploy.env). Valeurs réelles : fichiers enso-deploy.env non versionnés.
  • Cron fragment : cron/fragments/enso.cron
  • Pour ia_dev : lien symbolique ia_dev/projects/enso../../projects/enso

Synchronisation Git planifiée

Pour chaque projects/<id>/conf.json, le tirage automatique utilise cron/config.env (PULL_SYNC_*) et cron/git-pull-wrapper.shcron/git-pull-project-clones.sh.

  • Timer systemd utilisateur (recommandé) : scripts/install-git-pull-systemd-user.sh — voir cron-git-pull.md
  • Désactiver pour un id : "cron": { "git_pull": false } dans le conf.json
  • Désactiver tout : PULL_SYNC_ENABLED=0 dans config.env ou config.local.env

project_path est résolu en chemin absolu à partir de la racine smart_ide lorsquil est relatif.

Données déployées, SSH, AnythingLLM et IDE

Spécification : features/remote-deployed-data-ssh.md.

Bloc optionnel smart_ide dans conf.json

Clé smart_ide avec notamment remote_data_access, anythingllm_workspace_slug. Exemple : projects/enso/conf.json.

Projet actif pour léditeur / Cursor

  1. Copier projects/active-project.json.example vers projects/active-project.json (non versionné) ; renseigner id, optionnellement default_env, notes (informative).
  2. Dans un .code-workspace : smartIde.activeProjectId dans settings (ex. projects/enso/smart_ide.code-workspace).

Convention agents : .cursor/rules/smart-ide-ia-dev-bridge.mdc.

Référence amont (schéma conf)

Schéma détaillé des champs conf.json : ia-dev-project-conf-schema.md (aligné sur ia_dev/projects/README.md amont). Extensions cron et smart_ide : spécifiques smart_ide ; ia_dev peut ignorer les champs non lus.