v0.4.27
Immutable
release. Only release title and notes can be modified.
Synced to upstream vercel/chat@4.27.0 (release commit f55378a).
Highlights
Upstream parity ports
Chat.get_user(adapter, user_id)across all 8 adapters (#90)- Slack Socket Mode transport (#86) — closes #68
- Slack dynamic
bot_tokenresolver + customwebhook_verifier(#87) - Teams native DM streaming via emit (#88)
- Telegram MarkdownV2 rendering (#89)
- Discord card-text dedup (#89)
- Slack streaming
team_idfix + Teams DM Graph conversation IDs (#85) ExternalSelect.initial_option+option_groups(#84)
Python-only improvements
- Markdown parser: GFM task lists, escaped chars, inline math (#101)
- Streaming markdown: list-marker awareness + table chunk-boundary (#99, issue #69)
- Slack
files_upload_v2kwarg fix (#103, issue #102) - Dict-shaped
StreamChunksupport in slack/github/gchat (#105) - Google Chat card-text markdown rendering (#92)
- Adapter init logs + registered-adapter list in not-found errors (#104)
Sync-process docs
- New "Review-Loop Discipline" section in
docs/UPSTREAM_SYNC.md docs/SELF_REVIEW.mdrewritten with explicit timing + economics
Validation
4,036 tests pass, 3 skipped, 0 failed. ruff/format/audit clean.
Upstream tagging note
Upstream did not publish a chat@4.27.0 tag (only @chat-adapter/shared@4.27.0 got one). The fidelity workflow stays pinned to chat@4.26.0 for this release; will move to a 4.27 SHA pin in the next sync.
See CHANGELOG.md for the full release notes.