feat(config): add config service with multi-level resolution #474

Merged
freemo merged 1 commits from feature/m3-config-service into master 2026-03-01 05:26:48 +00:00
Owner

Summary

Implement the complete configuration system with multi-level resolution chain, typed key registry, and CLI integration per specification.

ConfigService changes

  • Expand _build_catalog() to register all 103 config keys (102 spec-aligned + 1 skills extension) across 9 groups: core (14), server (4), actor (5), plan (8), sandbox (5), index (12), context (43), provider (11), skills (1)
  • Each key carries exact dotted-dash name, Python type, default value, explicit env var name per spec, project-scopability flag, and description
  • Fix _env_name() to convert dots and dashes to underscores
  • Provider keys use standard env var names (e.g., OPENAI_API_KEY)
  • Register skills.agent_skills_paths for backward compatibility with skill discovery

CLI commands rewiring

  • Rewrite config set/get/list to use ConfigService instead of Settings
  • Add --verbose flag to config get showing full 5-level resolution chain
  • Add --project flag to config set/get/list for project-scoped overrides
  • Support both glob and regex patterns in config list
  • Validate keys against ConfigService registry with actionable errors

Test fixes

  • Update all Behave feature files and step definitions to use new spec-aligned key names
  • Update robot helpers to use core.log.level instead of old log_level
  • Update robot/benchmark key count expectations from 102 to 103
  • Accept global source name from ConfigService resolution in roundtrip test

Closes #258

## Summary Implement the complete configuration system with multi-level resolution chain, typed key registry, and CLI integration per specification. ### ConfigService changes - Expand `_build_catalog()` to register all 103 config keys (102 spec-aligned + 1 skills extension) across 9 groups: core (14), server (4), actor (5), plan (8), sandbox (5), index (12), context (43), provider (11), skills (1) - Each key carries exact dotted-dash name, Python type, default value, explicit env var name per spec, project-scopability flag, and description - Fix `_env_name()` to convert dots and dashes to underscores - Provider keys use standard env var names (e.g., `OPENAI_API_KEY`) - Register `skills.agent_skills_paths` for backward compatibility with skill discovery ### CLI commands rewiring - Rewrite config set/get/list to use ConfigService instead of Settings - Add `--verbose` flag to config get showing full 5-level resolution chain - Add `--project` flag to config set/get/list for project-scoped overrides - Support both glob and regex patterns in config list - Validate keys against ConfigService registry with actionable errors ### Test fixes - Update all Behave feature files and step definitions to use new spec-aligned key names - Update robot helpers to use `core.log.level` instead of old `log_level` - Update robot/benchmark key count expectations from 102 to 103 - Accept `global` source name from ConfigService resolution in roundtrip test Closes #258
freemo added this to the v3.4.0 milestone 2026-02-28 04:57:13 +00:00
freemo added the
Type
Feature
label 2026-02-28 04:57:14 +00:00
freemo force-pushed feature/m3-config-service from 3ed5e44659 to ab84752abe 2026-02-28 17:44:05 +00:00 Compare
freemo force-pushed feature/m3-config-service from ab84752abe to c9626775ee 2026-02-28 18:18:02 +00:00 Compare
freemo scheduled this pull request to auto merge when all checks succeed 2026-02-28 18:40:08 +00:00
freemo added a new dependency 2026-02-28 18:43:26 +00:00
freemo force-pushed feature/m3-config-service from c9626775ee to 994672ef45 2026-03-01 03:15:22 +00:00 Compare
freemo scheduled this pull request to auto merge when all checks succeed 2026-03-01 03:15:36 +00:00
freemo added the
Points
13
Priority
Medium
State
Verified
labels 2026-03-01 04:36:06 +00:00
freemo force-pushed feature/m3-config-service from 994672ef45 to 7c4663b8ee 2026-03-01 04:38:42 +00:00 Compare
freemo merged commit 7c4663b8ee into master 2026-03-01 05:26:48 +00:00
freemo deleted branch feature/m3-config-service 2026-03-01 05:26:48 +00:00
freemo added
State
Completed
and removed
State
Verified
labels 2026-03-04 00:41:58 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Reference: cleveragents/cleveragents-core#474