chengyongru
6cd7063682
refactor(agent): defer transcript assembly to runner ( #5608 )
...
* refactor(agent): defer transcript assembly to runner
Keep persisted history and the fresh turn as explicit inputs until the Runner assembles the provider transcript. Preserve ContextBuilder and direct AgentRunner compatibility while making the save boundary structural.
Refs NAN-81.
* fix(providers): preserve mixed adjacent user content
2026-08-31 00:06:15 +08:00
Oxygen56
919e3d341e
fix(agent): add retry hint to tool exceptions
2026-08-30 17:03:51 +08:00
Xubin Ren
5afdffff51
fix(agent): settle reasoning close before cancellation
2026-08-30 16:32:08 +08:00
KDB
bfe041def7
fix(agent): close reasoning stream on cancellation
2026-08-30 16:32:08 +08:00
chengyongru
e73cce706c
refactor(agent): extract tool execution boundary ( #5569 )
...
* refactor(agent): extract tool execution boundary
* test(agent): use extracted tool execution boundary
2026-08-28 13:52:03 +08:00
chengyongru
cace42af14
refactor(memory): remove consolidation ratio ( #5575 )
...
* refactor(memory): remove consolidation ratio
* docs(memory): document fixed consolidation policy
* docs(memory): simplify consolidation overview
* docs(memory): rely on soft wrapping
2026-08-28 13:20:09 +08:00
chengyongru
29025f5a8b
fix(agent): default request concurrency to unlimited ( #5572 )
...
* fix(agent): default request concurrency to unlimited
* test(agent): clarify session serialization coverage
2026-08-27 23:31:38 +08:00
chengyongru
3c61fef7e8
refactor(memory): decouple archival from provider state ( #5565 )
...
* refactor(memory): decouple archival from provider state
* test(memory): remove obsolete consolidation offset coverage
2026-08-27 21:21:15 +08:00
chengyongru
b9e7c7f6fe
fix: queue concurrent subagents ( #5566 )
...
* fix: queue concurrent subagents
* chore: keep spawn schema concise
2026-08-27 17:53:28 +08:00
chengyongru
91f5a85db0
fix(agent): complete native reasoning lifecycle
2026-08-27 13:20:04 +08:00
chengyongru
55f85b3c1f
refactor(agent): remove duplicate progress streaming path
2026-08-27 10:56:07 +08:00
chengyongru
a618e80887
refactor(agent): reduce loop runner parameter plumbing
2026-08-26 17:50:52 +08:00
chengyongru
c62aec0175
fix(session): reject read_session match-all patterns
2026-08-26 16:58:29 +08:00
bingqilinweimaotai
23dc344b8d
fix: allow unfiltered read_session calls
2026-08-26 16:58:29 +08:00
chengyongru
56aa7296f3
refactor(agent): make checkpoint recovery ownership explicit
2026-08-26 16:33:59 +08:00
qtds
9f5a56f1ec
fix(gitstore): detect rapid same-size rewrites
2026-08-26 16:19:10 +08:00
chengyongru
9d34fc5af2
refactor(agent): remove loop iteration state ( #5549 )
...
* refactor(agent): remove loop iteration state
* docs(my): remove stale iteration guidance
2026-08-26 15:57:47 +08:00
chengyongru
4f6c0aedfa
refactor(agent): make run usage explicit ( #5546 )
...
* refactor(agent): make run usage explicit
* fix(api): capture usage per run
2026-08-26 15:18:53 +08:00
zpljd258
a8ffe0f136
fix(webui): project generated titles onto per-chat sessions under unifiedSession
...
With unifiedSession enabled, all turns are routed to the shared
unified:default session, so title generation, persistence, and change
notifications all happen on that shared session. The WebUI sidebar,
however, renders per-chat websocket:<id> sessions, so generated titles
never reach the session the user sees and every chat stays "Untitled".
Pass the origin chat_id through maybe_generate_webui_title_after_turn and
add a target_session_key to maybe_generate_webui_title so the title is
written to the per-chat session while conversation content still comes
from the shared (routed) session. When the routed session differs from
the per-chat session, the latest user/assistant exchange is used as the
title prompt since the shared session mixes content from every channel.
The shared session's title metadata is no longer read or written, so
stale shared titles can no longer leak into per-chat sessions.
2026-08-26 10:52:56 +08:00
chengyongru
42f37dc4c0
fix(provider): stabilize Codex prompt cache routing ( #5540 )
2026-08-26 01:36:00 +08:00
chengyongru
e308f7fdd4
test(agent): remove obsolete blocking drain case
2026-08-25 17:56:16 +08:00
chengyongru
66d9328a00
fix(agent): defer subagent wait until turn exit
2026-08-25 17:56:16 +08:00
chengyongru
4b2965c8f3
feat: add demand-driven document retrieval ( #5525 )
2026-08-25 15:34:48 +08:00
chengyongru
5cf78540a4
fix(agent): wait for exec sessions without polling ( #5526 )
2026-08-25 14:46:02 +08:00
chengyongru
8332c604da
fix(agent): let subagents recover from tool errors
2026-08-25 11:54:40 +08:00
Xubin Ren
7fb0811fbb
fix(agent): honor selected project workspace
2026-08-25 02:14:02 +08:00
chengyongru
2ac802b2d5
feat(usage): add unified provider usage backend
2026-08-25 01:22:25 +08:00
chengyongru
9895c23cb5
refactor(providers): define typed usage contract
2026-08-25 01:04:25 +08:00
chrischen-coder
f5e467626d
fix(agent): time out no-tools model requests
2026-08-25 00:34:01 +08:00
Xubin Ren
2cdfba38b2
fix(runtime): preserve interrupted turns on gateway exit
2026-08-24 00:58:04 +08:00
Xubin Ren
c7e2a474a0
fix(runtime): normalize recovery session routing
2026-08-24 00:58:04 +08:00
Xubin Ren
12029f8812
feat(runtime): add user-controlled turn recovery
2026-08-24 00:58:04 +08:00
Xubin Ren
48eea29313
feat(webui): unify turn observability
2026-08-22 20:51:24 +08:00
chengyongru
1fe36d5dec
fix(dream): gate cursor on run completion
2026-08-22 02:05:40 +08:00
flobo3
d853ac239f
fix(dream): advance cursor when tool errors were recovered, and report why a run did not complete
2026-08-22 02:05:40 +08:00
chengyongru
761e95b659
refactor(providers): simplify retry fallback routing
2026-08-21 16:46:38 +08:00
chengyongru
9a6dc371b3
refactor: pass retry exhaustion callbacks explicitly
2026-08-21 16:46:38 +08:00
chengyongru
f93d4c3ae4
fix(providers): retry before falling back
2026-08-21 16:46:38 +08:00
chengyongru
8ca4bd9121
fix(agent): keep default prompt paths relative
2026-08-21 11:45:05 +08:00
chengyongru
ac13ad65cd
fix(memory): preserve replay prefix on session reset
2026-08-19 18:40:20 +08:00
chengyongru
9ef1e292ea
fix(session): preserve complete transcripts
2026-08-19 18:40:20 +08:00
chengyongru
3c41d5e7f3
refactor(skills): own explicit runtime context loading
2026-08-19 18:40:20 +08:00
chengyongru
cc07ac1e12
fix(memory): avoid re-archiving recent history
2026-08-19 18:40:20 +08:00
chengyongru
f13abe0806
refactor(memory): require archive count in prompt
2026-08-19 18:40:20 +08:00
chengyongru
f63001828f
refactor(memory): guard empty summaries only on write
2026-08-19 18:40:20 +08:00
chengyongru
6bb3b33aac
fix(memory): ignore empty consolidation summaries
2026-08-19 18:40:20 +08:00
chengyongru
8a2aa0821b
fix(agent): keep explicit skills out of system prompt
2026-08-19 18:40:20 +08:00
chengyongru
ff674144d6
fix(memory): reject truncated consolidation output
2026-08-19 18:40:20 +08:00
chengyongru
16be6b0f36
refactor(memory): unify structured consolidation flow
2026-08-19 18:40:20 +08:00
chengyongru
d4de0e4e3d
test(memory): sharpen compaction coverage
2026-08-19 18:40:20 +08:00