@chojs23/concord 2.4.8 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,7 +2,59 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- ## [2.4.8] - 2026-07-27
5
+ ## [2.5.0] - 2026-08-02
6
+
7
+ ### Bug Fixes
8
+
9
+ - _(stream)_ Require exact Linux audio monitor by @chojs23
10
+ - _(ci)_ Install Linux capture dependencies by @chojs23
11
+ - _(stream)_ Cancel watch session child tasks by @chojs23
12
+ - _(voice)_ Await runtime cleanup before gateway stop by @chojs23
13
+ - _(stream)_ Rotate active RTC servers by @chojs23
14
+ - _(stream)_ Bound broadcast reconnect attempts by @chojs23
15
+ - _(stream)_ Centralize lifecycle completion events by @chojs23
16
+ - _(stream)_ Redact RTC tokens from debug output by @chojs23
17
+ - _(stream)_ Allow restarting fullscreen broadcasts on Windows by @chojs23
18
+ - Add cross-platform application audio capture for stream broadcasts by @chojs23
19
+ - _(stream)_ Keep stalled capture joins outside Tokio by @chojs23
20
+ - _(stream)_ Back off stream watch reconnects by @chojs23
21
+ - _(broadcast)_ Remove screencapturekit by @chojs23
22
+ - _(broadcast)_ Replace xcap with native cross-platform screen capture backends by @chojs23
23
+ - _(stream)_ Prepare portal capture before creating Discord stream by @chojs23
24
+ - _(broadcast)_ Fix Linux broadcast restart and system audio latency by @chojs23
25
+ - _(broadcast)_ Fix Linux broadcast self-audio exclusion by @chojs23
26
+ - _(broadcast)_ Cancel stale capture preparation by @chojs23
27
+ - _(build)_ Require macOS 13 by @chojs23
28
+ - _(stream)_ Bound H264 assembly memory by @chojs23
29
+ - _(stream)_ Slow preview upload cadence by @chojs23
30
+ - _(broadcast)_ Derive audio clock from samples by @chojs23
31
+ - Fix stream startup and capture lifecycle issues by @chojs23
32
+ - _(voice)_ Reduce Linux PulseAudio voice playback latency by @chojs23
33
+ - Harden stream capture preparation lifecycle by @chojs23
34
+
35
+ ### Documentation
36
+
37
+ - Update readme by @chojs23
38
+
39
+ ### Features
40
+
41
+ - Watch and broadcast streaming by @chojs23
42
+ - Add live stream presence sounds and participant panel by @chojs23
43
+ - _(stream)_ Make stream feature optional by @chojs23
44
+ - _(broadcast)_ Broacasting ui by @chojs23
45
+ - Add broadcast preview by @chojs23
46
+
47
+ ### Miscellaneous Tasks
48
+
49
+ - _(ci)_ Update Linux CI and release runners to Ubuntu 24.04 by @chojs23
50
+
51
+ ### Refactor
52
+
53
+ - _(stream)_ Simplify live presence state by @chojs23
54
+ - _(stream)_ Share voice gateway control handling by @chojs23
55
+ - Refactor stream forwarding and reuse capture frame buffers by @chojs23
56
+
57
+ ## [2.4.8] - 2026-07-28
6
58
 
7
59
  ### Bug Fixes
8
60
 
package/README.md CHANGED
@@ -18,59 +18,84 @@ Concord is a feature-rich TUI (terminal user interface) client for Discord, writ
18
18
 
19
19
  ## Installation
20
20
 
21
- ### Homebrew
21
+ ### Prerequisites
22
+
23
+ #### Linux runtime
22
24
 
23
25
  ```sh
24
- brew install concord
25
- ```
26
+ # Fedora
27
+ sudo dnf install alsa-lib opus pipewire-libs xdg-desktop-portal
26
28
 
27
- Or with the tap for the latest version:
29
+ # Debian or Ubuntu
30
+ sudo apt install libasound2 libopus0 libpipewire-0.3-0 xdg-desktop-portal
28
31
 
29
- ```sh
30
- brew install chojs23/tap/concord
32
+ # Arch Linux
33
+ sudo pacman -S alsa-lib opus pipewire xdg-desktop-portal
31
34
  ```
32
35
 
33
- ### npm
36
+ Screen sharing requires the portal backend for your desktop environment.
34
37
 
