Commit Graph

574 Commits

Author SHA1 Message Date
Haze
7d955fc607 fix(chat): remove loadHistory run completion inference, rely on Gateway events
loadHistory repeatedly set sending=false during server-side tool execution
by incorrectly inferring run completion from message content.

Run completion is now ONLY signalled by:
1. Gateway's phase 'completed' event (gateway.ts)
2. Streaming 'final' event (runtime-event-handlers.ts)
3. Safety timeout after 90s of no events

Also: fully controlled graph expanded prop, stable key, card.active
decoupled from streamingReplyText, suppressThinking prop.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 18:20:39 +08:00
Haze
94f5ae2799 fix(chat): simplify tool phase detection and fix stale cache reply leak
- Revert hasCompletedToolPhase to simple check (segmentHasTools only).
  The lastAssistantHasNoTools guard was too restrictive: during reply
  streaming the last assistant in history still has tool_use (reply only
  exists in streamingMessage). The intermediate-narration edge case is
  already handled by stripProcessMessagePrefix producing empty
  trimmedReplyText, causing graceful fallback to buildSteps(false).

- Fix stale graph cache: filter out stream-generated message steps
  (id prefix 'stream-message') instead of brittle exact-match. These
  steps contain accumulated narration+reply text from streaming phase
  that should not persist after completion.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 17:17:57 +08:00
Haze
12d7c8ade0 fix(chat): refine tool phase detection and clean stale reply from graph cache
- hasCompletedToolPhase now checks that the last assistant message in the
  segment has no tool_use blocks, preventing false positives during
  intermediate tool rounds that would suppress the trailing thinking indicator
- Filter reply text from cached graph steps when a completed run falls
  back to the step cache, preventing the final response from appearing
  inside the graph when expanding after completion
- Remove debug logging

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 17:09:20 +08:00
Haze
74f6dd0236 fix(chat): exclude tool-result user messages from run segmentation
Gateway history contains `role: 'user'` messages that are actually
tool-result wrappers (Anthropic API format). These were incorrectly
treated as run boundaries in nextUserMessageIndexes, causing:
- isLatestOpenRun=false during tool execution → graph collapses
- Run split into multiple segments → incorrect step attribution

Add isRealUserMessage() that detects tool-result wrappers by checking
if all content blocks are type 'tool_result', and use it in both
nextUserMessageIndexes computation and userRunCards filtering.

Also remove debug logging from previous iterations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 17:00:00 +08:00
Haze
f8c6643b38 fix(chat): prevent graph collapse during streaming and strip thinking from reply bubble
- Prevent execution graph from auto-collapsing while reply is still
  streaming by excluding from autoCollapsedRunKeys and keeping
  expanded=true via controlled prop
