Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion inkbox_claude/doctor.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion inkbox_claude/gateway.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)")

Expand Down
4 changes: 2 additions & 2 deletions inkbox_claude/setup_wizard.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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
]
Expand Down
8 changes: 4 additions & 4 deletions tests/test_setup_wizard.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
]]

Expand All @@ -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"],
],
]

Expand All @@ -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


# ----------------------------------------------------------------------
Expand Down