Skip to content

feat(acp): epic #978 — /compact, /model fuzzy, provider auto-discovery, /clear persistence#986

Merged
bug-ops merged 1 commit intomainfrom
feat/acp-epic-978
Feb 26, 2026
Merged

feat(acp): epic #978 — /compact, /model fuzzy, provider auto-discovery, /clear persistence#986
bug-ops merged 1 commit intomainfrom
feat/acp-epic-978

Conversation

@bug-ops
Copy link
Owner

@bug-ops bug-ops commented Feb 26, 2026

Summary

Acceptance Criteria

  • /compact triggers compaction and responds with status; graceful no-op for short sessions
  • /clear deletes events from acp_session_events; new messages start fresh context
  • /model claude opus resolves to the latest opus model; ambiguous input returns candidate list
  • Empty [acp] available_models → model picker auto-populated from provider list
  • cargo +nightly fmt --check passes
  • cargo clippy --workspace -- -D warnings passes (zero warnings)
  • cargo nextest run --workspace --lib --bins passes (2918/2918 tests)

Files Changed

  • crates/zeph-acp/src/agent.rs/compact, /clear sentinel dispatch, /model fuzzy matching, discover_models_from_config()
  • crates/zeph-core/src/agent/mod.rs — sentinel interception in agent loop
  • crates/zeph-core/src/agent/context.rsclear_history() method
  • crates/zeph-llm/src/provider.rsLlmProvider::list_models() default method
  • crates/zeph-llm/src/{compatible,openai,router}.rslist_models() implementations
  • src/acp.rsdiscover_models_from_config() integration

…y, /clear persistence

Phase 2 (#979): /compact triggers AgentContext::compact_context() via agent-loop
sentinel; graceful no-op when history is below minimum threshold; emits UsageUpdate.

Phase 3 (#981): /clear sentinel now also clears in-memory AgentContext state and
calls memory.delete_conversation() to remove SQLite session events; token counter resets.

Phase 4 (#980): /model resolves model IDs with case-insensitive multi-token substring
match after exact match fails; returns error with candidate list on ambiguous input.

Phase 6 (#983): LlmProvider::list_models() default method; discover_models_from_config()
auto-populates available_models at session start when config list is empty; static
override takes precedence.
@github-actions github-actions bot added enhancement New feature or request documentation Improvements or additions to documentation llm LLM provider related rust core size/M and removed enhancement New feature or request labels Feb 26, 2026
@bug-ops bug-ops merged commit af656e4 into main Feb 26, 2026
25 checks passed
@bug-ops bug-ops deleted the feat/acp-epic-978 branch February 26, 2026 18:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core documentation Improvements or additions to documentation llm LLM provider related rust size/M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant