Commit Graph

577 Commits

Author SHA1 Message Date
Haze
78ab21d8e2 0.3.10-beta.3 2026-04-20 18:37:45 +08:00
Haze
f6d7fda60a refactor(gateway): remove phase completion timer logic and update run completion handling
Eliminate the phase completion timer and its associated logic from the Gateway. The handling of run completion is now solely based on Gateway phase events and streaming final events. This change simplifies the code and ensures that the state transitions are more reliable, as run completion is no longer inferred from the timer.

Additionally, update the runtime send actions to finalize the sending state immediately after the chat.send RPC completes, ensuring accurate state management during agent conversations.
2026-04-20 18:37:19 +08:00
Haze
ef51a8bbbf fix(chat): add grace period for Gateway phase completion events
The Gateway sends phase "end" after each tool-execution round (sub-run),
not just when the entire conversation finishes. This caused sending=false
between tool rounds, breaking the thinking indicator and input state.

Add a 5-second grace timer: on phase "end", delay sending=false. If a
new streaming event, "started" phase, or chat data arrives within the
window, the timer is cancelled and sending stays true. Only if the
grace period expires with no new activity does the run finalize.

Also: remove loadHistory finalize logic entirely — run completion is
now handled exclusively by Gateway phase events (with grace) and
streaming final events.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 18:30:46 +08:00
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