feat(install): persist memory learning settings - #2638
Conversation
PR governanceThis PR follows the template and is marked ready for human review. |
JerrettDavis
left a comment
There was a problem hiding this comment.
Reviewed the install manifest/state/CLI plumbing for persisted memory learning options. The new fields round-trip through saved manifests, old manifests get safe defaults, and install no longer writes two competing mode authorities (proxy_mode plus HEADROOM_MODE). I also merged current main into the PR branch.
Local verification after the update: uv run --extra dev python -m pytest tests/test_install/test_memory_options.py tests/test_install/test_state.py tests/test_install/test_proxy_mode_default.py tests/test_cli/test_install_cli.py -q -> 48 passed.
JerrettDavis
left a comment
There was a problem hiding this comment.
Re-reviewed current head acd054ad after the main-branch refresh. The persisted learning/storage/evidence/project-root fields still round-trip through manifest state and runtime arguments, the single mode authority remains intact, and the integration preserves current main’s Docker host-memory-path and Podman fixes. Local validation: 49 focused installer/state tests passed; touched-file Ruff check/format, targeted mypy, and diff whitespace all pass. No blocking finding.
acd054a to
11025db
Compare
11025db to
ff04986
Compare
JerrettDavis
left a comment
There was a problem hiding this comment.
Re-reviewed current head \f04986c\ after the latest rebase. The feature patch still persists learning/storage/evidence/project-root settings through manifest state and runtime arguments, retains one mode authority, preserves explicit environment precedence, and includes backward-compatible manifest migration coverage. No new blocking issue found in the refreshed patch.
Description
Headroom already supports memory and traffic-learning controls at runtime, but persistent install manifests did not retain the learning toggle, storage mode, minimum evidence, or project-root override.
This PR persists those settings through the existing manifest, planner, state, and generated supervisor command. It also removes the duplicate legacy
HEADROOM_MODEinput.This complements merged #2563 and overlaps #2346.
Type of Change
Changes Made
--learn/--no-learn,--memory-storage,--min-evidence, and--memory-project-rootoptions.DeploymentManifest.Testing
pytest)ruff check .)mypy headroom)Test Output
Real Behavior Proof
Runtime Rollout Safety
--no-learnand omit--memoryto disable both learning and persistent memory.Review Readiness
Checklist
CHANGELOG.md— it is generated by release-please from my Conventional Commit PR title (a CI guard enforces this)Screenshots (if applicable)
Not applicable.
Additional Notes
Older manifests load with backward-compatible defaults. New manifests add four optional fields; older Headroom versions may require regenerating the profile before reuse.