kingwl
6514a59d5d
fix(ui-conversation): preserve semantic chat scroll position
2026-08-04 14:23:34 +08:00
kingwl
1cc59ae78e
test(web): split long conversation performance cases
2026-08-04 14:23:34 +08:00
kingwl
9784d6c932
test: register web performance entry
2026-08-04 14:23:34 +08:00
kingwl
7f0b8a7e87
test: measure live web streaming performance
2026-08-04 14:23:34 +08:00
kingwl
a435aae538
test: add opt-in web performance scenario
2026-08-04 14:23:34 +08:00
Yif
82070924a8
polish(web): 侧边栏滚动细节
...
1. 会话列表底部留白 12→48px,滚动到底时最后一项不再被底部渐变遮住。
2. 侧边栏滚动条默认隐藏,仅在指针悬停侧边栏区域时显示(通过主题滚动条变量绑透明实现,Firefox/WebKit 两条渲染路径同时生效)。
2026-08-04 14:20:48 +08:00
_Kerman
5356bd972d
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# .agents/notes/archived/feature/2026-07-28-dsh-guided-skill-session-commands.i18n.yaml
# .agents/notes/archived/manifest.json
# .agents/notes/implemented/bug-fix/2026-07-29-human-transcript-append-origin.i18n.yaml
# .agents/notes/implemented/feature/2026-07-05-skill-system.i18n.yaml
# apps/cli/tests/snapshots/multi-turn-conversation/terminal.expected.txt
# apps/cli/tests/snapshots/queued-manual-compact/terminal.expected.txt
# apps/cli/tests/tui-keyless-smoke.e2e.ts
# apps/cli/tests/tui.snapshot.ts
# docs/architecture.i18n.yaml
# docs/architecture.md
# docs/architecture.zh.md
# docs/cookbook/extension-cookbook.i18n.yaml
# docs/event-producer-consumer.md
# packages/ui/tui/README.i18n.yaml
# packages/ui/tui/README.md
# packages/ui/tui/README.zh.md
# packages/ui/tui/src/index.ts
# packages/ui/tui/tests/harness.ts
# packages/ui/tui/tests/session-reference.snapshot.ts
# packages/ui/tui/tests/snapshots/conversation-streaming.expected.txt
# packages/ui/tui/tests/snapshots/details-command.expected.txt
# packages/ui/tui/tests/snapshots/details-selector.expected.txt
# packages/ui/tui/tests/snapshots/disposed-terminal.expected.txt
# packages/ui/tui/tests/snapshots/errors-and-help.expected.txt
# packages/ui/tui/tests/snapshots/status-diagnostics-narrow.expected.txt
# packages/ui/tui/tests/snapshots/status-diagnostics.expected.txt
# packages/ui/tui/tests/snapshots/surface-after-compaction-narrow.expected.txt
# packages/ui/tui/tests/snapshots/surface-after-compaction-wide.expected.txt
# packages/ui/tui/tests/snapshots/surface-before-compaction.expected.txt
# packages/ui/tui/tests/snapshots/surface-replayed-compaction.expected.txt
# packages/ui/tui/tests/snapshots/todo-plan-cleared.expected.txt
# packages/ui/tui/tests/snapshots/tool-cards-hidden-folded.expected.txt
# packages/ui/tui/tests/snapshots/untrusted-controls.expected.txt
# packages/ui/tui/tests/tui.snapshot.ts
# packages/ui/tui/tests/tui.spec.ts
2026-08-04 14:19:23 +08:00
imccyu
6c6d933732
fix(client): load plugin bundles as external scripts
2026-08-04 14:18:47 +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
_Kerman
c1ac85c15f
fix(web): keep sidebar scrollbar inside inset
2026-08-04 14:11:54 +08:00
_Kerman
b57e29db59
fix(web): tighten sidebar session spacing
2026-08-04 14:11:54 +08:00
Turtle
64f9a83bd6
Merge pull request #1369 from deepseek-harness/codex/remove-dsh-tui-entrypoint
...
cleanup: remove TUI package and legacy dsh entrypoints
2026-08-04 14:11:37 +08:00
_Kerman
ab441389b2
fix(session): remove duplicated turn-end step
2026-08-04 14:10:07 +08:00
_Kerman
e874910a76
test(session): align turn-end contract artifacts
2026-08-04 14:09:52 +08:00
Yichen Jiang
a4aace17b5
Merge remote-tracking branch 'origin/worktree/custom-deepseek-models' into worktree/custom-deepseek-models
2026-08-04 14:08:22 +08:00
Yichen Jiang
adecbb71f7
Merge remote-tracking branch 'origin/master' into worktree/custom-deepseek-models
2026-08-04 14:01:28 +08:00
_Kerman
327505f5c6
Merge remote-tracking branch 'github/master' into xtr/trajectory-virtual-scroll
2026-08-04 13:57:32 +08:00
_Kerman
ae1008b4fb
feat(trajectory): virtualize long session histories
2026-08-04 13:57:19 +08:00
_Kerman
26742effdd
fix(client): fold high-sequence history windows
2026-08-04 13:57:04 +08:00
Hypatia May
0cd1611023
Merge remote-tracking branch 'origin/master' into fix/landlock-runner-failure-classification
2026-08-04 13:54:37 +08:00
Turtle
4b591c0abc
Merge pull request #1059 from deepseek-harness/perf/snapshot-file-parallelism
...
perf(test): run replay snapshot files in parallel
2026-08-04 13:49:57 +08:00
_Kerman
d4fa26023d
fix(agent-loop): open turns before pre-step
2026-08-04 13:49:35 +08:00
Hypatia May
b0f33f13f4
docs(sandbox): cross-link Landlock snapshot rule
2026-08-04 13:49:34 +08:00
Hypatia May
f91aedd074
refactor(sandbox): defer native protocol exports (round 3)
2026-08-04 13:37:33 +08:00
Turtle
bc26a366dd
test(acp-snapshot): cover the waitForEventAfterTurnEnd step
...
Success and timeout paths plus the before-newSession guard, restoring
per-file 100% on harness.ts.
2026-08-04 13:25:39 +08:00
Turtle
5fc420c5c0
test(acp-snapshot): wait for the durable goal pause before disposal
...
The goal scenario asserted a paused revision-2 goal, but the pause is
appended only after cancellation reaches idle — after turn/end. Under
parallel snapshot files the subprocess could dispose before the pause
record persisted, folding the log to an active revision-1 goal.
Add a waitForEventAfterTurnEnd input step (the turn-end/title waiters'
shape, parameterized by event type) and use it in the goal scenario to
hold the subprocess open until the goal-state record lands.
2026-08-04 13:25:39 +08:00
Turtle
ecdcc218b6
perf(test): run replay snapshot files in parallel
...
The snapshot config serialized all 13 files for every mode, but the
fixture-writing rationale only holds for record (real API quota per
scenario) and refresh (write-back harvests volatile values from
fixtures on disk). Replay — the keyless default and the CI mode — is
read-only with a unique temp dir per scenario subprocess, and the
suite factory already runs replay scenarios concurrently in-file.
Narrow the serialization to non-replay modes: pnpm test:snapshot drops
from ~49s to ~33s wall; record/refresh stay fully serial.
2026-08-04 13:25:28 +08:00
Turtle
10bb9cbf4a
cleanup: remove TUI package and legacy dsh entrypoints
2026-08-04 13:20:28 +08:00
Chinesezjc
3a060c5688
Merge pull request #1175 from deepseek-harness/fix/web-sources-scroll
...
fix(client-web): scroll the web_search source card instead of collapsing
2026-08-04 13:20:16 +08:00
Chinesezjc
c67c89911e
Merge origin/fix/web-sources-scroll
2026-08-04 13:13:41 +08:00
Chinesezjc
6601738e32
Merge origin/master into fix/web-sources-scroll
2026-08-04 13:11:40 +08:00
_Kerman
0ac95437b4
refactor(agent): address inbox mutations by message id
2026-08-04 13:10:22 +08:00
Turtle
7248b5ec8f
Merge pull request #1376 from deepseek-harness/codex/node26-zstd-compat
...
fix(jsonl): recover truncated zstd frames on Node 26
2026-08-04 12:43:29 +08:00
Hypatia May
319376ef1c
fix(sandbox): preserve valueless spawn failures (round 2)
2026-08-04 12:16:21 +08:00
_Kerman
a90a1645aa
fix(jsonl): tolerate truncated Zstd frames on Node 26
2026-08-04 12:06:01 +08:00
_Kerman
384c87899c
test(session): cover legacy migration paths
2026-08-04 12:05:53 +08:00
Hypatia May
e36d040d0a
fix(sandbox): spawn confined argv directly (round 1)
2026-08-04 12:04:48 +08:00
Turtle
ec4e130e31
fix(jsonl): recover truncated zstd frames on node 26
2026-08-04 11:58:38 +08:00
Chinesezjc
fffd1ca18e
Merge branch 'master' into fix/web-sources-scroll
2026-08-04 11:41:15 +08:00
_Kerman
2a9ebfcac2
fix(session): load pre-react-loop persisted sessions
2026-08-04 11:25:31 +08:00
Yichen Jiang
b52b9422d4
Merge branch 'master' into worktree/custom-deepseek-models
2026-08-04 11:13:45 +08:00
fz
f0e5a39d19
Merge remote-tracking branch 'origin/master' into codex/fix-headless-sigint
2026-08-04 11:07:36 +08:00
_Kerman
98947afece
chore(docs): trim translation sidecar churn
2026-08-04 11:04:03 +08:00
fz
8ea88a589b
test(cli): cover shutdown timer invariants
2026-08-04 11:03:52 +08:00
_Kerman
eaa497d735
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-19-package-owned-invariant-service.i18n.yaml
# examples/acp-agent/tests/snapshots/fs-glob-sampling/session.jsonl
# packages/ui/tui/README.i18n.yaml
# packages/ui/tui/src/components/dialogs.ts
# packages/ui/tui/tests/tui.spec.ts
2026-08-04 10:52:45 +08:00
Turtle
804b724202
Merge pull request #1359 from deepseek-harness/perf/tui-long-session-render
...
perf(tui): incremental step timing and card render caches for long sessions
2026-08-04 10:06:21 +08:00
Hypatia May
2eedb54849
fix(examples): declare sandbox fixture dependency
2026-08-04 09:37:50 +08:00
Hypatia May
71aafeb858
Merge origin/master into fix/landlock-runner-failure-classification
2026-08-04 09:14:13 +08:00
Turtle
5329bef04d
perf(tui): incremental step timing and card render caches for long sessions
...
Resuming a long session (196k events, 2.2k steps, 1.8k tool cards) took
~12s to render and ~800ms to echo one keystroke:
- Every step's timing footer called stepTimingAt, which replayed the whole
event log per footer - O(steps x events) on the initial render.
- pi-tui re-renders every component each frame and relies on per-component
line caches, but ToolCardComponent/ContextCardComponent built throwaway
Text/Markdown instances inside render(width), re-wrapping every settled
card's output on every keystroke.
Replace the per-footer replay with one shared StepTimingTracker per chat
mount (single O(events) cursor over the append-only log), and cache card
rows by width via CardLineCache, dropped by every state mutator and
invalidate().
Measured (tmux 200x50, 196k-event session): resume prompt-ready ~12s -> ~7.6s;
per-keystroke echo ~800ms median -> ~11ms.
2026-08-04 00:37:10 +08:00