discourse/plugins/chat/spec
Joffrey JAFFEUX d8d756cd2f
DEV: chat streaming (#25736)
This commit introduces the possibility to stream messages. To allow plugins to use streaming this commit also ships a `ChatSDK` library to allow to interact with few parts of discourse chat.

```ruby
ChatSDK::Message.create_with_stream(raw: "test") do |helper|
  5.times do |i|
    is_streaming = helper.stream(raw: "more #{i}")
    next if !is_streaming
    sleep 2
  end
end
```

This commit also introduces all the frontend parts:
- messages can now be marked as streaming
- when streaming their content will be updated when a new content is appended
- a special UI will be showing (a blinking indicator)
- a cancel button allows the user to stop the streaming, when cancelled `helper.stream(...)` will return `false`, and the plugin can decide exit early
2024-02-20 09:49:19 +01:00
..
components/chat DEV: Remove full group refreshes from tests (#25414) 2024-01-25 14:28:26 +08:00
fabricators DEV: chat streaming (#25736) 2024-02-20 09:49:19 +01:00
integration DEV: Automatically update groups for test users with explicit TL (#25415) 2024-01-29 17:52:02 +08:00
jobs DEV: Remove full group refreshes from tests (#25414) 2024-01-25 14:28:26 +08:00
lib DEV: chat streaming (#25736) 2024-02-20 09:49:19 +01:00
mailers DEV: Remove full group refreshes from tests (#25414) 2024-01-25 14:28:26 +08:00
models DEV: Redesign chat mentions (#24752) 2024-01-17 15:24:01 +04:00
policies/chat/channel DEV: Allow fab! without block (#24314) 2023-11-09 16:47:59 -06:00
queries/chat FIX: correctly exclude muted channels from thread unreads (#25339) 2024-01-19 22:05:41 +01:00
requests DEV: chat streaming (#25736) 2024-02-20 09:49:19 +01:00
serializer DEV: Remove full group refreshes from tests (#25414) 2024-01-25 14:28:26 +08:00
services DEV: chat streaming (#25736) 2024-02-20 09:49:19 +01:00
support DEV: Fix various rubocop lints (#24749) 2023-12-06 23:25:00 +01:00
system UX: Chat browse redesign (#25698) 2024-02-15 18:00:22 +01:00
validators COPY: secure media -> secure uploads (#24643) 2023-11-30 14:58:55 +10:00
plugin_helper.rb FEATURE: implements drafts for threads (#24483) 2023-11-22 11:54:23 +01:00
plugin_spec.rb COPY: secure media -> secure uploads (#24643) 2023-11-30 14:58:55 +10:00