v16: register composio MCP for codex; simplify autopilot trigger paragraph#224
Open
MagMueller wants to merge 1 commit into
Open
v16: register composio MCP for codex; simplify autopilot trigger paragraph#224MagMueller wants to merge 1 commit into
MagMueller wants to merge 1 commit into
Conversation
…paragraph
The doctrine reviewer flagged the claude/codex composio gap: bootstrap.sh registers the cloud composio MCP server for claude only (`claude mcp add`), and the system prompt referenced composio tools as if both CLIs had them. Codex lanes silently couldn't onboard, voice-mirror, or call Gmail/Slack tools.
Fixed by adding a parallel codex registration. Codex CLI ≥ 0.30 supports HTTP-transport MCP natively (no mcp-remote bridge):
codex mcp add composio \
--bearer-token-env-var BUX_BOX_TOKEN \
-- https://api.browser-use.com/cloud/composio/mcp
Writes the entry to ~/.codex/config.toml. The bearer token isn't baked into the file — codex reads BUX_BOX_TOKEN at MCP-connect time. telegram_bot.py:_build_env now forwards BUX_BOX_TOKEN to the codex subprocess so the env var is available.
Verification mirrors the claude path: `codex mcp list | grep '^composio'` after registration; warn loudly if it didn't take.
Source: https://developers.openai.com/codex/mcp + https://developers.openai.com/codex/config-reference
**Autopilot trigger paragraph simplified.** Per your direction, removed the second sentence ("Colloquial throwaways like 'just do it' or 'don't bother me' are not triggers"). The rule is now just: unlock autopilot when the user's prompt clearly says no approvals — anything close to 'autopilot', 'full autonomy', 'no approvals', 'don't ask me anything', 'completely autonomous'. When in doubt, copilot.
Tests: 21 pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
b1ade6b to
0d24d31
Compare
MagMueller
added a commit
that referenced
this pull request
May 15, 2026
…omposio for codex Lands 16 stacked PRs reviewed by multiple sub-agents: - v1 (#209) /goal as primitive, per-topic autopilot vs copilot - v2 (#210) drop agency-mode gate, fold doctrine into CLAUDE.md, delete old Mini App UI - v3 (#211) CLAUDE.md → system-prompt.md (source of truth), agent identity = "agency" - v4 (#212) trim system prompt to 87 lines, mode emoji in topic title, extract bot/markdown.py - v5 (#213) heartbeat-by-default plumbing (later removed), copilot voice fix, autopilot security note - v6 (#214) steering semantics, new-topic spawning, 2-option cards, source-aware images - v7 (#215) /goal IS autopilot framing, drop topic emoji prefix, silence allowed, codex goals=true, `schedule` alias - v8 (#216) drop --spawn-topic, --importance, trim agency-report docstring - v9 (#217) new-topic helper — spawn fresh lane synchronously, queue heartbeat - v10 (#218) self-schedule only when waiting on something concrete; drop auto-heartbeats - v11 (#219) /goal is a verbatim CLI passthrough; bot is a dumb pipe - v12 (#220) drop 30-min timeout, kill lingering heartbeat, prompt-injection defenses, seed goals.md - v13 (#221) /goal stays copilot by default; autopilot only on explicit user opt-in - v14 (#222) doctrine fixes from final multi-agent review - v15 (#223) tighten autopilot triggers — drop the loose phrases - v16 (#224) register composio MCP for codex too; simplify autopilot trigger paragraph Tests: 22 pass. Follow-ups (tracked, not in this merge): - P0: install bootstrap.sh as /usr/local/sbin root:root (closes the trivial bux→root) - P1: stuck-lane watchdog (no-stdout-for-30-min SIGTERM) - P1: /invite is a dead command (remove from BotFather menu) - P1: composio tool names wrong-case in system prompt - P1: help text + COMMANDS still reference dropped autopilot trigger phrases - P1: BUX_BOX_TOKEN provenance for OSS self-host installs - P2: button-tap dispatches bypass _enqueue (lane race on rapid taps) - P2: persisted per-topic autopilot flag in state (instead of LLM phrase detection) - P2: agency_db ghost columns (importance, spawn_topic) - P2: mini app teardown decision (1700 LOC for an unreferenced surface) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Stacked on #223 (v15). Two fixes from the recent review.
1. Codex composio MCP registration
The final doctrine reviewer flagged:
bootstrap.sh:199-218registers composio for claude only. Codex lanes silently couldn't call Gmail/Slack/etc. via composio — the system prompt referenced these tools as if both CLIs had them, but only claude did.Fix: parallel
codex mcp addblock inbootstrap.sh. Codex CLI ≥ 0.30 supports HTTP-transport MCP natively.This writes the entry to
~/.codex/config.toml. The token isn't baked into the file — codex readsBUX_BOX_TOKENat MCP-connect time.telegram_bot.py:_build_envnow forwardsBUX_BOX_TOKENto the codex subprocess env so the env var is available at runtime.Verification mirrors the claude path:
codex mcp list | grep '^composio'after registration; loud warn if it didn't take.Source: https://developers.openai.com/codex/mcp
2. Autopilot trigger paragraph simplified
Per your direction, removed the second sentence ('Colloquial throwaways like 'just do it' or 'don't bother me' are not triggers'). The rule is now just:
Tests
21 pass.
🤖 Generated with Claude Code
Summary by cubic
Register the cloud Composio MCP for
codexusingBUX_BOX_TOKENso Codex lanes have the same tools asclaude. Also simplify the autopilot trigger to a single, clear rule.Bug Fixes
codexComposio MCP registration in bootstrap with--bearer-token-env-var BUX_BOX_TOKENand--url; remove any prior entry, verify, and skip if the token is missing orcodexisn’t installed.BUX_BOX_TOKENto thecodexsubprocess intelegram_bot.py.Refactors
Written for commit 0d24d31. Summary will update on new commits. Review in cubic