creatixchu
95a89078d5
docs(web): refresh the MessageItem module comment for the steering caption
2026-08-04 17:53:26 +08:00
creatixchu
de96087923
feat(web): name context sources and mark steering in the transcript
...
Every logged non-user user/message collapsed into one identical
「上下文注入」 row, and mid-turn steering rendered in exactly the bubble a
turn-opening prompt uses, so the transcript could not say what had been
added or which message interrupted a running turn.
TranscriptAdapter and the history fold now attach a provenance view to
each context node, computed by contextProvenance() from the durable
source alone: a role (inject, or recall for a cross-session snapshot)
and a producer name read out of the log — instruction paths for
workspace-instructions, session titles for session-reference, the plugin
id for a plugin source, and the bare kind for any other. No client-side
table of producer names, so a renamed or newly mounted producer stays
identifiable without a client release and a foreign log projects like a
live one. ContextInjectionRow titles itself from the role and shows the
name beside it; MessageItem captions durable and pending steering
bubbles.
The caption reverses one clause of the no-interjection-chrome decision,
which removed it because the composer could not steer; composer steering
shipped afterwards without amending that note, so this change supplies
the product decision its reintroduction clause required and corrects the
stale facts left in it.
Fixes #1291
2026-08-04 17:44:18 +08:00
_Kerman
09e909b96b
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# apps/web/tests/snapshots/queue-actions/preserved.expected.md
# packages/client/runtime/src/client/sessions/session.ts
2026-08-04 16:56:44 +08:00
ZiyaZhang
047ea50987
feat(web): add preview badge to empty hero
2026-08-04 01:46:52 -07:00
imccyu
72f82f65c9
Merge remote-tracking branch 'origin/master' into mergebot/pr1389
...
# Conflicts:
# apps/web/tests/snapshots/sidebar-scrollbar/geometry.expected.md
# packages/client/ui-conversation/src/client/chat/MessageIconActions.tsx
# packages/client/ui-conversation/src/client/chat/message-chrome.ts
2026-08-04 16:33:55 +08:00
creatixchu
60e4509c1d
docs(web): trim the column's gutter comments to contract plus note link
2026-08-04 16:30:45 +08:00
imccyu
e9d76dae64
fix(web): address UI polish review feedback
2026-08-04 16:25:09 +08:00
creatixchu
1098dc9836
docs(web): cite the surviving composer scrollport note for the WebKit gutter measurement
2026-08-04 16:21:55 +08:00
creatixchu
e49f678614
Merge remote-tracking branch 'origin/master' into worktree/composer-scrollbar-gutter
2026-08-04 16:20:33 +08:00
creatixchu
d907c8475f
fix(web): keep the input card in place across view tabs
...
The composer seat is one node laid out against two different edges: in Chat it
is a sticky child of the column's scroller and rides its content box, which a
space-consuming scrollbar shortens, while a view declaring a composer overlay
gets an absolutely positioned seat against the padding box, which no bar
reduces. With the transcript scrolling the two tabs disagreed by the bar's
width, so the centred input card moved 4px sideways on every switch — and the
same 4px inside Chat when a growing transcript began to scroll.
The column now reserves its scrollbar gutter unconditionally and states the
overlay branch a scroll container on the same axes, so both states measure
against the same width.
2026-08-04 16:13:52 +08:00
imccyu
b9f4e46462
Merge remote-tracking branch 'origin/master' into mergebot/pr1389
...
# Conflicts:
# packages/client/ui-workspace/src/client/WorkspaceBrowser.module.css
2026-08-04 16:06:38 +08:00
imccyu
3be257ba1d
fix(web): preserve polish accessibility contracts
2026-08-04 16:04:26 +08:00
imccyu
ad03ccbd7a
Merge branch 'master' into feat/turn-running-time
2026-08-04 16:03:31 +08:00
imccyu
cc435a9c0c
fix(web): use exact turn boundaries for run time
2026-08-04 15:55:07 +08:00
_Kerman
f5c599d0ca
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
2026-08-04 15:49:22 +08:00
creatixchu
398ab58a69
Merge remote-tracking branch 'origin/master' into worktree/composer-caret-binding
2026-08-04 15:40:27 +08:00
imccyu
2a828f09da
Merge remote-tracking branch 'origin/master' into feat/turn-running-time
2026-08-04 15:22:28 +08:00
creatixchu
ef2fbdfc19
fix(web): preserve focus when restoring drafts
2026-08-04 15:12:11 +08:00
_Kerman
8ed5ca5051
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# packages/client/runtime/tests/session.spec.ts
2026-08-04 14:51:07 +08:00
_Kerman
9b50311fd1
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
2026-08-04 14:46:18 +08:00
creatixchu
4e024da35a
Merge origin/master into worktree/composer-caret-binding
2026-08-04 14:44:09 +08:00
imccyu
6f1d443c59
feat: optimize chat think
2026-08-04 14:37:35 +08:00
kingwl
9b91e5312c
fix(web): narrow chat scroll provenance
2026-08-04 14:23:34 +08:00
kingwl
8de33e42f7
fix(web): preserve chat scroll ownership
2026-08-04 14:23:34 +08:00
kingwl
6514a59d5d
fix(ui-conversation): preserve semantic chat scroll position
2026-08-04 14:23:34 +08:00
_Kerman
1b16cef582
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# examples/acp-agent/tests/goal-snapshots/goal-session/input.json
# packages/client/ui-conversation/README.i18n.yaml
# packages/session-persistence/session-persistence-jsonl/src/zstd.ts
# packages/support/acp-snapshot/src/harness.ts
2026-08-04 14:14:57 +08:00
Yif
92dd231ce4
polish(web): 打磨 Web 会话界面的布局、自适应与组件一致性
...
1. 统一会话列宽度轴:新增 --dsh-chat-content-width(748px),输入框、todo、goal、queue、approval、plan review、ask question 等容器的宽度与边距全部由该变量推导,消除各面板之间的像素漂移,窄视口下的边缘留白也保持一致。
2. 输入框自适应与细节:控制行改为容器查询(460px 阈值以下权限选择器只显示图标+下拉,隐藏文字);卡片圆角 20→22、行内边距调整并整体下移 2px(发送按钮除外);permission/model 触发器统一 24px 圆角;Plan 与 Read Only 间距 +8。
3. 修复浮层菜单溢出:slash 菜单与命令弹层钳制到输入卡片宽度,超长行以省略号截断;Tooltip 增加 12px 视口边缘安全距离。
4. 增加与替换图标:Add provider 改用输入框同款加号图标(IconPlusOutline16),统一图标尺寸与字号。
5. 统一 Settings → Models 组件:补齐按钮 hover 态、select 下拉箭头不再贴边、标题区与 provider 卡片间距 +12。
6. 侧边栏交互:add workspace / group by / create session / 收起侧边栏四个图标按钮增加 500ms 延迟 tooltip(前两个向下弹出);展开态的 New Session 不再重复显示 tooltip;侧边栏窄屏自适应收起逻辑微调。
7. 其他:hero 区 workspace 徽章右移对齐;附带 Agent Note(中英双语)记录共享宽度轴与容器查询的设计取舍。
2026-08-04 14:14:12 +08:00
Yif
6ec5a6136b
feat(web): show turn run time with hover-revealed time chrome
...
Derive turn wall time from adjacent logged timestamps (no new session
events): the actions-owning assistant footer gains a localized
"Ran for {duration}" label, and the running TurnStatus label gains a
live elapsed clock anchored to the same logged trigger so a mid-turn
reload keeps the real elapsed time. Message time chrome is now
hover-revealed on hover-capable devices, keeping icons visible and
layout stable.
2026-08-03 19:58:58 +08:00
_Kerman
734c3d1f65
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# apps/cli/tests/snapshots/queued-manual-compact/terminal.expected.txt
# apps/web/tests/snapshots/queue-actions/preserved.expected.md
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/src/client/sessions/session.ts
# packages/client/ui-conversation/README.md
# packages/client/ui-conversation/README.zh.md
# packages/ui/tui/README.i18n.yaml
# packages/ui/tui/tests/snapshots/untrusted-controls.expected.txt
2026-08-03 17:15:34 +08:00
Chinesezjc
19f2c45bb0
Merge remote-tracking branch 'origin/master' into fix/web-sources-scroll
2026-08-03 16:38:12 +08:00
kingwl
c5050f018e
fix(web): keep ineligible message forks disabled
2026-08-03 16:19:49 +08:00
_Kerman
cb2f01f48c
refactor(agent-loop): drop the steering/message session event
...
Steer, inject, and followup now land as durable user/message events on the
session surface; the steering/message event type and its ConversationNode
kind are removed from the client projection. Update tests, docs, generated
catalogs, and agent notes to match, and align the steering e2e fixture and
prompt inventory assertions with the durable user/message landing.
2026-08-03 16:04:26 +08:00
kingwl
c43eaaec82
Merge remote-tracking branch 'origin/master' into codex/pr-1150-disabled
...
# Conflicts:
# packages/client/runtime/README.i18n.yaml
# packages/client/ui-conversation/README.i18n.yaml
2026-08-03 16:02:33 +08:00
Chinesezjc
57219ab060
Merge remote-tracking branch 'origin/master' into fix/web-sources-scroll
2026-08-03 15:41:09 +08:00
Chinesezjc
a2ec6cefc2
fix(client-web): scroll the web_search source card instead of collapsing
...
Replace the WebBlock search card's head/tail collapse and expand button
with a fixed-height scroll container that lists every source the tool
returned. The model-facing side is unchanged: the seam still caps sources
at searchMaxResults and the truncated indicator stays, so model-visible
and frontend-visible sources remain identical.
Remove CHAT_WEB_MAX_SOURCES and DEFAULT_WEB_MAX_SOURCES: with scroll, the
chat row and details panel show the same full list.
2026-08-03 15:38:26 +08:00
Ziya
b6b642fae4
Merge branch 'master' into agent/web-bash-error-expand
2026-08-03 02:30:36 -04:00
ZiyaZhang
0a4ad25ce7
fix(web): expand aborted Bash rows
2026-08-02 23:06:00 -07:00
_Kerman
5534431d42
fix(ui-trajectory): own composer overlay geometry
2026-08-03 14:02:40 +08:00
_Kerman
f4a2e0d10a
fix(agent): align consumers with inbox lifecycle
2026-08-03 13:14:24 +08:00
_Kerman
49e90695cc
refactor(agent): complete inbox lifecycle migration
2026-08-03 12:25:33 +08:00
kingwl
038b6063ee
Merge remote-tracking branch 'origin/master' into codex/pr-1150-conflict-fix
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
2026-08-03 11:34:26 +08:00
_Kerman
dc1d542092
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-31-goal-owned-durable-events.i18n.yaml
# .agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.i18n.yaml
# .agents/notes/implemented/feature/2026-07-22-docked-web-goal-bar.i18n.yaml
# docs/architecture.i18n.yaml
# docs/architecture.md
# docs/architecture.zh.md
# docs/config-catalog.md
# docs/cordis-catalog/events.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/event-producer-consumer.md
# docs/module-graph.md
# docs/persistence-catalog.md
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/skill-load/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-spawn/session.1.jsonl
# examples/acp-agent/tests/snapshots/workflow-run/session.1.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.jsonl
# examples/headless-agent/tests/snapshots/pty-tools/session.jsonl
# examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/child.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/subagent-spawn/notifications.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/subagent-spawn/session.1.jsonl
# packages/acp/acp/README.i18n.yaml
# packages/acp/acp/src/index.ts
# packages/client/connection/src/client/index.ts
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/README.md
# packages/client/runtime/README.zh.md
# packages/client/runtime/src/client/sessions/conversation.ts
# packages/client/runtime/src/client/sessions/session.ts
# packages/client/runtime/tests/queue-store.spec.ts
# packages/client/ui-conversation/src/client/input/contract.ts
# packages/client/ui-goal/README.i18n.yaml
# packages/compact/compact-basic/src/index.ts
# packages/context/time-context/tests/time-context.spec.ts
# packages/context/tmux-context/tests/tmux-context.spec.ts
# packages/context/workspace-context/tests/workspace-context.spec.ts
# packages/cordis/tool-cordis/src/api-catalog.ts
# 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/agent.ts
# packages/core/agent-loop/tests/agent.spec.ts
# packages/core/agent-loop/tests/loop.spec.ts
# packages/core/agent/README.i18n.yaml
# packages/core/agent/README.md
# packages/core/agent/README.zh.md
# packages/core/agent/src/types.ts
# packages/core/session/README.i18n.yaml
# packages/core/session/README.md
# packages/core/session/README.zh.md
# packages/goal/command-goal/tests/command-goal.spec.ts
# packages/goal/goal/tests/goal.spec.ts
# packages/goal/tool-goal/README.i18n.yaml
# packages/goal/tool-goal/README.md
# packages/goal/tool-goal/README.zh.md
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/README.md
# packages/host/apiproxy/README.zh.md
# 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/rpc.ts
# packages/host/apiproxy/tests/api-proxy-commands.spec.ts
# packages/host/apiproxy/tests/api-proxy-projections.spec.ts
# packages/host/apiproxy/tests/rpc-schemas.spec.ts
# packages/pty/pty-local/tests/index.spec.ts
# packages/pty/pty-local/tests/local.spec.ts
# packages/pty/tool-pty/tests/loader-composition.spec.ts
# packages/pty/tool-pty/tests/tools.spec.ts
# packages/session-persistence/session-checkpoint-policy/src/index.ts
# packages/session-persistence/session-persistence/tests/coordinator-contract.ts
# packages/skill/tool-skill/tests/tool-skill.spec.ts
# packages/subagent/subagent-inprocess/README.i18n.yaml
# packages/subagent/subagent-inprocess/README.md
# packages/subagent/subagent-inprocess/README.zh.md
# packages/subagent/subagent-inprocess/src/index.ts
# packages/subagent/subagent-inprocess/tests/subagent-inprocess.spec.ts
# packages/support/acp-snapshot/src/harness.ts
# packages/ui/tui/tests/tui.spec.ts
2026-08-03 10:56:09 +08:00
ZiyaZhang
8f77ab467f
test(web): harden live thinking tail observation
2026-08-02 06:12:13 -07:00
ZiyaZhang
975b57b54a
feat(web): follow live reasoning tail while collapsed
2026-08-02 05:29:25 -07:00
kingwl
4329b93989
Merge remote-tracking branch 'origin/master' into codex/fork-real-turn-tail
...
# Conflicts:
# packages/client/runtime/README.i18n.yaml
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/src/client/chat/ChatView.tsx
# packages/client/ui-conversation/src/client/chat/MessageIconActions.tsx
2026-08-02 18:14:32 +08:00
imccyu
7d08e43720
fix(web): address steering review feedback
2026-08-02 17:53:07 +08:00
imccyu
3a9f78c55e
feat(web): restore actions after steering consumption
2026-08-02 17:53:07 +08:00
imccyu
dffe955ed2
feat(web): surface and configure composer steering
2026-08-02 17:53:07 +08:00
kingwl
5b17d3bab5
fix(web): match queue steer icon to design
2026-08-02 17:53:07 +08:00
kingwl
955a12cca4
feat(web): steer queued messages into active turns
2026-08-02 17:53:07 +08:00