release: v1.3.3 stable

Bump VERSION to v1.3.3 and npm/package.json to 1.3.3. Stabilizes the
v1.3.3-beta.1 -> v1.3.3-beta.5 line (~235 PRs since v1.3.2) plus 7
post-beta fixes (qoder streaming, weixin typing ticket, daemon
linger_other.go, wps-xiezuo newlines, /switch history loss, minimax TTS
trailer, provider-resume regression tests).

- Add changelogs/v1.3.3.md with themed summary (New Agents, Platform
  Capabilities, Core, Behavior Changes, Fixed)
- Prepend v1.3.3 section to CHANGELOG.md with highlights + post-beta
  delta + behavior-change checklist
- Refresh "What's New" in README.md and README.zh-CN.md to v1.3.3
- Fix CUJ test flake: bump TestCUJ_H2_TwoPlatformsConcurrentNoBleed
  deadline from 5s to 30s so it stays green under `-race -parallel=N`
  on constrained CI hosts (passes <2s in isolation)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
ClaudeandCursor committed 2026-06-15 23:02:36 +08:00
1 parent 2a52fe3c9d
commit dc1c63b9eb
7 files changed
+382 -30

No files matched your search

+67
View File
@@ -1,5 +1,72 @@
# Changelog
## v1.3.3 (2026-06-15)
First stable release of the 1.3.3 series. Stabilizes the v1.3.3-beta.1 → v1.3.3-beta.5
line (≈ 235 PRs since v1.3.2) plus 7 post-beta.5 fixes. See `changelogs/v1.3.3.md` for
the full themed summary; per-beta details remain in the beta sections below.
### Highlights
- **New agents**: Devin CLI, Google Antigravity (`agy`), GitHub Copilot — all first
class. Hardened coverage for Cursor, OpenCode, Qoder, Kimi, Pi.
- **Platform expansion**: QQ Bot inline keyboards + file send/receive (OneBot), WeCom
`SendFile` (WebSocket), Feishu audio + video native media, Slack Assistant API, MAX
webhook delivery, DingTalk @mentions / richText / image / file inbound, WPS Xiezuo
(金山协作), broader Weibo DM.
- **Long-running turn hardening**: new `max_turn_time_mins` wall-clock cap with
soft-stop + force-kill + auto-resume — long bash / test commands can no longer lock
a session indefinitely.
- **Core commands**: `/timer`, `/cancel`, `/ps` (replaces `/btw`), `cron add --silent`,
agent-driven TTS.
- **Multi-user / permissions**: reply-to-unauthorized-IM-senders, @mention-tolerant
permission keywords (`@Bot/permit` ≡ `/permit`), Bridge requires token when enabled.
- **Observability**: blackbox testing framework (P0/P1/P2 + config-switch matrix), CUJ
test framework, agent-resume regression suite, Pi context-usage reporter.
- **Provider ecosystem**: NekoCode, VisionCoder, AIHubMix, MiniMax M3 presets; Claude
Code 1M-context Opus + `append_system_prompt` + PermissionRequest hooks; Codex
`request_user_input` app-server events; configurable shell + shell profile.
### Post-beta.5 fixes (delta from beta.5)
- **qoder**: emit streaming text without dropping final result (#1290)
- **weixin**: use `ilink_user_id` in `getConfigReq` for typing ticket (#1308)
- **daemon**: remove redundant `linger_other.go` that breaks non-linux builds (#1314)
- **wps-xiezuo**: preserve newlines in outbound messages — fixes unreadable `/status`
(#1361)
- **core**: `/switch` no longer loses history; persist user msgs immediately; add CUJ
test framework (#1348)
- **tts/minimax**: drop `status=2` trailer chunk to stop audio playing twice (#1364)
- **tests**: add provider-resume regression tests for codex / opencode / kimi (#1366)
### ⚠️ Behavior Changes (carried forward from the beta cycle)
All behavior changes from beta.1 → beta.5 remain in effect for v1.3.3. **Most likely
to affect existing configs:**
- `progress_style` default for Telegram & Discord is now `compact` (was `legacy`). Set
`progress_style = "legacy"` to revert. (#1354)
- QQ Bot default `intents` now include `INTERACTION_CREATE` (bit 26). Custom `intents`
must include `1<<26` for inline keyboard buttons.
- DingTalk `msgtype=file` inbound now reaches the agent (#1357).
- Engine permission keyword matching is @mention-tolerant: `@Bot/permit` ≡ `/permit`
(#1358).
- `reset_on_idle_mins` default is now 30 minutes (#494). Set to `0` to disable.
- Bridge with no `[bridge].token` configured will refuse to start (#408).
### Breaking Changes
**None.** Fully additive release.
### Upgrade
```bash
npm i -g cc-connect@1.3.3
# or
go install github.com/chenhg5/cc-connect/cmd/cc-connect@v1.3.3
```
Coming from a `v1.3.3-beta.*`: this is a small fix-only upgrade. No config change
required.
Coming from `v1.3.2`: review the Behavior Changes above before upgrading.
---
## v1.3.3-beta.5 (2026-06-15)
Large beta with 74 PRs from 28 contributors. New agents (Google Antigravity `agy`, GitHub Copilot), QQ
+1 -1
View File
@@ -3,7 +3,7 @@ MODULE := github.com/chenhg5/cc-connect
CMD := ./cmd/cc-connect
DIST := dist
VERSION := v1.3.3-beta.5
VERSION := v1.3.3
COMMIT := $(shell git rev-parse --short HEAD 2>/dev/null || echo "none")
BUILD_TIME := $(shell date -u '+%Y-%m-%dT%H:%M:%SZ')
+12 -13
View File
@@ -180,22 +180,21 @@ MiniMax-M3 pushes the frontier of coding and agentic AI, with a 1M-token context
</p>
## 🆕 What’s New in v1.3.3-beta.5
## 🆕 What’s New in v1.3.3
- **New agents** — Google Antigravity (`agy`) and GitHub Copilot CLI added as first-class agents (#1123, #865).
- **Native file attachments** — QQ (OneBot) file send & receive (#323), WeCom `SendFile` in WebSocket mode (#1199), Feishu audio + video as native media (#1202).
- **DingTalk reaction emoji + `@`-mention CLI** — react to messages, and target specific users from `cc-connect send --at-users` / `--at-all` (#1213, #1188).
- **QQ Bot inline keyboards** — permission requests render as clickable buttons via the new `INTERACTION_CREATE` intent (#1131). _Requires bit 26 in your `intents` value._
- **Slack + tmux per-thread session scope** with per-session tmux windows (#1179).
- **`/timer`** — one-shot delayed task system (#1012).
- **`/cancel`** — interrupt and reset the current session (#957).
- **Agent-driven TTS send** — agents can emit TTS audio output to chat (#1230).
- **Configurable shell + shell profile** for `exec` (#870).
- **Pi `ContextUsageReporter`** — token stats in the reply footer (#1235).
First stable of the 1.3.3 series — stabilizes beta.1 → beta.5 (≈ 235 PRs since v1.3.2) plus 7 post-beta fixes. Highlights:
⚠️ **Behavior changes** in this beta: Telegram/Discord `progress_style` now defaults to `compact`; DingTalk `msgtype=file` inbound messages now reach the agent (previously dropped); engine permission keyword matching tolerates leading/trailing `@mention`. See `CHANGELOG.md` for the full list of 74 PRs from 28 contributors.
- **New agents** — Devin CLI, Google Antigravity (`agy`), GitHub Copilot CLI as first-class agents (#672, #1123, #865). Hardened Cursor / OpenCode / Qoder / Kimi / Pi coverage.
- **Platform expansion** — QQ (OneBot) file send & receive (#323), QQ Bot inline keyboards (#1131), WeCom `SendFile` in WebSocket (#1199), Feishu audio + video native media (#1202), Slack Assistant API (#844), MAX webhook delivery (#818), DingTalk @mentions / richText / image / file inbound (#1188, #828, #1357), broader Weibo DM, WPS Xiezuo (金山协作).
- **Long-running turn hardening** — new `max_turn_time_mins` wall-clock cap with soft-stop + force-kill + auto-resume so a long bash / test command can no longer lock a session indefinitely (#1091).
- **New core commands** — `/timer` (one-shot delayed task), `/cancel` (interrupt current turn), `/ps` (replaces `/btw`, kept as alias), `cron add --silent`, agent-driven TTS.
- **Multi-user / permissions** — reply-to-unauthorized-IM-senders option, `@Bot/permit` ≡ `/permit` keyword matching, Bridge requires token when enabled.
- **Provider ecosystem** — NekoCode, VisionCoder, AIHubMix, MiniMax M3 presets; Claude Code 1M-context Opus + `append_system_prompt` + PermissionRequest hooks; Codex `request_user_input` app-server events; configurable `shell` + shell profile for `exec`.
- **Observability** — blackbox testing framework (P0/P1/P2 + config-switch matrix), CUJ test framework, provider-resume regression suite for codex/opencode/kimi, Pi context-usage reporter in reply footer.
Earlier highlights (still relevant): Web admin UI for managing projects/providers/sessions/cron with built-in chat (`cc-connect web`); lifecycle event hooks via `[[hooks]]`; personal WeChat through Weixin ilink; Weibo DM; multi-agent relay in a single group chat.
⚠️ **Behavior changes (action may be required)**: Telegram/Discord `progress_style` defaults to `compact` (set `legacy` to revert); QQ Bot default `intents` now include `INTERACTION_CREATE` (custom values must include `1<<26`); DingTalk `msgtype=file` inbound now reaches the agent; engine permission keywords are @mention-tolerant; `reset_on_idle_mins` defaults to 30 min; Bridge with no token configured refuses to start. See `changelogs/v1.3.3.md` for the full themed summary.
No breaking changes. Coming from a v1.3.3-beta.*, this is a small fix-only upgrade.
## 🧩 Platform feature snapshot
+12 -13
View File
@@ -180,22 +180,21 @@ MiniMax M3 突破 Coding 与 Agentic AI 前沿,基于 MiniMax Sparse Attention
</p>
## 🆕 v1.3.3-beta.5 更新了什么
## 🆕 v1.3.3 更新了什么
- **新增 Agent** — 接入 Google Antigravity (`agy`) 和 GitHub Copilot CLI,均为一等公民 agent (#1123, #865)。
- **原生文件附件** — QQ (OneBot) 文件收发 (#323)、企业微信 WebSocket 模式 `SendFile` (#1199)、飞书原生音频/视频附件 (#1202)。
- **钉钉 reaction emoji + @mention CLI** — 支持 reaction emoji 回应;通过 `cc-connect send --at-users` / `--at-all` 精准 @ 用户 (#1213, #1188)。
- **QQ Bot 内联键盘** — 通过新增的 `INTERACTION_CREATE` 意图,授权请求现在渲染为可点击按钮 (#1131)。_需要 `intents` 包含 bit 26。_
- **Slack + tmux 按 thread 隔离 session** — 每个 session 独立 tmux 窗口 (#1179)。
- **`/timer`** — 一次性延时任务 (#1012)。
- **`/cancel`** — 中断并重置当前会话 (#957)。
- **Agent 主动 TTS 输出** — agent 可直接向聊天发送 TTS 音频 (#1230)。
- **可配置 shell 与 shell profile** — 用于 `exec` (#870)。
- **Pi `ContextUsageReporter`** — 在回复 footer 中显示 token 统计 (#1235)。
1.3.3 系列首个正式版 —— 把 beta.1 → beta.5(自 v1.3.2 起约 235 个 PR)与 7 个 post-beta 修复一并稳定下来。亮点:
⚠️ **本次 beta 行为变更**:Telegram / Discord `progress_style` 默认值改为 `compact`;钉钉 `msgtype=file` 入站消息现在会送达 agent(之前是静默丢弃);引擎权限关键字匹配现在容忍前后 `@mention`。完整 74 PR / 28 位贡献者的列表见 `CHANGELOG.md`。
- **新增 Agent** — Devin CLI、Google Antigravity (`agy`)、GitHub Copilot CLI 均为一等公民 agent (#672, #1123, #865);Cursor / OpenCode / Qoder / Kimi / Pi 覆盖大幅加强。
- **平台能力扩展** — QQ (OneBot) 文件收发 (#323)、QQ Bot 内联键盘 (#1131)、企业微信 WebSocket `SendFile` (#1199)、飞书原生音视频附件 (#1202)、Slack Assistant API (#844)、MAX webhook 投递模式 (#818)、钉钉 @mention / richText / 图片 / 文件入站 (#1188, #828, #1357)、微博私信能力扩充、WPS 协作(金山协作)。
- **长任务保护** — 新增 `max_turn_time_mins` 绝对墙钟上限,软停 + 强杀 + 下一条消息自动 `--resume`,避免长跑的 bash / test 命令把 session 永久锁住 (#1091)。
- **新核心命令** — `/timer`(一次性延时任务)、`/cancel`(中断当前 turn)、`/ps`(替代 `/btw`,`/btw` 保留为别名)、`cron add --silent`、agent 主动 TTS 输出。
- **多用户 / 权限** — 可选「回复未授权 IM 发件人」、`@Bot/permit` ≡ `/permit` 关键字匹配、Bridge 启用时必须配置 token。
- **Provider 生态** — 新增 NekoCode、VisionCoder、AIHubMix、MiniMax M3 预设;Claude Code 1M-context Opus + `append_system_prompt` + PermissionRequest hooks;Codex `request_user_input` app-server 事件;可配置 `shell` 与 shell profile。
- **可观测性** — Blackbox 测试框架(P0/P1/P2 + config-switch 矩阵)、CUJ 测试框架、codex/opencode/kimi 的 provider-resume 回归套件、Pi 在 reply footer 输出 context 用量。
延续保留的早前亮点:内置 Web 管理后台(`cc-connect web`,可视化管理项目/服务商/会话/定时任务,浏览器内直接和 agent 对话);`[[hooks]]` 生命周期事件钩子;微信个人号 (ilink);微博私信;多 agent 群聊互通。
⚠️ **行为变更(可能需要改配置)**:Telegram / Discord `progress_style` 默认值改为 `compact`(设回 `legacy` 可还原);QQ Bot 默认 `intents` 现在包含 `INTERACTION_CREATE`,若自定义 `intents` 需手动包含 `1<<26`;钉钉 `msgtype=file` 入站现在送达 agent;引擎权限关键字容忍 @mention;`reset_on_idle_mins` 默认值改为 30 分钟;Bridge 未配置 token 时拒绝启动。完整主题汇总见 `changelogs/v1.3.3.md`。
无任何破坏性变更(No breaking changes)。从任意 v1.3.3-beta.\* 升级到 v1.3.3 是 fix-only 的小升级。
## 🧩 平台能力一览
+285
View File
@@ -0,0 +1,285 @@
## v1.3.3 — 2026-06-15
First stable release of the 1.3.3 series. Stabilizes the v1.3.3-beta.1 → v1.3.3-beta.5
line (≈ 235 PRs since v1.3.2) plus 7 post-beta.5 fixes (qoder streaming, weixin typing
ticket, daemon non-linux build, wps-xiezuo newlines, /switch history loss, minimax TTS
trailer, provider-resume regression coverage).
If you have been running any 1.3.3-beta.\* in production, **upgrading to v1.3.3 is
recommended** — it ships the same surface as beta.5 with a smaller, fix-only delta on
top.
---
### Highlights
- **5 new first-class agents**: Devin CLI (beta.1), Google Antigravity `agy` (beta.5),
GitHub Copilot (beta.5), Kimi CLI / Pi (carryover, additional fixes), plus broader
Cursor / OpenCode / Qoder coverage.
- **Major platform expansion**: QQ Bot inline keyboards & file send/receive (OneBot),
WeCom `SendFile` over WebSocket, Feishu native audio + video media, Slack Assistant
API, MAX webhook delivery mode, DingTalk @mentions / richText / image / file inbound,
WPS Xiezuo (金山协作) integration, broader Weibo DM coverage.
- **New core commands**: `/timer` (one-shot delayed task), `/cancel` (interrupt
current turn), `/ps` (send mid-turn message; replaces `/btw` which stays as alias),
`cron add --silent`, agent-driven TTS via session.
- **Hardened long-running turn behavior**: new `max_turn_time_mins` absolute
wall-clock cap with soft-stop + force-kill + auto-resume on next message — long
bash/test/run commands can no longer lock a session indefinitely.
- **Multi-user / permissions**: reply-to-unauthorized-IM-senders option, engine
permission keyword matching is now @mention-tolerant (`@Bot/permit` ≡ `/permit`),
hardened Bridge auth (token required when Bridge is enabled).
- **Observability & ops**: blackbox testing framework (P0/P1/P2 coverage,
config-switch matrix), CUJ test framework, agent-resume regression suite for
codex/opencode/kimi, daemon hardening (env capture + EnvDiscoverer plugin hook),
Pi context-usage reporter for footer token stats.
- **Provider ecosystem**: new presets NekoCode, VisionCoder, AIHubMix, MiniMax M3;
Claude Code 1M-context Opus model option; Claude Code custom
`append_system_prompt` + PermissionRequest hooks; Codex `request_user_input`
app-server events + relay group visibility; configurable shell + shell profile
for `exec`.
---
### ⚠️ Behavior Changes (action may be required)
All of these were introduced during the beta cycle and remain in effect for v1.3.3.
1. **`progress_style` default flipped to `compact` for Telegram and Discord**
(was `legacy`). To restore the previous flood-style progress, set
`progress_style = "legacy"` in the platform config. (#1354)
2. **QQ Bot default `intents` now include `INTERACTION_CREATE` (bit 26)**.
Inline keyboard permission buttons rely on this. If you previously overrode
`intents` without bit 26, add `1<<26` to your value or you will not receive
button clicks. Users on the default intents need no action.
3. **DingTalk `msgtype=file`** inbound messages now reach the agent. Previously
silently dropped. (#1357) If your bot was unintentionally relying on file
messages being ignored, add a filter rule.
4. **Engine permission keyword matching is now @mention-tolerant**:
`@Bot/permit` matches the same as `/permit`. (#1358) Bots that intentionally
relied on the previous strict match need to update their alias rules.
5. **AskUserQuestion no longer resolves on empty / read-receipt messages**.
Previously delivery receipts and empty messages from some IMs could resolve
the question within ~500ms. Now empty/whitespace content is rejected.
(#1086)
6. **`reset_on_idle_mins` default is now 30 minutes** (was effectively
off). Sessions idle for 30+ minutes auto-reset on next turn to prevent
context drift. Set to `0` in `[[projects]]` to restore old behavior. (#494)
7. **Bridge requires a token when enabled**. Bridge with no token configured
will refuse to start to prevent unauthenticated access. (#408) Set
`[bridge].token` in your config.
---
### Breaking Changes
**None.** This is a fully additive release. Existing configs continue to work.
See "Behavior Changes" above for defaults that have flipped during the beta
cycle.
---
### New Features (consolidated across beta.1 → beta.5 + post-beta.5)
#### New Agents
- **Devin CLI** — first-class agent with `/list`, `/mode`, full session
management (#672, beta.1).
- **Google Antigravity (`agy`)** — first-class integration (#1123, beta.5).
- **GitHub Copilot** — first-class integration (#865, beta.5).
- Continued coverage hardening for **Cursor**, **OpenCode**, **Qoder**, **Kimi
CLI**, **Pi** (multiple PRs across betas, plus blackbox test framework).
#### Platform Capabilities
- **QQ (OneBot) file send/receive** via HTTP API (#323, beta.5).
- **QQ Bot inline keyboard buttons** + `INTERACTION_CREATE` events —
permission requests now render as clickable buttons (#1131, beta.5).
- **WeCom `SendFile` in WebSocket mode** (#1199, beta.5).
- **Feishu audio + video attachments as native media** (#1202, beta.5).
- **Feishu rich card rendering + panel handling refresh** (#1204, beta.5).
- **Slack Assistant API** support with natural on/off switching (#844,
beta.2).
- **MAX messenger webhook delivery mode** with deployment docs (#818,
beta.2).
- **DingTalk** richText (#828), image handling (#828), reaction emoji
(#1213), `@mention via send --at-users / --at-all` (#1188), file inbound
fix (#1357).
- **Slack + tmux** per-thread session scope with per-session tmux windows
(#1179, beta.5).
- **WPS Xiezuo (金山协作)** newline preservation fix (#1361) — improves
`/status` readability significantly.
#### Core Engine / Workflow
- **`/timer`** — one-shot delayed task system (#1012, beta.5).
- **`/cancel`** — interrupt and reset the current session (#957, beta.5).
- **Session prune** command to remove duplicate sessions (#603, beta.5).
- **Agent-driven TTS send** (#1230, beta.5).
- **Reply to unauthorized IM senders** option (#1190, beta.5).
- **`max_turn_time_mins`** — wall-clock cap per agent turn with two-phase
shutdown (soft 10s grace then force-kill) + auto-resume (#1091, beta.4).
- **`/switch` no longer loses history** + user msgs persisted immediately +
new CUJ test framework (#1348, post-beta.5).
- **`/ps` command (replaces `/btw`)** for mid-turn messaging; `/btw` kept
as alias (#620, beta.1).
- **`!` shell shortcut** with `--timeout` (#658, beta.1).
- **`NO_REPLY` suppression** — agents can silently skip platform delivery,
useful for cron / analysis (#682, beta.1).
- **`cron add --silent`** CLI flag (#1285, closes #858, beta.5).
- **Configurable shell + shell profile for `exec`** (#870, beta.5).
- **Codex `request_user_input` app-server events + relay group visibility**
(#1200, #1209, beta.5).
- **Claude Code `append_system_prompt` + PermissionRequest hooks** (#1175,
#850, beta.5).
- **Claude Code Opus 1M-context model option** (#660, beta.1).
- **Pi `ContextUsageReporter`** for reply-footer token stats (#1235, beta.5).
- **Bridge ImageSender / FileSender** — `cc-connect send --image / --file`
now works through bridge protocol (#712, beta.1).
- **Provider presets** — NekoCode, VisionCoder, AIHubMix, MiniMax M3
(#739, beta.1).
- **Feishu shared WebSocket** — multiple projects sharing the same
`app_id` share one WS with per-project `allow_chat` / `group_only`
filtering (#613, beta.1).
- **Message queue depth configurable** via `[queue] max_depth` (default
5) (#690, beta.1).
- **Blackbox testing framework** — Phase 1-2 P0/P1/P2 coverage,
config-switch, `NewEnvWithSetup` infra (beta.3).
- **Daemon hardened service-file env capture + EnvDiscoverer plugin hook**
(#1034, beta.5).
- **Provider-resume regression tests** for codex / opencode / kimi (#1366,
post-beta.5).
---
### Fixed
Heavy fix coverage across the entire surface. Detailed breakdown:
#### Post-beta.5 fixes (7 PRs)
- **qoder**: emit streaming text without dropping the final result (#1290)
- **weixin (ilink)**: use `ilink_user_id` in `getConfigReq` for typing
ticket (#1308)
- **daemon**: remove redundant `linger_other.go` that breaks non-linux
builds — confirmed cross-compile on darwin/windows (#1314)
- **wps-xiezuo**: preserve newlines in outbound messages (P1, fixes
unreadable `/status`) (#1361)
- **core**: `/switch` no longer loses history; persist user msgs
immediately; add CUJ test framework (#1348)
- **tts/minimax**: drop `status=2` trailer chunk to stop audio playing
twice (#1364)
- **tests**: add provider-resume regression tests for codex / opencode /
kimi (#1366)
#### Engine / Core (selected, from beta.1 → beta.5)
- Telegram & Discord progress style now `compact` by default — set
`progress_style = "legacy"` to revert (#1354)
- DingTalk `msgtype=file` inbound now reaches the agent (#1357)
- Engine permission keyword matching is @mention-tolerant (#1358)
- `AskUserQuestion` rejects empty / read-receipt answers (#1086)
- Italic wrapping restored on reply footer (beta.3)
- Stdio sentinel for Codex app_server backend (beta.3, beta.2 #837)
- Windows cross-compile fix — `CheckLinger` stub in
`daemon/windows.go` + `unsupported.go` (beta.3)
#### Agents (selected)
- **Cursor**: session title handling
- **OpenCode**: tool rejection handling; inbound image `--file` flag
passthrough (#717, beta.1)
- **Codex**: resume + `sandbox_mode` handling (multiple); honor
model/effort/provider in `app_server` backend (#837, beta.2); multiline
prompt preservation on resume (carry forward); progress rendering in
rich Card 2.0 (#838, beta.2)
- **Pi**: `/dir` and `/model`
- **Claude Code**: provider preservation; CLI wrapper support; `auto`
permission mode (carryover)
- **Gemini**: multiline prompt via stdin (#695, beta.1)
- **Kimi**: session UUID capture from stderr (#766, beta.2; #beta.3)
#### Platforms (selected)
- **Telegram**: HTML fallback warning (#674, beta.1); `/skills` safe
format (#571, beta.1); private topics session keys (#804, beta.2)
- **Discord**: progress style, slash command on defer fail
- **DingTalk**: `msgtype="picture"` images no longer dropped (#1128,
beta.4); file inbound (#1357, beta.5)
- **Feishu**: link/card URLs; recalled messages (#841, beta.2); media
download failure user notification (#815, beta.2); `require_mention =
false` honored (#1141, beta.4); webhook mode skip bot open_id (#696,
beta.1); footer asterisk stripping
- **WeCom**: long-message split; @bot mention strip
- **WeChat**: video as proper video message (#813, beta.2); incomplete
delivery user notification (#771, beta.2)
- **Slack**: `@mention` without trailing space (`@Bot/cmd`) now parses as
command (beta.4); Markdown → mrkdwn conversion (#680, beta.1)
- **Windows**: instance lock
- **Web console**: 404 regression fixed — `make release-all` now depends
on `make web` so release binaries always ship the frontend (#1136,
beta.4)
---
### Docs
- Refreshed `README.md` and `README.zh-CN.md` "What's New" sections to
v1.3.3.
- New deployment docs for MAX webhook mode (beta.2).
- Detailed per-beta changelogs preserved in `changelogs/v1.3.3-beta.*.md`
for historical reference.
---
### Build / CI
- **Cross-platform build matrix verified** on darwin (arm64) + linux +
windows after `daemon/linger_other.go` regression was fixed (#1314).
- Selective compilation tags (`no_web`, `no_<agent>`, `no_<platform>`)
continue to be the recommended way to slim binaries.
- `make release-all` reliably depends on `make web` (#1136).
---
### Contributors
≈ 30+ external contributors across the v1.3.3 cycle. Headline contributors
(non-exhaustive):
@YoungShook, @Cigarrr, @vinnyxiong, @happyTonakai, @ferocknew, @soaringk,
@LyInfi, @cg33, @Shawn, @xxb, @Han, @Yu-Zhang, @JazzuLu, @bingkxu, @Rael,
@AaronZ345, @MeteorSkyOne, @meloalright, @CodeEagle, @Baocang-Nie,
@Alloyee, @0KABE, @hansonShen, @kslex, @leighstillard, @huangdijia,
@bugwz, @kare, @bobo-xxx, @walkerchi, @wgx521, @Yongmao Luo, plus the
internal team driving the agent / platform / engine work.
Full per-PR attribution is preserved in the per-beta changelogs and in
`git log v1.3.2..v1.3.3`.
---
### Upgrade
```bash
npm i -g cc-connect@1.3.3
# or
go install github.com/chenhg5/cc-connect/cmd/cc-connect@v1.3.3
# or
brew upgrade cc-connect # if installed via brew
```
If you are on a v1.3.3-beta.\*, this stable release is a small fix-only
upgrade over beta.5 — no config changes required.
If you are on v1.3.2 (the previous stable), review the **Behavior
Changes** section above before upgrading; in particular `progress_style`,
QQ Bot `intents`, `reset_on_idle_mins`, and Bridge `token` requirements
may affect your config.
---
### References
- Full v1.3.2 → v1.3.3 diff: <https://github.com/chenhg5/cc-connect/compare/v1.3.2...v1.3.3>
- Per-beta changelogs: `changelogs/v1.3.3-beta.5.md` (and CHANGELOG.md
entries for beta.1 → beta.4).
+4 -2
View File
@@ -1951,8 +1951,10 @@ func TestCUJ_H2_TwoPlatformsConcurrentNoBleed(t *testing.T) {
}
wg.Wait()
// Wait for all turns to finish.
deadline := time.After(5 * time.Second)
// Wait for all turns to finish. Generous deadline so this stays green
// when the whole core package is run with `-race -parallel=N` on
// constrained CI hosts; the in-isolation run finishes < 2s.
deadline := time.After(30 * time.Second)
for {
histA := e.sessions.GetOrCreateActive("platA:userA").GetHistory(0)
histB := e.sessions.GetOrCreateActive("platB:userB").GetHistory(0)
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "cc-connect",
"version": "1.3.3-beta.5",
"version": "1.3.3",
"description": "Bridge local AI coding agents (Claude Code, Cursor, Gemini CLI) to messaging platforms (Feishu, DingTalk, Slack, Telegram, Discord, LINE, WeChat Work)",
"keywords": [
"claude-code",