What's Changed
Fixed
- Web console 404 regression:
make release-allwas missingwebas a prerequisite, so release binaries were built without embedded frontend assets whenweb/dist/was empty (gitignored). All routes on the management port returned404 page not found. Fixed by addingwebtorelease-alldependencies. (#1136) - Slack @mention without trailing space:
stripAppMentionTextonly matched"> "(mention followed by space), so@Bot/command(no space) was forwarded verbatim to the agent instead of being parsed as a cc-connect command - DingTalk
msgtype="picture"messages dropped: image messages delivered with type"picture"(instead of"image") were silently dropped; both types now route to the image handler (#1128) - Feishu
require_mention = falseignored: the platform readgroup_reply_allinternally but users configuredrequire_mention = false; both flags are now treated as equivalent (#1141) - AskUserQuestion resolved by empty delivery receipts: read-notifications and delivery receipts (empty messages) were accepted as valid answers, resolving the question within ~500ms before the user could respond. Empty/whitespace content is now rejected (#1086)
- macOS
CheckLingerduplicate declaration: two PRs both addedCheckLingertolaunchd.go, causing a redeclaration compile error on darwin builds - go.sum checksum mismatch:
BurntSushi/toml v1.6.0hash in go.sum did not match the module proxy, breaking all builds with a SECURITY ERROR - OpenCode session ID location: correct sessionID extraction and
step_finishhandling (#1140) - Codex
envconfig not honored:[projects.agent.options.env]entries were ignored at startup (#1116) - Codex explicit stdio app-server URL lost: preserved across restarts (#1083)
- OpenCode yolo mode: skip permission prompts in yolo mode (#1110)
- Feishu attachment-only messages dropped: messages with attachments but no text in active threads were silently dropped (#1099)
- Feishu mention-only quoted replies: mention-only quoted messages were incorrectly dropped (#1090)
- DingTalk quoted interactive card content: quoted card context now included in message routing (#1121)
- Weixin ilink QR proactive refresh: QR code now refreshes proactively during setup to prevent expiry while user is scanning (#1103)
- Core session busy lockup: session AgentSessionID is cleared on
/stopand resume failure to prevent recycling loop (#1020) - Feishu concurrency safety and Windows test compat: multiple race conditions fixed in Feishu platform; 24 Windows test failures resolved (#1080)
Added
max_turn_time_mins: new per-project config option — absolute wall-clock cap per agent turn that does NOT reset on tool-call events. Prevents long-running bash commands from permanently locking a session (#1091). Uses two-phase shutdown: soft stop (10s grace) then force-kill. Session is preserved and resumed via--resumeon the next message.
Contributors
Thanks to everyone who contributed to this release! 🎉
- @realraelrr — 3 PRs (#1121, #1090, #1083)
- @kslex — fix(opencode): correct sessionID location and step_finish handling (#1140)
- @HuangYuChuh — fix(codex): honor [projects.agent.options.env] from config.toml (#1116)
- @woaillr-crypto — fix(opencode): skip permissions in yolo mode + macOS CheckLinger stub (#1110)
- @wangjianmeiqin — fix(weixin): proactive QR refresh to prevent expiry during scan (#1103)
- @walkerchi — fix(feishu): admit attachment-only messages into active threads (#1099)
- @mengqiuzhen — fix(feishu): concurrency safety, error logging, Windows test compat (#1080)
- @87hujih — fix(core): clear AgentSessionID on /stop and resume failure (#1020)
Full Changelog: v1.3.3-beta.3...v1.3.3-beta.4