Context
Tiered context compaction (#1338) introduced two thresholds:
soft_compaction_threshold (default 0.70)
hard_compaction_threshold (default 0.90)
Current behavior
The --init wizard (src/init.rs) prompts for soft_compaction_threshold with validation that the entered value is less than hard_compaction_threshold. However, hard_compaction_threshold is never prompted — it is read from Config::default() (0.90) only for validation purposes and never written to config.
Users who want a non-default hard threshold must edit config.toml manually.
Expected behavior
The wizard should prompt for hard_compaction_threshold after the soft prompt, store it in WizardState, and write it to config.memory.hard_compaction_threshold.
Implementation
In src/init.rs step_memory():
- Add
hard_compaction_threshold: f32 to WizardState (default 0.90)
- Add an
Input prompt for hard threshold after the soft prompt, with validation that hard > soft
- Write
config.memory.hard_compaction_threshold = state.hard_compaction_threshold alongside the soft threshold
This is the only integration point from CLAUDE.md project rules not fully covered by #1338.
Context
Tiered context compaction (#1338) introduced two thresholds:
soft_compaction_threshold(default 0.70)hard_compaction_threshold(default 0.90)Current behavior
The
--initwizard (src/init.rs) prompts forsoft_compaction_thresholdwith validation that the entered value is less thanhard_compaction_threshold. However,hard_compaction_thresholdis never prompted — it is read fromConfig::default()(0.90) only for validation purposes and never written to config.Users who want a non-default hard threshold must edit
config.tomlmanually.Expected behavior
The wizard should prompt for
hard_compaction_thresholdafter the soft prompt, store it inWizardState, and write it toconfig.memory.hard_compaction_threshold.Implementation
In
src/init.rsstep_memory():hard_compaction_threshold: f32toWizardState(default 0.90)Inputprompt for hard threshold after the soft prompt, with validation that hard > softconfig.memory.hard_compaction_threshold = state.hard_compaction_thresholdalongside the soft thresholdThis is the only integration point from CLAUDE.md project rules not fully covered by #1338.