Hypatia May
e466c66ee3
Merge remote-tracking branch 'origin/master' into codex/status-bar-token-metrics
...
# Conflicts:
# docs/cordis-catalog/events.md
# docs/event-producer-consumer.md
# packages/client/runtime/src/client/sessions/conversation.ts
# packages/client/runtime/src/client/sessions/session.ts
# packages/client/runtime/tests/fake-api.ts
# packages/client/runtime/tests/session.spec.ts
# packages/client/ui-conversation/tests/chat-stats-bash-sample.spec.tsx
# packages/client/ui-conversation/tests/chat-toolview-slot.spec.tsx
# packages/client/ui-conversation/tests/chat-view.spec.tsx
# packages/client/ui-conversation/tests/gate-branch-tails.spec.tsx
# packages/client/ui-conversation/tests/queue-dock.spec.tsx
# packages/core/agent-loop/README.i18n.yaml
# packages/core/agent/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/src/api-proxy.ts
# packages/host/apiproxy/src/api/events.schema.ts
# packages/host/apiproxy/src/api/events.ts
# packages/host/apiproxy/src/api/index.ts
# packages/host/apiproxy/src/api/sessions.schema.ts
# packages/host/apiproxy/src/api/sessions.ts
# packages/host/apiproxy/tests/rpc-schemas.spec.ts
2026-07-28 19:34:30 +08:00
Hypatia May
35b9c454e5
refactor(web): publish transient model request capacity (round 1)
2026-07-28 18:35:39 +08:00
Hypatia May
3f0ba77bfa
Merge remote-tracking branch 'origin/master' into codex/status-bar-token-metrics
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/README.md
# packages/host/apiproxy/README.zh.md
# packages/host/apiproxy/src/api-proxy.ts
2026-07-28 17:55:01 +08:00
imccyu
5dd2e77914
Merge remote-tracking branch 'origin/master' into worktree-guifork
2026-07-28 17:48:48 +08:00
Hypatia May
344667cbf0
fix(host): cancel retired metric capacity lookups (round 7)
2026-07-28 17:03:07 +08:00
Hypatia May
5340aedb8b
fix(host): guard terminal metric snapshots (round 6 review)
2026-07-28 16:05:43 +08:00
Hypatia May
8de4760141
fix(host): fence metric teardown reads (round 6 review)
2026-07-28 15:56:28 +08:00
Hypatia May
03ca568246
fix(host): refresh metric capacity metadata (round 6)
2026-07-28 15:41:38 +08:00
07akioni
c30c891628
fix: ci
2026-07-28 15:21:34 +08:00
Hypatia May
6f002007b0
fix(host): pair metric agents by lifecycle (round 5)
2026-07-28 14:51:11 +08:00
Hypatia May
765b360e26
fix(host): fence stale metric completions (round 4)
2026-07-28 14:29:11 +08:00
07akioni
b926044c13
feat: click file name to open file in toolcall, remove hover bg of toolcall, do not trigger sidebar any more (follow designer's instruction)
2026-07-28 14:24:41 +08:00
Hypatia May
0dc0cc046b
fix(host): keep metrics route lookup passive (round 3)
2026-07-28 13:57:26 +08:00
Hypatia May
1fb1f00ec2
test(host): isolate compaction metric preservation (round 2)
2026-07-28 12:19:12 +08:00
Hypatia May
9ca0241d5d
feat(web): add durable session metrics (round 1)
2026-07-28 12:10:48 +08:00
imccyu
a3bdec4450
Merge remote-tracking branch 'origin/master' into worktree-guifork
2026-07-28 10:23:48 +08:00
imccyu
755ce21334
refactor: brand the command lifecycle pairing id as CommandId
...
commandId crosses three boundaries (session log, wire admission response,
client flow pairing), so per the branded-id rule it becomes
Branded<'CommandId'>, declared in a new pure @deepseek-ai/dsh-commands/brand
outlet (the dsh-llm/brand shape: type + constructor, no Context merges, so
wire and client programs can name it without loading the host plugin). The
event payloads, CommandExecution, and the executor mint carry the brand; the
wire schema gains commandIdSchema as the domain's single brand-cast point
(the approvals precedent); CommandNode and the fixture's fabrication cast
follow type-only.
2026-07-28 01:37:45 +08:00
imccyu
2c5c1e72ba
fix: merge conflicts
2026-07-28 00:45:27 +08:00
imccyu
af70af4020
Merge remote-tracking branch 'origin/master' into worktree/web-session-model-selector
2026-07-28 00:39:24 +08:00
imccyu
e78edd6ae4
refactor: retire the session/title frame and the todos history rider from the wire
2026-07-27 23:07:46 +08:00
imccyu
6f47df0913
feat: session/projection push frame; tail block reads the watermark snapshot
2026-07-27 23:07:16 +08:00
imccyu
6d2e5a7cd7
feat: command.execute returns the lifecycle pairing id ({matched, commandId?})
...
CommandService.execute now returns a CommandExecution — the normalized
result plus the commandId minted for its command/run/command/done records —
and the wire admission value carries commandId exactly when matched, so the
issuing client can correlate its RPC acknowledgment with the flow node the
lifecycle events produce. apiproxy api/schema/handler, the connection
fixture, and the TUI/plan/goal consumers follow the new shape.
2026-07-27 23:07:13 +08:00
imccyu
2ebaa30c6d
refactor: structured command/run payload {commandId, name, args, source}
...
The line field is deleted (pre-release, no shim): name and args are
parseCommand's own split — name plus verbatim rawInput with its separator
whitespace — so a consumer (a projection unit folding its own command
records, a rich command card) never re-parses a line. CommandNode mirrors
the split (name/args, both null on a run-less cross-window node); the
generic card rebuilds its display line as /name + args. The connection
fixture logs the same structured payload.
2026-07-27 23:06:52 +08:00
imccyu
4ddec0ba2f
refactor: command.execute degrades to pure admission; composer notice channel retired
...
The wire response now carries only the matched bit — CommandExecuteResult
is deleted from the api, schema, and client mirrors (pre-release, no shim);
outcomes ride the durably logged command/run/command/done pair broadcast on
the mux stream and render as flow nodes. ui-command's runDetached→noticeFor
outcome routing is retired: admitted commands surface nothing through the
composer, while admission misses (matched:false, syntax feedback) and
transport failures keep their immediate notice. The connection fixture
mirrors the host: an admitted command appends the lifecycle pair to the
session log instead of returning result text.
2026-07-27 23:06:49 +08:00
imccyu
65e41f1cb0
feat: projections block on the session.history tail page
2026-07-27 22:58:56 +08:00
_Kerman
fb1dc6d117
Merge remote-tracking branch 'origin/master' into xtr/agent-loop-message-machine
...
# Conflicts:
# docs/cordis-catalog/services.md
# docs/core-data-structures/session.i18n.yaml
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
2026-07-27 21:51:37 +08:00
_Kerman
ed67ad53d2
refactor(agent): return request retry action
2026-07-27 21:17:49 +08:00
ZiyaZhang
a5239b0f64
test(gui): cover native workspace picker branches
2026-07-27 04:37:24 -07:00
ZiyaZhang
fef928a7e1
feat(gui): add native workspace folder picker
2026-07-27 03:50:22 -07:00
_Kerman
f63d937496
fix(tui): route prompts by next-step capability
2026-07-27 18:05:43 +08:00
_Kerman
a59ce0367c
fix(agent-loop): route next-step input during admission
2026-07-27 17:55:55 +08:00
Yichen Jiang
7f4905c4bf
Merge remote-tracking branch 'origin/master' into worktree/web-session-model-selector
...
# Conflicts:
# packages/client/runtime/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/README.md
# packages/host/apiproxy/README.zh.md
2026-07-27 17:18:29 +08:00
_Kerman
db16732101
Merge remote-tracking branch 'origin/master' into xtr/agent-loop-message-machine
2026-07-27 17:18:12 +08:00
_Kerman
bd40eec770
Merge remote-tracking branch 'origin/master' into xtr/agent-loop-message-machine
...
# Conflicts:
# docs/architecture.i18n.yaml
# docs/architecture.md
# docs/architecture.zh.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.i18n.yaml
# docs/core-data-structures/core.md
# docs/core-data-structures/core.zh.md
# docs/core-data-structures/llm-streaming.i18n.yaml
# docs/core-data-structures/session.i18n.yaml
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# packages/core/agent-loop/README.i18n.yaml
# packages/core/agent-loop/README.md
# packages/core/agent-loop/README.zh.md
# packages/core/agent-loop/src/loop.ts
# packages/core/agent/README.i18n.yaml
# packages/core/agent/tests/llm-target.spec.ts
# packages/core/session/tests/request-header.spec.ts
2026-07-27 16:48:38 +08:00
Yichen Jiang
0d084ab6ff
feat(web): support reasoning effort selection
2026-07-27 16:12:40 +08:00
NI0317
dcf06e8272
Merge remote-tracking branch 'origin/master' into feature/delete-workspace
...
# Conflicts:
# packages/client/runtime/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
2026-07-27 15:54:51 +08:00
Yichen Jiang
181ac52f8e
Merge remote-tracking branch 'origin/master' into worktree/web-session-model-selector
...
# Conflicts:
# packages/client/connection/src/client/fixture.ts
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/tests/fake-api.ts
# packages/client/runtime/tests/session.spec.ts
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/README.md
# packages/client/ui-conversation/README.zh.md
# packages/host/apiproxy/README.i18n.yaml
2026-07-27 15:41:01 +08:00
NI0317
7bd96af5eb
fix(workspace): make deletion recoverable
2026-07-27 14:37:04 +08:00
NI0317
187cf6f804
feat(web): delete workspace registrations
2026-07-27 12:38:11 +08:00
imccyu
c132cbdb6a
Adapt session model selection to the slash/input/session architecture
...
- host trio kept on the merged api-proxy: session.models (provider-grouped
advisory directory), session.selectModel (validated provider, advisory
model), installAgentLlmTarget threaded through create/resume/ensureSession;
the gateway declares the llm inject it reads
- history no longer piggybacks modelTarget: the current target travels on
session.models alone (the /model popup is the sole consumer)
- new @deepseek-ai/dsh-client-ui-model plugin: /model popupSelect over the
wire — options load the directory (group label in the detail column,
provider-local failures listed inline), onSelect routes selectModel;
failures ride the popup shell's error/retry surface
- ModelSelector package, conversation.composer.control slot, and the
Session-side modelSelection state machine are removed: model selection
belongs to the /model popup; the named conversation.input.model seat
stays empty until a control-seat entry is designed for it
2026-07-27 10:28:45 +08:00
imccyu
6539c8d8fa
Merge master (slash/input/session architecture) into web-session-model-selector
2026-07-27 10:23:51 +08:00
_Kerman
1aefcbf4d7
fix(apiproxy): derive queued steering on the client, drop it from the wire
...
The session/queued frame no longer carries steering — AgentMessage no longer
has the field. The client derives it from the same ordered turn boundaries the
host saw (a frame arriving while a turn is open joined the steering FIFO).
2026-07-27 10:22:28 +08:00
imccyu
9d63d75a6f
Merge remote-tracking branch 'origin/master' into web2-todo
...
# Conflicts:
# packages/client/connection/src/client/fixture.ts
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/README.md
# packages/client/runtime/README.zh.md
# packages/client/runtime/src/client/index.ts
# packages/client/runtime/src/client/sessions/session.ts
# packages/client/ui-conversation/src/client/apply.ts
# packages/client/ui-conversation/src/client/skeleton/ConversationRoot.tsx
# packages/client/ui-conversation/tests/chat-stats-bash-sample.spec.tsx
# packages/client/ui-conversation/tests/chat-toolview-slot.spec.tsx
# packages/client/ui-conversation/tests/chat-view.spec.tsx
# packages/client/ui-conversation/tests/gate-branch-tails.spec.tsx
# packages/client/ui-conversation/tests/skeleton.spec.tsx
# packages/client/ui-trajectory/tests/views.spec.tsx
2026-07-27 10:07:51 +08:00
_Kerman
2f74ac98ba
Merge remote-tracking branch 'origin/master' into xtr/agent-loop-message-machine
...
# Conflicts:
# .agents/notes/archived/feature/2026-07-21-tui-steering-queue-badge.i18n.yaml
# .agents/notes/archived/simplification/2026-06-20-drop-unconsumed-llm-assembled-surfaces.i18n.yaml
# .agents/notes/archived/simplification/2026-07-04-prune-producerless-vocabulary-variants.i18n.yaml
# .agents/notes/archived/simplification/2026-07-04-remove-agent-steering-mirror.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-22-unified-send-and-coalesced-user-messages.i18n.yaml
# .agents/notes/implemented/feature/2026-07-07-session-prefix.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-02-remove-stream-chunk-mirror.i18n.yaml
# docs/core-data-structures/session.i18n.yaml
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-context/session.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-context/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.2.jsonl
# packages/core/session/README.i18n.yaml
# packages/host/apiproxy/src/api-proxy.ts
# packages/support/acp-snapshot/README.i18n.yaml
# packages/support/acp-snapshot/README.md
# packages/support/acp-snapshot/README.zh.md
2026-07-27 09:57:51 +08:00
imccyu
f6396f2573
style: fix lint across client packages
...
eslint --fix autofixes plus manual repairs: max-len line splits
(fake-api handlers, notifier/slots JSDoc, spec signatures), charAt over
non-null-asserted indexing in slash detect/menu cores, Array.from for
code-point capping, typeof assertions for unbound-method in specs,
generic getByRole for the send-button cast, effect disposer void-wrap in
command register, and dropped unused type imports.
2026-07-27 04:13:00 +08:00
imccyu
a27be43ac1
feat: slash system / input service / agent scope
2026-07-27 03:28:39 +08:00
Chinesezjc
c5a5a65c67
Merge remote-tracking branch 'origin/master' into web2-todo
...
# Conflicts:
# packages/client/runtime/README.md
2026-07-26 17:04:11 +08:00
_Kerman
3d1fe7b45f
Merge remote-tracking branch 'origin/master' into xtr/agent-loop-message-machine
...
# Conflicts:
# docs/event-producer-consumer.md
2026-07-26 15:46:29 +08:00
_Kerman
57d90c343d
Merge remote-tracking branch 'origin/master' into xtr/agent-loop-message-machine
...
# Conflicts:
# .agents/notes/implemented/feature/2026-06-14-acp-agent-client-protocol.md
# .agents/notes/implemented/feature/2026-06-14-acp-agent-client-protocol.zh.md
# .agents/notes/implemented/feature/2026-06-30-hook-bridges.i18n.yaml
# .agents/notes/implemented/feature/2026-06-30-interception-seams.i18n.yaml
# .agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml
# .agents/notes/implemented/feature/2026-07-06-sandbox.md
# .agents/notes/implemented/feature/2026-07-06-sandbox.zh.md
# .agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.i18n.yaml
# .agents/notes/implemented/feature/2026-07-19-same-session-goal-round-driver.i18n.yaml
# .agents/notes/implemented/feature/2026-07-25-workspace-ui-product-flow.i18n.yaml
# .agents/notes/implemented/simplification/2026-07-02-remove-stream-chunk-mirror.i18n.yaml
# docs/architecture.i18n.yaml
# docs/cookbook/adding-a-tool.i18n.yaml
# docs/cookbook/extension-cookbook.i18n.yaml
# docs/core-data-structures/llm-streaming.i18n.yaml
# docs/core-data-structures/session.i18n.yaml
# docs/core-data-structures/tools.i18n.yaml
# docs/event-producer-consumer.md
# docs/persistence-catalog.md
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/acp-agent/tests/snapshots/fs-escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# examples/acp-agent/tests/snapshots/permission-switching/session.jsonl
# examples/acp-agent/tests/snapshots/plan-mode-reject/session.jsonl
# examples/acp-agent/tests/snapshots/plan-mode/session.jsonl
# examples/acp-agent/tests/snapshots/session-sandbox-root/session.jsonl
# packages/context/session-reference/README.md
# packages/core/agent-loop/tests/agent.spec.ts
# packages/hooks/hooks-claude/tests/coverage-cases.ts
# packages/host/runtime/tests/host-runtime.spec.ts
# packages/llm/llm-retry/tests/retry.spec.ts
# packages/session-persistence/session-persistence/src/coordinator.ts
# packages/support/acp-snapshot/README.md
# packages/support/acp-snapshot/src/normalize.ts
# packages/ui/acp/acp-feature-support.md
# packages/ui/acp/src/codec.ts
# packages/ui/acp/src/index.ts
# packages/ui/acp/tests/bridge.spec.ts
# packages/ui/acp/tests/codec.spec.ts
# packages/ui/acp/tests/config-options.spec.ts
# packages/ui/acp/tests/dispose.spec.ts
# packages/ui/acp/tests/edges.spec.ts
# packages/ui/acp/tests/stream-update.spec.ts
# packages/ui/acp/tests/turns.spec.ts
2026-07-26 14:05:33 +08:00
Chinesezjc
99805b6340
fix(gui): merge adaptations to master's apiproxy defaults and deleted test hook
...
The origin/master merge introduced a required workspaceRoot on
ApiProxyDefaults and deleted the ui-conversation test hook.ts helper.
Add workspaceRoot to the new todo-projection api-proxy test and bind
the todo-panel spec's selector hook via bindSnapshotSelector directly,
matching the sibling specs.
2026-07-26 04:30:58 +08:00