diff --git a/README.md b/README.md index 613df99..0e25c43 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,11 @@ integration PRs, follows `main` through production, and pauses after failures. ## Install -Install the reviewed `v0.2.2` source commit directly from GitHub: +Install the reviewed `v0.2.3` source commit directly from GitHub: ```bash python3 -m pip install \ - 'deploybot-merge-queue[mcp] @ git+https://github.com/Forward-Future/DeployBot.git@2a502a74251e2fbb07e5b4769ce99687235df5ae' + 'deploybot-merge-queue[mcp] @ git+https://github.com/Forward-Future/DeployBot.git@c9e3d6976b372ef5bcbb2986b0afd6bb1afe9470' deploybot init ``` @@ -86,7 +86,7 @@ aligned with `pipeline.ci_workflows`. The privileged worker never checks out or executes pull-request code. Pin the Action to the full reviewed release commit: ```yaml -- uses: Forward-Future/DeployBot@2a502a74251e2fbb07e5b4769ce99687235df5ae +- uses: Forward-Future/DeployBot@c9e3d6976b372ef5bcbb2986b0afd6bb1afe9470 ``` The Action uses GitHub's built-in workflow token. GitHub intentionally does not diff --git a/adapters/claude-code/.claude-plugin/plugin.json b/adapters/claude-code/.claude-plugin/plugin.json index 1264963..43f200e 100644 --- a/adapters/claude-code/.claude-plugin/plugin.json +++ b/adapters/claude-code/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "deploybot", - "version": "0.2.2", + "version": "0.2.3", "description": "DeployBot: a provider-neutral GitHub merge queue for coding agents", "author": { "name": "DeployBot contributors" diff --git a/adapters/claude-code/.mcp.json b/adapters/claude-code/.mcp.json index 6a20b28..3c6171d 100644 --- a/adapters/claude-code/.mcp.json +++ b/adapters/claude-code/.mcp.json @@ -4,7 +4,7 @@ "command": "uvx", "args": [ "--from", - "deploybot-merge-queue[mcp] @ git+https://github.com/Forward-Future/DeployBot.git@2a502a74251e2fbb07e5b4769ce99687235df5ae", + "deploybot-merge-queue[mcp] @ git+https://github.com/Forward-Future/DeployBot.git@c9e3d6976b372ef5bcbb2986b0afd6bb1afe9470", "deploybot-mcp" ] } diff --git a/adapters/codex/agent-merge-queue/.codex-plugin/plugin.json b/adapters/codex/agent-merge-queue/.codex-plugin/plugin.json index 63b1eb3..8ba0978 100644 --- a/adapters/codex/agent-merge-queue/.codex-plugin/plugin.json +++ b/adapters/codex/agent-merge-queue/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "deploybot", - "version": "0.2.2", + "version": "0.2.3", "description": "Review, queue, and land pull requests through a shared GitHub merge queue", "author": { "name": "DeployBot contributors" diff --git a/adapters/codex/agent-merge-queue/.mcp.json b/adapters/codex/agent-merge-queue/.mcp.json index 6a20b28..3c6171d 100644 --- a/adapters/codex/agent-merge-queue/.mcp.json +++ b/adapters/codex/agent-merge-queue/.mcp.json @@ -4,7 +4,7 @@ "command": "uvx", "args": [ "--from", - "deploybot-merge-queue[mcp] @ git+https://github.com/Forward-Future/DeployBot.git@2a502a74251e2fbb07e5b4769ce99687235df5ae", + "deploybot-merge-queue[mcp] @ git+https://github.com/Forward-Future/DeployBot.git@c9e3d6976b372ef5bcbb2986b0afd6bb1afe9470", "deploybot-mcp" ] } diff --git a/adapters/codex/agent-merge-queue/skills/deploybot/agents/openai.yaml b/adapters/codex/agent-merge-queue/skills/deploybot/agents/openai.yaml index 085d42a..e910fd7 100644 --- a/adapters/codex/agent-merge-queue/skills/deploybot/agents/openai.yaml +++ b/adapters/codex/agent-merge-queue/skills/deploybot/agents/openai.yaml @@ -1,7 +1,7 @@ interface: display_name: "DeployBot" - short_description: "Inspect and manage agent merge queues" - default_prompt: "Use $deploybot to show the current merge queue and explain what is ready, waiting, or blocked." + short_description: "Inspect and operate the delivery pipeline" + default_prompt: "Use $deploybot to show threads, pull requests, queue, CI, deployment, and any blocker or repair handoff." dependencies: tools: - type: "mcp" diff --git a/adapters/codex/agent-merge-queue/skills/manage-merge-queue/agents/openai.yaml b/adapters/codex/agent-merge-queue/skills/manage-merge-queue/agents/openai.yaml index 987ff43..ea5249c 100644 --- a/adapters/codex/agent-merge-queue/skills/manage-merge-queue/agents/openai.yaml +++ b/adapters/codex/agent-merge-queue/skills/manage-merge-queue/agents/openai.yaml @@ -1,7 +1,7 @@ interface: display_name: "Manage Merge Queue" - short_description: "Review, queue, and land pull requests safely" - default_prompt: "Use $manage-merge-queue to review and enqueue my pull request, then coordinate the merge queue." + short_description: "Review and deliver pull requests safely" + default_prompt: "Use $manage-merge-queue to review my pull request, record deploy intent, and let DeployBot deliver it." dependencies: tools: - type: "mcp" diff --git a/adapters/cursor/.cursor/mcp.json b/adapters/cursor/.cursor/mcp.json index 6a20b28..3c6171d 100644 --- a/adapters/cursor/.cursor/mcp.json +++ b/adapters/cursor/.cursor/mcp.json @@ -4,7 +4,7 @@ "command": "uvx", "args": [ "--from", - "deploybot-merge-queue[mcp] @ git+https://github.com/Forward-Future/DeployBot.git@2a502a74251e2fbb07e5b4769ce99687235df5ae", + "deploybot-merge-queue[mcp] @ git+https://github.com/Forward-Future/DeployBot.git@c9e3d6976b372ef5bcbb2986b0afd6bb1afe9470", "deploybot-mcp" ] } diff --git a/examples/github-workflow.yml b/examples/github-workflow.yml index ff210d4..6a3fef0 100644 --- a/examples/github-workflow.yml +++ b/examples/github-workflow.yml @@ -37,5 +37,5 @@ jobs: with: ref: ${{ github.event.repository.default_branch }} persist-credentials: false - # v0.2.2 implementation; keep the full commit for privileged workflows. - - uses: Forward-Future/DeployBot@2a502a74251e2fbb07e5b4769ce99687235df5ae + # v0.2.3 implementation; keep the full commit for privileged workflows. + - uses: Forward-Future/DeployBot@c9e3d6976b372ef5bcbb2986b0afd6bb1afe9470 diff --git a/pyproject.toml b/pyproject.toml index 2aa2ee7..9806aa9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "deploybot-merge-queue" -version = "0.2.2" +version = "0.2.3" description = "DeployBot: a provider-neutral GitHub merge queue for coding agents" readme = "README.md" license = "MIT" diff --git a/skills/deploybot/agents/openai.yaml b/skills/deploybot/agents/openai.yaml index 97d5ca9..8104da3 100644 --- a/skills/deploybot/agents/openai.yaml +++ b/skills/deploybot/agents/openai.yaml @@ -1,4 +1,4 @@ interface: display_name: "DeployBot" - short_description: "Inspect and manage agent merge queues" - default_prompt: "Use $deploybot to show the current merge queue and explain what is ready, waiting, or blocked." + short_description: "Inspect and operate the delivery pipeline" + default_prompt: "Use $deploybot to show threads, pull requests, queue, CI, deployment, and any blocker or repair handoff." diff --git a/skills/manage-merge-queue/agents/openai.yaml b/skills/manage-merge-queue/agents/openai.yaml index d944703..4b576ad 100644 --- a/skills/manage-merge-queue/agents/openai.yaml +++ b/skills/manage-merge-queue/agents/openai.yaml @@ -1,4 +1,4 @@ interface: display_name: "Manage Merge Queue" - short_description: "Review, queue, and land pull requests safely" - default_prompt: "Use $manage-merge-queue to review and enqueue my pull request, then coordinate the merge queue." + short_description: "Review and deliver pull requests safely" + default_prompt: "Use $manage-merge-queue to review my pull request, record deploy intent, and let DeployBot deliver it." diff --git a/src/agent_merge_queue/__init__.py b/src/agent_merge_queue/__init__.py index c5e411d..38f4bf3 100644 --- a/src/agent_merge_queue/__init__.py +++ b/src/agent_merge_queue/__init__.py @@ -1,3 +1,3 @@ """DeployBot: a provider-neutral GitHub merge queue for coding agents.""" -__version__ = "0.2.2" +__version__ = "0.2.3" diff --git a/tests/test_mcp.py b/tests/test_mcp.py index 8d699ee..8800f64 100644 --- a/tests/test_mcp.py +++ b/tests/test_mcp.py @@ -1,12 +1,19 @@ from __future__ import annotations +import importlib.util import unittest from subprocess import CompletedProcess from unittest.mock import patch -from agent_merge_queue.mcp_server import _run +MCP_AVAILABLE = importlib.util.find_spec("mcp") is not None +if MCP_AVAILABLE: + from agent_merge_queue.mcp_server import _run +else: + _run = None + +@unittest.skipUnless(MCP_AVAILABLE, "the optional MCP extra is not installed") class McpTest(unittest.TestCase): def test_diagnose_can_return_failed_report_payload(self) -> None: completed = CompletedProcess( diff --git a/tests/test_skill.py b/tests/test_skill.py index 508c03e..eea4e64 100644 --- a/tests/test_skill.py +++ b/tests/test_skill.py @@ -6,7 +6,7 @@ ROOT = Path(__file__).resolve().parents[1] CANONICAL = ROOT / "skills" / "deploybot" / "SKILL.md" -RELEASE_COMMIT = "2a502a74251e2fbb07e5b4769ce99687235df5ae" +RELEASE_COMMIT = "c9e3d6976b372ef5bcbb2986b0afd6bb1afe9470" CHECKOUT_COMMIT = "9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0"