feat: section-presence toggle for insight_extraction / memory_extraction#81
Merged
Conversation
…xtraction Disable an extraction task by omitting its [tasks.*_extraction] section: - section present → filter_prompt required, else boot-fail (today's gate, re-scoped) - section absent → that extraction is off, engine boots fine (behavior change vs Spec B2) - dreaming sweeper goes inert when memory_extraction section is absent - no new config field, no schema change; model stays required - reasoning on extraction tasks already works end-to-end — documented, not built Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…mpt required) Section-presence gate helper: a present [tasks.*_extraction] section must carry a usable filter_prompt; an absent section means that extraction is off. Unit-tested at the ModelConfig level (no DB needed). Wired into the boot gate next. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Boot fails only when a [tasks.*_extraction] section is present but its filter_prompt is blank. An absent section now boots fine (that extraction is off) — behavior change from Spec B2's mandatory gate. Test asserts the shipped config still passes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Early-return before claiming any sessions when resolve_memory_extract() is None, so an omitted [tasks.memory_extraction] section turns the feature off cleanly instead of retry-looping the per-row no-stamp path. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Comment both [tasks.*_extraction] sections to say: remove the section to turn the
feature off; filter_prompt is required while present. Add a commented
reasoning = { enabled = false } showing the optional force-off.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Both language docs: present section ⇒ filter_prompt required (boot-fail otherwise); absent section ⇒ extraction off. Note the 0.6.x behavior change and the reasoning three-state. zh prose in 简体中文. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements
docs/superpowers/specs/2026-06-03-extraction-enable-disable-design.md.What
Disable an extraction task by omitting its
[tasks.*_extraction]section inmodel_config.toml:[tasks.X_extraction]filter_promptvalidate_extraction_prompts()(model_config.rs) — present section ⇒filter_promptrequired; absent ⇒ off. Unit-tested (no DB).main.rs) — replaces the old unconditional gate; bails only on present-but-blank.dreaming.rs) — goes inert whenmemory_extractionis absent, so it never claims sessions / retry-loops.insight_extractionpath already skips cleanly onNone— no change.{enabled=true}/{enabled=false}).No new config field, no schema change (
modelstays required).reasoningis unchanged.Earlier releases made both sections mandatory (an absent section boot-failed). They are now optional-by-omission. The shipped
examples/model_config.tomlkeeps both sections, so the default — both extractions on — is unchanged.Verification (local)
cargo fmt --all -- --check✓cargo clippy --workspace --all-targets -- -D warnings✓cargo test -p eros-engine-llm --lib✓ 101/101 (incl. 5 new)Built via subagent-driven execution with per-task spec + code-quality review and a final comprehensive review.
🤖 Generated with Claude Code