fix(config): correct Settings.data_dir default from Path("data") to Path.home() / ".cleveragents"
CI / lint (pull_request) Successful in 26s
CI / typecheck (pull_request) Successful in 48s
CI / security (pull_request) Successful in 1m0s
CI / quality (pull_request) Successful in 35s
CI / build (pull_request) Successful in 18s
CI / helm (pull_request) Successful in 23s
CI / unit_tests (pull_request) Successful in 6m42s
CI / e2e_tests (pull_request) Successful in 16m55s
CI / integration_tests (pull_request) Successful in 23m3s
CI / coverage (pull_request) Successful in 10m44s
CI / docker (pull_request) Successful in 1m42s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Successful in 58m29s

The Settings class had data_dir defaulting to Path("data") — a relative
path — but the specification requires the default data directory to be
~/.cleveragents. This inconsistency caused any code reading Settings().data_dir
without setting CLEVERAGENTS_DATA_DIR to use a relative 'data/' directory
instead of the spec-required ~/.cleveragents, affecting log storage, database
location, cache, backups, and all persistent state.

Changes:
- Fix data_dir default_factory from Path("data") to Path.home() / ".cleveragents"
- Add Behave scenario: 'data_dir default is the spec-required home directory path'
- Add Behave scenario: 'data_dir env var override takes precedence over default'
- Add step definition: 'the data directory should equal the home cleveragents path'

Settings.data_dir is now consistent with ConfigService core.data-dir default
(~/.cleveragents). The CLEVERAGENTS_DATA_DIR env var override continues to work.

ISSUES CLOSED: #2851
This commit is contained in:
2026-04-05 07:33:40 +00:00
parent e2057f9117
commit e4966021e9
3 changed files with 21 additions and 1 deletions
+9
View File
@@ -104,6 +104,15 @@ def step_check_log_dir_contains(context, substring):
assert substring in str(context.settings.log_dir)
@then("the data directory should equal the home cleveragents path")
def step_check_data_dir_home_cleveragents(context):
"""Check that data_dir defaults to Path.home() / '.cleveragents'."""
expected = Path.home() / ".cleveragents"
assert context.settings.data_dir == expected, (
f"Expected data_dir={expected!r}, got {context.settings.data_dir!r}"
)
@then('the data directory should be "{expected}"')
def step_check_data_dir(context, expected):
"""Check the data directory."""