chore(deps): bump the minor-and-patch group across 1 directory with 3 updates - #55
Conversation
… updates --- updated-dependencies: - dependency-name: agent-client-protocol dependency-version: 0.10.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: aiohttp dependency-version: 3.14.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: typer dependency-version: 0.26.5 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch ... Signed-off-by: dependabot[bot] <support@github.com>
📝 WalkthroughWalkthroughPins for ChangesDependency Updates & Release Notes
ACP server, CLI, UI, and tests
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Suggested labels: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
The minor-and-patch bump pulls in two effectively-breaking 0.x upgrades: - Align the pythinker-review typer pin to 0.26.5 so the uv workspace resolves (root required 0.26.5 while the member still pinned 0.21.1). - Migrate the ACP server to the 0.10 auth schema: AuthMethod is gone, replaced by the typed TerminalAuthMethod. ACP 0.10 drops the per-method command field by design (the client invokes the agent binary directly for security), so only args/env/type are advertised. - Conform to the expanded 0.10 Agent protocol: additional_directories on the session methods, message_id on prompt, new close_session and set_config_option, and updated return types. - Restore optional-value parsing for --session/--resume. Typer 0.26 reimplemented option parsing with a parser that always consumes the next token as the value, so the old click _flag_needs_value trick was dead code; normalise argv before parsing instead. - Track typer's vendored click Command type in the lazy command group.
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/en/release-notes/changelog.md`:
- Around line 20-24: Remove the manual edits from
docs/en/release-notes/changelog.md and revert the file to the auto-synced state;
instead make any changelog updates in the root CHANGELOG.md so the sync script
can propagate them, and ensure no further direct changes are committed to
docs/en/release-notes/changelog.md (verify by running the repo's sync script or
CI validation that updates the file).
In `@src/pythinker_code/acp/server.py`:
- Around line 367-371: The set_session_mode handler currently ignores session_id
and uses assert for mode validation; replace the assert with explicit
validation: in set_session_mode check that mode_id == "default" and if not
return the proper invalid_params response, then verify the session exists (e.g.
via the server's session store or self.sessions using session_id) and if the
session is missing return invalid_params as well; do not use assert so the
checks always run and reference the set_session_mode method, the mode_id and
session_id parameters when locating and validating the session and mode.
In `@tests/ui_and_conv/test_acp_server_auth.py`:
- Around line 20-27: The test uses a TerminalAuthMethod fixture with args set to
["pythinker", "login"] which no longer matches the real payload advertised by
ACPServer.initialize(); update the fixture (the acp.schema.TerminalAuthMethod
instance) so its args reflect only the extra argv tail (e.g., ["login"]) to
mirror ACPServer.initialize() behavior and ensure auth-error tests use the real
shape.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 49445af7-7f14-43b3-be78-325f494c046d
📒 Files selected for processing (8)
CHANGELOG.mddocs/en/release-notes/changelog.mdpackages/pythinker-review/pyproject.tomlsrc/pythinker_code/acp/server.pysrc/pythinker_code/cli/_lazy_group.pysrc/pythinker_code/ui/acp/__init__.pytests/acp/test_server_initialize.pytests/ui_and_conv/test_acp_server_auth.py
Address CodeRabbit review on #55: - set_session_mode now returns invalid_params for an unknown session or a non-default mode instead of relying on an assert (which is stripped under python -O and silently reported success). - Align the auth-error test fixture's terminal-auth args with the real payload the server now advertises (['login']).
Summary
Routine Dependabot group bump —
agent-client-protocol0.8.0 → 0.10.1,aiohttp3.13.5 → 3.14.0,typer0.21.1 → 0.26.5 — plus the fixes required to absorb the two effectively-breaking 0.x bumps.Changes
pythinker-reviewtyperpin to0.26.5so the uv workspace resolves (root required0.26.5while the member still pinned0.21.1).AuthMethodis gone — migrate the ACP server to the typedTerminalAuthMethod. Per the ACP 0.10 spec the per-methodcommandfield was removed for security (the client invokes the agent binary directly), so onlyargs/env/typeare advertised. Conform to the expandedAgentprotocol:additional_directorieson the session methods,message_idonprompt, newclose_session/set_config_option, and updated return types.set_session_modenow returnsinvalid_paramsfor an unknown session or non-default mode instead of relying on a stripped-under--Oassert.--session/--resume(the old click_flag_needs_valuetrick became dead code). Restore it via argv preprocessing so--sessionwithout an ID still opens the interactive picker.Testing
make check(ruff + pyright) passes across all packages.make testpasses across all packages (pythinker-codeincl.tests_e2e, core, host, review, sdk).close_sessiontest and re-targeted the ACP auth/initialize tests to the 0.10 contract.Related
No linked issue — Dependabot-initiated group update; breaking-change handling added on top.