chore: add gog CLI support via custom Docker image#1
Merged
juancatorr merged 1813 commits intomainfrom Apr 8, 2026
Merged
Conversation
Merged via squash. Prepared head SHA: dc1d4d0 Co-authored-by: scoootscooob <167050519+scoootscooob@users.noreply.github.com> Reviewed-by: @scoootscooob
…ixes openclaw#48177) (openclaw#48282) * fix(telegram): persist sticky IPv4 fallback across polling restarts (fixes openclaw#48177) Hoist resolveTelegramTransport() out of createTelegramBot() so the transport (and its sticky IPv4 fallback state) persists across polling restarts. Previously, each polling restart created a new transport with stickyIpv4FallbackEnabled=false, causing repeated IPv6 timeouts on hosts with unstable IPv6 connectivity. Changes: - bot.ts: accept optional telegramTransport in TelegramBotOptions - monitor.ts: resolve transport once before polling loop - polling-session.ts: pass transport through to bot creation AI-assisted (Claude Sonnet 4). Tested: tsc --noEmit clean. * Update extensions/telegram/src/polling-session.ts Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * style: fix oxfmt formatting in bot.ts * test: cover telegram transport reuse across restarts * fix: preserve telegram sticky IPv4 fallback across polling restarts (openclaw#48282) (thanks @yassinebkr) --------- Co-authored-by: Yassine <yassinebkr@users.noreply.github.com> Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> Co-authored-by: Ayaan Zaidi <hi@obviy.us>
…penclaw#48197) * ACPX: keep plugin-local runtime installs out of dist * Gateway: harden ACP startup and service PATH * ACP: reinitialize error-state configured bindings * ACP: classify pre-turn runtime failures as session init failures * Plugins: move configured ACP routing behind channel seams * Telegram tests: align startup probe assertions after rebase * Discord: harden ACP configured binding recovery * ACP: recover Discord bindings after stale runtime exits * ACPX: replace dead sessions during ensure * Discord: harden ACP binding recovery * Discord: fix review follow-ups * ACP bindings: load channel snapshots across workspaces * ACP bindings: cache snapshot channel plugin resolution * Experiments: add ACP pluginification holy grail plan * Experiments: rename ACP pluginification plan doc * Experiments: drop old ACP pluginification doc path * ACP: move configured bindings behind plugin services * Experiments: update bindings capability architecture plan * Bindings: isolate configured binding routing and targets * Discord tests: fix runtime env helper path * Tests: fix channel binding CI regressions * Tests: normalize ACP workspace assertion on Windows * Bindings: isolate configured binding registry * Bindings: finish configured binding cleanup * Bindings: finish generic cleanup * Bindings: align runtime approval callbacks * ACP: delete residual bindings barrel * Bindings: restore legacy compatibility * Revert "Bindings: restore legacy compatibility" This reverts commit ac2ed68fa2426ecc874d68278c71c71ad363fcfe. * Tests: drop ACP route legacy helper names * Discord/ACP: fix binding regressions --------- Co-authored-by: Onur <2453968+osolmaz@users.noreply.github.com>
* refactor: generalize bundled provider discovery seams * feat: land chutes extension via plugin-owned auth (openclaw#41416) (thanks @Veightor)
…marizable messages (openclaw#41981) (openclaw#42215) Merged via squash. Prepared head SHA: 7ce6bd8 Co-authored-by: lml2468 <39320777+lml2468@users.noreply.github.com> Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com> Reviewed-by: @jalehman
… creation (openclaw#42398) Merged via squash. Prepared head SHA: 3db47be Co-authored-by: JonathanJing <17068507+JonathanJing@users.noreply.github.com> Co-authored-by: mukhtharcm <56378562+mukhtharcm@users.noreply.github.com> Reviewed-by: @mukhtharcm
Add Dockerfile.gog to extend openclaw:local with the gog binary (Google Workspace CLI). Also forward OPENAI_API_KEY and GEMINI_API_KEY env vars in docker-compose.yml for both services. Made-with: Cursor
The gog CLI uses a file-based keyring to store Google OAuth tokens. In Docker/headless environments, the keyring prompts for a passphrase interactively, which blocks the agent from running gog autonomously. Setting GOG_KEYRING_PASSWORD as an environment variable allows gog to unlock the keyring without user interaction, enabling the agent to execute Gmail, Calendar, Drive, and other Google Workspace commands directly via the gog skill. Setup steps to enable the gog skill in Docker: 1. Build the custom image: docker build -f Dockerfile.gog -t openclaw:gog . 2. Set OPENCLAW_IMAGE=openclaw:gog in .env 3. Set GOG_KEYRING_PASSWORD= in .env (empty = no passphrase) 4. Run: gog auth keyring file (inside container) 5. Run: gog auth credentials /path/to/client_secret.json 6. Run: gog auth add you@gmail.com --manual 7. Add to openclaw.json: tools.alsoAllow = ["exec", "process"] Made-with: Cursor
Made-with: Cursor
…ases - docker-compose.yml: mount ~/.openclaw/gogcli as volume so gog tokens survive container restarts - docs/docker-commands.html: add case 10 (gog token loss diagnosis + re-auth + volume persistence) - docs/docker-commands.html: add case 11 (exec tool not enabled — tools.alsoAllow fix + persistence explanation) - docs/docker-commands.html: add case 08 (migrate Docker Desktop images to Colima via docker save/load) + TOC entry
05d74af to
72b647c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Dockerfile.gogque extiende la imagen base de OpenClaw e instala el binariogog(Google Workspace CLI) desde GitHub Releasesamd64oarm64)OPENAI_API_KEYyGEMINI_API_KEYcomo variables de entorno endocker-compose.ymlpara ambos serviciosUso
docker build -f Dockerfile.gog -t openclaw:gog . docker compose up -dLuego configurar en
.env:Made with Cursor