Skip to content

Develop skill registry with copolit#14531

Merged
KomachiSion merged 23 commits into
developfrom
develop-skill-registry-with-copolit
Mar 6, 2026
Merged

Develop skill registry with copolit#14531
KomachiSion merged 23 commits into
developfrom
develop-skill-registry-with-copolit

Conversation

@shiyiyue1102

Copy link
Copy Markdown
Collaborator

Please do not create a Pull Request without creating an issue first.

What is the purpose of the change

This pull request introduces significant new functionality for AI prompt and skill management in the Nacos system. It adds REST controllers for both admin and client operations related to prompts and skills, centralizes related constants, and adds a new dependency for handling compressed files. The changes are grouped into three main themes: new feature implementation, configuration/constant centralization, and dependency management.

New Feature Implementation:

  • Added PromptAdminController, exposing REST APIs for admin operations on prompts (publish, update, delete, metadata, list, versioning, label binding/unbinding) using forms and service classes for business logic. (ai/src/main/java/com/alibaba/nacos/ai/controller/PromptAdminController.java)
  • Added PromptClientController, providing a client-facing API for querying prompts by label, version, or latest, with support for HTTP status-based caching. (ai/src/main/java/com/alibaba/nacos/ai/controller/PromptClientController.java)
  • Added SkillAdminController, offering REST APIs for admin operations on skills (register, update, delete, get, list) with associated forms and services. (ai/src/main/java/com/alibaba/nacos/ai/controller/SkillAdminController.java)

Configuration and Constants:

  • Centralized all prompt- and skill-related constants (API paths, group names, search modes, default namespaces, and field names) in new nested classes within Constants.java. This ensures consistency and maintainability across the codebase. (ai/src/main/java/com/alibaba/nacos/ai/constant/Constants.java)

Dependency Management:

  • Added the commons-compress library to the Maven dependencies, likely to support handling of compressed skill uploads (e.g., zip files). (ai/pom.xml)

Brief changelog

XX

Verifying this change

XXXX

Follow this checklist to help us incorporate your contribution quickly and easily:

  • Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
  • Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
  • Run mvn -B clean package apache-rat:check spotbugs:check -DskipTests to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test to make sure integration-test pass.

shiyiyue1102 and others added 10 commits January 23, 2026 13:44
support skill registry and nacos copilot
Change-Id: I8fd1e71c908e5674278752b0848c2554beffee88
* optimize skill
* feat(ai): prompt registry支持
- 将硬编码的版本部分数量替换为VERSION_PARTS_COUNT常量
- 添加FIELD_VERSION、FIELD_TEMPLATE和FIELD_COMMIT_MSG常量用于JSON字段名
- 使用常量替换硬编码的".json"后缀字符串
- 统一版本比较循环中的数组长度判断逻辑
* feat(ai): 支持配置管理中的标签功能

- 在数据库配置信息更新逻辑中实现动态SQL构建,仅当描述字段不为null时更新c_desc字段
- 重构嵌入式和外部数据源的配置信息持久化服务,支持条件性更新描述字段
- 新增promptTags字段到AI提示词相关的基础信息和详情模型中
- 扩展AI提示词发布和元数据更新接口,支持标签参数传递
- 实现在配置信息持久化过程中将标签信息存储到数据库
- 添加配置变更追踪和事件发布功能,支持元数据更新的通知机制

* refactor(config): 调整配置信息持久化服务中的映射器初始化位置

