Problem
SeamConfig.enabled and CompactionConfig.enabled are both hardcoded to true with no config.toml knob. The auto_compact setting in settings.toml controls UI prompting behavior, not whether the engine mechanisms themselves are active.
This means:
- Soft seams (SeamManager) fire at 192K / 384K / 576K tokens regardless of
auto_compact = false
- Full compaction (~800K) fires regardless of
auto_compact = false
Power users on 1M-token models who want full manual control over context management have no way to disable these mechanisms.
Real-world impact
At L3 (576K tokens, ~58% of 1M), the SeamManager condenses 0–512K of conversation into ~1,200 tokens using deepseek-v4-flash. This lossy summary often resurrects overridden decisions — the model starts suggesting approaches that were explicitly rejected earlier in the session, because the summary preserved the "what" but lost the "why not."
Current state
Both structs already have the enabled: bool field:
// crates/tui/src/seam_manager.rs
pub struct SeamConfig {
pub enabled: bool, // hardcoded to true
...
}
// crates/tui/src/compaction.rs
pub struct CompactionConfig {
pub enabled: bool, // hardcoded to true
...
}
Request
Expose at minimum seam_manager.enabled in config.toml under [harness_profiles.posture] or as a top-level key, so users can:
[harness_profiles.posture]
seam_manager_enabled = false
compaction_enabled = false
Or a dedicated section:
[seam_manager]
enabled = false
[compaction]
enabled = false
The structs and enabled fields already exist — this is purely a config-surface gap.
Version
v0.8.65 on macOS, deepseek-v4-pro, auto_compact = false, compaction_strategy = "prefix-cache".
Problem
SeamConfig.enabledandCompactionConfig.enabledare both hardcoded totruewith no config.toml knob. Theauto_compactsetting in settings.toml controls UI prompting behavior, not whether the engine mechanisms themselves are active.This means:
auto_compact = falseauto_compact = falsePower users on 1M-token models who want full manual control over context management have no way to disable these mechanisms.
Real-world impact
At L3 (576K tokens, ~58% of 1M), the SeamManager condenses 0–512K of conversation into ~1,200 tokens using deepseek-v4-flash. This lossy summary often resurrects overridden decisions — the model starts suggesting approaches that were explicitly rejected earlier in the session, because the summary preserved the "what" but lost the "why not."
Current state
Both structs already have the
enabled: boolfield:Request
Expose at minimum
seam_manager.enabledinconfig.tomlunder[harness_profiles.posture]or as a top-level key, so users can:Or a dedicated section:
The structs and
enabledfields already exist — this is purely a config-surface gap.Version
v0.8.65 on macOS, deepseek-v4-pro,
auto_compact = false,compaction_strategy = "prefix-cache".