35
- ```sh
36
- npm install -g @chojs23/concord
37
- ```
38
+ #### macOS
39
+
40
+ macOS 13 or later is required.
38
41
 
39
- You can also run Concord without a global install:
42
+ #### Source builds
40
43
 
41
44
  ```sh
42
- npx @chojs23/concord
43
- ```
45
+ # macOS
46
+ xcode-select --install
47
+ brew install opus pkg-config
48
+ brew install nasm # Intel only
44
49
 
45
- The npm package installs a prebuilt binary from the GitHub Release artifacts.
50
+ # Fedora
51
+ sudo dnf install alsa-lib-devel clang-devel gcc gcc-c++ nasm opus-devel pipewire-devel pkgconf-pkg-config
46
52
 
47
- ### Cargo
53
+ # Debian or Ubuntu
54
+ sudo apt install build-essential libasound2-dev libclang-dev libopus-dev libpipewire-0.3-dev nasm pkg-config
55
+
56
+ # Arch Linux
57
+ sudo pacman -S alsa-lib base-devel clang nasm opus pipewire pkgconf
58
+ ```
48
59
 
49
- Install native dependencies first.
60
+ Windows source builds require the MSVC Rust toolchain, Visual Studio 2022 Build
61
+ Tools with Desktop development with C++, CMake, and NASM.
50
62
 
51
- On macOS with Homebrew:
63
+ ### Homebrew
52
64
 
53
65
  ```sh
54
- brew install opus pkg-config
66
+ brew install concord
55
67
  ```
56
68
 
57
- On Fedora:
69
+ Or with the tap for the latest version:
58
70
 
59
71
  ```sh
60
- sudo dnf install opus-devel alsa-lib-devel pkgconf-pkg-config
72
+ brew install chojs23/tap/concord
61
73
  ```
62
74
 
63
- On Debian or Ubuntu:
75
+ ### npm
64
76
 
65
77
  ```sh
66
- sudo apt install libopus-dev libasound2-dev pkg-config
78
+ npm install -g @chojs23/concord
67
79
  ```
68
80
 
81
+ ### Cargo
82
+
83
+ The default build includes voice playback and stream broadcasting.
84
+
69
85
  ```sh
70
86
  cargo install concord --locked
71
87
  ```
72
88
 
73
- To install without local voice playback and microphone support:
89
+ To keep voice support while omitting stream broadcasting:
90
+
91
+ ```sh
92
+ cargo install concord --locked --no-default-features --features voice-playback
93
+ ```
94
+
95
+ This voice-only build needs only `libopus-dev`, `libasound2-dev`, and
96
+ `pkg-config`.
97
+
98
+ To install without local voice playback, microphone, or stream broadcasting:
74
99
 
75
100
  ```sh
76
101
  cargo install concord --locked --no-default-features
@@ -136,7 +161,7 @@ The installer places `concord` under `$CARGO_HOME/bin`, which is usually
136
161
  ### Build from source
137
162
 
138
163
  You need the Rust stable toolchain, Cargo, and the native dependencies listed in
139
- the Cargo install section.
164
+ the Prerequisites section.
140
165
 
141
166
  ```sh
142
167
  git clone https://github.com/chojs23/concord.git
@@ -150,20 +175,17 @@ The release binary is produced at:
150
175
  target/release/concord
151
176
  ```
152
177
 
153
- To build without local voice playback and microphone support, disable default features:
178
+ To keep voice support while omitting stream broadcasting:
154
179
 
155
180
  ```sh
156
- cargo build --release --no-default-features
181
+ cargo build --release --no-default-features --features voice-playback
157
182
  ```
158
183
 
159
- On WSLg, audio is usually exposed through PulseAudio instead of a real ALSA
160
- sound card. If playback does not start, check that PulseAudio and ALSA routing
161
- work before debugging Discord voice itself:
184
+ To build without local voice playback, microphone, or stream broadcasting,
185
+ disable default features:
162
186
 
163
187
  ```sh
164
- pactl info
165
- paplay /usr/share/sounds/alsa/Front_Center.wav
166
- aplay -D pulse /usr/share/sounds/alsa/Front_Center.wav
188
+ cargo build --release --no-default-features
167
189
  ```
168
190
 
169
191
  ## Features
@@ -188,6 +210,7 @@ choose `[o] sign out`.
188
210
 
