Initial state: - HTTP proxy utilities (Bearer parsing, hop-by-hop headers, body limits, safe path validation) were duplicated between smart-ide-sso-gateway and smart-ide-global-api. - IA_DEV_ROOT auto-resolution order differed between bash (ensure-ia-dev-project-link.sh) and TypeScript (ia-dev-gateway getIaDevRoot), and could fall back to non-existing paths. Motivation: - Reduce duplication and drift across proxy layers. - Enforce consistent, explicit IA_DEV_ROOT behavior across scripts and services. Resolution: - Add package @4nk/smart-ide-http-utils and reuse it from smart-ide-sso-gateway and smart-ide-global-api. - Align IA_DEV_ROOT resolution to prefer ./services/ia_dev then ./ia_dev; fail fast when missing/misconfigured. Root cause: - Cross-service utilities were implemented ad-hoc in each service. - Historical layout transitions (ia_dev gitlink vs vendored services/ia_dev) left multiple resolvers with different priorities. Impacted features: - HTTP proxy chain (SSO gateway -> global API -> upstream services). - ia-dev-gateway startup/operation when IA_DEV_ROOT is missing or invalid. Code modified: - packages/smart-ide-http-utils/** - services/smart-ide-global-api/src/server.ts - services/smart-ide-sso-gateway/src/server.ts - services/ia-dev-gateway/src/paths.ts - scripts/ensure-ia-dev-project-link.sh Documentation modified: - docs/system-architecture.md - docs/ia_dev-module.md - docs/repo/README.md Configurations modified: - services/smart-ide-global-api/package.json - services/smart-ide-sso-gateway/package.json Files in deploy modified: - None Files in logs impacted: - None (runtime logs only) Databases and other sources modified: - None Off-project modifications: - None Files in .smartIde modified: - None Files in .secrets modified: - None New patch version in VERSION: - 0.0.6 CHANGELOG.md updated: - yes
Documentation technique — smart_ide
Index principal. Les fonctionnalités détaillées sont dans features/. La documentation opérationnelle regroupée (anciens README.md à la racine et sous cron/, projects/, services/, etc.) est dans repo/.
Configuration locale agrégée
| Fichier | Rôle |
|---|---|
| config/services.local.env.example | Ports, jetons, SMART_IDE_MONOREPO_ROOT — copier vers config/services.local.env |
| config/README.md | Rôle du répertoire config/ |
| packages/smart-ide-upstreams/README.md | Clés d’amont HTTP partagées (@4nk/smart-ide-upstreams) pour l’API globale et le SSO |
Documentation du dépôt (repo/)
Vue d’ensemble et index complet : repo/README.md. Règles/agents IDE : repo/smartide-config-directory.md.
| Document | Contenu |
|---|---|
| repo/smart-ide-overview.md | Vision produit, stack, liens architecture |
| repo/projects-directory.md | projects/<id>/conf.json, clones, active-project.json |
| repo/cron-git-pull.md | Pull planifié, cron/config.env, systemd user |
| repo/systemd-units.md | Ollama, AnythingLLM, timer git-pull |
| repo/logs-directory.md | Fichiers journaux locaux sous logs/ |
| repo/docv-services-directory.md | Répertoire services/docv/, contrat intégration |
| repo/docv-enso-docs-mirror.md | Miroir services/docv/enso-docs/ |
| repo/ia-dev-smart-ide-integration.md | Module ia_dev dans smart_ide |
| repo/ia-dev-repository-overview.md | Dépôt ia_dev : agents, deploy |
| repo/ia-dev-project-conf-schema.md | Schéma conf.json, résolution projet |
| repo/ia-dev-deploy-lib.md | IA_DEV_ROOT/deploy/lib/ |
| repo/ia-dev-shared-lib.md | IA_DEV_ROOT/lib/project_config.sh |
| repo/service-*.md | Exploitation de chaque micro-service (voir index repo/README) |
| repo/script-anythingllm-pull-sync.md | Hook post-merge → AnythingLLM |
| repo/service-anythingllm-devtools.md | Service HTTP AnythingLLM + devtools |
| repo/service-carbonyl.md | Carbonyl (navigateur terminal), prévisualisation test |
| repo/service-pageindex.md | PageIndex (index vectorless, définition sémantique documents) |
| repo/service-smart-ide-tools-bridge.md | Pont HTTP IDE + sous-modules CLI |
| repo/service-smart-ide-global-api.md | API HTTP interne : proxy vers micro-services (jetons techniques) |
| repo/service-smart-ide-sso-gateway.md | Passerelle OIDC utilisateur → API globale → micro-services |
| repo/service-chandra.md | Chandra OCR (PDF / images structurés) |
| repo/extension-anythingllm-workspaces.md | Extension AnythingLLM IDE (supprimée ; voir anythingllm-devtools) |
Les fichiers README.md sous services/*/, cron/, projects/, etc. ne font que renvoyer vers ces pages.
Architecture et déploiement
| Document | Contenu |
|---|---|
| services-functional-scope.md | Périmètre fonctionnel des services, rôle IDE vs backends applicatifs |
| platform-target.md | Vision plateforme en ligne, 3 envs, machine IA unique vs SSH, SSO, navigateur optionnel |
| implementation-rollout.md | Déroulé du plan plateforme : doc + code minimal, suites |
| system-architecture.md | Couches, monorepo, cartographie des dossiers, gateway, OpenShell, micro-services |
| ecosystem-architecture-and-sync.md | smart_ide, projets développés, API IA, Ollama / AnythingLLM / Git ; automation et synchro |
| core-ide.md | Socle applicatif Lapce : core_ide/, clone amont, build |
| deployment-target.md | Client Linux + SSH, variante machine IA unique, serveur socle IA et repos |
| infrastructure.md | SSH, accès hôte, renvois vers les scripts |
| services.md | Ollama, AnythingLLM, Local Office, micro-services HTTP ; renvoie vers la vue fonctionnelle détaillée |
Référence API des services (API/)
| Document | Contenu |
|---|---|
| API/README.md | Index : auth, ports, liens vers chaque service |
| API/repos-devtools-server.md | Clone / liste / load de dépôts Git |
| API/langextract-api.md | Extraction structurée (LangExtract) |
| API/claw-harness-proxy.md | Proxy HTTP vers serveur claw-code |
| API/agent-regex-search-api.md | Recherche regex fichiers (ripgrep) |
| API/local-office.md | Documents Office (upload, commandes docx) |
| API/ia-dev-gateway.md | Gateway ia_dev — agents, runs, SSE (spécification) |
| API/orchestrator.md | Orchestrateur intentions — routage (spécification) |
Workspaces et IDE
| Document | Contenu |
|---|---|
| anythingllm-workspaces.md | Un workspace AnythingLLM par projet, synchronisation |
| features/carbonyl-terminal-browser.md | Carbonyl, URL test dans conf.json |
| features/pageindex-semantic-documents.md | PageIndex, arbre sémantique PDF / Markdown |
| features/chandra-ocr-documents.md | Chandra OCR, mise en page |
| ux-navigation-model.md | Intentions, recherche, mode expert |
Intégration dépôts
| Document | Contenu |
|---|---|
| ia_dev-module.md | Module ia_dev dans le dépôt, agents ; confs dans projects/<id>/ |
| ia_dev-project-smart_ide.md | Projet Cursor / conf smart_ide |
| repo/logs-directory.md | Journaux : pull planifié, ia_dev |
| repo/ia-dev-smart-ide-integration.md | Contrat intégration services/ia_dev/ |
Données déployées et SSH
| Document | Contenu |
|---|---|
| features/remote-deployed-data-ssh.md | Données hors Git sur test/pprod/prod ; SSH ; bloc smart_ide dans conf.json ; active-project.json |
Fonctionnalités (features/)
| Document | Contenu |
|---|---|
| features/local-office.md | Local Office — API REST Office dans services/local-office/ |
| features/langextract-api.md | API locale LangExtract |
| features/claw-harness-api.md | Harnais claw-code, proxy |
| features/agent-regex-search-api.md | Recherche regex code (ripgrep) |
| features/anythingllm-pull-sync-after-pull.md | Synchro AnythingLLM après pull |
| features/initial-rag-sync-4nkaiignore.md | RAG initial et .4nkaiignore |
| features/ia-dev-service.md | Service ia-dev-gateway, fork ia_dev, migration |
| features/orchestrator-api.md | Contrat HTTP orchestrateur (Ollama, ALLM, services) |
| features/lapce-porting-roadmap.md | Phases portage surface AnythingLLM → Lapce (service HTTP + UI) |
| features/sso-docv-enso.md | OIDC front ↔ docv (Enso) |
| features/docv-ai-integration.md | Backend docv : API IA smart_ide, clones ../projects/, AnythingLLM |
| features/docv-service-integration.md | docv gestion documentaire, ../projects/<id>/data, DOCV_PROJECTS_ROOT, multi-hôte |
| features/browser-automation-criteria.md | Critères service navigateur optionnel |