smart_ide/docs/ia_dev-project-smart_ide.md
Nicolas Cantu 58cc2493e5 chore: consolidate ia_dev module, sync tooling, and harden gateways (0.0.5)
Initial state:
- ia_dev was historically referenced as ./ia_dev in docs and integrations, while the vendored module lives under services/ia_dev.
- AnythingLLM sync and hook installation had error masking / weak exit signaling.
- Proxy layers did not validate proxy path segments, allowing path normalization tricks.

Motivation:
- Make the IDE-oriented workflow usable (sync -> act -> deploy/preview) with explicit errors.
- Reduce security footguns in proxying and script automation.

Resolution:
- Standardize IA_DEV_ROOT usage and documentation to services/ia_dev.
- Add SSH remote data mirroring + optional AnythingLLM ingestion.
- Extend AnythingLLM pull sync to support upload-all/prefix and fail on upload errors.
- Harden smart-ide-sso-gateway and smart-ide-global-api proxying with safe-path checks and non-leaking error responses.
- Improve ia-dev-gateway runner validation and reduce sensitive path leakage.
- Add site scaffold tool (Vite/React) with OIDC + chat via sso-gateway -> orchestrator.

Root cause:
- Historical layout changes (submodule -> vendored tree) and missing central contracts for path resolution.
- Missing validation for proxy path traversal patterns.
- Overuse of silent fallbacks (|| true, exit 0 on partial failures) in automation scripts.

Impacted features:
- Project sync: git pull + AnythingLLM sync + remote data mirror ingestion.
- Site frontends: SSO gateway proxy and orchestrator intents (rag.query, chat.local).
- Agent execution: ia-dev-gateway script runner and SSE output.

Code modified:
- scripts/remote-data-ssh-sync.sh
- scripts/anythingllm-pull-sync/sync.mjs
- scripts/install-anythingllm-post-merge-hook.sh
- cron/git-pull-project-clones.sh
- services/smart-ide-sso-gateway/src/server.ts
- services/smart-ide-global-api/src/server.ts
- services/smart-ide-orchestrator/src/server.ts
- services/ia-dev-gateway/src/server.ts
- services/ia_dev/tools/site-generate.sh

Documentation modified:
- docs/** (architecture, API docs, ia_dev module + integration, scripts)

Configurations modified:
- config/services.local.env.example
- services/*/.env.example

Files in deploy modified:
- services/ia_dev/deploy/*

Files in logs impacted:
- logs/ia_dev.log (runtime only)
- .logs/* (runtime only)

Databases and other sources modified:
- None

Off-project modifications:
- None

Files in .smartIde modified:
- .smartIde/agents/*.md
- services/ia_dev/.smartIde/**

Files in .secrets modified:
- None

New patch version in VERSION:
- 0.0.5

CHANGELOG.md updated:
- yes
2026-04-04 18:36:43 +02:00

3.5 KiB
Raw Blame History

Projet ia_dev : smart_ide

Le dépôt smart_ide est enregistré pour le module ia_dev (racine IA_DEV_ROOT, checkout intégré sous services/ia_dev/) sous lidentifiant de projet smart_ide, pour les agents, le ticketing Gitea et la doc wiki alignés sur la forge 4nk/smart_ide.

Fichier de configuration

  • Source de vérité (versionnée dans ce monorepo) : projects/smart_ide/conf.json — chemins machine (project_path), URLs wiki et issues (https://git.4nkweb.com/4nk/smart_ide/...), boîtes mail autorisées pour le ticketing (envs test / pprod / prod).
  • Module ia_dev : le chemin IA_DEV_ROOT/projects/smart_ide/conf.json (ex. services/ia_dev/projects/smart_ide/conf.json) doit résoudre le même fichier via le lien créé par scripts/ensure-ia-dev-project-link.sh smart_ide (wrapper : ensure-ia-dev-smart-ide-project-link.sh).

Adapter project_path (et champs dérivés si vous ajoutez build_dirs / deploy) sur chaque poste ou serveur où ia_dev exécute des commandes sur ce dépôt. Les clones dautres apps (docv, etc.) ne vont pas dans ./projects/ : voir repo/projects-directory.md.

Agents Cursor (pont smart_ide → ia_dev)

Dans ce dépôt, les définitions Cursor sous .smartIde/agents/ utilisent le préfixe ia-dev-* : elles fixent le projet smart_ide, imposent dindiquer lenvironnement (test, pprod, prod), puis renvoient à la procédure complète dans le module : IA_DEV_ROOT/.smartIde/agents/<agent>.md (ex. services/ia_dev/.smartIde/agents/<agent>.md).

Agent Cursor (smart_ide) Définition ia_dev
ia-dev-fix fix.md
ia-dev-evol evol.md
ia-dev-code code.md
ia-dev-fix-search fix-search.md
ia-dev-fix-lint fix-lint.md
ia-dev-docupdate docupdate.md
ia-dev-push-by-script push-by-script.md
ia-dev-deploy-by-script deploy-by-script.md
ia-dev-deploy-pprod-or-prod deploy-pprod-or-prod.md
ia-dev-branch-align-by-script-from-test branch-align-by-script-from-test.md
ia-dev-change-to-all-branches change-to-all-branches.md
ia-dev-agent-loop agent-loop.md
ia-dev-git-issues-process git-issues-process.md
ia-dev-setup-host setup-host.md
ia-dev-notary-ai-loop notary-ai-loop.md
ia-dev-notary-ai-process notary-ai-process.md
ia-dev-closure-point-7-justification closure-point-7-justification.md

Règle de contexte (fichiers sous IA_DEV_ROOT/ (ex. services/ia_dev/), docs/, services/, etc.) : .smartIde/rules/smart-ide-ia-dev-bridge.mdc.

Usage : choisir lagent ia-dev-* dans Cursor et préciser dans le message lenvironnement cible ; pour les scripts, cd services/ia_dev et IA_PROJECT_ID=smart_ide (ou --project smart_ide). Détail schéma conf : repo/ia-dev-project-conf-schema.md. Conf smart_ide : projects/smart_ide/conf.json à la racine du monorepo.

Liens