feat(ai-roobt): renew robot ui and add mcp calltool#1561
feat(ai-roobt): renew robot ui and add mcp calltool#1561chilingling merged 6 commits intoopentiny:developfrom
Conversation
WalkthroughThis update introduces significant enhancements to the robot plugin, including a complete refactor of the chat UI using modular components from Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant MainVue
participant MCPServer
participant LLMServer
participant Tool
User->>MainVue: Sends message / selects prompt
MainVue->>LLMServer: sendMcpRequest(messages, options)
LLMServer-->>MainVue: LLM response (may include tool calls)
alt Tool calls present
MainVue->>MCPServer: callTool(toolId, args)
MCPServer->>Tool: Execute tool
Tool-->>MCPServer: Tool result
MCPServer-->>MainVue: Tool result
MainVue->>LLMServer: send follow-up with tool results
LLMServer-->>MainVue: Final response
end
MainVue-->>User: Display chat bubbles and results
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Poem
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
c7ee104 to
6ff061c
Compare
6ff061c to
6117c6c
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (5)
packages/plugins/robot/src/RobotSettingPopover.vue (1)
55-55: Good change! Consider making it reactive if options can change dynamically.The initialization using
getAIModelOptions()function enables dynamic AI model options. The current implementation is correct for static options that don't change during component lifecycle.If AI model options could change dynamically during the component's lifecycle (e.g., based on user permissions or server configuration), consider making it reactive:
- const AIModelOptions = getAIModelOptions() + const AIModelOptions = computed(() => getAIModelOptions())Don't forget to import
computedfrom Vue if you implement this change.packages/plugins/robot/src/mcp/McpServer.vue (3)
52-54: Direct mutation of plugin object may cause reactivity issues.The direct assignment
plugin.enabled = enabledmutates the plugin object directly, which could potentially cause reactivity issues depending on how the plugin objects are structured.Consider using a more explicit state management approach:
-const handlePluginToggle = (plugin: PluginInfo, enabled: boolean) => { - plugin.enabled = enabled -} +const handlePluginToggle = (plugin: PluginInfo, enabled: boolean) => { + updateMcpServerStatus(plugin.id, enabled) +}
118-125: Remove unused CSS class.The
.textclass appears to be unused and should be removed to keep the codebase clean.- .text { - width: 56px; - height: 22px; - line-height: 22px; - font-size: 14px; - font-weight: 400; - text-align: left; - }
108-116: Good active state styling with consistent color scheme.The active state styling properly uses consistent colors and provides good visual feedback. Consider extracting the brand color
rgb(20, 118, 255)to a CSS custom property for better maintainability.packages/plugins/robot/src/Main.vue (1)
194-208: Good MCP integration with proper conditional logic.The MCP integration is well-implemented with appropriate conditional logic and error handling. The fallback to environment variable for authorization is a good practice.
Consider enhancing error handling to provide more specific feedback for MCP-related issues:
- } catch (error) { - messages.value[messages.value.length - 1].content = '连接失败' - inProcesing.value = false - } + } catch (error) { + console.error('MCP request failed:', error) + messages.value[messages.value.length - 1].content = `MCP连接失败: ${error.message || '未知错误'}` + inProcesing.value = false + }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (11)
packages/plugins/robot/package.json(1 hunks)packages/plugins/robot/src/Main.vue(8 hunks)packages/plugins/robot/src/RobotSettingPopover.vue(2 hunks)packages/plugins/robot/src/js/robotSetting.ts(1 hunks)packages/plugins/robot/src/mcp/MarkdownRenderer.vue(1 hunks)packages/plugins/robot/src/mcp/McpServer.vue(1 hunks)packages/plugins/robot/src/mcp/types.ts(1 hunks)packages/plugins/robot/src/mcp/useMcp.ts(1 hunks)packages/plugins/robot/src/mcp/utils.ts(1 hunks)packages/register/src/constants.ts(1 hunks)packages/register/src/service.ts(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (8)
- packages/register/src/service.ts
- packages/register/src/constants.ts
- packages/plugins/robot/src/mcp/MarkdownRenderer.vue
- packages/plugins/robot/src/js/robotSetting.ts
- packages/plugins/robot/package.json
- packages/plugins/robot/src/mcp/useMcp.ts
- packages/plugins/robot/src/mcp/types.ts
- packages/plugins/robot/src/mcp/utils.ts
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: rhlin
PR: opentiny/tiny-engine#1011
File: packages/canvas/render/src/RenderMain.ts:82-88
Timestamp: 2025-01-14T08:50:50.226Z
Learning: For PR #1011, the focus is on resolving conflicts and migrating code, with architectural improvements deferred for future PRs.
Learnt from: gene9831
PR: opentiny/tiny-engine#1041
File: packages/plugins/datasource/src/DataSourceList.vue:138-138
Timestamp: 2025-01-14T10:06:25.508Z
Learning: PR #1041 in opentiny/tiny-engine is specifically for reverting Prettier v3 formatting to v2, without any logical code changes or syntax improvements.
packages/plugins/robot/src/RobotSettingPopover.vue (2)
Learnt from: gene9831
PR: #1011
File: packages/configurator/src/router-select-configurator/RouterSelectConfigurator.vue:95-98
Timestamp: 2025-01-14T06:55:59.692Z
Learning: The tiny-select component from @opentiny/vue library ensures selected options are valid internally, requiring no additional validation in the change handler.
Learnt from: gene9831
PR: #1011
File: packages/configurator/src/router-select-configurator/RouterSelectConfigurator.vue:63-73
Timestamp: 2025-01-14T06:49:00.797Z
Learning: In the tiny-engine project, the SvgIcon component is globally registered and available throughout Vue components without requiring explicit imports.
packages/plugins/robot/src/Main.vue (1)
Learnt from: yy-wow
PR: #940
File: packages/canvas/DesignCanvas/src/DesignCanvas.vue:0-0
Timestamp: 2025-01-15T02:19:06.755Z
Learning: In Vue components using message subscriptions from @opentiny/tiny-engine-meta-register, always clean up subscriptions in the onUnmounted hook using useMessage().unsubscribe() to prevent memory leaks.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: push-check
🔇 Additional comments (11)
packages/plugins/robot/src/RobotSettingPopover.vue (1)
33-33: LGTM! Import change aligns with source module refactor.The import change from static
AIModelOptionsto dynamicgetAIModelOptionsfunction is consistent with the broader refactor to support dynamic AI model options.packages/plugins/robot/src/mcp/McpServer.vue (6)
1-25: Template structure looks good with proper Vue 3 patterns.The template correctly implements conditional rendering, event handling, and component integration. However, the hardcoded empty array for
market-category-optionssuggests this feature might be incomplete.Consider whether the empty
market-category-optionsarray is intentional or if this functionality needs to be implemented later.
27-31: Good import structure with proper TypeScript types.The imports are well-organized and include appropriate TypeScript types from the external packages.
38-41: CSS custom properties usage promotes good theming consistency.Using CSS custom properties for positioning ensures the drawer aligns properly with the existing UI layout variables.
57-62: Plugin search by ID could be optimized but likely not a concern.The
findoperation to locate plugins by ID is simple but could be inefficient with many plugins. However, this is likely not a performance concern in typical usage scenarios.
73-75: Proper lifecycle management with onMounted.The component correctly initializes MCP server tools on mount, ensuring the UI reflects the current state when first rendered.
78-83: Appropriate use of deep selectors for child component customization.The
:deep()selectors correctly target child component elements that need styling overrides.packages/plugins/robot/src/Main.vue (4)
7-67: Excellent template refactor with improved modularity.The migration from the old layout components to the new
@opentiny/tiny-robotcomponents creates a more modular and maintainable structure. The conditional rendering between welcome screen and chat interface is clean and intuitive.Key improvements:
- Modular component architecture with
tr-container,tr-welcome,tr-prompts, etc.- Proper fullscreen support with v-model binding
- Clean integration of MCP server component in footer slot
- Better separation of concerns with message rendering through
tr-bubble-provider
75-87: Well-organized imports supporting the new architecture.The new imports properly support the refactored UI components and MCP integration functionality. The modular import structure from
@opentiny/tiny-robotfollows good practices.
375-417: Excellent UX enhancements with well-structured prompt system.The new welcome screen with interactive prompts significantly improves the user experience. The prompt items are well-typed and include helpful visual elements like icons and badges.
Key improvements:
- Fullscreen control for better user experience
- Interactive prompt suggestions to guide users
- Proper TypeScript typing with
PromptProps[]- Reusable SVG icon generation functions
- Clean role configuration for bubble chat system
The use of
h()function for creating icons is appropriate and performant.
468-561: Modern CSS with container queries and responsive design.The updated styles effectively support the new component architecture. The use of container queries (
@container (width >=64rem)) is a modern approach to responsive design that's well-suited for this modular UI.Notable improvements:
- Container queries for responsive prompt layout
- Consistent use of CSS custom properties for theming
- Proper styling for new icon buttons with hover/active states
- Clean integration with the tiny-robot component styles
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
packages/plugins/robot/src/Main.vue (1)
197-237: MCP integration implemented correctly with proper fallback.The conditional MCP integration is well-implemented with proper authentication, error handling, and fallback to the existing HTTP API. The state management for loading states is handled correctly.
Consider enhancing error messaging for MCP failures to provide more specific feedback to users about what went wrong.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (6)
packages/plugins/robot/package.json(1 hunks)packages/plugins/robot/src/Main.vue(9 hunks)packages/plugins/robot/src/mcp/MarkdownRenderer.vue(1 hunks)packages/plugins/robot/src/mcp/McpServer.vue(1 hunks)packages/plugins/robot/src/mcp/types.ts(1 hunks)packages/plugins/robot/src/mcp/utils.ts(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (5)
- packages/plugins/robot/src/mcp/MarkdownRenderer.vue
- packages/plugins/robot/package.json
- packages/plugins/robot/src/mcp/McpServer.vue
- packages/plugins/robot/src/mcp/types.ts
- packages/plugins/robot/src/mcp/utils.ts
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: rhlin
PR: opentiny/tiny-engine#1011
File: packages/canvas/render/src/RenderMain.ts:82-88
Timestamp: 2025-01-14T08:50:50.226Z
Learning: For PR #1011, the focus is on resolving conflicts and migrating code, with architectural improvements deferred for future PRs.
Learnt from: gene9831
PR: opentiny/tiny-engine#1041
File: packages/plugins/datasource/src/DataSourceList.vue:138-138
Timestamp: 2025-01-14T10:06:25.508Z
Learning: PR #1041 in opentiny/tiny-engine is specifically for reverting Prettier v3 formatting to v2, without any logical code changes or syntax improvements.
packages/plugins/robot/src/Main.vue (2)
Learnt from: yy-wow
PR: #850
File: packages/toolbars/preview/src/Main.vue:0-0
Timestamp: 2024-10-10T02:48:10.881Z
Learning: 在 packages/toolbars/preview/src/Main.vue 文件中,使用 useNotify 而不是 console 来记录错误日志。
Learnt from: rhlin
PR: #1011
File: packages/canvas/render/src/builtin/builtin.json:645-850
Timestamp: 2025-01-14T04:22:02.404Z
Learning: In TinyEngine, components must use inline styles instead of CSS classes because components cannot carry class styles when dragged into the canvas.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: push-check
🔇 Additional comments (5)
packages/plugins/robot/src/Main.vue (5)
7-68: Excellent architectural improvement with modular component structure.The refactor from custom dialog to
tr-containerwith modular components (tr-welcome,tr-prompts,tr-bubble-list,tr-sender) significantly improves the code organization and maintainability. The conditional rendering logic and component composition are well-implemented.
76-88: Well-organized imports and component registration.The import structure is comprehensive and properly organized, including all necessary TinyRobot components, MCP functionality, and type definitions. The component registration matches the imports correctly.
Also applies to: 92-102
377-423: Excellent prompt handling and UI configuration setup.The prompt items configuration, icon utilities, and chat roles setup are well-implemented. The use of composition API patterns and programmatic VNode creation with
h()function demonstrates good Vue 3 practices. The "NEW" badges on relevant prompts provide good UX.
195-195: Proper reactive state management following Vue 3 best practices.The new reactive state properties are correctly defined and returned from the setup function. The externalization of AI model options through
getAIModelOptions()improves maintainability.Also applies to: 341-341, 441-449
462-572: Comprehensive and well-organized style updates.The style refactor properly supports the new component structure with modern CSS features like container queries. The use of
:deep()selectors for child component styling and consistent button states enhance the user experience.
2f44c94 to
28c452b
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (4)
docs/advanced-features/new-ai-plugin-usage.md (4)
3-3: Typo – stray character before “同时”
There is an extra “t” in front of “同时”.-…组件库界面,t同时通过使用OpenTiny Next SDK 集成了MCP… +…组件库界面,同时通过使用OpenTiny Next SDK 集成了MCP…
22-27: “MC工具按钮” should be “MCP工具按钮” for consistency
All other occurrences use MCP; using MC here may confuse readers.- **MC工具按钮**:管理和配置MCP工具的入口 + **MCP工具按钮**:管理和配置 MCP 工具的入口
85-91: Duplicate subsection numbering (### 3.2 appears twice)
The second heading should increment to keep the outline correct.-### 3.2 配置AI模型 +### 3.3 配置AI模型(Adjust subsequent subsection numbers if necessary.)
140-168: Add a language identifier to fenced code blocks (markdownlint MD040)
These blocks are dialogue examples, not JavaScript. Specify a language (e.g.,text) or usemdto silence linters and improve rendering.-``` +```text 用户:帮我创建一个包含用户信息表单的页面,需要有姓名、邮箱、手机号字段 …Apply the same change to the blocks starting at lines 151 and 163.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (9)
docs/advanced-features/imgs/ai-assistant-enable-mcp-tools.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-fullscreen.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-interface.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-mcp-tools-management.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-open.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-prompts.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-settings.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-tool-execution1.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-tool-execution2.pngis excluded by!**/*.png
📒 Files selected for processing (2)
docs/advanced-features/new-ai-plugin-usage.md(1 hunks)docs/catalog.json(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- docs/catalog.json
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: rhlin
PR: opentiny/tiny-engine#1011
File: packages/canvas/render/src/RenderMain.ts:82-88
Timestamp: 2025-01-14T08:50:50.226Z
Learning: For PR #1011, the focus is on resolving conflicts and migrating code, with architectural improvements deferred for future PRs.
Learnt from: gene9831
PR: opentiny/tiny-engine#1041
File: packages/plugins/datasource/src/DataSourceList.vue:138-138
Timestamp: 2025-01-14T10:06:25.508Z
Learning: PR #1041 in opentiny/tiny-engine is specifically for reverting Prettier v3 formatting to v2, without any logical code changes or syntax improvements.
docs/advanced-features/new-ai-plugin-usage.md (2)
Learnt from: gene9831
PR: #917
File: docs/开始/快速上手.md:31-31
Timestamp: 2024-12-14T05:53:28.501Z
Learning: The latest stable version of @opentiny/tiny-engine-cli is 2.0.0, and documentation should reference this version instead of any release candidates.
Learnt from: gene9831
PR: #1038
File: packages/plugins/block/index.js:24-24
Timestamp: 2025-01-14T08:42:18.574Z
Learning: In the tiny-engine project, breaking changes are documented in the changelog rather than in JSDoc comments or separate migration guides.
🪛 LanguageTool
docs/advanced-features/new-ai-plugin-usage.md
[uncategorized] ~38-~38: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"会话
Context: ...assistant-settings.png) 注意:切换 AI 模型会开启新的会话。 ### 2.3 MCP工具管理 
🪛 markdownlint-cli2 (0.17.2)
docs/advanced-features/new-ai-plugin-usage.md
140-140: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
151-151: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
162-162: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: push-check
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (1)
docs/advanced-features/new-ai-plugin-usage.md (1)
26-27: Rename to keep terminology consistent (“MCP工具按钮”).Throughout the document the acronym “MCP” is used; here it is truncated to “MC”. Rename to avoid confusion and match the rest of the doc.
- - **MC工具按钮**:管理和配置MCP工具的入口 +- **MCP工具按钮**:管理和配置MCP工具的入口
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (9)
docs/advanced-features/imgs/ai-assistant-enable-mcp-tools.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-fullscreen.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-interface.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-mcp-tools-management.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-open.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-prompts.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-settings.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-tool-execution1.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-tool-execution2.pngis excluded by!**/*.png
📒 Files selected for processing (2)
docs/advanced-features/new-ai-plugin-usage.md(1 hunks)docs/catalog.json(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- docs/catalog.json
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: rhlin
PR: opentiny/tiny-engine#1011
File: packages/canvas/render/src/RenderMain.ts:82-88
Timestamp: 2025-01-14T08:50:50.226Z
Learning: For PR #1011, the focus is on resolving conflicts and migrating code, with architectural improvements deferred for future PRs.
Learnt from: gene9831
PR: opentiny/tiny-engine#1041
File: packages/plugins/datasource/src/DataSourceList.vue:138-138
Timestamp: 2025-01-14T10:06:25.508Z
Learning: PR #1041 in opentiny/tiny-engine is specifically for reverting Prettier v3 formatting to v2, without any logical code changes or syntax improvements.
docs/advanced-features/new-ai-plugin-usage.md (2)
Learnt from: gene9831
PR: #1038
File: packages/plugins/block/index.js:24-24
Timestamp: 2025-01-14T08:42:18.574Z
Learning: In the tiny-engine project, breaking changes are documented in the changelog rather than in JSDoc comments or separate migration guides.
Learnt from: gene9831
PR: #917
File: docs/开始/快速上手.md:31-31
Timestamp: 2024-12-14T05:53:28.501Z
Learning: The latest stable version of @opentiny/tiny-engine-cli is 2.0.0, and documentation should reference this version instead of any release candidates.
🪛 LanguageTool
docs/advanced-features/new-ai-plugin-usage.md
[uncategorized] ~38-~38: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"会话
Context: ...assistant-settings.png) 注意:切换 AI 模型会开启新的会话。 ### 2.3 MCP工具管理 
🪛 markdownlint-cli2 (0.17.2)
docs/advanced-features/new-ai-plugin-usage.md
140-140: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
151-151: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
162-162: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: push-check
28c452b to
2a74797
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
♻️ Duplicate comments (1)
docs/advanced-features/new-ai-plugin-usage.md (1)
140-167: Add language identifiers to all plain-text conversation blocks (markdown-lint MD040).The three fenced blocks starting at lines 140, 151 and 162 still trigger MD040.
Addtext(or another suitable identifier) after the opening back-ticks.-``` +```text 用户:帮我创建一个包含用户信息表单的页面,需要有姓名、邮箱、手机号字段 AI:好的,我将为您创建一个包含用户信息表单的页面... …(Apply the same change to the two subsequent blocks.)
🧹 Nitpick comments (1)
docs/advanced-features/new-ai-plugin-usage.md (1)
21-26: Fix inconsistent abbreviation (“MC” → “MCP”).The rest of the document consistently uses “MCP”,but this bullet uses “MC”,which may confuse readers.
- - **MC工具按钮**:管理和配置MCP工具的入口 + - **MCP工具按钮**:管理和配置MCP工具的入口
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (9)
docs/advanced-features/imgs/ai-assistant-enable-mcp-tools.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-fullscreen.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-interface.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-mcp-tools-management.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-open.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-prompts.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-settings.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-tool-execution1.pngis excluded by!**/*.pngdocs/advanced-features/imgs/ai-assistant-tool-execution2.pngis excluded by!**/*.png
📒 Files selected for processing (2)
docs/advanced-features/new-ai-plugin-usage.md(1 hunks)docs/catalog.json(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- docs/catalog.json
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: rhlin
PR: opentiny/tiny-engine#1011
File: packages/canvas/render/src/RenderMain.ts:82-88
Timestamp: 2025-01-14T08:50:50.226Z
Learning: For PR #1011, the focus is on resolving conflicts and migrating code, with architectural improvements deferred for future PRs.
Learnt from: gene9831
PR: opentiny/tiny-engine#1041
File: packages/plugins/datasource/src/DataSourceList.vue:138-138
Timestamp: 2025-01-14T10:06:25.508Z
Learning: PR #1041 in opentiny/tiny-engine is specifically for reverting Prettier v3 formatting to v2, without any logical code changes or syntax improvements.
docs/advanced-features/new-ai-plugin-usage.md (2)
Learnt from: gene9831
PR: #917
File: docs/开始/快速上手.md:31-31
Timestamp: 2024-12-14T05:53:28.501Z
Learning: The latest stable version of @opentiny/tiny-engine-cli is 2.0.0, and documentation should reference this version instead of any release candidates.
Learnt from: gene9831
PR: #1038
File: packages/plugins/block/index.js:24-24
Timestamp: 2025-01-14T08:42:18.574Z
Learning: In the tiny-engine project, breaking changes are documented in the changelog rather than in JSDoc comments or separate migration guides.
🪛 LanguageTool
docs/advanced-features/new-ai-plugin-usage.md
[uncategorized] ~38-~38: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"会话
Context: ...assistant-settings.png) 注意:切换 AI 模型会开启新的会话。 ### 2.3 MCP工具管理 
🪛 markdownlint-cli2 (0.17.2)
docs/advanced-features/new-ai-plugin-usage.md
140-140: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
151-151: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
162-162: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
English | 简体中文
PR
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
Background and solution
What is the current behavior?
Issue Number: N/A
What is the new behavior?
Does this PR introduce a breaking change?
Other information
Summary by CodeRabbit
Summary by CodeRabbit
New Features
Enhancements
Bug Fixes
Chores