feat(config): add project-scoped config overrides #504

Merged
freemo merged 1 commits from feature/m4-config-project-scope into master 2026-03-02 15:09:44 +00:00
Owner

Summary

Add --project flag to config set/config get/config list CLI commands for project-scoped configuration overrides.

  • Project-scoped values stored under [project.name] TOML tables in the global config file
  • Resolution chain: CLI flags > env vars > project scope > global config > defaults
  • config list --project name shows only project-scoped overrides with source annotations
  • Includes BDD tests, Robot integration tests, ASV benchmark, and updated documentation

Quality Gates

  • lint: PASS
  • typecheck: PASS
  • unit_tests: PASS (7522 scenarios)
  • integration_tests: PASS
  • coverage_report: PASS (98%)

Closes #259

## Summary Add --project flag to config set/config get/config list CLI commands for project-scoped configuration overrides. - Project-scoped values stored under [project.name] TOML tables in the global config file - Resolution chain: CLI flags > env vars > project scope > global config > defaults - config list --project name shows only project-scoped overrides with source annotations - Includes BDD tests, Robot integration tests, ASV benchmark, and updated documentation ### Quality Gates - lint: PASS - typecheck: PASS - unit_tests: PASS (7522 scenarios) - integration_tests: PASS - coverage_report: PASS (98%) Closes #259
freemo added 1 commit 2026-03-02 07:57:33 +00:00
feat(config): add project-scoped config overrides
CI / lint (pull_request) Successful in 15s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 41s
CI / security (pull_request) Successful in 51s
CI / unit_tests (pull_request) Successful in 2m57s
CI / integration_tests (pull_request) Successful in 4m34s
CI / docker (pull_request) Successful in 39s
CI / coverage (pull_request) Successful in 3m39s
CI / benchmark-regression (pull_request) Successful in 22m18s
b49059209a
Add --project flag to config set, config get, and config list CLI
commands, enabling per-project configuration overrides stored under
[project."<name>"] TOML tables in the global config file.

Project-scoped resolution slots between environment variable and global
levels in the ConfigService resolution chain. config list --project
shows only overrides for the named project with source annotations.

Implementation:
- ConfigService: add set_project_value() and get_project_overrides()
  methods for TOML-backed project-scoped persistence and retrieval
- CLI config commands: wire --project flag through set, get, and list
  subcommands; project-scoped list filters to overrides only
- Database persistence: project-scoped config stored as alternative
  backend for projects not using TOML
- Documentation: update docs/reference/config_resolution.md with
  project-scopable key lists, CLI examples, precedence diagram, and
  non-scopable key rejection behavior

Tests:
- Behave: 12 BDD scenarios in features/config_project_scope.feature
  covering set/get/list, precedence over global defaults, and
  non-scopable key rejection
- Robot: 5 integration smoke tests in robot/config_project_scope.robot
  for end-to-end project-scoped round-trip verification
- ASV: benchmarks/config_project_scope_bench.py measuring resolution
  overhead with project scope active

All nox quality gates pass: lint, typecheck, unit_tests (7522 scenarios),
integration_tests (Config Project Scope suite passed), and coverage at
98% line rate (threshold 97%).

Closes #259
freemo added the
Type
Feature
label 2026-03-02 07:58:00 +00:00
freemo added this to the v3.4.0 milestone 2026-03-02 07:59:23 +00:00
freemo added a new dependency 2026-03-02 08:01:27 +00:00
freemo force-pushed feature/m4-config-project-scope from b49059209a to 36254f0f75 2026-03-02 14:33:22 +00:00 Compare
freemo scheduled this pull request to auto merge when all checks succeed 2026-03-02 14:33:34 +00:00
freemo force-pushed feature/m4-config-project-scope from 36254f0f75 to 876ae7434c 2026-03-02 14:46:26 +00:00 Compare
freemo force-pushed feature/m4-config-project-scope from 876ae7434c to 5fd1cda3a2 2026-03-02 14:48:37 +00:00 Compare
freemo force-pushed feature/m4-config-project-scope from 5fd1cda3a2 to 0a9356bb11 2026-03-02 14:56:25 +00:00 Compare
freemo force-pushed feature/m4-config-project-scope from 0a9356bb11 to 7d74be68aa 2026-03-02 15:05:21 +00:00 Compare
freemo merged commit 7d74be68aa into master 2026-03-02 15:09:44 +00:00
freemo deleted branch feature/m4-config-project-scope 2026-03-02 15:09:45 +00:00
freemo added the
State
Completed
label 2026-03-04 00:41:43 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Blocks
Reference: cleveragents/cleveragents-core#504