From 1317d94e8ca1c6e4d9aeef0f00344c9ac34a0008 Mon Sep 17 00:00:00 2001 From: Tallagrand Thierry Date: Wed, 2 Sep 2026 02:57:36 +0200 Subject: [PATCH] chore(git): liste blanche .gitignore + sortir openclaw.json du suivi Le depot suivait openclaw.json en clair, qui contient gateway.auth.token, gateway.remote.token et models.providers.*.apiKey. Ces valeurs sont deja presentes dans l'historique pousse (2 occurrences du jeton de gateway actuel) : la rotation du jeton reste a faire cote gateway. Sans .gitignore, un "git add -A" balayait 505 Mo, dont l'appairage WhatsApp (32 Mo de cles de session), la base SQLite active, credentials/, secrets/, devices/ et les medias recus. Strategie retenue : liste blanche. Tout est ignore par defaut, seules la documentation et la configuration sont reintegrees explicitement. openclaw.json est remplace par openclaw.json.example, caviarde. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01NuEBkGBjkpZGgqJnX1DCrm --- .gitignore | 84 ++++++++++ openclaw.json => openclaw.json.example | 219 ++++++++++++++++++------- 2 files changed, 244 insertions(+), 59 deletions(-) create mode 100644 .gitignore rename openclaw.json => openclaw.json.example (59%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bb438a2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,84 @@ +# .gitignore — dépôt OPENCLAW_ARCHIVE3_17 +# +# STRATÉGIE : liste blanche. Tout est ignoré par défaut, on ne réintègre +# explicitement que la configuration et la documentation. +# +# Raison : ce répertoire est le volume de données vivant du gateway. Il contient +# 505 Mo dont l'appairage WhatsApp (32 Mo de clés de session), la base SQLite +# active, les identifiants OAuth, les jetons de device et les médias reçus. +# Un « git add -A » sans garde-fou publierait tout cela. + +# --- tout ignorer par défaut --- +/* + +# --- réintégrations : racine --- +!/.gitignore +!/README.md +!/openclaw.json.example + +# --- réintégrations : documentation de passation --- +!/handoffs/ + +# --- réintégrations : workspace (doc + config de l'agent) --- +!/workspace/ +workspace/* +!workspace/*.md +!workspace/bourse-config.json +!workspace/cron/ +workspace/cron/* +!workspace/cron/*.md + +# --- exclusions explicites à l'intérieur du workspace --- +# (redondant avec la liste blanche, mais explicite = plus sûr à la relecture) +workspace/_archive-*/ +workspace/charts/ +workspace/invoices/ +workspace/media-inbound/ +workspace/.clawhub/ +workspace/*.json +!workspace/bourse-config.json +workspace/*.png +workspace/*.svg +workspace/*.html + +# --- JAMAIS versionner : secrets et état runtime --- +# openclaw.json contient gateway.auth.token, gateway.remote.token et +# models.providers.*.apiKey en clair. Utiliser openclaw.json.example à la place. +openclaw.json +openclaw.json.* +!openclaw.json.example +credentials/ +secrets/ +identity/ +whatsapp/ +devices/ +gogcli/ +config-journal-fingerprint.key +exec-approvals.json* +*.key + +# --- état runtime, volumineux ou reconstructible --- +state/ +npm/ +media/ +cache/ +logs/ +tasks/ +flows/ +agents/ +plugins/ +plugin-state/ +plugin-skills/ +extensions/ +completions/ +delivery-queue/ +skill-workshop/ +memory/ +backups/ +tools/ +*.sqlite +*.sqlite-* +*.tgz +*.bak +*.bak-* +*.migrated diff --git a/openclaw.json b/openclaw.json.example similarity index 59% rename from openclaw.json rename to openclaw.json.example index eddcd86..7bbb631 100644 --- a/openclaw.json +++ b/openclaw.json.example @@ -4,7 +4,7 @@ "bind": "lan", "auth": { "mode": "token", - "token": "119bca22-377a-4b69-a484-9b08cc79a782", + "token": "", "rateLimit": { "maxAttempts": 10, "windowMs": 60000, @@ -13,7 +13,7 @@ }, "remote": { "url": "ws://127.0.0.1:18789", - "token": "119bca22-377a-4b69-a484-9b08cc79a782" + "token": "" }, "controlUi": { "allowedOrigins": [ @@ -76,7 +76,7 @@ "enabled": false }, "gog": { - "enabled": true + "enabled": false }, "goplaces": { "enabled": false @@ -164,31 +164,53 @@ }, "whatsapp": { "enabled": true + }, + "node-connect": { + "enabled": false + }, + "node-inspect-debugger": { + "enabled": false + }, + "notion": { + "enabled": false + }, + "meme-maker": { + "enabled": false + }, + "python-debugpy": { + "enabled": false + }, + "skill-creator": { + "enabled": false + }, + "spike": { + "enabled": false + }, + "healthcheck": { + "enabled": false } } }, "meta": { - "lastTouchedVersion": "2026.6.9", - "lastTouchedAt": "2026-06-23T00:31:04.678Z" + "lastTouchedVersion": "2026.8.1", + "migrations": { + "modelPolicyAllowlist": true + } }, "wizard": { - "lastRunAt": "2026-05-28T19:12:05.393Z", - "lastRunVersion": "2026.5.27", + "lastRunAt": "2026-09-01T20:41:27.054Z", + "lastRunVersion": "2026.8.1", "lastRunCommand": "doctor", "lastRunMode": "local" }, "agents": { "defaults": { + "thinkingDefault": "off", "model": { - "primary": "vllm/qwen3-vl" + "primary": "spark/qwen3-coder" }, "compaction": { - "reserveTokensFloor": 20000, - "mode": "safeguard", - "reserveTokens": 8192 - }, - "models": { - "vllm/qwen3-vl": {} + "mode": "safeguard" }, "sandbox": { "mode": "off" @@ -197,24 +219,27 @@ "timeoutSeconds": 600, "every": "0" }, - "memorySearch": { - "enabled": false - } + "bootstrapMaxChars": 30000, + "bootstrapTotalMaxChars": 60000, + "contextInjection": "continuation-skip" + }, + "entries": { + "main": {} } }, "models": { - "mode": "merge", + "mode": "replace", "providers": { - "vllm": { + "spark": { "baseUrl": "http://10.10.10.8:8000/v1", "api": "openai-completions", - "apiKey": "vllm-local", + "apiKey": "", "timeoutSeconds": 300, "models": [ { - "id": "qwen3-vl", - "name": "Qwen3-VL 30B FP8 Thinking DGX Vision", - "reasoning": true, + "id": "qwen3-coder", + "name": "Qwen3.8-27B Coder+Vision (DGX Spark)", + "reasoning": false, "input": [ "text", "image" @@ -230,23 +255,24 @@ "cacheRead": 0, "cacheWrite": 0 }, - "contextWindow": 65536, - "maxTokens": 16384 + "contextWindow": 98304, + "maxTokens": 4096 } ] } } }, "auth": { - "profiles": { - "vllm:default": { - "provider": "vllm", - "mode": "api_key" - } - } + "profiles": {} }, "messages": { - "ackReactionScope": "group-mentions" + "ackReactionScope": "group-mentions", + "inbound": { + "byChannel": { + "whatsapp": 0 + } + }, + "ackReaction": "👀" }, "session": { "dmScope": "per-channel-peer" @@ -256,11 +282,98 @@ "whatsapp": { "enabled": true }, - "vllm": { - "enabled": true - }, "memory-core": { "config": {} + }, + "browser": { + "enabled": true + }, + "alibaba": { + "enabled": false + }, + "anthropic": { + "enabled": false + }, + "clawrouter": { + "enabled": false + }, + "copilot-proxy": { + "enabled": false + }, + "github-copilot": { + "enabled": false + }, + "google": { + "enabled": false + }, + "huggingface": { + "enabled": false + }, + "litellm": { + "enabled": false + }, + "lmstudio": { + "enabled": false + }, + "microsoft": { + "enabled": false + }, + "microsoft-foundry": { + "enabled": false + }, + "nvidia": { + "enabled": false + }, + "ollama": { + "enabled": false + }, + "openrouter": { + "enabled": false + }, + "sglang": { + "enabled": false + }, + "together": { + "enabled": false + }, + "xai": { + "enabled": false + }, + "azure-speech": { + "enabled": false + }, + "deepgram": { + "enabled": false + }, + "elevenlabs": { + "enabled": false + }, + "fal": { + "enabled": false + }, + "minimax": { + "enabled": false + }, + "runway": { + "enabled": false + }, + "senseaudio": { + "enabled": false + }, + "talk-voice": { + "enabled": false + }, + "tts-local-cli": { + "enabled": false + }, + "canvas": { + "enabled": false + }, + "cua-computer": { + "enabled": false + }, + "geolocation": { + "enabled": false } } }, @@ -270,7 +383,6 @@ "configWrites": true, "sendReadReceipts": true, "selfChatMode": true, - "debounceMs": 0, "mediaMaxMb": 50, "accounts": { "custom-1": { @@ -287,11 +399,6 @@ "groupAllowFrom": [ "+33607148216" ], - "ackReaction": { - "direct": true, - "group": "mentions" - }, - "debounceMs": 0, "authDir": "/home/node/.openclaw/whatsapp/custom-1" } }, @@ -301,32 +408,26 @@ } }, "actions": { - "reactions": true, + "reactions": false, "sendMessage": true, - "polls": true + "polls": false } } }, "tools": { "media": { "image": { - "enabled": true + "enabled": false } } }, "mcp": { - "servers": { - "n8n-mcp": { - "command": "npx", - "args": [ - "-y", - "n8n-mcp" - ], - "env": { - "N8N_API_URL": "https://n8n.airtria.pro/api/v1", - "N8N_API_KEY": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI4YjllOTU1Mi1jZDc0LTQ4NjMtODJhMy0xNzRiM2IzYmVmYTIiLCJpc3MiOiJuOG4iLCJhdWQiOiJwdWJsaWMtYXBpIiwianRpIjoiMGYzZmU4NDAtNGY5Yi00ZDgwLWIzNzctMDRjZmU4ZmE5OWM5IiwiaWF0IjoxNzc4NjMzMzY0fQ.BPypJ7xR_bzVpptZQvD1ZvV9_-CIjKrj5s7r7lt-qGw" - } - } - } - } -} + "servers": {} + }, + "commands": { + "ownerAllowFrom": [ + "whatsapp:0607148216" + ] + }, + "_comment_example": "Gabarit de configuration. Les secrets sont caviardes : le fichier reel (openclaw.json) n'est PAS versionne, il vit uniquement dans /volume1/docker/openclaw-data sur le NAS." +} \ No newline at end of file