chore(deps): bump the minor-and-patch group across 1 directory with 2 updates - #35
chore(deps): bump the minor-and-patch group across 1 directory with 2 updates#35dependabot[bot] wants to merge 1 commit into
Conversation
📝 WalkthroughWalkthroughThe pull request upgrades two project dependencies in ChangesDependency updates
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes 🚥 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 |
b4d464c to
55f1c6f
Compare
… updates Bumps the minor-and-patch group with 2 updates in the / directory: [agent-client-protocol](https://github.com/agentclientprotocol/python-sdk) and [typer](https://github.com/fastapi/typer). Updates `agent-client-protocol` from 0.8.0 to 0.10.1 - [Release notes](https://github.com/agentclientprotocol/python-sdk/releases) - [Commits](agentclientprotocol/python-sdk@0.8.0...0.10.1) Updates `typer` from 0.21.1 to 0.26.4 - [Release notes](https://github.com/fastapi/typer/releases) - [Changelog](https://github.com/fastapi/typer/blob/master/docs/release-notes.md) - [Commits](fastapi/typer@0.21.1...0.26.4) --- 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: typer dependency-version: 0.26.4 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch ... Signed-off-by: dependabot[bot] <support@github.com>
55f1c6f to
b40bc2f
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 `@pyproject.toml`:
- Line 28: The project pins both typer==0.26.4 and a standalone click==8.3.0
which can cause runtime mismatches because code in
src/pythinker_code/cli/_lazy_group.py and src/pythinker_code/telemetry/crash.py
does isinstance checks (e.g., isinstance(param, click.Option|click.Argument))
and checks click.exceptions.ClickException against the external click; either
remove the standalone click pin from pyproject.toml if you don’t need the
external click at runtime, or adjust the runtime checks to use the same Click
implementation Typer uses (resolve Click through Typer and use that object for
isinstance and exception checks instead of importing the external click) so that
Option/Argument classification and ClickException handling match Typer’s
vendored Click.
🪄 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: 2fdc416f-10b5-4937-856f-8ecf8a12488c
⛔ Files ignored due to path filters (1)
uv.lockis excluded by!**/*.lock
📒 Files selected for processing (1)
pyproject.toml
| "aiofiles>=24.0,<26.0", | ||
| "aiohttp==3.13.5", | ||
| "typer==0.21.1", | ||
| "typer==0.26.4", |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Check for direct Click imports and usage outside of typer.
# Search for Click imports
rg -nP --type=py -C3 '^\s*(?:from|import)\s+click\b' -g '!tests/**' -g '!tests_e2e/**'
# Search for Click decorators/functions
rg -nP --type=py -C3 '`@click`\.' -g '!tests/**' -g '!tests_e2e/**'Repository: Pythoughts-labs/pythinker-code
Length of output: 1656
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Show relevant sections around the imports and click isinstance checks
sed -n '1,120p' src/pythinker_code/cli/_lazy_group.py | nl -ba | sed -n '1,120p'
# Find and show the exact isinstance / exception handling lines in cli/__init__.py and telemetry/crash.py
rg -n "import click|click\.Option|click\.Argument|click\.ClickException|click\.exceptions\.ClickException" src/pythinker_code/cli/__init__.py src/pythinker_code/telemetry/crash.py
# Print nearby context for those matches
for f in src/pythinker_code/cli/__init__.py src/pythinker_code/telemetry/crash.py; do
rg -n --context=5 "import click|click\.Option|click\.Argument|click\.ClickException|click\.exceptions\.ClickException" "$f" || true
done
# Confirm click pin presence in pyproject.toml near the mentioned line
nl -ba pyproject.toml | sed -n '1,120p'
nl -ba pyproject.toml | sed -n '120,220p'Repository: Pythoughts-labs/pythinker-code
Length of output: 117
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Locate relevant pins in pyproject.toml
typer_line=$(rg -n '^\s*["\x27]?typer==[^"\x27]*["\x27]?\s*$' pyproject.toml | head -n1 | cut -d: -f1 || true)
click_line=$(rg -n '^\s*["\x27]?click==[^"\x27]*["\x27]?\s*$' pyproject.toml | head -n1 | cut -d: -f1 || true)
echo "pyproject.toml typer pin line: ${typer_line:-<none>}"
echo "pyproject.toml click pin line: ${click_line:-<none>}"
if [[ -n "${typer_line:-}" ]]; then
start=$((typer_line-10)); end=$((typer_line+10))
awk -v s="$start" -v e="$end" 'NR>=s && NR<=e {print NR ":" $0}' pyproject.toml
fi
if [[ -n "${click_line:-}" ]]; then
start=$((click_line-10)); end=$((click_line+10))
awk -v s="$start" -v e="$end" 'NR>=s && NR<=e {print NR ":" $0}' pyproject.toml
fi
# Show the exact code around click imports / isinstance / exception checks
files=(src/pythinker_code/cli/_lazy_group.py src/pythinker_code/cli/__init__.py src/pythinker_code/telemetry/crash.py)
for f in "${files[@]}"; do
echo "==== $f (context for click usage) ===="
# Print around each match of import click / click.Option / click.Argument / click.ClickException
matches=$(rg -n '(^\s*import click\b)|(\bclick\.(Option|Argument|ClickException|exceptions\.ClickException)\b)' "$f" || true)
if [[ -z "$matches" ]]; then
echo "<no direct click matches found>"
continue
fi
echo "$matches" | head -n50
# For each match line number, print context
while IFS=: read -r ln _rest; do
start=$((ln-8)); end=$((ln+12))
awk -v s="$start" -v e="$end" 'NR>=s && NR<=e {print NR ":" $0}' "$f"
echo "----"
done < <(echo "$matches" | cut -d: -f1 | sort -u)
done
# Check if code references Typer's vendored click layer directly
echo "==== Search for typer._click usage ===="
rg -n 'typer\._click|from\s+typer\._click' src/pythinker_code || trueRepository: Pythoughts-labs/pythinker-code
Length of output: 655
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "==== pyproject.toml lines 1-120 ===="
sed -n '1,140p' pyproject.toml | cat -n
echo "==== Find typer/click pins ===="
rg -n 'typer==|click==' pyproject.toml || true
echo "==== Show exact click isinstance / exception code ===="
for f in src/pythinker_code/cli/_lazy_group.py src/pythinker_code/cli/__init__.py src/pythinker_code/telemetry/crash.py; do
echo "---- $f ----"
rg -n 'import click|click\.(Option|Argument|ClickException)|click\.exceptions\.ClickException|typer\._click|from\s+typer\._click' "$f" || true
# show a small fixed window around the file start for context
sed -n '1,220p' "$f" | cat -n | head -n 220
doneRepository: Pythoughts-labs/pythinker-code
Length of output: 31740
Prevent runtime type mismatches between Typer’s Click layer and the pinned standalone click.
pyproject.toml explicitly pins both typer==0.26.4 and click==8.3.0, and the code in src/pythinker_code/cli/_lazy_group.py/src/pythinker_code/telemetry/crash.py imports external click and performs runtime checks against it (isinstance(param, click.Option|click.Argument) and click.exceptions.ClickException). If Typer 0.26+ is using its vendored Click internally, those isinstance/exception checks may not match Typer’s own objects/exceptions.
Either remove the standalone click pin if unused at runtime, or change the checks to use the same Click implementation that Typer uses (e.g., Typer’s internal Click types) so option/argument classification and ClickException handling behave correctly.
🤖 Prompt for 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.
In `@pyproject.toml` at line 28, The project pins both typer==0.26.4 and a
standalone click==8.3.0 which can cause runtime mismatches because code in
src/pythinker_code/cli/_lazy_group.py and src/pythinker_code/telemetry/crash.py
does isinstance checks (e.g., isinstance(param, click.Option|click.Argument))
and checks click.exceptions.ClickException against the external click; either
remove the standalone click pin from pyproject.toml if you don’t need the
external click at runtime, or adjust the runtime checks to use the same Click
implementation Typer uses (resolve Click through Typer and use that object for
isinstance and exception checks instead of importing the external click) so that
Option/Argument classification and ClickException handling match Typer’s
vendored Click.
|
Looks like these dependencies are updatable in another way, so this is no longer needed. |
Bumps the minor-and-patch group with 2 updates in the / directory: agent-client-protocol and typer.
Updates
agent-client-protocolfrom 0.8.0 to 0.10.1Release notes
Sourced from agent-client-protocol's releases.
... (truncated)
Commits
8cd8391release: 0.10.1 (#104)7acca14fix: assign receive-loop attributes before spawning recv task (#102)fd3de6efix(examples): improve gemini.py CLI experience (#103)e9c6e9fchore(deps): bump idna in the uv group across 1 directory (#100)19e924echore(deps): bump pymdown-extensions in the uv group across 1 directory (#99)5271d74chore(deps): bump urllib3 in the uv group across 1 directory (#96)c864d7dfeat: add receive_timeout parameter to Connection class (#84)589aff7fix: skip blank/whitespace-only lines in receive loop (#87)3381092fix(schema): coerce string protocolVersion in InitializeRequest (#92)03739f4feat: bump acp protocol to 0.12.2 (#93)Updates
typerfrom 0.21.1 to 0.26.4Release notes
Sourced from typer's releases.
... (truncated)
Changelog
Sourced from typer's changelog.
... (truncated)
Commits
b1310f8🔖 Release version 0.26.4 (#1809)e4bb679📝 Update release notes361221d📝 Update AI Library Skill to avoid verbose code for CLI Options (#1808)e9efaab📝 Update release notes90f087a👷 Add CI to create draft release after merging areleasePR (#1807)2f54c22📝 Update release notes1a71c8d👷 Update labeler to accept labelrelease(#1806)b8d870f📝 Update release notese3126b9👷 Update GitHub Action permissions for prepare-release (#1804)66af4fd📝 Update release notesSummary by CodeRabbit