| 03-agent-registry-sse-push |
01 |
agent-registry |
| concurrenthashmap |
| lifecycle |
| heartbeat |
| rest-api |
| spring-scheduled |
|
| phase |
provides |
| 01-ingestion-pipeline |
IngestionBeanConfig pattern, @Scheduled pattern, ProtocolVersionInterceptor |
|
|
| AgentRegistryService with register/heartbeat/lifecycle/command management |
| AgentInfo record with wither-style immutable state transitions |
| AgentCommand record with delivery status tracking |
| AgentEventListener interface for SSE bridge (Plan 02) |
| POST /api/v1/agents/register endpoint |
| POST /api/v1/agents/{id}/heartbeat endpoint |
| GET /api/v1/agents endpoint with ?status= filter |
| AgentLifecycleMonitor with LIVE->STALE->DEAD transitions |
| AgentRegistryConfig with all timing properties |
|
| 03-02-sse-push |
| 04-security |
|
| added |
patterns |
|
|
| immutable-record-with-wither |
| compute-if-present-atomic-swap |
| agent-lifecycle-state-machine |
|
|
| created |
modified |
| cameleer3-server-core/src/main/java/com/cameleer3/server/core/agent/AgentInfo.java |
| cameleer3-server-core/src/main/java/com/cameleer3/server/core/agent/AgentState.java |
| cameleer3-server-core/src/main/java/com/cameleer3/server/core/agent/AgentCommand.java |
| cameleer3-server-core/src/main/java/com/cameleer3/server/core/agent/CommandStatus.java |
| cameleer3-server-core/src/main/java/com/cameleer3/server/core/agent/CommandType.java |
| cameleer3-server-core/src/main/java/com/cameleer3/server/core/agent/AgentRegistryService.java |
| cameleer3-server-core/src/main/java/com/cameleer3/server/core/agent/AgentEventListener.java |
| cameleer3-server-core/src/test/java/com/cameleer3/server/core/agent/AgentRegistryServiceTest.java |
| cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/AgentRegistryConfig.java |
| cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/AgentRegistryBeanConfig.java |
| cameleer3-server-app/src/main/java/com/cameleer3/server/app/agent/AgentLifecycleMonitor.java |
| cameleer3-server-app/src/main/java/com/cameleer3/server/app/controller/AgentRegistrationController.java |
| cameleer3-server-app/src/test/java/com/cameleer3/server/app/controller/AgentRegistrationControllerIT.java |
|
| cameleer3-server-app/src/main/java/com/cameleer3/server/app/Cameleer3ServerApplication.java |
| cameleer3-server-app/src/main/resources/application.yml |
|
|
| AgentInfo as Java record with wither-style methods for immutable ConcurrentHashMap swapping |
| Dead threshold measured from staleTransitionTime, not lastHeartbeat (matches requirement precisely) |
| spring.mvc.async.request-timeout=-1 set now for SSE support in Plan 02 |
|
| Immutable record + ConcurrentHashMap.compute for thread-safe state transitions |
| AgentEventListener interface in core module as bridge to SSE layer in app module |
|
|
15min |
2026-03-11 |