- Strip thinking blocks from the streaming ChatMessage when the reply
  renders as a separate bubble, so thinking content doesn't duplicate
  alongside the response text

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 15:52:26 +08:00
Haze
7fa4852c1d fix(chat): separate response and thinking messages (#878)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: paisley <8197966+su8su@users.noreply.github.com>
2026-04-20 15:22:09 +08:00
Haze
1b2dccee6e refactor(chat): execution graph optimize (#873)
Co-authored-by: Haze <hazeone@users.noreply.github.com>
2026-04-19 19:36:33 +08:00
paisley
2f03aa1fad fix(channels): restore dingtalk multi-account support (#874) 2026-04-19 17:39:13 +08:00
paisley
3a424ef692 fix(ui): hide recoverable gateway RPC timeouts from chat interface (#875) 2026-04-19 17:38:51 +08:00
Haze
24b43335f8 fix(chat): prevent duplicate renderer requests and thinking messages (#870)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Haze <hazeone@users.noreply.github.com>
2026-04-18 15:23:16 +08:00
Haze
6d67a77633 feat(openclaw): upgrade openclaw version 4.15 (#866) 2026-04-17 21:05:34 +08:00
Haze
4ac4e12aad style(channels): align status indicator with Models card style (#867)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Haze <hazeone@users.noreply.github.com>
2026-04-17 19:13:31 +08:00
paisley
48415db990 feat(setup): remove AI provider configuration step from onboarding wizard (#863) 2026-04-16 19:09:15 +08:00
paisley
396e9e0b03 style(channels): simplify channel status indicators (#862) 2026-04-16 17:25:25 +08:00
Haze
b884db629e feat(plugin): support enterprise extension (#861) 2026-04-16 17:15:25 +08:00
paisley
2fefbf3aba feat: default browser ssrfPolicy to allow private network access (#860) 2026-04-16 14:57:27 +08:00
Lingxuan Zuo
1f39d1a8a7 Add channel health diagnostics and gateway recovery fixes (#855) 2026-04-15 13:51:02 +08:00
paisley
6acd8acf5a release v0.3.9 (#854) 2026-04-14 17:52:55 +08:00
paisley
a20a97ad83 fix feishu plugin conflict (#852) 2026-04-14 17:47:58 +08:00
Haze
30bd8c08f9 feat(gateway): enhance gateway readiness handling and batch sync configuration (#851)
Co-authored-by: paisley <8197966+su8su@users.noreply.github.com>
2026-04-14 15:42:37 +08:00
Tao Yiping
758a8f8c94 support reasoning agentid by accountId or session for cron (#847) 2026-04-14 14:52:47 +08:00
paisley
54ec784545 fix feishu conflict (#850) 2026-04-14 13:31:25 +08:00
Haze
03c40985e1 feat(version): upgrade openclaw version 4.11 (#845) 2026-04-13 19:11:28 +08:00
Octopus
5482acd43d fix(providers): add Moonshot (Global) provider for api.moonshot.ai endpoint (#839)
Co-authored-by: octo-patch <octo-patch@github.com>
2026-04-13 18:17:29 +08:00
Lingxuan Zuo
b2c478d554 Fix multi-account channel binding drift for #836 (#841) 2026-04-13 15:30:13 +08:00
Lingxuan Zuo
4ff6861042 Fix startup chat history recovery for Issue #816 (#821) 2026-04-12 15:30:11 +08:00
Tao Yiping
87ab12849c feat(cron): allow users to associate cron jobs with specific agents (#835) 2026-04-12 11:51:29 +08:00
Lingxuan Zuo
49518300dc Fix provider API key validation trimming (#810) 2026-04-10 15:15:29 +08:00
AlexZander85
66b2ddb2dc feat(i18n): add Russian (ru) localization support (#798) 2026-04-10 13:47:42 +08:00
paisley
fc9e37c4a3 release 0.3.8 (#813) 2026-04-09 18:55:11 +08:00
paisley
467fcf7e92 Upgrade openclaw to 4.9 (#804) 2026-04-09 18:51:06 +08:00
Haze
96c9f6fe5b release(version): v0.3.7 (#799) 2026-04-08 21:38:11 +08:00
Haze
d03902dd4d fix(feishu): feishu connector name validate (#797)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Haze <hazeone@users.noreply.github.com>
2026-04-08 19:16:15 +08:00
Haze
c1e165d48d fix(channel): support channel names that include numbers; legacy test names containing numbers may still appear (#796)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Haze <hazeone@users.noreply.github.com>
2026-04-08 18:38:59 +08:00
Haze
19b3ea974b fix(feishu): feishu configuration loss (#795)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Haze <hazeone@users.noreply.github.com>
2026-04-08 18:34:07 +08:00
phpoh
3b629e8db4 Fix: remove duplicate IPC channel and extract error code sets (#780) 2026-04-08 15:16:01 +08:00
phpoh
0b3152f7f2 Perf: hoist hidden-usage-source logic out of Models component (#785) 2026-04-08 15:13:09 +08:00
Lingxuan Zuo
25b13ab912 Refine chat tool status dedupe (#786)
Co-authored-by: zuolingxuan <zuolingxuan@bytedance.com>
2026-04-08 15:05:27 +08:00
Haze
32d14b8cf9 fix(gateway): handle Windows OpenClaw process exit error during in-process restarts (#794)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Haze <hazeone@users.noreply.github.com>
2026-04-08 12:06:12 +08:00
paisley
3021ad5089 feat(cron): enable WeChat as a supported delivery channel (#789) 2026-04-07 18:56:54 +08:00
Haze
97d29ab23c opt(chat): Enhance error handling for chat.send timeouts and improve logging in gateway RPC calls (#788) 2026-04-07 17:07:57 +08:00
paisley
c3a735a49c fix: resolve Windows gateway reconnect race condition and translate comments (#787) 2026-04-07 16:58:18 +08:00
paisley
d8750e135b Feat/perf dashboard (#770) 2026-04-07 11:04:57 +08:00
paisley
413244522e fix(providers): resolve provider re-seeding loop on deletion (#772) 2026-04-07 10:12:16 +08:00
paisley
0cdd12cd40 fix: resolve extension dependency missing in shared chunks (#765) (#771) 2026-04-07 10:04:03 +08:00
Lingxuan Zuo
c866205eac Add execution graph to chat history (#776) 2026-04-07 01:37:06 +08:00
Lingxuan Zuo
91c735c9f4 fix custom provider API key validation fallback (#773)
Co-authored-by: zuolingxuan <zuolingxuan@bytedance.com>
2026-04-06 14:35:09 +08:00
paisley
e640316382 v0.3.6 (#763) 2026-04-03 15:09:16 +08:00
paisley
83f67e1ed3 fix(gateway): make heartbeat observability-only to prevent false cascade restarts (#762) 2026-04-03 14:50:06 +08:00
Felix
1d2cbf8f26 Revert "fix(gateway): terminate owned process before retry to prevent port conflict on Windows" (#755) 2026-04-02 17:49:16 +08:00