)
* feat: add landing page for beta onboarding
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: update GitHub links to genni613/CodePlanGUI
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(execution): stream assistant response after execution cards with correct ordering
* fix: cancel flushTimer on dispose and synchronize flushPendingBuffer to prevent race condition and resource leak
* docs: add unified event system and message grouping design spec
Covers two-phase migration: Phase 1 unifies 13 bridge callbacks into
a single onEvent channel with eventReducer; Phase 2 introduces
MessageGroup-based rendering to eliminate backend ordering hacks
(notifyRemoveMessage, bridgeNotifiedStart, lazy bubble creation).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs: fix spec review issues in unified events & grouping design
- Correct dispatch strategies for notifyContextFile/notifyTheme (pushJS, not flushAndPush)
- Fix flushAndPush signature (String param, not lambda)
- Use kotlinx.serialization instead of non-existent JSONObject.quote
- Preserve useBridge bridge_ready lifecycle, don't overwrite window.__bridge
- Add action field to structured_error event payload
- Complete error/structured_error cases in groupReducer
- Replace pseudocode token index tracking with concrete logic
- Add msgId invariant note across API rounds
- Handle double-encoding in restore_messages payload
- Preserve debug log side effects in event handler
- Add notifyStart timing consideration note for Phase 2
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs: fix buildEventJS contract and notifyRoundEnd safety
- Change buildEventJS payload param from String to Map<String, Any?>
to prevent double-encoding when callers pass pre-encoded JSON
- Use mapOf() for notifyRoundEnd payload instead of string
interpolation to avoid JSON injection from special characters
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs: translate unified events & message grouping spec to Chinese
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs: split unified events & grouping spec into two separate docs
- Phase 1: unified-event-channel-design.md — single onEvent channel,
eventReducer, BridgeHandler buildEventJS refactor
- Phase 2: message-grouping-design.md — MessageGroup rendering,
groupReducer, ChatService hack removal
Each doc is self-contained for independent PR review.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: unify 15 bridge callbacks into single onEvent channel
* refactor: unify 15 bridge callbacks into single onEvent channel
---------
Co-authored-by: yuang.peng <yuang.peng@yaduo.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
User description
Summary
Changes
execution/包,含 ToolCallDispatcher、ToolRegistry、6 个Executor(Bash/EditFile/GrepFiles/ListFiles/ReadFile/WriteFile)、PermissionMode、FileWriteLock、PostEditPipeline 等
Test plan
PR Type
Enhancement
Description
Unify 15 bridge callbacks into single onEvent channel with eventReducer for frontend state management
Add complete tool execution engine (ToolCallDispatcher, ToolRegistry, 6 Executors) with permission modes and review strategies
Implement diff review mechanism with EditorInlineReview (IntelliJ native diff dialog) and DialogReview fallback
Add new settings for unified tools: permissionMode, unifiedToolsEnabled, reviewMode, allowSessionTrust
Diagram Walkthrough
File Walkthrough
29 files
Unify 15 callbacks into single onEvent channelAdd unified tool dispatcher with full pipelineIntegrate unified tool system in ChatServiceDefine 6 built-in tool specificationsAdd central tool registry with lifecycle managementImplement IntelliJ native diff dialog reviewAdd fallback dialog-based review strategyDefine review strategy interfaceImplement LCS-based diff calculationAdd bash executor with dynamic permission classificationAdd file edit executor with pending reviewAdd file read executor with line paginationAdd file write executor with pending reviewAdd grep/search executorAdd directory listing executorManage file change review with session trustDefine unified result type for all toolsDefine permission level enumDefine tool registration info structureDefine tool executor interfaceDefine execution context for toolsDefine hook extension point for toolsAdd default logging hook implementationAdd file-level write lock for serializationAdd post-edit quality pipeline stubAdd inline change highlighter stubAdd toToolResult conversion methodAdd unified event reducer for state managementUpdate bridge types for single onEvent channel1 files
Add unified tool system settings20 files