deploy: exclude per-stream build dirs and QA screenshots from sync; v1.1.0 notes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
1 changed file +75 −11
modified
deploy/ai-atlas.mld.json
+75 −11
@@ -7,21 +7,60 @@ | ||
| 7 | 7 | "dir": "~/apps/ai-atlas", |
| 8 | 8 | "extra_paths": [], |
| 9 | 9 | "sync_excludes": [ |
| 10 | − ".venv/", "__pycache__/", ".pytest_cache/", ".ruff_cache/", "*.egg-info/", ".git/", ".env", ".env.*", "!.env.example", | |
| 11 | − "node_modules/", "apps/web/.next/", "apps/web/next-env.d.ts", "*.tsbuildinfo", "apps/web/qa/screens/", "apps/web/AGENTS.md", "apps/web/CLAUDE.md", | |
| 12 | − "/data/", "/tmp/", "logs/", ".DS_Store", ".claude/", "deploy/.admin-token", "deploy/.llm-key", "deploy/rendered/", "tests/fixtures/" | |
| 10 | + ".venv/", | |
| 11 | + "__pycache__/", | |
| 12 | + ".pytest_cache/", | |
| 13 | + ".ruff_cache/", | |
| 14 | + "*.egg-info/", | |
| 15 | + ".git/", | |
| 16 | + ".env", | |
| 17 | + ".env.*", | |
| 18 | + "!.env.example", | |
| 19 | + "node_modules/", | |
| 20 | + "apps/web/.next/", | |
| 21 | + "apps/web/next-env.d.ts", | |
| 22 | + "*.tsbuildinfo", | |
| 23 | + "apps/web/qa/screens/", | |
| 24 | + "apps/web/AGENTS.md", | |
| 25 | + "apps/web/CLAUDE.md", | |
| 26 | + "/data/", | |
| 27 | + "/tmp/", | |
| 28 | + "logs/", | |
| 29 | + ".DS_Store", | |
| 30 | + ".claude/", | |
| 31 | + "deploy/.admin-token", | |
| 32 | + "deploy/.llm-key", | |
| 33 | + "deploy/rendered/", | |
| 34 | + "tests/fixtures/", | |
| 35 | + "apps/web/.next-*/", | |
| 36 | + "apps/web/qa/screens/d1/", | |
| 37 | + "apps/web/qa/screens/d2/", | |
| 38 | + "apps/web/qa/screens/d3/", | |
| 39 | + "apps/web/qa/screens/shell/" | |
| 13 | 40 | ], |
| 14 | 41 | "requires": { |
| 15 | − "runtimes": ["pm2", "node", "pnpm", "uv", "uv-python@3.12"], | |
| 42 | + "runtimes": [ | |
| 43 | + "pm2", | |
| 44 | + "node", | |
| 45 | + "pnpm", | |
| 46 | + "uv", | |
| 47 | + "uv-python@3.12" | |
| 48 | + ], | |
| 16 | 49 | "ram_gb": 8, |
| 17 | − "ports": [8320, 8321] | |
| 50 | + "ports": [ | |
| 51 | + 8320, | |
| 52 | + 8321 | |
| 53 | + ] | |
| 18 | 54 | }, |
| 19 | 55 | "ram_mb_observed": 3000, |
| 20 | 56 | "size_mb": 60, |
| 21 | 57 | "placement": { |
| 22 | 58 | "pin": "M2M32c", |
| 23 | 59 | "prefer": null, |
| 24 | − "avoid": ["M3U96b", "M1M32"], | |
| 60 | + "avoid": [ | |
| 61 | + "M3U96b", | |
| 62 | + "M1M32" | |
| 63 | + ], | |
| 25 | 64 | "reason": "Mac Studio M2 12 c / 32 Go dédié à AI Atlas (aucune autre app) ; Postgres 17 + pgvector + Redis Homebrew installés le 2026-09-11, raccordé au tunnel wg1 (10.67.0.20)" |
| 26 | 65 | }, |
| 27 | 66 | "processes": [ |
@@ -29,7 +68,21 @@ | ||
| 29 | 68 | "name": "ai-atlas-api", |
| 30 | 69 | "manager": "pm2", |
| 31 | 70 | "script": "{{HOME}}/apps/ai-atlas/.venv/bin/python", |
| 32 | − "args": ["-m", "uvicorn", "aiatlas.api.main:app", "--host", "127.0.0.1", "--port", "8321", "--no-access-log", "--proxy-headers", "--timeout-keep-alive", "75", "--workers", "2"], | |
| 71 | + "args": [ | |
| 72 | + "-m", | |
| 73 | + "uvicorn", | |
| 74 | + "aiatlas.api.main:app", | |
| 75 | + "--host", | |
| 76 | + "127.0.0.1", | |
| 77 | + "--port", | |
| 78 | + "8321", | |
| 79 | + "--no-access-log", | |
| 80 | + "--proxy-headers", | |
| 81 | + "--timeout-keep-alive", | |
| 82 | + "75", | |
| 83 | + "--workers", | |
| 84 | + "2" | |
| 85 | + ], | |
| 33 | 86 | "interpreter": null, |
| 34 | 87 | "cwd": "{{HOME}}/apps/ai-atlas", |
| 35 | 88 | "env": { |
@@ -54,7 +107,9 @@ | ||
| 54 | 107 | "name": "ai-atlas-scheduler", |
| 55 | 108 | "manager": "pm2", |
| 56 | 109 | "script": "{{HOME}}/apps/ai-atlas/.venv/bin/aia", |
| 57 | − "args": ["schedule"], | |
| 110 | + "args": [ | |
| 111 | + "schedule" | |
| 112 | + ], | |
| 58 | 113 | "interpreter": null, |
| 59 | 114 | "cwd": "{{HOME}}/apps/ai-atlas", |
| 60 | 115 | "env": { |
@@ -79,7 +134,14 @@ | ||
| 79 | 134 | "name": "ai-atlas-web", |
| 80 | 135 | "manager": "pm2", |
| 81 | 136 | "script": "/opt/homebrew/bin/node", |
| 82 | − "args": ["node_modules/next/dist/bin/next", "start", "-p", "8320", "-H", "0.0.0.0"], | |
| 137 | + "args": [ | |
| 138 | + "node_modules/next/dist/bin/next", | |
| 139 | + "start", | |
| 140 | + "-p", | |
| 141 | + "8320", | |
| 142 | + "-H", | |
| 143 | + "0.0.0.0" | |
| 144 | + ], | |
| 83 | 145 | "interpreter": null, |
| 84 | 146 | "cwd": "{{HOME}}/apps/ai-atlas/apps/web", |
| 85 | 147 | "env": { |
@@ -107,11 +169,13 @@ | ||
| 107 | 169 | ], |
| 108 | 170 | "post_start": [] |
| 109 | 171 | }, |
| 110 | − "notes": "v0.1.0 (2026-09-11) : Next 16 :8320 (rewrites /api/v1/* → FastAPI 127.0.0.1:8321, 2 workers uvicorn), scheduler APScheduler + worker de jobs (connecteurs adaptatifs, extraction LLM via llm-api.io, embeddings pgvector, stats/qualité horaires, backup pg_dump 04:40). Postgres 17 + pgvector + Redis Homebrew locaux ; données hors repo ~/ai-atlas-data (archive brute content-addressed, texte, backups, logs). Secrets : AIA_ADMIN_TOKEN (laptop deploy/.admin-token) et AIA_LLM_API_KEY (laptop deploy/.llm-key, clé llm-api.io « ai-atlas »). Après le premier deploy : bash deploy/first-run.sh sur le nœud (corpus initial).", | |
| 172 | + "notes": "v0.1.0 (2026-09-11) : Next 16 :8320 (rewrites /api/v1/* → FastAPI 127.0.0.1:8321, 2 workers uvicorn), scheduler APScheduler + worker de jobs (connecteurs adaptatifs, extraction LLM via llm-api.io, embeddings pgvector, stats/qualité horaires, backup pg_dump 04:40). Postgres 17 + pgvector + Redis Homebrew locaux ; données hors repo ~/ai-atlas-data (archive brute content-addressed, texte, backups, logs). Secrets : AIA_ADMIN_TOKEN (laptop deploy/.admin-token) et AIA_LLM_API_KEY (laptop deploy/.llm-key, clé llm-api.io « ai-atlas »). Après le premier deploy : bash deploy/first-run.sh sur le nœud (corpus initial). v1.1.0 (2026-09-12) : canonical upgrade — ontologie (familles/artefacts/variantes/licences/openness 2.0), migration 0003, aia canonicalize (nightly 03:30 + light pass 6 h via scheduler), API 1.1 (frontier, pulse, pareto, families, deployments, cost, find-a-model, run-locally, open, time-machine, leaderboards groupés, matrix, claims, admin quality/entity-resolution/extractions/quarantine/audit), web terminal (brand atlas-plate, ⌘K, evidence drawer, densité, watchlist, 20+ pages). Après ce deploy : `aia canonicalize --apply` une fois à la main (voir docs/DEPLOY.md).", | |
| 111 | 173 | "tunnel": { |
| 112 | 174 | "domain": "www.ai-atlas.co", |
| 113 | 175 | "gateway": "BHS64", |
| 114 | − "redirects": ["ai-atlas.co"], | |
| 176 | + "redirects": [ | |
| 177 | + "ai-atlas.co" | |
| 178 | + ], | |
| 115 | 179 | "note": "DNS GoDaddy A www + A @ → 51.161.112.61 posés par l'utilisateur le 2026-09-11 (vérifiés par dig)." |
| 116 | 180 | } |
| 117 | 181 | } |
| 118 | 182 | |