diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f3086ad..2709a5e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -44,14 +44,20 @@ jobs: with: python-version: "3.12" + - uses: astral-sh/setup-uv@v8.1.0 + with: + version: "latest" + - uses: actions/setup-node@v7 with: node-version: 22 - name: Install bridge + latest SDK run: | - pip install -e . pytest - pip install -U claude-agent-sdk + uv pip install --system \ + "inkbox @ git+https://github.com/inkbox-ai/inkbox.git@8f4b37c56cd153a2acc6cfabe27dbbeb43510f00#subdirectory=sdk/python" \ + -e . pytest + uv pip install --system -U claude-agent-sdk - name: Install latest Claude Code CLI run: npm install -g @anthropic-ai/claude-code diff --git a/inkbox_claude/doctor.py b/inkbox_claude/doctor.py index 74c9769..95bbd16 100644 --- a/inkbox_claude/doctor.py +++ b/inkbox_claude/doctor.py @@ -33,7 +33,7 @@ def run_doctor() -> List[Tuple[str, bool, str]]: import inkbox # noqa: F401 checks.append(("inkbox SDK", True, "installed")) except ImportError: - checks.append(("inkbox SDK", False, "pip install 'inkbox>=0.4.20,<1.0.0'")) + checks.append(("inkbox SDK", False, "pip install 'inkbox>=0.5.0,<1.0.0'")) try: import claude_agent_sdk # noqa: F401 diff --git a/inkbox_claude/gateway.py b/inkbox_claude/gateway.py index 4c8719f..89eb9c2 100644 --- a/inkbox_claude/gateway.py +++ b/inkbox_claude/gateway.py @@ -488,7 +488,7 @@ async def run(self) -> None: if not AIOHTTP_AVAILABLE: raise RuntimeError("aiohttp is not installed; run: pip install aiohttp") if not INKBOX_AVAILABLE: - raise RuntimeError("inkbox SDK is not installed; run: pip install 'inkbox>=0.4.20,<1.0.0'") + raise RuntimeError("inkbox SDK is not installed; run: pip install 'inkbox>=0.5.0,<1.0.0'") if not self.cfg.api_key or not self.cfg.identity: raise RuntimeError("INKBOX_API_KEY and INKBOX_IDENTITY must be set (see README)") diff --git a/inkbox_claude/setup_wizard.py b/inkbox_claude/setup_wizard.py index 73855b4..fc65651 100644 --- a/inkbox_claude/setup_wizard.py +++ b/inkbox_claude/setup_wizard.py @@ -35,8 +35,8 @@ # Packages the wizard itself needs to talk to Inkbox during setup. The # gateway's other dependency (claude-agent-sdk) is checked by doctor. -INKBOX_MIN_VERSION = (0, 4, 15) -INKBOX_REQUIREMENTS = ("inkbox>=0.4.20,<1.0.0", "aiohttp>=3.9") +INKBOX_MIN_VERSION = (0, 5, 0) +INKBOX_REQUIREMENTS = ("inkbox>=0.5.0,<1.0.0", "aiohttp>=3.9") _BRACKETED_PASTE_PATTERN = re.compile(r"\x1b\[\s*200~|\x1b\[\s*201~") # Bundled avatar attached to the agent's Inkbox contact card during setup. diff --git a/pyproject.toml b/pyproject.toml index e40268b..8b258ef 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ description = "Inkbox bridge for Claude Code — talk to your coding agent over requires-python = ">=3.11" dependencies = [ "aiohttp>=3.9", - "inkbox>=0.4.24,<1.0.0", + "inkbox>=0.5.0,<1.0.0", "claude-agent-sdk>=0.1.0", "segno>=1.5", # terminal QR codes for the iMessage connect step ] diff --git a/tests/test_setup_wizard.py b/tests/test_setup_wizard.py index d2c0606..75f6a63 100644 --- a/tests/test_setup_wizard.py +++ b/tests/test_setup_wizard.py @@ -88,7 +88,7 @@ def test_install_command_prefers_uv_when_available(monkeypatch): "install", "--python", "/tmp/venv/bin/python", - "inkbox>=0.4.20,<1.0.0", + "inkbox>=0.5.0,<1.0.0", "aiohttp>=3.9", ]] @@ -98,10 +98,10 @@ def test_install_command_falls_back_to_pip_and_ensurepip(monkeypatch): monkeypatch.setattr(setup_wizard.shutil, "which", lambda _name: None) assert setup_wizard._install_commands() == [ - [["/tmp/venv/bin/python", "-m", "pip", "install", "inkbox>=0.4.20,<1.0.0", "aiohttp>=3.9"]], + [["/tmp/venv/bin/python", "-m", "pip", "install", "inkbox>=0.5.0,<1.0.0", "aiohttp>=3.9"]], [ ["/tmp/venv/bin/python", "-m", "ensurepip", "--upgrade"], - ["/tmp/venv/bin/python", "-m", "pip", "install", "inkbox>=0.4.20,<1.0.0", "aiohttp>=3.9"], + ["/tmp/venv/bin/python", "-m", "pip", "install", "inkbox>=0.5.0,<1.0.0", "aiohttp>=3.9"], ], ] @@ -120,7 +120,7 @@ def fail_import(): out = capsys.readouterr().out assert "/tmp/venv/bin/python" in out assert "uv pip install --python" in out - assert "inkbox>=0.4.20,<1.0.0" in out + assert "inkbox>=0.5.0,<1.0.0" in out # ----------------------------------------------------------------------