- 将 ConfigInfoMapper 的初始化从方法开始处移动到实际使用前的位置
- 确保映射器在执行数据库操作之前正确初始化
- 提高代码可读性和逻辑流程的清晰度
- 优化外部配置信息持久化服务的代码结构
- 统一嵌入式和外部配置信息持久化服务的映射器初始化方式
* Enhance MainLayout: Add language change handling to fetch notices on update (#14210)

添加 componentDidUpdate 生命周期方法,监听语言变化并重新获取公告

* fix(startup): add JVM --add-opens options for JDK 17+ compatibility (#14307)

Add --add-opens JVM options to startup scripts for Java 9+ to resolve
JRaft reflection issues when running on JDK 17+.

Added options:
- --add-opens=java.base/java.lang=ALL-UNNAMED
- --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
- --add-opens=java.base/java.util=ALL-UNNAMED

Closes #14122

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* feat(github): add anti-spam protection for GitHub Issues (#14333)

- Add config.yml to disable blank issues and guide users to proper channels
- Add anti-spam.yml GitHub Actions workflow with:
  - Keyword-based spam detection (airline names, multi-language terms)
  - New account detection (< 7 days)
  - Auto-close, label, and lock spam issues
- Remove deprecated old-issue-template.md

This addresses the recent spam bot attacks targeting the repository.

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* chore: fix some typos in comments (#14263)

Signed-off-by: slightsharp <slightsharp@outlook.com>

* fix(github): improve anti-spam detection accuracy (#14356)

- Fix account age detection by fetching user data via GitHub API
  (issue.user.created_at is not available in webhook payload)
- Add more airline names (Swiss Air, Austrian Airlines, TAP Portugal, etc.)
- Add French spam keywords (billet, réservation, vol, etc.)
- Add phone number pattern detection (2+ phone numbers triggers spam)
- Improve logging for debugging

This fixes the issue where spam from new accounts was not being detected.

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* test(auth): improve readability of LDAP auth integration test (#14357)

* fix run bugs

* 修改skill展示为文件夹形式

* skill ai优化更新

* 修复上传skill压缩包限制10M

* 创新skill填写名称限制提示

* skill文件夹多层次结构

* 优化前端页面

* auth open

* auth open

* delete .github

* delete .github

* Delete .github/ISSUE_TEMPLATE directory

* delete .github

---------

Signed-off-by: cxhello <caixiaohuichn@gmail.com>
Signed-off-by: slightsharp <slightsharp@outlook.com>
Co-authored-by: 潘祤麒 <91871324+lvren1485@users.noreply.github.com>
Co-authored-by: cxhello <49056040+cxhello@users.noreply.github.com>
Co-authored-by: slightsharp <slightsharp@outlook.com>
Co-authored-by: Zihan <zzh18189368647@gmail.com>
…ement support (#14505)

* feat(ai): 调整Prompt管理相关能力,支持 Prompt 多版本并行和按照标签订阅

* test(ai): 添加Prompt管理相关的单元测试

* feat(ai): Prompt meta 数据存储重构
- 新增 AiClientProxy 接口定义统一的 AI 操作抽象层
- 添加 AiHttpClientProxy 实现类提供基于 HTTP 的 AI 操作
- 在常量类中新增 AI 传输模式相关配置常量
- 修改 NacosAiService 使用代理接口支持传输模式切换
- 更新 Prompt 缓存持有者使用统一的客户端代理
- 将管理信息模型从 PromptAdminInfo 重命名为 PromptDescriptor
- 优化提示词管理服务实现以使用新的描述符模型
- 添加 HTTP 客户端代理的单元测试用例
@github-actions

github-actions Bot commented Mar 4, 2026

Copy link
Copy Markdown

Thanks for your this PR. 🙏
Please check again for your PR changes whether contains any usage/api/configuration change such as Add new API , Add new configuration, Change default value of configuration.
If so, please add or update documents(markdown type) in docs/next/ for repository nacos-group/nacos-group.github.io


感谢您提交的PR。 🙏
请再次查看您的PR内容,确认是否包含任何使用方式/API/配置参数的变更,如:新增API新增配置参数修改默认配置等操作。
如果是,请确保在提交之前,在仓库nacos-group/nacos-group.github.io中的docs/next/目录下添加或更新文档(markdown格式)。

Comment thread console-ui/src/pages/AI/SkillDetail/SkillDetail.js Fixed
@wuyfee

wuyfee commented Mar 4, 2026

Copy link
Copy Markdown

$\color{red}{FAILURE}$
DETAILS
✅ - docker: success
❌ - deploy (standalone & cluster & standalone_auth): failure
❌ - e2e-java-test (standalone & cluster & standalone_auth): skipped
❌ - e2e-go-test (standalone & cluster): skipped
❌ - e2e-cpp-test (standalone & cluster): skipped
❌ - e2e-csharp-test (standalone & cluster): skipped
❌ - e2e-nodejs-test (standalone & cluster): skipped
❌ - e2e-python-test (standalone & cluster): skipped
✅ - clean (standalone & cluster & standalone_auth): success

Sunrisea and others added 3 commits March 4, 2026 13:43
#14537)

Ensure SKILL.md export escapes backslashes safely and zip import restores double-quoted YAML escapes, so export-import roundtrips keep original semantics. Align skill sync test resource path with current type-folder behavior to fix CI regressions.

Made-with: Cursor
…lop skill registry with copolit (#14534)

* fix(console-ui): add authentication context to skill upload request

* feat(skills): add find-skill-from nacos
在pom.xml中的资源过滤配置里添加了几个新的目录排除规则,包括`.cursor`, `.agents`, `.qoder`以及`skills`等目录。
@wuyfee

wuyfee commented Mar 4, 2026

Copy link
Copy Markdown

$\color{red}{FAILURE}$
DETAILS
✅ - docker: success
❌ - deploy (standalone & cluster & standalone_auth): failure
❌ - e2e-java-test (standalone & cluster & standalone_auth): skipped
❌ - e2e-go-test (standalone & cluster): skipped
❌ - e2e-cpp-test (standalone & cluster): skipped
❌ - e2e-csharp-test (standalone & cluster): skipped
❌ - e2e-nodejs-test (standalone & cluster): skipped
❌ - e2e-python-test (standalone & cluster): skipped
✅ - clean (standalone & cluster & standalone_auth): success

Change-Id: I3210ea1c5eb7b9a78887daf015772a8d8356d149
@wuyfee

wuyfee commented Mar 4, 2026

Copy link
Copy Markdown

$\color{red}{FAILURE}$
DETAILS
✅ - docker: success
❌ - deploy (standalone & cluster & standalone_auth): failure
❌ - e2e-java-test (standalone & cluster & standalone_auth): skipped
❌ - e2e-go-test (standalone & cluster): skipped
❌ - e2e-cpp-test (standalone & cluster): skipped
❌ - e2e-csharp-test (standalone & cluster): skipped
❌ - e2e-nodejs-test (standalone & cluster): skipped
❌ - e2e-python-test (standalone & cluster): skipped
✅ - clean (standalone & cluster & standalone_auth): success

shiyiyue1102 and others added 4 commits March 4, 2026 20:20
* fix test

Change-Id: I3210ea1c5eb7b9a78887daf015772a8d8356d149

* fix pmd checkstyle

Change-Id: If87fd32d7fa5e5101b54b91f602335492d8c8803
* refactor(common): remove unused cache package (#14546)

Remove the entire com.alibaba.nacos.common.cache package which has
zero production references. This package was originally created as a
replacement for Guava Cache but was abandoned after bugs were found
and the code was rolled back to Guava.

Also remove the LruCache targeted SpotBugs exclusion from
spotbugs-exclude.xml since the class no longer exists.

Fixes #14545

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* testcase

Change-Id: I7204e330ad381c2bb01654705285b8bf4fa0d840

* skills registry and nacos copolit (#14245)

support skill registry and nacos copilot

* skill registry with copolit (#14388)

* test case (#14395)

Change-Id: I8fd1e71c908e5674278752b0848c2554beffee88

* * optimize skill

* optimize skill

* feat(prompt): Add Prompt Registry (#14440)

* feat(ai): prompt registry支持

* refactor(ai): 重构版本比较和JSON字段处理逻辑 (#14441)

- 将硬编码的版本部分数量替换为VERSION_PARTS_COUNT常量
- 添加FIELD_VERSION、FIELD_TEMPLATE和FIELD_COMMIT_MSG常量用于JSON字段名
- 使用常量替换硬编码的".json"后缀字符串
- 统一版本比较循环中的数组长度判断逻辑

* feat(ai): 支持配置管理中的标签功能 (#14453)

* feat(ai): 支持配置管理中的标签功能

- 在数据库配置信息更新逻辑中实现动态SQL构建,仅当描述字段不为null时更新c_desc字段
- 重构嵌入式和外部数据源的配置信息持久化服务,支持条件性更新描述字段
- 新增promptTags字段到AI提示词相关的基础信息和详情模型中
- 扩展AI提示词发布和元数据更新接口,支持标签参数传递
- 实现在配置信息持久化过程中将标签信息存储到数据库
- 添加配置变更追踪和事件发布功能,支持元数据更新的通知机制

* refactor(config): 调整配置信息持久化服务中的映射器初始化位置

- 将 ConfigInfoMapper 的初始化从方法开始处移动到实际使用前的位置
- 确保映射器在执行数据库操作之前正确初始化
- 提高代码可读性和逻辑流程的清晰度
- 优化外部配置信息持久化服务的代码结构
- 统一嵌入式和外部配置信息持久化服务的映射器初始化方式

* Modify skill functions and display (#14465)

* Enhance MainLayout: Add language change handling to fetch notices on update (#14210)

添加 componentDidUpdate 生命周期方法,监听语言变化并重新获取公告

* fix(startup): add JVM --add-opens options for JDK 17+ compatibility (#14307)

Add --add-opens JVM options to startup scripts for Java 9+ to resolve
JRaft reflection issues when running on JDK 17+.

Added options:
- --add-opens=java.base/java.lang=ALL-UNNAMED
- --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
- --add-opens=java.base/java.util=ALL-UNNAMED

Closes #14122

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* feat(github): add anti-spam protection for GitHub Issues (#14333)

- Add config.yml to disable blank issues and guide users to proper channels
- Add anti-spam.yml GitHub Actions workflow with:
  - Keyword-based spam detection (airline names, multi-language terms)
  - New account detection (< 7 days)
  - Auto-close, label, and lock spam issues
- Remove deprecated old-issue-template.md

This addresses the recent spam bot attacks targeting the repository.

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* chore: fix some typos in comments (#14263)

Signed-off-by: slightsharp <slightsharp@outlook.com>

* fix(github): improve anti-spam detection accuracy (#14356)

- Fix account age detection by fetching user data via GitHub API
  (issue.user.created_at is not available in webhook payload)
- Add more airline names (Swiss Air, Austrian Airlines, TAP Portugal, etc.)
- Add French spam keywords (billet, réservation, vol, etc.)
- Add phone number pattern detection (2+ phone numbers triggers spam)
- Improve logging for debugging

This fixes the issue where spam from new accounts was not being detected.

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* test(auth): improve readability of LDAP auth integration test (#14357)

* fix run bugs

* 修改skill展示为文件夹形式

* skill ai优化更新

* 修复上传skill压缩包限制10M

* 创新skill填写名称限制提示

* skill文件夹多层次结构

* 优化前端页面

* auth open

* auth open

* delete .github

* delete .github

* Delete .github/ISSUE_TEMPLATE directory

* delete .github

---------

Signed-off-by: cxhello <caixiaohuichn@gmail.com>
Signed-off-by: slightsharp <slightsharp@outlook.com>
Co-authored-by: 潘祤麒 <91871324+lvren1485@users.noreply.github.com>
Co-authored-by: cxhello <49056040+cxhello@users.noreply.github.com>
Co-authored-by: slightsharp <slightsharp@outlook.com>
Co-authored-by: Zihan <zzh18189368647@gmail.com>

* feat(prompt): Refactor prompt registry to support multi version management support (#14505)

* feat(ai): 调整Prompt管理相关能力,支持 Prompt 多版本并行和按照标签订阅

* test(ai): 添加Prompt管理相关的单元测试

* feat(ai): Prompt meta 数据存储重构

* feat(ai): 添加 AI 客户端代理接口支持 HTTP 和 gRPC 传输 (#14525)

- 新增 AiClientProxy 接口定义统一的 AI 操作抽象层
- 添加 AiHttpClientProxy 实现类提供基于 HTTP 的 AI 操作
- 在常量类中新增 AI 传输模式相关配置常量
- 修改 NacosAiService 使用代理接口支持传输模式切换
- 更新 Prompt 缓存持有者使用统一的客户端代理
- 将管理信息模型从 PromptAdminInfo 重命名为 PromptDescriptor
- 优化提示词管理服务实现以使用新的描述符模型
- 添加 HTTP 客户端代理的单元测试用例

* fix(skill): normalize escaped yaml parsing and stabilize related tests (#14537)

Ensure SKILL.md export escapes backslashes safely and zip import restores double-quoted YAML escapes, so export-import roundtrips keep original semantics. Align skill sync test resource path with current type-folder behavior to fix CI regressions.

Made-with: Cursor

* Add find-skill-from-nacos skill & fix skill upload authenticationDevelop skill registry with copolit (#14534)

* fix(console-ui): add authentication context to skill upload request

* feat(skills): add find-skill-from nacos

* chore(pom.xml): 添加多个目录到排除列表 (#14542)

在pom.xml中的资源过滤配置里添加了几个新的目录排除规则,包括`.cursor`, `.agents`, `.qoder`以及`skills`等目录。

* fix test (#14543)

Change-Id: I3210ea1c5eb7b9a78887daf015772a8d8356d149

* Develop skill registry with copolit (#14552)

* fix test

Change-Id: I3210ea1c5eb7b9a78887daf015772a8d8356d149

* fix pmd checkstyle

Change-Id: If87fd32d7fa5e5101b54b91f602335492d8c8803

* testcase

Change-Id: I7204e330ad381c2bb01654705285b8bf4fa0d840

---------

Signed-off-by: cxhello <caixiaohuichn@gmail.com>
Signed-off-by: slightsharp <slightsharp@outlook.com>
Co-authored-by: cxhello <49056040+cxhello@users.noreply.github.com>
Co-authored-by: Sunrisea <1336317033@qq.com>
Co-authored-by: qiacheng7 <chenxinyu.cxy@alibaba-inc.com>
Co-authored-by: 潘祤麒 <91871324+lvren1485@users.noreply.github.com>
Co-authored-by: slightsharp <slightsharp@outlook.com>
Co-authored-by: Zihan <zzh18189368647@gmail.com>
Co-authored-by: sai <53073903+saynoword@users.noreply.github.com>
* refactor(common): remove unused cache package (#14546)

Remove the entire com.alibaba.nacos.common.cache package which has
zero production references. This package was originally created as a
replacement for Guava Cache but was abandoned after bugs were found
and the code was rolled back to Guava.

Also remove the LruCache targeted SpotBugs exclusion from
spotbugs-exclude.xml since the class no longer exists.

Fixes #14545

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* testcase

Change-Id: I7204e330ad381c2bb01654705285b8bf4fa0d840

* skills registry and nacos copolit (#14245)

support skill registry and nacos copilot

* skill registry with copolit (#14388)

* test case (#14395)

Change-Id: I8fd1e71c908e5674278752b0848c2554beffee88

* * optimize skill

* optimize skill

* feat(prompt): Add Prompt Registry (#14440)

* feat(ai): prompt registry支持

* refactor(ai): 重构版本比较和JSON字段处理逻辑 (#14441)

- 将硬编码的版本部分数量替换为VERSION_PARTS_COUNT常量
- 添加FIELD_VERSION、FIELD_TEMPLATE和FIELD_COMMIT_MSG常量用于JSON字段名
- 使用常量替换硬编码的".json"后缀字符串
- 统一版本比较循环中的数组长度判断逻辑

* feat(ai): 支持配置管理中的标签功能 (#14453)

* feat(ai): 支持配置管理中的标签功能

- 在数据库配置信息更新逻辑中实现动态SQL构建,仅当描述字段不为null时更新c_desc字段
- 重构嵌入式和外部数据源的配置信息持久化服务,支持条件性更新描述字段
- 新增promptTags字段到AI提示词相关的基础信息和详情模型中
- 扩展AI提示词发布和元数据更新接口,支持标签参数传递
- 实现在配置信息持久化过程中将标签信息存储到数据库
- 添加配置变更追踪和事件发布功能,支持元数据更新的通知机制

* refactor(config): 调整配置信息持久化服务中的映射器初始化位置

- 将 ConfigInfoMapper 的初始化从方法开始处移动到实际使用前的位置
- 确保映射器在执行数据库操作之前正确初始化
- 提高代码可读性和逻辑流程的清晰度
- 优化外部配置信息持久化服务的代码结构
- 统一嵌入式和外部配置信息持久化服务的映射器初始化方式

* Modify skill functions and display (#14465)

* Enhance MainLayout: Add language change handling to fetch notices on update (#14210)

添加 componentDidUpdate 生命周期方法,监听语言变化并重新获取公告

* fix(startup): add JVM --add-opens options for JDK 17+ compatibility (#14307)

Add --add-opens JVM options to startup scripts for Java 9+ to resolve
JRaft reflection issues when running on JDK 17+.

Added options:
- --add-opens=java.base/java.lang=ALL-UNNAMED
- --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
- --add-opens=java.base/java.util=ALL-UNNAMED

Closes #14122

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* feat(github): add anti-spam protection for GitHub Issues (#14333)

- Add config.yml to disable blank issues and guide users to proper channels
- Add anti-spam.yml GitHub Actions workflow with:
  - Keyword-based spam detection (airline names, multi-language terms)
  - New account detection (< 7 days)
  - Auto-close, label, and lock spam issues
- Remove deprecated old-issue-template.md

This addresses the recent spam bot attacks targeting the repository.

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* chore: fix some typos in comments (#14263)

Signed-off-by: slightsharp <slightsharp@outlook.com>

* fix(github): improve anti-spam detection accuracy (#14356)

- Fix account age detection by fetching user data via GitHub API
  (issue.user.created_at is not available in webhook payload)
- Add more airline names (Swiss Air, Austrian Airlines, TAP Portugal, etc.)
- Add French spam keywords (billet, réservation, vol, etc.)
- Add phone number pattern detection (2+ phone numbers triggers spam)
- Improve logging for debugging

This fixes the issue where spam from new accounts was not being detected.

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* test(auth): improve readability of LDAP auth integration test (#14357)

* fix run bugs

* 修改skill展示为文件夹形式

* skill ai优化更新

* 修复上传skill压缩包限制10M

* 创新skill填写名称限制提示

* skill文件夹多层次结构

* 优化前端页面

* auth open

* auth open

* delete .github

* delete .github

* Delete .github/ISSUE_TEMPLATE directory

* delete .github

---------

Signed-off-by: cxhello <caixiaohuichn@gmail.com>
Signed-off-by: slightsharp <slightsharp@outlook.com>
Co-authored-by: 潘祤麒 <91871324+lvren1485@users.noreply.github.com>
Co-authored-by: cxhello <49056040+cxhello@users.noreply.github.com>
Co-authored-by: slightsharp <slightsharp@outlook.com>
Co-authored-by: Zihan <zzh18189368647@gmail.com>

* feat(prompt): Refactor prompt registry to support multi version management support (#14505)

* feat(ai): 调整Prompt管理相关能力,支持 Prompt 多版本并行和按照标签订阅

* test(ai): 添加Prompt管理相关的单元测试

* feat(ai): Prompt meta 数据存储重构

* feat(ai): 添加 AI 客户端代理接口支持 HTTP 和 gRPC 传输 (#14525)

- 新增 AiClientProxy 接口定义统一的 AI 操作抽象层
- 添加 AiHttpClientProxy 实现类提供基于 HTTP 的 AI 操作
- 在常量类中新增 AI 传输模式相关配置常量
- 修改 NacosAiService 使用代理接口支持传输模式切换
- 更新 Prompt 缓存持有者使用统一的客户端代理
- 将管理信息模型从 PromptAdminInfo 重命名为 PromptDescriptor
- 优化提示词管理服务实现以使用新的描述符模型
- 添加 HTTP 客户端代理的单元测试用例

* fix(skill): normalize escaped yaml parsing and stabilize related tests (#14537)

Ensure SKILL.md export escapes backslashes safely and zip import restores double-quoted YAML escapes, so export-import roundtrips keep original semantics. Align skill sync test resource path with current type-folder behavior to fix CI regressions.

Made-with: Cursor

* Add find-skill-from-nacos skill & fix skill upload authenticationDevelop skill registry with copolit (#14534)

* fix(console-ui): add authentication context to skill upload request

* feat(skills): add find-skill-from nacos

* chore(pom.xml): 添加多个目录到排除列表 (#14542)

在pom.xml中的资源过滤配置里添加了几个新的目录排除规则,包括`.cursor`, `.agents`, `.qoder`以及`skills`等目录。

* fix test (#14543)

Change-Id: I3210ea1c5eb7b9a78887daf015772a8d8356d149

* Develop skill registry with copolit (#14552)

* fix test

Change-Id: I3210ea1c5eb7b9a78887daf015772a8d8356d149

* fix pmd checkstyle

Change-Id: If87fd32d7fa5e5101b54b91f602335492d8c8803

* testcase

Change-Id: I7204e330ad381c2bb01654705285b8bf4fa0d840

* fix codeQL

Change-Id: I3a9a2e6480cf5de14f04333fcfa1b43e853303f6

---------

Signed-off-by: cxhello <caixiaohuichn@gmail.com>
Signed-off-by: slightsharp <slightsharp@outlook.com>
Co-authored-by: cxhello <49056040+cxhello@users.noreply.github.com>
Co-authored-by: Sunrisea <1336317033@qq.com>
Co-authored-by: qiacheng7 <chenxinyu.cxy@alibaba-inc.com>
Co-authored-by: 潘祤麒 <91871324+lvren1485@users.noreply.github.com>
Co-authored-by: slightsharp <slightsharp@outlook.com>
Co-authored-by: Zihan <zzh18189368647@gmail.com>
Co-authored-by: sai <53073903+saynoword@users.noreply.github.com>
@wuyfee

wuyfee commented Mar 5, 2026

Copy link
Copy Markdown

$\color{red}{FAILURE}$
DETAILS
✅ - docker: success
❌ - deploy (standalone & cluster & standalone_auth): failure
❌ - e2e-java-test (standalone & cluster & standalone_auth): skipped
❌ - e2e-go-test (standalone & cluster): skipped
❌ - e2e-cpp-test (standalone & cluster): skipped
❌ - e2e-csharp-test (standalone & cluster): skipped
❌ - e2e-nodejs-test (standalone & cluster): skipped
❌ - e2e-python-test (standalone & cluster): skipped
✅ - clean (standalone & cluster & standalone_auth): success

@wuyfee

wuyfee commented Mar 5, 2026

Copy link
Copy Markdown

$\color{red}{FAILURE}$
DETAILS
✅ - docker: success
❌ - deploy (standalone & cluster & standalone_auth): failure
❌ - e2e-java-test (standalone & cluster & standalone_auth): skipped
❌ - e2e-go-test (standalone & cluster): skipped
❌ - e2e-cpp-test (standalone & cluster): skipped
❌ - e2e-csharp-test (standalone & cluster): skipped
❌ - e2e-nodejs-test (standalone & cluster): skipped
❌ - e2e-python-test (standalone & cluster): skipped
✅ - clean (standalone & cluster & standalone_auth): success

…erConnector (#14565)

* feat(ai): add uploadSkill API to SkillAdminController

* feat(ai): fix uploadSkillFromZip unavailable in console mode and extract common remote server connector
@wuyfee

wuyfee commented Mar 5, 2026

Copy link
Copy Markdown

$\color{red}{FAILURE}$
DETAILS
❌ - docker: failure
❌ - deploy (standalone & cluster & standalone_auth): skipped
❌ - e2e-java-test (standalone & cluster & standalone_auth): skipped
❌ - e2e-go-test (standalone & cluster): skipped
❌ - e2e-cpp-test (standalone & cluster): skipped
❌ - e2e-csharp-test (standalone & cluster): skipped
❌ - e2e-nodejs-test (standalone & cluster): skipped
❌ - e2e-python-test (standalone & cluster): skipped
❌ - clean (standalone & cluster & standalone_auth): failure

* refactor(common): remove unused cache package (#14546)

Remove the entire com.alibaba.nacos.common.cache package which has
zero production references. This package was originally created as a
replacement for Guava Cache but was abandoned after bugs were found
and the code was rolled back to Guava.

Also remove the LruCache targeted SpotBugs exclusion from
spotbugs-exclude.xml since the class no longer exists.

Fixes #14545

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* testcase

Change-Id: I7204e330ad381c2bb01654705285b8bf4fa0d840

* skills registry and nacos copolit (#14245)

support skill registry and nacos copilot

* skill registry with copolit (#14388)

* test case (#14395)

Change-Id: I8fd1e71c908e5674278752b0848c2554beffee88

* * optimize skill

* optimize skill

* feat(prompt): Add Prompt Registry (#14440)

* feat(ai): prompt registry支持

* refactor(ai): 重构版本比较和JSON字段处理逻辑 (#14441)

- 将硬编码的版本部分数量替换为VERSION_PARTS_COUNT常量
- 添加FIELD_VERSION、FIELD_TEMPLATE和FIELD_COMMIT_MSG常量用于JSON字段名
- 使用常量替换硬编码的".json"后缀字符串
- 统一版本比较循环中的数组长度判断逻辑

* feat(ai): 支持配置管理中的标签功能 (#14453)

* feat(ai): 支持配置管理中的标签功能

- 在数据库配置信息更新逻辑中实现动态SQL构建,仅当描述字段不为null时更新c_desc字段
- 重构嵌入式和外部数据源的配置信息持久化服务,支持条件性更新描述字段
- 新增promptTags字段到AI提示词相关的基础信息和详情模型中
- 扩展AI提示词发布和元数据更新接口,支持标签参数传递
- 实现在配置信息持久化过程中将标签信息存储到数据库
- 添加配置变更追踪和事件发布功能,支持元数据更新的通知机制

* refactor(config): 调整配置信息持久化服务中的映射器初始化位置

- 将 ConfigInfoMapper 的初始化从方法开始处移动到实际使用前的位置
- 确保映射器在执行数据库操作之前正确初始化
- 提高代码可读性和逻辑流程的清晰度
- 优化外部配置信息持久化服务的代码结构
- 统一嵌入式和外部配置信息持久化服务的映射器初始化方式

* Modify skill functions and display (#14465)

* Enhance MainLayout: Add language change handling to fetch notices on update (#14210)

添加 componentDidUpdate 生命周期方法,监听语言变化并重新获取公告

* fix(startup): add JVM --add-opens options for JDK 17+ compatibility (#14307)

Add --add-opens JVM options to startup scripts for Java 9+ to resolve
JRaft reflection issues when running on JDK 17+.

Added options:
- --add-opens=java.base/java.lang=ALL-UNNAMED
- --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
- --add-opens=java.base/java.util=ALL-UNNAMED

Closes #14122

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* feat(github): add anti-spam protection for GitHub Issues (#14333)

- Add config.yml to disable blank issues and guide users to proper channels
- Add anti-spam.yml GitHub Actions workflow with:
  - Keyword-based spam detection (airline names, multi-language terms)
  - New account detection (< 7 days)
  - Auto-close, label, and lock spam issues
- Remove deprecated old-issue-template.md

This addresses the recent spam bot attacks targeting the repository.

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* chore: fix some typos in comments (#14263)

Signed-off-by: slightsharp <slightsharp@outlook.com>

* fix(github): improve anti-spam detection accuracy (#14356)

- Fix account age detection by fetching user data via GitHub API
  (issue.user.created_at is not available in webhook payload)
- Add more airline names (Swiss Air, Austrian Airlines, TAP Portugal, etc.)
- Add French spam keywords (billet, réservation, vol, etc.)
- Add phone number pattern detection (2+ phone numbers triggers spam)
- Improve logging for debugging

This fixes the issue where spam from new accounts was not being detected.

Signed-off-by: cxhello <caixiaohuichn@gmail.com>

* test(auth): improve readability of LDAP auth integration test (#14357)

* fix run bugs

* 修改skill展示为文件夹形式

* skill ai优化更新

* 修复上传skill压缩包限制10M

* 创新skill填写名称限制提示

* skill文件夹多层次结构

* 优化前端页面

* auth open

* auth open

* delete .github

* delete .github

* Delete .github/ISSUE_TEMPLATE directory

* delete .github

---------

Signed-off-by: cxhello <caixiaohuichn@gmail.com>
Signed-off-by: slightsharp <slightsharp@outlook.com>
Co-authored-by: 潘祤麒 <91871324+lvren1485@users.noreply.github.com>
Co-authored-by: cxhello <49056040+cxhello@users.noreply.github.com>
Co-authored-by: slightsharp <slightsharp@outlook.com>
Co-authored-by: Zihan <zzh18189368647@gmail.com>

* feat(prompt): Refactor prompt registry to support multi version management support (#14505)

* feat(ai): 调整Prompt管理相关能力,支持 Prompt 多版本并行和按照标签订阅

* test(ai): 添加Prompt管理相关的单元测试

* feat(ai): Prompt meta 数据存储重构

* feat(ai): 添加 AI 客户端代理接口支持 HTTP 和 gRPC 传输 (#14525)

- 新增 AiClientProxy 接口定义统一的 AI 操作抽象层
- 添加 AiHttpClientProxy 实现类提供基于 HTTP 的 AI 操作
- 在常量类中新增 AI 传输模式相关配置常量
- 修改 NacosAiService 使用代理接口支持传输模式切换
- 更新 Prompt 缓存持有者使用统一的客户端代理
- 将管理信息模型从 PromptAdminInfo 重命名为 PromptDescriptor
- 优化提示词管理服务实现以使用新的描述符模型
- 添加 HTTP 客户端代理的单元测试用例

* fix(skill): normalize escaped yaml parsing and stabilize related tests (#14537)

Ensure SKILL.md export escapes backslashes safely and zip import restores double-quoted YAML escapes, so export-import roundtrips keep original semantics. Align skill sync test resource path with current type-folder behavior to fix CI regressions.

Made-with: Cursor

* Add find-skill-from-nacos skill & fix skill upload authenticationDevelop skill registry with copolit (#14534)

* fix(console-ui): add authentication context to skill upload request

* feat(skills): add find-skill-from nacos

* chore(pom.xml): 添加多个目录到排除列表 (#14542)

在pom.xml中的资源过滤配置里添加了几个新的目录排除规则,包括`.cursor`, `.agents`, `.qoder`以及`skills`等目录。

* fix test (#14543)

Change-Id: I3210ea1c5eb7b9a78887daf015772a8d8356d149

* Develop skill registry with copolit (#14552)

* fix test

Change-Id: I3210ea1c5eb7b9a78887daf015772a8d8356d149

* fix pmd checkstyle

Change-Id: If87fd32d7fa5e5101b54b91f602335492d8c8803

* testcase

Change-Id: I7204e330ad381c2bb01654705285b8bf4fa0d840

* fix codeQL

Change-Id: I3a9a2e6480cf5de14f04333fcfa1b43e853303f6

* fix testcase

Change-Id: I31868ba832ed7c7c398177035028d9e316f6affb

---------

Signed-off-by: cxhello <caixiaohuichn@gmail.com>
Signed-off-by: slightsharp <slightsharp@outlook.com>
Co-authored-by: cxhello <49056040+cxhello@users.noreply.github.com>
Co-authored-by: Sunrisea <1336317033@qq.com>
Co-authored-by: qiacheng7 <chenxinyu.cxy@alibaba-inc.com>
Co-authored-by: 潘祤麒 <91871324+lvren1485@users.noreply.github.com>
Co-authored-by: slightsharp <slightsharp@outlook.com>
Co-authored-by: Zihan <zzh18189368647@gmail.com>
Co-authored-by: sai <53073903+saynoword@users.noreply.github.com>
@wuyfee

wuyfee commented Mar 5, 2026

Copy link
Copy Markdown

$\color{red}{FAILURE}$
DETAILS
✅ - docker: success
❌ - deploy (standalone & cluster & standalone_auth): failure
❌ - e2e-java-test (standalone & cluster & standalone_auth): skipped
❌ - e2e-go-test (standalone & cluster): skipped
❌ - e2e-cpp-test (standalone & cluster): skipped
❌ - e2e-csharp-test (standalone & cluster): skipped
❌ - e2e-nodejs-test (standalone & cluster): skipped
❌ - e2e-python-test (standalone & cluster): skipped
✅ - clean (standalone & cluster & standalone_auth): success

@wuyfee

wuyfee commented Mar 5, 2026

Copy link
Copy Markdown

$\color{red}{FAILURE}$
DETAILS
✅ - docker: success
❌ - deploy (standalone & cluster & standalone_auth): failure
❌ - e2e-java-test (standalone & cluster & standalone_auth): skipped
❌ - e2e-go-test (standalone & cluster): skipped
❌ - e2e-cpp-test (standalone & cluster): skipped
❌ - e2e-csharp-test (standalone & cluster): skipped
❌ - e2e-nodejs-test (standalone & cluster): skipped
❌ - e2e-python-test (standalone & cluster): skipped
✅ - clean (standalone & cluster & standalone_auth): success

* fix(console-ui): import and connect getNotice in MainLayout to fix TypeError

getNotice was called in componentDidUpdate but was neither imported
from reducers/base nor connected via Redux mapDispatchToProps,
causing 'TypeError: this.props.getNotice is not a function' when
user switches language. This crash was introduced in commit 021149e.

Changes:
- Import getNotice from reducers/base
- Add getNotice to connect() mapDispatchToProps
- Add getNotice to propTypes declaration

* feat(copilot): use AutoConfiguration + ComponentScan for copilot module loading
@wuyfee

wuyfee commented Mar 5, 2026

Copy link
Copy Markdown

$\color{red}{FAILURE}$
DETAILS
✅ - docker: success
❌ - deploy (standalone & cluster & standalone_auth): failure
❌ - e2e-java-test (standalone & cluster & standalone_auth): skipped
❌ - e2e-go-test (standalone & cluster): skipped
❌ - e2e-cpp-test (standalone & cluster): skipped
❌ - e2e-csharp-test (standalone & cluster): skipped
❌ - e2e-nodejs-test (standalone & cluster): skipped
❌ - e2e-python-test (standalone & cluster): skipped
✅ - clean (standalone & cluster & standalone_auth): success

@wuyfee

wuyfee commented Mar 6, 2026

Copy link
Copy Markdown

$\color{red}{FAILURE}$
DETAILS
✅ - docker: success
❌ - deploy (standalone & cluster & standalone_auth): failure
❌ - e2e-java-test (standalone & cluster & standalone_auth): skipped
❌ - e2e-go-test (standalone & cluster): skipped
❌ - e2e-cpp-test (standalone & cluster): skipped
❌ - e2e-csharp-test (standalone & cluster): skipped
❌ - e2e-nodejs-test (standalone & cluster): skipped
❌ - e2e-python-test (standalone & cluster): skipped
✅ - clean (standalone & cluster & standalone_auth): success

@KomachiSion
KomachiSion merged commit d105a4f into develop Mar 6, 2026
7 checks passed
@wuyfee

wuyfee commented Mar 6, 2026

Copy link
Copy Markdown

$\color{red}{FAILURE}$
DETAILS
✅ - docker: success
❌ - deploy (standalone & cluster & standalone_auth): failure
❌ - e2e-java-test (standalone & cluster & standalone_auth): skipped
❌ - e2e-go-test (standalone & cluster): skipped
❌ - e2e-cpp-test (standalone & cluster): skipped
❌ - e2e-csharp-test (standalone & cluster): skipped
❌ - e2e-nodejs-test (standalone & cluster): skipped
❌ - e2e-python-test (standalone & cluster): skipped
✅ - clean (standalone & cluster & standalone_auth): success

@KomachiSion
KomachiSion deleted the develop-skill-registry-with-copolit branch March 17, 2026 05:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants