## Problem
The Release workflow has failed on every run since Sep 3, so no package
version has been published since then. Every changeset merged to `main`
is stranded waiting for the version PR to regenerate.
The cause is a dependency mismatch introduced by a Dependabot bump. #880
updated the [Changesets GitHub
Action](https://github.com/changesets/action) from v1.9.0 to v2.1.1, but
did not touch `@changesets/cli`, which stayed on v2. The action's v2
release requires Changesets CLI v3 and rejects CLI v2 on every run, so
the workflow fails before it can version or publish anything. The
mismatch went unnoticed because Dependabot manages GitHub Actions and
npm dependencies separately.
## Changes
- Bump `@changesets/cli` from ^2.29.8 to ^3.0.1 to match what the action
requires. The existing `.changeset/config.json` is fully compatible with
CLI v3; nothing else in the release flow changes.
- Update the Release workflow to the action's renamed inputs: `publish`
→ `publish-script`, `commit` → `commit-message`, `title` → `pr-title`.
The v2 action hard-fails on the old names, and it removed `commitMode:
github-api` entirely (GitHub API pushes are now the default behavior, so
removing it preserves what the workflow did before).
Once merged, the Release workflow should go green and update the open
version PR (#878) to include all changesets accumulated since Sep 3,
unblocking the next publish.
Signed-off-by: Hiroki Osame <hiroki.osame@gmail.com>
Multi-workspace Slack now ignores commands and interactions when their
installation cannot be found, and channel names stay isolated per
workspace.
Google Chat no longer learns its identity from incoming mentions, and
forward history reads use bounded native pagination.
Webhook logs avoid message content. The example app protects preview
routing, records only successful verified deliveries, and caps recording
size and retention.
---------
Signed-off-by: Ben Sabic <bensabic@users.noreply.github.com>
Signed-off-by: dancer <josh@afterima.ge>
Co-authored-by: Ben Sabic <bensabic@users.noreply.github.com>
Co-authored-by: dancer <josh@afterima.ge>
Broad SEO/AEO pass across the docs site, adapter READMEs and AGENTS.md
files, and npm package metadata so Chat SDK content shows up better in
search engines, in LLM-driven package recommendations, and in
IDE/coding-agent context.
**Docs site**
- Adds a `## Resources` section to the Getting Started and AI overview
pages and to the Slack, Discord, GitHub, Liveblocks, and Sendblue
adapter pages, each linking to applicable guides/templates with
descriptions sourced from `resources-edge-config.json` and a cross-link
back to the central `/resources` hub.
**Adapter packages**
- Mirrors the same Resources sections into the Slack, Discord, and
GitHub READMEs (so they surface on npm) and into their AGENTS.md files
(so coding agents see them alongside the API notes).
- Expands `keywords` on every published adapter and state package — adds
`chat-sdk`, `chatbot`, `ai-agent`, `ai-sdk`, `vercel`, plus
platform-specific terms like `slack-bot`, `block-kit`, `slash-commands`,
`github-app`, `whatsapp-business`, `state-adapter`.
**Resources registry**
- Registers four new entries in `resources-edge-config.json`
(Human-in-the-Loop guide, Liveblocks AI agent guide, Slack + Vercel Blob
guide, Durable iMessage Agent template) and runs `pnpm sync-resources`
so the bundled `chat` package guides, `templates.json`, and
`skills/chat/SKILL.md` all pick them up.
- Fixes the synced Slack AI agent guide to import `toAiMessages` from
`chat/ai` instead of the deprecated `chat` re-export path (the upstream
KB source has also been updated, so future syncs will preserve this).
**Drive-by fixes**
- Resend adapter doc quick start: corrects `MemoryStateAdapter` class
import to the `createMemoryState()` factory (matching every other
adapter doc).
- Zalo adapter doc: drops the "community adapter" callout that
duplicated frontmatter.
**Tooling / CI**
- Adds `tsx` as a root devDependency so `pnpm sync-resources` works out
of the box (it previously relied on `npx tsx`, which hung when not
pre-cached).
- Loosens the CI changeset gate to also skip `packages/chat/resources/`
(generated data), matching the existing `*.md` carve-out.
---------
Co-authored-by: Ben Sabic <bensabic@users.noreply.github.com>
* set up konsistent with basic initial config
* add konsistent to CI
* fix konsistent.json formatting
* fix(gchat): move GoogleChatAdapterConfig to ./types for konsistent
* fix(slack): move SlackAdapterConfig to ./types and drop Partial wrapper from createSlackAdapter
* fix(messenger): name createMessengerAdapter parameter MessengerAdapterConfig
* fix(web): rename WebAdapterOptions to WebAdapterConfig and import Adapter type in index.ts
* fix(whatsapp): align WhatsAppAdapterConfig and creator with konsistent + map kebab to PascalCase
* fix(state-memory): add MemoryStateAdapterOptions type for konsistent
* fix(state-ioredis): unify URL and client options under IoRedisStateAdapterOptions
* fix(state-redis): unify URL and client options under RedisStateAdapterOptions
* fix(state-pg): unify URL and client options under PostgresStateAdapterOptions
* chore: changeset for konsistent convention alignment
* chore: drop CHANGELOG.md from konsistent's required files list
CHANGELOG.md is generated automatically by changesets on each release —
it's never hand-authored and doesn't exist for a package until its first
release lands. Requiring it as a convention check makes CI fail
indefinitely for any newly added package, with no honest fix available
(an empty placeholder is just noise that gets overwritten on first
release).
* docs: document konsistent and package shape conventions
* fix(web): use WebAdapterConfig in WebAdapter field types after main merge
The merge of main into konsistent brought in PR #475's `protected`
field modifiers on top of the WebAdapterOptions → WebAdapterConfig
rename, leaving two stale references to the (un-imported) old name.
Switch them to WebAdapterConfig and update a stale JSDoc reference
in als.ts to match.
---------
Co-authored-by: Ben Sabic <bensabic@users.noreply.github.com>
Co-authored-by: Ben Sabic <27636870+bensabic@users.noreply.github.com>
- Add scripts/sync-resources.ts (run via pnpm sync-resources) that reads apps/docs/resources-edge-config.json, fetches each guide's .md version over https with a timeout and size cap, writes templates.json, and regenerates the Available resources block in skills/chat/SKILL.md
- Migrate the Slack Next.js, Discord Nuxt, and Hono code-review guides from on-site MDX to Vercel KB and register them in the resources edge-config JSON alongside the existing external guides
- Remove /docs/guides MDX content, sidebar entries, top-level Guides nav entry, getting-started cards, and the dead /guides/ branch in the sitemap route now that all guides live externally and are surfaced on /resources
- Replace the homepage Guides/Templates section and the standalone Adapters pill section with a single two-column Resources + Adapters section (icons, headings, descriptions, outline buttons, divider), and drop the URL footer from ResourceCard on the Resources page
- Update skills/chat/SKILL.md to point at resources/guides and resources/templates.json and list the available guides and templates between marker comments that sync-resources rewrites
- Add tsx to knip's ignoreBinaries so npx tsx in the new script does not fail lint
Co-authored-by: Ben Sabic <bensabic@users.noreply.github.com>
Co-authored-by: dancer <josh@afterima.ge>