Commit Graph

317 Commits

Author SHA1 Message Date
github-actions[bot] 10a9b4bf9a Version Packages (#70)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
chat@4.13.0 @chat-adapter/teams@4.13.0 @chat-adapter/state-redis@4.13.0 @chat-adapter/state-memory@4.13.0 @chat-adapter/state-ioredis@4.13.0 @chat-adapter/slack@4.13.0 @chat-adapter/shared@4.13.0 @chat-adapter/linear@4.13.0 @chat-adapter/github@4.13.0 @chat-adapter/gchat@4.13.0 @chat-adapter/discord@4.13.0
2026-02-19 16:27:02 -08:00
John Pham f371c0d951 feat(slack): add assistant_thread_started event support (#54)
* feat(slack): full Slack Assistants API support

- Route assistant_thread_started + assistant_thread_context_changed
- Add onAssistantThreadStarted + onAssistantContextChanged handlers
- Add setSuggestedPrompts, setAssistantStatus, setAssistantTitle methods
- Extend stream() for Block Kit on stop (stopBlocks)
- Bump @slack/web-api to ^7.11.0 for chatStream
- 14 integration tests

* fix: pass waitUntil to assistant thread started handlers
2026-02-19 16:18:05 -08:00
Hayden Bleasel 2f9e1c0560 Update layout.tsx 2026-02-19 14:08:31 -08:00
Hayden Bleasel 7abd911f09 Update layout.tsx 2026-02-19 14:08:25 -08:00
Hayden Bleasel 601c8703b4 Update layout.tsx 2026-02-19 13:52:37 -08:00
Hayden Bleasel ca748e15ce Update dependabot.yml for GitHub Actions and npm
Added configuration for GitHub Actions and npm dependencies with monthly update schedule.
2026-02-19 13:34:33 -08:00
Hayden Bleasel c09c59d824 Revise SECURITY.md for vulnerability reporting
Updated the SECURITY.md to focus on reporting security issues and removed the supported versions section.
2026-02-19 13:33:20 -08:00
Hayden Bleasel ab183f4fef Update docs 2026-02-19 13:30:23 -08:00
Hayden Bleasel ab1539db08 Use useIsMobile instead 2026-02-19 13:25:10 -08:00
Hayden Bleasel a71e1f1e4c Misc tweaks 2026-02-19 13:23:51 -08:00
Hayden Bleasel 746983e2f7 Update demo-client.tsx 2026-02-19 12:34:15 -08:00
Hayden Bleasel 8608e4908e Draft demo 2026-02-19 12:26:32 -08:00
Hayden Bleasel b2ba4ea66b Start building out homepage 2026-02-19 11:57:25 -08:00
github-actions[bot] c0c0b1ec6f Version Packages (#53)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
chat@4.12.0 @chat-adapter/teams@4.12.0 @chat-adapter/state-redis@4.12.0 @chat-adapter/state-memory@4.12.0 @chat-adapter/state-ioredis@4.12.0 @chat-adapter/slack@4.12.0 @chat-adapter/shared@4.12.0 @chat-adapter/linear@4.12.0 @chat-adapter/github@4.12.0 @chat-adapter/gchat@4.12.0 @chat-adapter/discord@4.12.0
2026-02-18 11:40:12 -08:00
John Pham 283edba8ab feat(slack): enable DM support (#39)
* feat(slack): enable DM support with per-thread IDs and implicit mentions

DMs now use per-message threadTs (same as channels) instead of collapsing
all DM messages into one thread. Each top-level DM starts a new conversation;
thread replies continue the same conversation.

DM messages automatically set isMention=true so bots process them without
requiring @mention — natural for 1:1 conversations.

* fix: use empty threadTs for top-level DMs, thread_ts for replies

Top-level DM messages use empty threadTs to match openDM() subscriptions.
DM thread replies use thread_ts for per-conversation isolation.
Fixes integration test replay-dm.test.ts.

* style: fix biome formatting

* test: add e2e replay tests for direct DM implicit mention

* style: fix extra blank line lint error

* test: use real recorded DM fixtures for e2e tests
2026-02-18 11:30:22 -08:00
Vishal Yathish 8c50252d00 [chat] add support for slash commands (#50)
* [chat] add support for slash commands

* add comprehensive tests

* add documentation

* adding changeset
2026-02-18 08:32:44 -08:00
Hayden Bleasel df8c9977e4 Create Code Review Bot guide 2026-02-17 15:33:57 -08:00
Hayden Bleasel 8d69aff257 Update biome.json 2026-02-17 15:01:05 -08:00
Hayden Bleasel 1a8a9c0bfd Restore getting-started with links to guides 2026-02-17 14:08:21 -08:00
Hayden Bleasel 03f403dd83 Update slack-nextjs.mdx 2026-02-17 14:05:05 -08:00
Hayden Bleasel 9603f00cfb Update slack-nextjs.mdx 2026-02-17 14:01:54 -08:00
Hayden Bleasel d69e479794 Deprecate getting-started in favor of nextjs-slack guide 2026-02-17 14:01:08 -08:00
Hayden Bleasel 3514ac97f5 Update slack.mdx 2026-02-17 13:58:38 -08:00
Hayden Bleasel 464500d083 Update getting-started.mdx 2026-02-17 13:53:28 -08:00
Hayden Bleasel 4468ab6297 Update geistdocs.tsx 2026-02-17 13:13:28 -08:00
Hayden Bleasel 6a9af18a8d Update geistdocs.tsx 2026-02-17 13:11:41 -08:00
Hayden Bleasel 0edc599927 Docs updates (#52)
* Update meta.json

* Create posting-messages.mdx

* Colocate Slack app info

* Improve feature matrix

* Create API Reference

* Update for Channels

* Draft first guide

* Update Geistdocs
2026-02-17 13:01:15 -08:00
Hayden Bleasel d7ee1379e0 Merge pull request #49 from vercel-labs/docs
Docs
2026-02-16 18:02:21 -08:00
Hayden Bleasel d39c0820b7 Update knip.json 2026-02-16 17:33:08 -08:00
Hayden Bleasel 63afae427b Misc fixes 2026-02-16 17:30:07 -08:00
Hayden Bleasel 7e8edcca39 Delete biome.jsonc 2026-02-16 17:26:30 -08:00
Hayden Bleasel 00db398401 Improve Terminal code blocks 2026-02-16 17:22:09 -08:00
Hayden Bleasel ba901beebe Add code block titles and line numbers 2026-02-16 17:20:28 -08:00
Malte Ubl 446df01e75 [RFC] Add Channel abstraction as first-class citizen alongside Thread (#46)
* [chat] add Channel abstraction as first-class citizen alongside Thread

Introduces a Channel concept — the container that holds threads — enabling
channel-level operations, thread-to-channel navigation, and natural support
for threadless platforms (iMessage, WhatsApp, SMS).

Design:

- Postable base interface: shared by both Thread and Channel, providing id,
  adapter, isDM, state/setState, messages (newest-first async iterator),
  post, postEphemeral, startTyping, mentionUser. Enables polymorphic code
  that works with either entity.

- Channel interface (extends Postable): adds name, threads() async iterator,
  and fetchInfo(). ChannelImpl provides the concrete implementation with
  backward message pagination, thread listing, posting, state management
  (channel-state: key prefix), and workflow serialization (chat:Channel).

- Thread updates: Thread now extends Postable and gains a `channel` getter
  (lazy-created, cached ChannelImpl) and a `messages` getter (newest-first
  backward iterator) alongside the existing `allMessages` (oldest-first).

- Channel ID format: derived from thread IDs by dropping the thread part.
  Default: first two colon-separated parts (slack:C123, gchat:spaces/ABC).
  Adapters override via optional channelIdFromThreadId() method.

- Adapter interface additions (all optional): channelIdFromThreadId,
  fetchChannelMessages, listThreads, fetchChannelInfo, postChannelMessage.

- Chat class: chat.channel(channelId) method creates a Channel by ID,
  auto-inferring adapter from the prefix. Reviver handles chat:Channel.

- Slack adapter: implements all five channel methods using
  conversations.history (vs conversations.replies for threads),
  conversations.info, and chat.postMessage without thread_ts.

- Mock adapter: updated with all channel methods for testing.

- 32 new tests covering ChannelImpl, thread.channel, deriveChannelId,
  and the backward messages iterator.

Usage:

  // Navigate from thread to channel
  const channel = thread.channel;

  // Get a channel directly
  const channel = chat.channel("slack:C123ABC");

  // Iterate messages newest first
  for await (const msg of channel.messages) { ... }

  // List threads in a channel
  for await (const t of channel.threads()) { ... }

  // Post to channel top-level
  await channel.post("Hello channel!");

TODO:
- Add replay tests for channel operations against recorded webhook data
- Implement channel methods in non-Slack adapters (GChat, Teams, Discord,
  GitHub, Linear) — currently they fall back to the default/no-op behavior

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* channel-post-sample

* Better metadata

* Fix bug

* Fixes

* Other adapters

* Fix-gchat

* Fix-discord

* Fix-discord-threads

* Discord replay

* Teams tests and fix pre-existing failures

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-16 17:09:51 -08:00
Hayden Bleasel d2eec0cfd1 Update meta.json 2026-02-16 17:08:08 -08:00
Hayden Bleasel d83dfebf07 Destructure state adapters 2026-02-16 17:07:25 -08:00
Hayden Bleasel f156882de6 Destructure adapters 2026-02-16 17:03:08 -08:00
Hayden Bleasel 426a8f62ef Update geistdocs.tsx 2026-02-16 16:55:24 -08:00
Hayden Bleasel 7e3c2b2a04 Draft initial docs 2026-02-16 16:53:47 -08:00
Hayden Bleasel e6973a3d8c Update .gitignore 2026-02-16 16:53:22 -08:00
Hayden Bleasel 45c4705a63 Remove .source 2026-02-16 16:53:16 -08:00
Hayden Bleasel 96d0afbfbb gitignore fixes 2026-02-16 16:44:06 -08:00
Hayden Bleasel 8ab92ac468 Delete turbo.json 2026-02-16 16:43:02 -08:00
Hayden Bleasel 9265a6af25 Remove duplicate lockfile 2026-02-16 16:42:44 -08:00
Hayden Bleasel 3eba2f5943 Update package.json 2026-02-16 16:42:22 -08:00
Hayden Bleasel 7f3bf039bd Scaffold Geistdocs app 2026-02-16 16:41:54 -08:00
Hayden Bleasel cfedb19879 Update pnpm-workspace.yaml 2026-02-16 16:41:46 -08:00
github-actions[bot] 5a7a925983 Version Packages (#48)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
chat@4.11.0 @chat-adapter/teams@4.11.0 @chat-adapter/state-redis@4.11.0 @chat-adapter/state-memory@4.11.0 @chat-adapter/state-ioredis@4.11.0 @chat-adapter/slack@4.11.0 @chat-adapter/shared@4.11.0 @chat-adapter/linear@4.11.0 @chat-adapter/github@4.11.0 @chat-adapter/gchat@4.11.0 @chat-adapter/discord@4.11.0
2026-02-15 17:25:51 -08:00
Vishal Yathish 417374b844 [chat] add inline select components (#45)
* [chat] add inline select components

* changeset

* adding radio buttons

* adding unit tests

* add documentation for the new components

* add replay tests
2026-02-15 17:18:53 -08:00
github-actions[bot] 25bf3765fd Version Packages (#44)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
chat@4.10.1 @chat-adapter/state-redis@4.10.1 @chat-adapter/state-memory@4.10.1 @chat-adapter/state-ioredis@4.10.1 @chat-adapter/teams@4.10.1 @chat-adapter/slack@4.10.1 @chat-adapter/shared@4.10.1 @chat-adapter/linear@4.10.1 @chat-adapter/github@4.10.1 @chat-adapter/gchat@4.10.1 @chat-adapter/discord@4.10.1
2026-02-14 21:53:20 -08:00