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
-**Episode extraction now produces narrative task summaries** — `internal/memory/memory.go`: replaced "Extract 1-3 durable facts" with "Summarize this session covering: what was implemented/fixed, key files changed, architectural decisions, outcome". Episodes are now recoverable by semantic cross-session search instead of disappearing as unreachable bullet points.
7
+
-**Init-time episode search removed** — `odek.go`: removed `SearchEpisodes("session context", 3)` that injected potentially irrelevant episodes at agent creation. Per-turn `FormatEpisodeContext` already injects relevant episodes based on the actual user message. Saves ~400 tokens per session.
8
+
-**Structured reasoning scaffold** — `cmd/odek/main.go`: added `Reasoning scaffold for complex tasks` with 5 explicit stages (Understand → Plan → Execute → Verify → Ship), replacing vague "think first, then act".
9
+
-**Batch/parallel tool awareness** — `cmd/odek/main.go`: added `Performance tools` section telling the agent about `batch_read`, `parallel_shell`, `multi_grep` with the rule "When you need 3+ files, always use batch_read".
10
+
-**Composable subagent personas** — `cmd/odek/subagent.go`: replaced `switch/case` (first match wins) with compositional `personaFragment` collection. Compound goals like "review the auth code and fix bugs" now merge methodologies from all matched categories instead of picking only one.
11
+
12
+
### Features
13
+
-**Tool execution latency in verbose progress** — `cmd/odek/telegram.go`: added FIFO-based latency tracking (`recordToolStart`/`popToolLatency`) that measures time between `tool_call` and `tool_result` events. Output format: `🔧 read_file ✅ (12ms, 2KB)` — latency in ms or seconds, paired with result size.
14
+
15
+
### Documentation
16
+
-**CONFIG.md** — updated `tool_progress: "verbose"` value description to include latency info
17
+
-**TELEGRAM.md** — updated verbose mode example to show latency in output format
Copy file name to clipboardExpand all lines: docs/CONFIG.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -342,7 +342,7 @@ Controls how per-tool progress messages appear inside the Telegram bot during ag
342
342
|-------|----------|----------|
343
343
|`"all"` (default) | Single editable progress bubble with smart previews — e.g. `📝 read_file: "main.go"`. Includes edit throttling (1.5s), tool dedup (`×N` counter for repeated same-tool), and automatic flood-control fallback | General use — shows what the agent is doing without spamming the chat |
344
344
|`"new"`| Same as `"all"` but only updates when the tool name changes. Consecutive `read_file` calls produce one line; a `shell` call starts a new line | Long-running agents with repetitive tool chains (e.g. reading 50 files in batch) |
345
-
|`"verbose"`| Raw tool arguments as separate messages. Each tool call sends a new message with full JSON args; on completion the result is sent as a new message `✅ (size)`| Debugging — see exactly what the agent passes to each tool |
345
+
|`"verbose"`| Raw tool arguments as separate messages. Each tool call sends a new message with full JSON args; on completion the result is sent as a new message `✅ (12ms, 2KB)`including execution latency and result size | Debugging — see exactly what the agent passes to each tool and how long it takes|
346
346
|`"off"`| No per-tool progress messages at all. Only the initial "🤔 Looking into that..." and final answer are shown | Privacy-sensitive contexts or users who prefer zero noise |
Copy file name to clipboardExpand all lines: docs/TELEGRAM.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -316,7 +316,7 @@ Tool progress shows what the agent is doing in real time. Controlled by the `too
316
316
|------|----------|
317
317
|`all` (default) | Reasoning-first progress: LLM's first reasoning sentence as header, then individual tool previews below. Eg: `"Let me search that file..."` then `📝 read_file: "main.go"`. With edit throttling (1.5s), dedup, and flood-control fallback |
318
318
|`new`| Like `all` but reasoning header only updates on new iteration |
319
-
|`verbose`| Raw tool arguments as separate messages — `📝 `read_file` {"path":"main.go"}` then `📝 `read_file` ✅ (2KB)` on completion |
319
+
|`verbose`| Raw tool arguments as separate messages — `📝 `read_file` {"path":"main.go"}` then `📝 `read_file` ✅ (12ms, 2KB)` on completion, including execution latency|
320
320
|`off`| No per-tool progress messages — just the thinking preamble and final answer |
0 commit comments