0a69ba2430
* feat(ai): refactor AgentSpec and Skill client to HTTP polling with 304 - Replace ConfigService push subscription with periodic HTTP polling on AgentSpec and Skill cache holders, using ETag/MD5 conditional query (304 Not Modified) to avoid full content transfers when unchanged - Add server-side support for 304 conditional response on AgentSpec and Skill query endpoints (SkillClientController, AgentSpecClientController, query result + digest utils) - Introduce SkillQueryResponse / AgentSpecQueryResponse on the client and corresponding query result types on the server - Add NacosSkillEvent, AbstractNacosSkillListener, SkillChangedEvent, SkillListenerInvoker for skill listener notification on the client - Fix double-event bug on initial subscribe: NacosAgentSpecCacheHolder and NacosSkillCacheHolder no longer publish event during initial subscribe; the first listener notification is delivered synchronously by NacosAiService to avoid racing with NotifyCenter async dispatch - Update unit tests to reflect the new single-channel notification semantics on initial subscribe - Add AgentSpecExample and SkillExample under example/ for end-to-end integration testing against a real Nacos server - Update agentspec-spec and skill-spec (en + zh-cn) accordingly * fix(ai): fix CI failures - spotless formatting and test compilation errors - Fix spotless violations in AgentSpecExample.java and SkillExample.java (blank line indentation) - Fix SkillClientControllerTest to use SkillClientOperationService (matches controller constructor) - Add missing updateStorageMd5 override in AgentSpecTypeIsolationTest and AgentSpecDeletionTest - Refactor controllers to use result.isNotModified() instead of exception-based control flow - Add notModified field to SkillQueryResult and AgentSpecQueryResult for clean 304 handling
Nacos example module
This module contains some examples for nacos.
- Run the Nacos service in standalone mode locally. By default, it uses port 8848.
- App.java file is a simple "Hello Nacos" program.
- ConfigExample.java file demonstrates how to utilize the configuration center in Nacos.
- NamingExample.java file demonstrates how to use Nacos for service register, deregister, and subscribe.