Skip to content

feat(memory): failure-driven context compression guidelines (ACON, #1647)#1808

Merged
bug-ops merged 2 commits intomainfrom
research-memory-failure-driven
Mar 15, 2026
Merged

feat(memory): failure-driven context compression guidelines (ACON, #1647)#1808
bug-ops merged 2 commits intomainfrom
research-memory-failure-driven

Conversation

@bug-ops
Copy link
Copy Markdown
Owner

@bug-ops bug-ops commented Mar 15, 2026

Summary

Implements ACON-style adaptive compression guidelines that learn from post-compaction context loss (closes #1647).

  • SQLite store (migration 032): compression_guidelines (singleton guidelines doc) and compression_failure_pairs (context/failure pairs with cleanup policy)
  • FailureDetector: conservative two-signal heuristic — both an uncertainty phrase AND a prior-context reference must appear; gated entirely behind the feature flag
  • GuidelinesUpdater: background tokio task with CancellationToken, 30s LLM timeout, exponential backoff (max 1h), pair cleanup after successful updates
  • Guidelines injection: sanitized against prompt-injection patterns before insertion into apply_deferred_summaries and chunked_compaction prompts
  • Config: [memory.compression_guidelines] with enabled (default false), update_threshold (5), max_guidelines_tokens (500), max_stored_pairs (100)
  • --init wizard: yes/no prompt for enabling compression guidelines
  • --migrate-config: default section added to config/default.toml
  • Feature flag: compression-guidelines (optional, included in full)

All 2 critical and 4 high findings from design review addressed. Follow-up issues: #1799, #1801#1803, #1805#1807.

Test plan

  • cargo nextest run --workspace --features full --lib --bins — 5787 passed
  • cargo clippy --workspace --features full -- -D warnings — clean
  • cargo +nightly fmt --check — clean
  • Default build (cargo build) compiles without compression-guidelines feature
  • cargo build --features full,compression-guidelines compiles with feature enabled
  • Enable in config and run agent through a compaction scenario to verify guidelines injection

bug-ops added 2 commits March 15, 2026 01:11
)

Implements ACON-style adaptive compression guidelines that learn from
post-compaction context loss:

- SQLite store (migration 032) with compression_guidelines and
  compression_failure_pairs tables; cleanup policy retains at most
  max_stored_pairs (default 100) unused pairs
- FailureDetector: two-signal conservative heuristic (uncertainty phrase
  AND prior-context reference both required); disabled entirely when
  feature is off
- CompressionGuidelinesStore: CRUD with in-memory-SQLite unit tests
- GuidelinesUpdater: background tokio task with CancellationToken,
  30s LLM timeout, exponential backoff (max 1h)
- Guidelines injection into apply_deferred_summaries and chunked_compaction
  prompts; sanitizes against prompt-injection patterns before use
- Config: [memory.compression_guidelines] with enabled (default false),
  update_threshold (5), max_guidelines_tokens (500), max_stored_pairs (100)
- --init wizard: yes/no prompt for enabling compression guidelines
- --migrate-config: default section added to config/default.toml
- compression-guidelines feature flag (optional, included in full)

Follow-up issues: #1799, #1801-#1803, #1805-#1807
@github-actions github-actions bot added documentation Improvements or additions to documentation memory zeph-memory crate (SQLite) rust Rust code changes core zeph-core crate dependencies Dependency updates config Configuration file changes labels Mar 15, 2026
@bug-ops bug-ops enabled auto-merge (squash) March 15, 2026 00:18
@github-actions github-actions bot added enhancement New feature or request size/XL Extra large PR (500+ lines) labels Mar 15, 2026
@bug-ops bug-ops merged commit c48afb4 into main Mar 15, 2026
15 checks passed
@bug-ops bug-ops deleted the research-memory-failure-driven branch March 15, 2026 00:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

config Configuration file changes core zeph-core crate dependencies Dependency updates documentation Improvements or additions to documentation enhancement New feature or request memory zeph-memory crate (SQLite) rust Rust code changes size/XL Extra large PR (500+ lines)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

research(memory): failure-driven context compression guidelines (ACON)

1 participant