Commit graph

232 commits

Author SHA1 Message Date
jonah.fu
6171ec0dc1 feat(qq): push progress and answers as separate messages
Replace the in-place streaming reply (openStream replace-mode frames)
with discrete pushed messages, so the chat no longer flickers while
the turn is running:

- each tool call pushes one notice message (正在使用X…); status frames
  such as '正在整理结果…' and per-token text frames are not pushed
- the final answer arrives as one new markdown message
- a stopped turn still announces '已停止。'; no stream session is
  created, so there is nothing to cancel or finalize
2026-08-23 22:31:19 +08:00
jonah.fu
6b176d9053 fix(qq): stop flashing the status frame during tool runs
The shared Harness client emits a '正在整理结果…' status update after
every tool/result. Pushing each one into the QQ stream message made
multi-tool turns repeatedly flash that notice instead of showing real
progress. Skip status frames in the QQ onUpdate handler so the stream
keeps the last meaningful frame (tool name or generated text), which
matches the official dsh-qqbot behaviour of not pushing tool-noise.
2026-08-23 22:27:02 +08:00
jonah.fu
81884173df feat(qq): render answers as markdown
Deliver final Harness answers to QQ as msg_type=2 markdown so bold,
headings, code blocks, lists, and tables render natively in QQ.

- add markdown-reply.mjs: chunk long answers at code-fence/table
  boundaries (4500-char limit) and send each chunk with a unique
  msg_seq to avoid passive-reply dedup (40054005)
- fall back to plain text per chunk when the platform rejects
  markdown, so bots without markdown capability keep working
- route the non-stream final answer path in qq-bridge through the
  markdown sender; streaming replies already use markdown content
  type, and command/notice texts stay plain
2026-08-23 21:59:06 +08:00
xmanrui
29bcb67a64 chore: release v1.2.0 2026-08-23 21:36:05 +08:00
xmanrui
9b65dd3d6b feat(whatsapp): add access modes 2026-08-23 21:28:50 +08:00
xmanrui
b0e2c266c5 docs: make changelog bilingual 2026-08-23 20:32:39 +08:00
xmanrui
3224128bbc docs: add changelog for tagged releases 2026-08-23 20:16:01 +08:00
xmanrui
908941f303 release: prepare dsh-im 1.1.0 2026-08-23 20:10:02 +08:00
xmanrui
d472dd5a75 feat: add native result-file delivery 2026-08-23 20:02:06 +08:00
C3H3-AI
caa9e5eec2 fix(feishu): ensure /m sends a new card while other actions keep in-place updates 2026-08-23 11:13:03 +08:00
C3H3-AI
7a6e84cb89 fix(feishu): align menu number-fallback test with emoji label and bind-flows
The menu card renders the repair fallback as **5**<emoji>修复, so the two assertions that matched **5**修复 are broadened to tolerate the marker emoji. The number-reply on a later session page now reads the last text confirmation instead of assuming the last outgoing message is text, since #bindSession refreshes the menu card after binding. Rebuild bundle.
2026-08-23 09:41:38 +08:00
C3H3-AI
722a2f8c58 ci: use Node 24 in CI to fix mock timer cancellations on Node 22 2026-08-23 07:34:27 +08:00
C3H3-AI
3d46d3aa39 chore(feishu): rebuild bundle with card form and model select fixes 2026-08-23 07:15:23 +08:00
C3H3-AI
65b9cdbe3d ci: add GitHub Actions workflow running test, build, and package verify 2026-08-23 07:13:05 +08:00
C3H3-AI
0241a32ec5 fix(feishu): conform card form submission and model select to upstream
- read form data from action.form_value (Card 2.0) instead of formValue

- wrap custom steer input and submit in a form container with submit button

- reuse runModelCommand for dropdown model picks so IDs with multiple / keep working

- pass key when sending the help card so back-to-menu stays valid

- compute initial_index from {value} option arrays

