You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implements three complementary skill evolution mechanisms in zeph-skills:
- ARISE: summarizes successful multi-tool solution traces into SKILL.md
description updates via background LLM call; uses historical success/failure
rates to bias embedding candidate re-ranking (policy-driven selection)
- STEM: tracks recurring tool-use patterns in skill_usage_log (migration 057);
auto-generates quarantined SKILL.md candidates when a pattern repeats >= N
times with sufficient success rate
- ERL: post-task reflection extracts transferable heuristics into
skill_heuristics table (migration 058); injects top heuristics into skill
matching context as a ## Learned Heuristics section
All three features are disabled by default, fire-and-forget via tokio::spawn,
expose *_provider config fields for multi-model routing, and emit TUI status
spinners. LLM-generated skill content is validated and starts at quarantined
trust level. Config migration and --init wizard updated for the 14 new fields.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
10
10
11
11
- feat(tools): `[tools.shell] max_snapshot_bytes` config option to limit transaction snapshot size — returns `SnapshotFailed` when cumulative copied bytes exceed the limit; `0` means unlimited (default)
12
12
- feat(tools): transactional `ShellExecutor` — opt-in snapshot+rollback for shell commands; file-level snapshot is captured before write commands (detected via `WRITE_INDICATORS` heuristic + redirection target extraction); rollback restores originals on configurable exit codes; new `ShellConfig` fields: `transactional`, `transaction_scope` (glob-filtered paths), `auto_rollback`, `auto_rollback_exit_codes`, `snapshot_required`; new `ToolError::SnapshotFailed`, `AuditResult::Rollback`, `ToolEvent::Rollback` variants; backed by `tempfile::TempDir` for automatic cleanup on success (closes #2414)
13
+
- feat(skills): ARISE trace-based skill improvement — after a successful multi-tool turn, `spawn_arise_trace_improvement()` fires a background LLM call to summarize the tool sequence into an improved SKILL.md body; new version is saved with `source = 'arise_trace'` and starts at `quarantined` trust level (never inherits parent trust); controlled by `[skills.learning] arise_enabled = false`, `arise_min_tool_calls = 2`, `arise_trace_provider = ""` (closes #2398)
14
+
- feat(skills): STEM pattern-to-skill conversion — `spawn_stem_detection()` logs every tool sequence to `skill_usage_log` after each turn; `find_recurring_patterns()` detects sequences meeting `stem_min_occurrences` and `stem_min_success_rate`; qualifying patterns trigger a background LLM call to generate a SKILL.md candidate written to the managed skills directory at `quarantined` trust level; retention pruning via `stem_retention_days`; controlled by `[skills.learning] stem_enabled = false` (closes #2462)
15
+
- feat(skills): ERL experiential reflective learning — `spawn_erl_reflection()` fires a background LLM call after each successful skill+tool turn to extract transferable heuristics; heuristics are stored in `skill_heuristics` table with Jaccard deduplication; at skill matching time `build_erl_heuristics_prompt()` prepends a `## Learned Heuristics` section to the skill context; controlled by `[skills.learning] erl_enabled = false`, `erl_max_heuristics_per_skill = 3`, `erl_min_confidence = 0.5` (closes #2463)
16
+
- feat(db): migrations 057 (`skill_usage_log`) and 058 (`skill_heuristics`) for STEM and ERL storage; both SQLite and Postgres variants
17
+
- feat(config): `LearningConfig` extended with 14 new fields for ARISE/STEM/ERL (all disabled by default); new fields registered in `config/default.toml` as commented-out entries
13
18
- feat(core): `/new` slash command — resets conversation context (messages, compaction state, tool caches, focus/sidequest, pending plans) while preserving memory, MCP connections, providers, and skills; creates a new `ConversationId` in SQLite for audit trail; generates a session digest for the outgoing conversation fire-and-forget unless `--no-digest` is passed; active sub-agents and background compression tasks are cancelled; `--keep-plan` preserves a pending plan graph; available in all channels (CLI, TUI, Telegram) via the unified `handle_builtin_command` path (closes #2451)
14
19
- feat(memory): Kumiho AGM-inspired belief revision for graph edges — new `BeliefRevisionConfig` with `similarity_threshold`; `find_superseded_edges()` uses contradiction heuristic (same relation domain + high cosine similarity = supersession); `superseded_by` column added to `graph_edges` for audit trail; `invalidate_edge_with_supersession()` in `GraphStore`; `resolve_edge_typed` accepts optional `BeliefRevisionConfig`; controlled by `[memory.graph.belief_revision] enabled = false` (migration 056, closes #2441)
15
20
- feat(memory): D-MEM RPE-based tiered graph extraction routing — `RpeRouter` computes heuristic surprise score from context similarity and entity novelty; low-RPE turns skip the MAGMA LLM extraction pipeline; `consecutive_skips` safety valve forces extraction after `max_skip_turns` consecutive skips; `extract_candidate_entities()` helper for cheap regex+keyword entity detection; controlled by `[memory.graph.rpe] enabled = false, threshold = 0.3, max_skip_turns = 5` (closes #2442)
0 commit comments