Files
alknet/tasks/core/config-service-irpc.md
glm-5.1 a7f0dcdeb9 tasks: decompose Phase 1 core modifications into 12 atomic implementation tasks
Phase 1 of the integration plan modifies alknet-core to support the
architectural changes from Phase 0 ADRs and specs. Decomposed into
dependency-ordered tasks across config split, identity, forwarding
policy, OperationEnv, interface abstraction, and NAPI reload API.

Critical path: config-split → identity → forwarding → wire-into-handler
→ interface-trait → ssh-interface-extraction → review.

Two highest-risk tasks (interface-trait-definition, ssh-interface-extraction)
are split from §1.8 per the integration plan's note that it may need
sub-phases. OperationEnv is split into types and runtime per Phase 1
local-dispatch-only constraint.
2026-06-07 13:29:58 +00:00

1.8 KiB

id, name, status, depends_on, scope, risk, impact, level
id name status depends_on scope risk impact level
core/config-service-irpc Implement ConfigProtocol irpc service and ConfigServiceImpl pending
core/config-static-dynamic-split
narrow low component implementation

Description

Define ConfigProtocol irpc service enum and ConfigServiceImpl behind the irpc feature flag, per ADR-030 and configuration.md.

ConfigServiceImpl wraps ArcSwap<DynamicConfig> and provides access to forwarding policy, rate limits, and reload capability. In Phase 1, direct ConfigReloadHandle::reload() is sufficient for minimal deployments. The irpc service provides the same functionality for production deployments.

Key additions:

  • ConfigServiceImpl struct with forwarding_policy(), rate_limits(), reload() methods (always available, not feature-gated)
  • ConfigProtocol irpc enum behind irpc feature: GetForwardingPolicy, GetRateLimits, ReloadForwarding, ReloadRateLimits

What stays the same: Direct ConfigReloadHandle::reload() is the primary API. ConfigServiceImpl is a thin wrapper over ArcSwap, also always available. The irpc service is additive.

Acceptance Criteria

  • ConfigServiceImpl struct defined in crates/alknet-core/src/config/config_service.rs with methods per configuration.md
  • ConfigServiceImpl reads from ArcSwap<DynamicConfig> and returns Arc<ForwardingPolicy>, Arc<RateLimitConfig>
  • ConfigProtocol enum defined behind irpc feature flag
  • Without irpc feature, ConfigServiceImpl is available for direct use
  • With irpc feature, ConfigProtocol wraps ConfigServiceImpl

References

  • docs/architecture/configuration.md — ConfigServiceImpl, ConfigProtocol
  • docs/architecture/decisions/030-static-dynamic-config-split.md — ADR-030

Notes

To be filled by implementation agent

Summary

To be filled on completion