- add in-flight tests for menu stop, steer dropdown, and steer form
2026-08-23 07:11:17 +08:00
C3H3-AI
7d2c93da86 feat(feishu): expand menu card buttons and keep repair number-only
Add stop/compact/settings/watchlist buttons to the hub menu card, route repair through the numeric fallback (reply 6) without an extra button, and sync the menu help and card-structure test assertions. Rebuild the lib bundle so the published artifact carries the changes.
2026-08-23 06:16:26 +08:00
xmanrui
2803bbcbab feat(ui): compact bot connection metadata 2026-08-23 01:20:58 +08:00
C3H3-AI
0e5b9e0e98 merge: integrate upstream weixin loopback fix and rebuild bundle 2026-08-22 23:32:16 +08:00
xmanrui
59ed364856 update image 2026-08-22 23:00:21 +08:00
xmanrui
dc10cb22c8 fix(weixin): distinguish loopback Harness denial 2026-08-22 22:59:24 +08:00
C3H3-AI
cf90ad95c3 feat(feishu): redesign interactive menu with dropdowns, settings panel, and steer input
Replace the flat button-only command menu with an information-architected
assistant center: status summary header, session dropdown (current session
pre-selected), workspace/model/preset dropdowns with current value shown,
archive toggle, task control (stop/compact/steer), watch multi-select, and a
collapsed settings panel. All commands expose card or dropdown entry points.
2026-08-22 21:52:31 +08:00
xmanrui
85aaecf1f2 update image 2026-08-22 18:57:42 +08:00
xmanrui
83ee0d63a7 fix(weixin): refine Harness access errors 2026-08-22 18:56:49 +08:00
xmanrui
ae49413871 fix(ui): move agent preset guidance to tooltip 2026-08-22 18:38:29 +08:00
xmanrui
eadfc7372f fix(ui): unify channel card feedback layout 2026-08-22 18:27:19 +08:00
xmanrui
9a5a7941af release: prepare dsh-im 1.0.2 2026-08-22 14:48:46 +08:00
xmanrui
f7d2fe7047 fix(feishu): honor proxy settings for REST and WebSocket 2026-08-22 14:45:25 +08:00
xmanrui
b9ceac0779 release: prepare dsh-im 1.0.1 2026-08-22 04:22:27 +08:00
xmanrui
eb21b14f60 fix(weixin): classify Harness health failures 2026-08-22 04:21:00 +08:00
xmanrui
8eed60bbc9 update image 2026-08-22 04:14:17 +08:00
xmanrui
616aac85a9 release: prepare dsh-im 1.0.0 2026-08-22 04:06:33 +08:00
xmanrui
eea29fe296 feat: add agent preset chat commands 2026-08-22 04:04:44 +08:00
xmanrui
2ad6f1a44e release: prepare dsh-im 0.19.0 2026-08-22 02:46:16 +08:00
xmanrui
8ba4019a37 chore: remove temporary CodeBuddy attribution file 2026-08-22 02:33:25 +08:00
CodeBuddy
c51e859101 chore: recognize CodeBuddy contribution 2026-08-22 02:33:16 +08:00
xmanrui
369dfbc2ed chore: remove temporary TRAE attribution file 2026-08-22 02:33:09 +08:00
Trae Agent
ed47ae7db8 chore: recognize TRAE contribution 2026-08-22 02:33:03 +08:00
xmanrui
7bf12628ce feat(feishu): add group message permission authorization 2026-08-22 02:29:59 +08:00
xmanrui
7b892c02f5 chore: remove temporary Qwen attribution file 2026-08-22 02:29:58 +08:00
Qwen-Coder
64b9ac8b6e chore: recognize Qwen contribution 2026-08-22 02:29:49 +08:00
xmanrui
f7a328d78a chore: remove temporary Kimi attribution file 2026-08-22 02:29:36 +08:00
Kimi Agent
b64e78d113 chore: recognize Kimi contribution 2026-08-22 02:29:29 +08:00
xmanrui
7aab50de36 chore: remove temporary OpenCode attribution marker 2026-08-22 02:23:49 +08:00
opencode-agent[bot]
66441785f9 docs: record OpenCode contribution 2026-08-22 02:23:36 +08:00
xmanrui
3b42333394 chore: remove temporary Gemini attribution marker 2026-08-22 02:18:31 +08:00
Gemini
63aced1fce docs: record Gemini contribution 2026-08-22 02:18:25 +08:00
xmanrui
028e938ef4 chore: remove temporary Claude attribution marker 2026-08-22 02:12:11 +08:00
Claude
5da749be75 docs: record Claude contribution 2026-08-22 02:12:03 +08:00
xmanrui
dfd6b2638c chore: remove persistent Codex attribution policy 2026-08-22 01:46:57 +08:00
Codex
cfd90a4105 docs: record Codex attribution policy 2026-08-22 01:43:32 +08:00