Commit Graph
2182 Commits
Author SHA1 Message Date
Dudu-0223 30650824c9 Merge latest master and refresh persistence catalog 2026-10-23 14:55:33 +08:00
Dudu-0223 b096659245 fix(session): make ordinary forks independent of source lineage 2026-10-23 14:48:07 +08:00
mektpoy 6e4eda77c8 Merge origin/master into fix/agent-loop-series-start-prefix-cache 2026-10-23 14:06:46 +08:00
mektpoy 6b9f7fcaa7 test(agent-loop): pin the unchanged-text series start in a recorded session
Add an authored headless scenario that appends a changed prompt and then replaces a surface node before the third step. The unchanged-rendering series start must keep both prompt versions and write no system/message event; the scenario fails against the pre-fix projection. Also tighten the tool-series-start assertions and make the prefix premise explicit.
2026-10-23 14:06:08 +08:00
mektpoy d5ee15acf2 docs(agent-loop): align series-start contracts with shipped behavior
Clarify the SystemPromptDecisionInput.startsSeries contract (a new request series no longer implies consolidation), record the tool-schema series-start exception consistently in the decision and consequences, and correct the complete-declaration attribution to the unsupported-route projection.
2026-10-23 14:06:07 +08:00
imccyu 8a01b8360b Merge master into DSH 0.2.1-rc.3 synchronization branch 2026-10-23 13:38:11 +08:00
ZiyaZhang a34a4524e5 Merge remote-tracking branch 'origin/master' into pr-6635-ci 2026-10-22 21:12:11 -07:00
imccyu 00e06cfac9 release(dsh): align master packages with 0.2.1-rc.3 2026-10-23 12:02:11 +08:00
imccyu 14f0b2aafe Merge master into DSH 0.2.1-rc.3 synchronization branch 2026-10-23 11:56:34 +08:00
imccyu d02ea370ee release(dsh): 0.2.1-rc.3 2026-10-23 01:11:35 +08:00
ZiyaZhang 9980af2d48 feat(experimental): add shared action cards behind a propose_action tool
action-cards owns the propose_action tool, the actionCards projection of
proposals and decisions, the act Remote and the card status notice; card
kinds register an action name, skill, details schema, verbs and handler.
The tool is admitted per Agent only after a registered kind's skill loads.
client-ui-action-cards draws the card frame below the completed answer,
lets kinds register a body per action and adds the propose_action
process row.
2026-10-22 06:36:30 -07:00
mektpoy b65da56f6e docs(agent-loop,session): record the unchanged-text series-start rule
Update the capability decision rule, both READMEs, the EventMap JSDoc and generated catalogs. Add the bug-fix Agent Note that records the incident evidence, the decision, rejected alternatives and consequences, and cross-link it from the in-history decision note.
2026-10-22 21:25:32 +08:00
mektpoy 2676c67f32 fix(agent-loop): keep the prompt prefix at a series start with unchanged text
An in-history route carries prompt updates as later system nodes while node 0 stays stale. A surface replacement (compaction, tool-result prune, image offload) starts a new request series, and the projection used to re-baseline node 0 even when the rendering already matched the latest surviving node: it emptied that node and wrote identical text into node 0, so the request differed at its first message and the provider prefix cache missed from the first token (#6973).

Re-baseline node 0 only when the effective text must move: an incapable route, an empty rendering, or a series start whose latest surviving non-empty node differs from the rendering. A capable series start with matching text emits no system event; the loop still logs the request series and rebuilds declarations. Retry compaction still folds the prompt to the head when it shadows the latest node.
2026-10-22 21:25:29 +08:00
mektpoy 71d5454904 test(agent-loop): reproduce series-start prompt rewrite on unchanged text
A compaction replacement after an appended in-history prompt starts a new request series, and the projection folds the prompt back into node 0 although the effective text is unchanged. The request moves the system segment to wire message 0, so the provider prefix cache misses from the first token (#6973).

The regression fails before the fix: the third request carries one system text ("prompt two") instead of keeping the appended node behind the cached prefix.
2026-10-22 21:19:24 +08:00
07akioni 84edeadc2b feat(i18n): add Spanish French German Russian and Portuguese 2026-10-22 19:53:52 +08:00
Yichen Jiang 80eca619ef refactor(web-search): admit web_search through step activation conditions
Master's step-scoped conditional activation resolves each tool's condition
before a model step assembles, and both the declarations and dispatch read
that admitted set. Prompt assembly no longer carries tool declarations, so
tool-web's system-prompt/assemble listener could not remove web_search any
more, and removing a declaration there never stopped a repeated call from
running.

tool-web now registers web_search with a when condition that asks
ctx.web.searchReady() about the route of the step's model selection, and its
guidance section renders from the step's admitted set. A step that does not
admit the tool leaves it out of declarations, guidance, and PTC program
bindings, and refuses a call to it as UNKNOWN_TOOL without reaching a
provider. Tests that execute web_search directly now run inside a resolved
step, as the executor requires for conditional registrations.

Docs, the readiness Agent Note, and the event producer/consumer table follow
the new mechanism; the tools README gains an explicit conditional-tools
anchor for cross-locale links.
2026-10-22 10:57:09 +08:00
Yichen Jiang 47b6867566 fix(tools): settle cancelled admitted calls through cancellation
A step's tool set no longer empties when the step is cancelled. The shared
pipeline already settles unstarted calls as cancelled; keeping admission lets
those calls keep their finalizers, and a wrapper result completed at
cancellation now reports cancellation instead of UNKNOWN_TOOL.

exit_plan_mode checks for a missing Agent explicitly instead of asserting it.

Document the activation types on the tools subsystem page, the turn/end code
for a failed tool condition, the replacement and no-set consequences in the
upgrade guide, and the admission rule in the parallel tool-call note.
2026-10-21 23:51:22 +08:00
Yichen Jiang ce24d53eb5 Merge remote-tracking branch 'origin/master' into worktree/dynamic-tool-activation-pr-64796e 2026-10-21 23:32:43 +08:00
Yichen Jiang 207b30d299 Merge remote-tracking branch 'origin/master' into worktree/dynamic-tool-activation-pr-64796e
# Conflicts:
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	docs/persistence-catalog.i18n.yaml
#	docs/persistence-catalog.md
#	docs/persistence-catalog.zh.md
#	docs/persistence-schema.json
#	packages/core/agent-loop/src/agent.ts
#	packages/core/agent-loop/src/tool-calls.ts
#	packages/core/agent-loop/tests/tool-updates.spec.ts
#	packages/core/system-prompt/README.i18n.yaml
#	packages/core/system-prompt/README.md
#	packages/core/system-prompt/README.zh.md
#	packages/core/tool-executor-ptc/src/ptc.ts
#	packages/core/tool-executor-ptc/tests/ptc.spec.ts
#	packages/core/tools/README.i18n.yaml
#	packages/core/tools/README.md
#	packages/core/tools/README.zh.md
#	packages/core/tools/src/index.ts
#	packages/extensions/tool-cordis/src/api-catalog.ts
#	packages/plan/plan-mode/tests/plan-mode.spec.ts
#	snapshots/session/cordis-inspect-jsdoc/session.v4.jsonl
2026-10-21 23:32:15 +08:00
_Kerman 04609dc0de Merge xtr/session-store-write-lifecycle into xtr/agent-initialization-flow 2026-10-21 19:33:26 +08:00
_Kerman fef2f3d06e Merge master into xtr/session-store-write-lifecycle 2026-10-21 19:27:56 +08:00
_Kerman 46fdc70d66 Merge master into xtr/session-store-write-lifecycle 2026-10-21 19:27:56 +08:00
_Kerman 0e7b3701cb Merge xtr/session-store-write-lifecycle into xtr/agent-initialization-flow 2026-10-21 18:22:35 +08:00
_Kerman b43a01e285 Merge master into xtr/session-store-write-lifecycle 2026-10-21 18:16:23 +08:00
_Kerman 7a8f417b5e Merge master into xtr/session-store-write-lifecycle 2026-10-21 18:16:23 +08:00
_Kerman 8569a3f798 fix(tools): add executor locale metadata 2026-10-21 18:04:42 +08:00
_Kerman d98025a089 Merge origin/master into xtr/tool-executor-plugins 2026-10-21 18:01:55 +08:00
Yichen Jiang 2f09a68329 Merge remote-tracking branch 'origin/master' into worktree/dynamic-tool-activation-pr-64796e 2026-10-21 17:58:24 +08:00
07akioni ed783066e6 fix(i18n): complete Japanese plugin metadata and guard locale coverage 2026-10-21 16:14:12 +08:00
_Kerman a53ecb2f3a Merge origin/master into xtr/tool-executor-plugins 2026-10-21 15:56:44 +08:00
Yichen Jiang 9d0c97b9d2 feat(tools): admit conditional tools per step
ctx.tools.register(definition, { when }) adds a synchronous or asynchronous
condition. AgentLoop resolves conditions once per proposed step with the
agent, the model selection that step preparation captured, and the turn
signal, before prompt assembly and agent/pre-step. The resulting
ResolvedToolSet governs tool declarations, Native dispatch, PTC bindings,
and nested calls for that step and its retries, and the turn disposes it
when the proposal is rejected or fails, when no step opens, and after the
step. A false condition removes the tool everywhere; a thrown condition
ends the turn with TOOL_ACTIVATION_FAILED. Calls whose registration was
replaced or removed during the step return UNKNOWN_TOOL.

system-prompt/assemble now transforms PromptPresentation without a tool
array, so tool declarations stay provider-owned. exit_plan_mode is declared
only for steps whose selected plan state is active, the same state that
renders plan guidance; it still rejects a call before the selection is
logged.

Model selection stays as master defines it; this change adds no model
selection event or Agent field.
2026-10-21 15:02:29 +08:00
_Kerman d6dc8890b9 Merge github/master into xtr/session-store-write-lifecycle 2026-10-21 15:01:22 +08:00
_Kerman 8f0489dc06 Merge github/master into xtr/session-store-write-lifecycle 2026-10-21 15:01:22 +08:00
_Kerman 6bfe05c6f5 refactor(agent): name captured step selection modelSelection 2026-10-21 14:08:11 +08:00
_Kerman a8013ddc35 Merge remote-tracking branch 'github/master' into xtr/session-store-write-lifecycle
# Conflicts:
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	docs/persistence-schema.json
2026-10-21 13:45:24 +08:00
_Kerman 28af21a294 Merge remote-tracking branch 'github/master' into xtr/session-store-write-lifecycle
# Conflicts:
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	docs/persistence-schema.json
2026-10-21 13:45:24 +08:00
_Kerman 81a132d1c0 test(tools): align missing-runtime expectations with plugin activation 2026-10-21 12:13:58 +08:00
_Kerman e727a3b161 fix(tools): keep executor changes out of registry notifications 2026-10-21 12:13:57 +08:00
_Kerman 6c1ae74d16 refactor(ptc): separate client declarations from host policy types 2026-10-21 12:13:50 +08:00
_Kerman cdb3a76b6a test(agent): complete model ownership migration coverage 2026-10-21 10:43:20 +08:00
_Kerman 55e45b52c9 test(session): cover preparation disposal directly 2026-10-20 22:39:43 +08:00
_Kerman 7289bee231 test(agent-loop): assert rollback closes before rejection 2026-10-20 22:39:38 +08:00
_Kerman 06e97edd60 docs(agent): clarify initialization cleanup timing 2026-10-20 22:39:28 +08:00
_Kerman bf4ab8be26 refactor(agent-loop): unify agent initialization 2026-10-20 22:21:52 +08:00
_Kerman 6f2aeff14d refactor(agent): simplify model selection access 2026-10-20 22:13:42 +08:00
_Kerman 200dedd494 chore: trim unrelated model-selection changes 2026-10-20 22:13:30 +08:00
_Kerman a9c006f9c3 refactor(agent): own model selection on each agent 2026-10-20 21:09:09 +08:00
_Kerman 639602e63a Merge origin/master into xtr/session-model-selection 2026-10-20 20:57:11 +08:00
Turtle aa8bdfc79e Revert "feat(agent): admit Web prompts through the agent controller" 2026-10-20 19:09:02 +08:00
_Kerman 8b79a1ddcc Merge origin/master into xtr/session-model-selection 2026-10-20 17:22:59 +08:00