chengyongru
93f71b61a0
fix(memory): reject tool-call-only consolidation
2026-08-19 18:40:20 +08:00
chengyongru
12a4a8c04c
fix(memory): preserve idle consolidation boundaries
2026-08-19 18:40:20 +08:00
chengyongru
7335f71c5a
perf(memory): reuse session context for idle compaction
2026-08-19 18:40:20 +08:00
chengyongru
9e046815bc
fix(webui): assign readable session handles
2026-08-19 01:15:56 +08:00
chengyongru
251a1ccd40
refactor: simplify cross-session messaging
2026-08-19 01:15:56 +08:00
chengyongru
0e184965e8
feat(webui): add lightweight session messaging via mentions
2026-08-19 01:15:56 +08:00
Xubin Ren
8eb2742c9b
test(ci): stabilize cross-platform agent checks
2026-08-17 20:56:10 +08:00
Xubin Ren
79d51be71f
feat(tui): integrate with Herdr host
2026-08-17 20:56:10 +08:00
Xubin Ren
783d381710
feat(tui): replace footer hints with model telemetry
2026-08-17 20:56:10 +08:00
Xubin Ren
4391bbf4da
feat(tui): add agent interaction workflows
2026-08-17 20:56:10 +08:00
Xubin Ren
731b8fc2ed
fix(models): synchronize canonical runtime selection
2026-08-16 11:50:56 +08:00
Xubin Ren
3dc38f6396
refactor(models): unify preset names
2026-08-16 11:50:56 +08:00
Xubin Ren
5e84055dbb
fix(plugins): verify content at skill read boundary
2026-08-16 00:01:54 +08:00
yu-xin-c
e99b1a11aa
fix(plugins): revalidate cached skill roots
2026-08-16 00:01:54 +08:00
Xubin Ren
2f19068eb0
fix(session): clear file state at deletion boundary
2026-08-15 23:49:20 +08:00
yu-xin-c
42afebb0cb
fix(agent): bound per-session file state
2026-08-15 23:49:20 +08:00
dajiaohuang
057c5e849b
fix(session): restore state when file-cap archive fails
2026-08-14 11:22:22 +08:00
chengyongru
e226242dfc
fix(session): serialize canonical file access ( #5383 )
2026-08-14 10:32:17 +08:00
arcdrake22 and Xubin Ren
0c684c5a99
fix(gemini): preserve imported tool history across model switches
...
Co-authored-by: Xubin Ren <52506698+Re-bin@users.noreply.github.com >
2026-08-13 03:07:37 +09:00
chengyongru
19997d20bb
refactor: move MCP lifecycle out of AgentLoop ( #5343 )
2026-08-12 17:51:04 +08:00
Xubin Ren
72d3ce6b23
fix(skills): make PNG weather example Windows-safe
2026-08-12 02:48:03 +09:00
Kail Tian
b14ac4c401
fix(skills): make weather workflow Windows-safe
2026-08-12 02:48:03 +09:00
chengyongru
d45c893f68
fix(webui): surface MCP runtime connection failures ( #5331 )
2026-08-11 23:52:02 +08:00
Xubin Ren
247c474e64
perf(plugins): cache verified skill roots
2026-08-11 20:16:24 +09:00
Xubin Ren
a2979c3a4b
fix(plugins): harden activation boundaries
2026-08-11 20:16:24 +09:00
Xubin Ren
d5e0df6963
feat(plugins): integrate portable Agent Plugins
2026-08-11 20:16:24 +09:00
chengyongru
8e77f3f8a4
feat(mcp): add browser OAuth for remote servers ( #5316 )
2026-08-10 23:44:37 +08:00
chengyongru
85a452e5c7
refactor(agent): replace reflective runtime state access ( #5319 )
2026-08-10 16:44:26 +08:00
chengyongru
55ecda275d
test: strengthen user-path coverage and CI gates ( #5308 )
2026-08-09 21:37:06 +08:00
Xubin Ren
c410ea444c
fix(agent): stop session-owned exec processes
2026-08-08 23:20:59 +08:00
chengyongru
a5bc3bfbb9
fix(webui): complete temporary chat mode
2026-08-08 23:20:59 +08:00
Xubin Ren
c9a6145878
feat(webui): add temporary chat mode
2026-08-08 23:20:59 +08:00
chengyongru
113e8d67ad
refactor: remove verified dead code
2026-08-08 21:10:34 +08:00
chengyongru
cdb2a474f9
refactor(webui): remove legacy session messages route
2026-08-07 15:16:57 +08:00
chengyongru
ff6deda178
fix: modernize dependency recovery guidance ( #5282 )
2026-08-07 13:58:13 +08:00
chengyongru
2c7943a133
fix(memory): archive short idle sessions for Dream
2026-08-07 11:45:49 +08:00
chengyongru
8dfce4c162
fix(session): require user anchor for delivery retention
2026-08-07 10:53:55 +08:00
ziuus
60282d1588
fix(session): preserve proactive channel delivery during session retention trimming
2026-08-07 10:53:55 +08:00
chengyongru
6e9ae5bd05
refactor(session): remove request-scoped access grants ( #5238 )
2026-08-05 10:18:46 +08:00
chengyongru
f45436b61d
fix(commands): reject invalid slash commands
2026-08-04 17:11:44 +08:00
Xubin Ren
d99f589a59
refactor(session): clarify reference boundaries
2026-08-04 12:14:51 +08:00
Xubin Ren
d8aeb0eb2c
refactor(session): simplify cross-session flow
2026-08-04 12:14:51 +08:00
Xubin Ren
62d34b5eb7
refactor(session): tighten cross-session access
2026-08-04 12:14:51 +08:00
Xubin Ren
f15ea84dd1
fix(session): enforce trusted read scope
2026-08-04 12:14:51 +08:00
Xubin Ren
4c07c40b34
feat(session): link agent references
2026-08-04 12:14:51 +08:00
Xubin Ren
5dd3dc5450
fix(session): harden cross-session references
2026-08-04 12:14:51 +08:00
Xubin Ren
9b25da7b92
feat(session): add cross-session references
2026-08-04 12:14:51 +08:00
Xubin Ren
39e1533c3b
fix(gateway): make resource teardown cancellation-safe
2026-08-03 16:00:39 +08:00
santhreal
4c387f6633
fix(memory): handle non-string timestamp and missing role in raw_archive
2026-08-01 20:14:28 +08:00
KDB
39bb20c76b
fix(session): tolerate malformed persisted session summary
...
AutoCompact.prepare_session runs on the turn hot path
(AgentLoop._compact_session) and read the persisted _last_summary metadata
with an unguarded meta['text'] and datetime.fromisoformat(meta['last_active']).
A _last_summary dict that was hand-edited or written by another version
(missing text/last_active, or a non-ISO last_active) raised KeyError/ValueError
out of the turn.
Sibling readers already tolerate the same data: estimate_session_prompt_tokens
uses .get('text') and _archive parses inside try/except. Mirror that tolerance:
skip when text is unusable, and fall back to the session's own updated_at (the
value the writer persists) when last_active is missing or unparseable, so the
archived summary is preserved instead of crashing the turn.
2026-08-01 19:29:16 +08:00