Files
Sunrisea 0a69ba2430 [ISSUE #15263] Refactor AgentSpec subscription to HTTP polling with 304, and add Skill subscription (#15264)
* 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
2026-05-28 15:40:27 +08:00
..

Nacos example module

This module contains some examples for nacos.

  1. Run the Nacos service in standalone mode locally. By default, it uses port 8848.
  2. App.java file is a simple "Hello Nacos" program.
  3. ConfigExample.java file demonstrates how to utilize the configuration center in Nacos.
  4. NamingExample.java file demonstrates how to use Nacos for service register, deregister, and subscribe.