chore: release 0.4.26.2#77
Conversation
Version bump and CHANGELOG finalization for the 0.4.26.2 release bundle: - pyproject.toml: 0.4.26.1 → 0.4.26.2 - CHANGELOG: ## Unreleased → ## 0.4.26.2 (2026-04-24); dropped stale leftover conflict marker Fixes carried over from merged PRs: - tests/test_thread_faithful.py:1750-1762 (#75 followup): TestPostWithPlan docstring claimed the 3 Plan divergences were "unsupported/skipped" — they were actually fixed in the same PR. Rewrote the docstring to reflect the fix. - CHANGELOG (#75 followup): removed the stray "/ StreamingPlan.update_task" from the Plan.update_task.id bullet; StreamingPlan doesn't implement update_task — only Plan does. Deferred the #66 `ensure_future → create_task` suggestion: the ChatInstance Protocol types process_options_load as `Awaitable`, so `create_task` fails pyrefly with `bad-argument-type`. `ensure_future` accepts Awaitable by design. Added an inline comment pointing at the type contract so the choice isn't re-litigated. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 8 minutes and 16 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Code Review
This pull request updates the SDK to version 0.4.26.2, incorporating several fixes to align with the upstream TypeScript implementation. Key changes include enabling Plan.update_task to honor input.id, ensuring adapter.edit_object errors are correctly propagated, and resolving concurrency issues in the plan edit queue. The Slack adapter was also updated with explanatory comments regarding task creation, and test documentation was refreshed to reflect these improvements. I have no feedback to provide.
Summary
Ships
0.4.26.2— a parity catch-up release for upstreamchat@4.26.0. Bundles 8 merged PRs (#64, #65, #66, #67, #73, #74, #75, #76) plus small followup cleanups surfaced in post-merge review.In this PR
pyproject.toml:0.4.26.1→0.4.26.2CHANGELOG.md:## Unreleased→## 0.4.26.2 (2026-04-24); dropped a stray leftover merge-conflict marker; correctedStreamingPlan.update_tasktypo toPlan.update_task(StreamingPlan doesn't implement it)tests/test_thread_faithful.py:TestPostWithPlandocstring said the 3 Plan divergences (UpdateTaskInput.id/ error propagation / FIFO ordering) were "unsupported/skipped" — they were actually fixed in test(plan): port 19 [post with Plan] tests (#55) #75. Rewrote the docstring.src/chat_sdk/adapters/slack/adapter.py: keptasyncio.ensure_futurewith an inline comment explaining why —create_taskfails pyrefly because theChatInstanceProtocol typesprocess_options_loadasAwaitable, notCoroutine.Release highlights
Thread.get_participants()(PortThread.getParticipants()method #54) — upstream-parity portonOptionsLoad+ Slackblock_suggestion(PortonOptionsLoadhandler for dynamic select dropdown population #50) — external-select dispatchrehydrateAttachmenthook + SSRF guards (Portrehydrate_attachmentto Adapter protocol +_rehydrate_message#52) — 5-adapter implementations with per-adapter URL allowlistsStreamingPlan+ options (Port 6 missing StreamingPlan option tests to test_thread_faithful.py #56) — addskind=='stream'branch (options were silently dropped)IoRedisStateAdapter(State adapters: add ioredis-compatible lock token prefix for cross-runtime Redis sharing #71) — TS/Python Redis interop[post with Plan]+ 6[Streaming]test ports (Port 20 missing[post with Plan]tests to test_thread_faithful.py #55, Port 6 missing StreamingPlan option tests to test_thread_faithful.py #56) + 3 Plan divergence fixestime.sleephygiene sweep across 3 state test filesFidelity: all
[getParticipants]/[thread]/[Options Load]/[post with Plan]/[Streaming]/[concurrency: queue attachment rehydration]gaps closed.Test plan
uv run ruff check src/ tests/ scripts/— cleanuv run ruff format --check src/ tests/ scripts/— cleanuv run pyrefly check— 0 errorsuv run python scripts/audit_test_quality.py— 0 hard failuresuv run pytest tests/ -q— 3631 passed, 2 skipped🤖 Generated with Claude Code