189
211
  - Full voice support with push-to-talk
190
212
  - Supports noise suppression
213
+ - Watch & Broadcast live stream in voice channels
191
214
 
192
215
  ### Guilds & Channels
193
216
 
@@ -226,7 +249,7 @@ Concord renders a practical subset of Discord-style Markdown in message bodies:
226
249
  - Use custom emoji from other servers as reactions when your account supports it
227
250
  - View and vote on polls
228
251
 
229
- ### Media & Images
252
+ ### Media Support
230
253
 
231
254
  Image rendering is powered by [ratatui-image](https://github.com/benjajaja/ratatui-image). On startup, Concord queries the terminal to detect the best available graphics protocol. Supported protocols:
232
255
 
@@ -245,6 +268,13 @@ External media playback is off by default. You can enable it with
245
268
  `media_playback = true` under `[display]`, or toggle it from the in-app Display
246
269
  options menu.
247
270
 
271
+ Watch live streaming also uses mpv. Join the streamer's voice channel, focus the
272
+ streaming participant, and choose `Watch stream`.
273
+
274
+ To broadcast, join a voice channel, open its channel actions, choose
275
+ `Share screen`, then select a whole display or one window. The default `<leader>vs` voice
276
+ shortcut performs the same toggle. Linux screen capture depends on the active X11 or Wayland support.
277
+
248
278
  ### Members & Profiles
249
279
 
250
280
  - View Member list and search members
@@ -375,6 +405,8 @@ Channel actions:
375
405
  | -------- | -------------------- | -------------------------------------------- |
376
406
  | `e` | Join voice | Join the selected voice channel or DM call |
377
407
  | `l` | Leave voice | Leave the current voice channel or DM call |
408
+ | `s` | Toggle screen share | Start from a display or window, or stop it |
409
+ | `w` | Watch stream | Watch the selected participant's Go Live |
378
410
  | `a` | Audio settings | Set participant volume or mute |
379
411
  | `p` | Show pinned messages | Open the selected channel's pinned messages |
380
412
  | `t` | Show threads | List threads for the selected channel |
@@ -629,6 +661,7 @@ OpenNotificationInbox = "<leader>n"
629
661
  ChannelSwitcher = "<leader><leader>"
630
662
  VoiceDeafen = "<leader>vd"
631
663
  VoiceMute = "<leader>vm"
664
+ VoiceStream = "<leader>vs"
632
665
  VoiceLeave = "<leader>vl"
633
666
 
634
667
  [keymap.groups]
@@ -647,6 +680,7 @@ FolderSettings = "r"
647
680
  [keymap.channel_actions]
648
681
  JoinVoice = "e"
649
682
  LeaveVoice = "l"
683
+ ToggleStream = "s"
650
684
  VoiceParticipantAudio = "a"
651
685
  ShowPinnedMessages = "p"
652
686
  ShowThreads = "t"
@@ -23,7 +23,7 @@
23
23
  "hasInstallScript": true,
24
24
  "license": "GPL-3.0-only",
25
25
  "name": "@chojs23/concord",
26
- "version": "2.4.8"
26
+ "version": "2.5.0"
27
27
  },
28
28
  "node_modules/@isaacs/cliui": {
29
29
  "engines": {
@@ -542,5 +542,5 @@
542
542
  }
543
543
  },
544
544
  "requires": true,
545
- "version": "2.4.8"
545
+ "version": "2.5.0"
546
546
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "artifactDownloadUrls": [
3
- "https://github.com/chojs23/concord/releases/download/v2.4.8"
3
+ "https://github.com/chojs23/concord/releases/download/v2.5.0"
4
4
  ],
5
5
  "bin": {
6
6
  "concord": "run-concord.js"
@@ -22,7 +22,7 @@
22
22
  },
23
23
  "glibcMinimum": {
24
24
  "major": 2,
25
- "series": 35
25
+ "series": 39
26
26
  },
27
27
  "homepage": "https://github.com/chojs23/concord",
28
28
  "keywords": [
@@ -93,7 +93,7 @@
93
93
  "zipExt": ".tar.xz"
94
94
  }
95
95
  },
96
- "version": "2.4.8",
96
+ "version": "2.5.0",
97
97
  "volta": {
98
98
  "node": "18.14.1",
99
99
  "npm": "9.5.0"