Remove test_reports/summary.txt and test_reports/test_results.json from git
tracking as they are build artifacts that should not be committed to the
repository. Add test_reports/ to .gitignore to prevent future accidental
commits of these files.
ISSUES CLOSED: #7503
- Remove committed test_reports/ CI artifacts (summary.txt, test_results.json)
- Add test_reports/ to .gitignore to prevent future commits
- Update CHANGELOG.md with Fixed entry for #9401 under [Unreleased]
- Update CONTRIBUTORS.md with credit for directory clustering fix (#9401)
- Add BDD test scenarios for absolute path clustering in
features/large_project_decomposition.feature:
* Directory clustering works correctly with absolute file paths
* _directory_key returns correct key for absolute path with root
* Directory clustering does not collapse all absolute paths into one bucket
- Add corresponding step implementations in
features/steps/large_project_decomposition_coverage_steps.py
All 38 scenarios pass (including 3 new absolute path scenarios).
Lint and typecheck pass.
ISSUES CLOSED: #9401
ContextTierService started empty on every CLI invocation, so the LLM
received zero file context during plan execution (bug #1028).
- Add context_tier_hydrator.py: reads files from linked project resources
(via git ls-files or os.walk) and stores them as TieredFragment objects
in the tier service. Respects max file size (256 KB), total budget
(10 MB), binary exclusion, and .git/node_modules/__pycache__ skipping.
- Wire hydration into LLMExecuteActor.execute() via lazy import (avoids
M1 E2E regression from top-level import).
- Inject tier_service, project_repository, resource_registry into
LLMExecuteActor from the DI container in _get_plan_executor().
- Add tier_service property to ExecutePhaseContextAssembler.
- Suppress exc_info traceback rendering in context warnings to prevent
false-positive crash detection in M1 E2E tests.
- Add sandbox file-writing support in plan apply (path traversal guards,
protected directory skipping).
- Add 6 Behave scenarios for context tier hydration.
Closes#1028
Implement inline permission question widget for quick allow/reject
decisions within the conversation stream with file diff context.
ISSUES CLOSED: #997
The ACP module was properly renamed to A2A in commit ec0b7631 (closing #688),
but the deprecated src/cleveragents/acp/ path was not explicitly excluded from
version control. While __pycache__/ and *.py[cod] are already gitignored
globally, add an explicit .gitignore entry for the deprecated acp/ package path
to prevent accidental re-introduction and document the deprecation per ADR-047.
Verification performed:
- Confirmed src/cleveragents/acp/ does not exist in git (only __pycache__
artifacts remain on developer machines as untracked build artifacts)
- Confirmed zero tracked .pyc files across the entire repository
- Confirmed zero imports referencing cleveragents.acp in source, test, and
configuration files
- Confirmed no orphaned .pyc files exist without corresponding .py sources
- All nox sessions pass (coverage: 98.7%)
ISSUES CLOSED: #947
Implement three-scope configuration resolution (local > project > global)
with deep merge. Add ConfigScope enum, project-root discovery, and
config.local.toml file support.
Changes:
- Add LOCAL to ConfigLevel enum and new ConfigScope enum (GLOBAL, PROJECT, LOCAL)
- Implement discover_project_root() walking up from CWD for cleveragents.toml/.cleveragents
- Implement config.local.toml file loading in ConfigService
- Implement three-scope deep merge via _deep_merge() helper
- Add read_project_config(), read_local_config(), read_merged_config() methods
- Add write_scoped_config() for writing to any scope file
- Update set_value() to accept optional scope parameter
- Update resolve() with six-level precedence chain (CLI > env > local > project > global > default)
- Update CLI config set with --scope flag (global/project/local)
- Add config.local.toml to .gitignore and DEFAULT_IGNORE_PATTERNS
- Add Behave BDD scenarios for three-scope resolution, deep merge, and project-root discovery
ISSUES CLOSED: #937