Commit Graph
8805 Commits
Author SHA1 Message Date
Wenlu Wang 3c436d781e Merge pull request #1065 from deepseek-harness/codex/webui-complex-perf-case
fix(web): preserve reader intent in long conversations
2026-08-04 14:36:42 +08:00
kingwl eb628f979b test(web): align long-chat contracts with master 2026-08-04 14:23:34 +08:00
kingwl e53dcd56c7 test(web): keep scroll fixture markers private 2026-08-04 14:23:34 +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 bf6cb38fbc test(web): expand long-chat regression and performance coverage 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
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
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
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
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
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
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
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
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
Huanqi Cao b978c62a22 Merge pull request #1119 from deepseek-harness/feat/ripgrep-packaged-binary
feat(fs-search): spawn the packaged ripgrep binary through the subprocess seam
2026-08-03 23:31:29 +08:00
Turtle 05a76c3d98 Merge pull request #1355 from deepseek-harness/codex/remove-invariants-shipped-config
cleanup(cli): omit invariants from shipped configs
2026-08-03 22:18:51 +08:00
Turtle 76d8a54d16 Merge pull request #1063 from deepseek-harness/perf/tui-resume-scan
perf(tui): open the /resume selector from one batch session projection
2026-08-03 22:17:59 +08:00
Turtle 414c310324 cleanup(cli): omit invariants from shipped configs 2026-08-03 22:04:53 +08:00
Turtle fea88291c1 docs: regenerate module graph for tui projection deps 2026-08-03 21:29:29 +08:00
Turtle 25d8bfac31 Merge remote-tracking branch 'origin/master' into perf/tui-resume-scan
# Conflicts:
#	packages/ui/tui/README.i18n.yaml
2026-08-03 21:16:51 +08:00
Turtle 7a26214a81 feat(tui): resolve resume titles through the projection cache
session-title already registers a title projection unit; /resume now
reads it instead of scanning logs: live rows from the registry
snapshot, persisted rows from the durable checkpoint row
(cachedSnapshot, zero I/O), and only rows without a usable checkpoint
pay a coldSnapshot — checkpoint plus readFrom tail, written back so the
next scan is metadata-only. Cold reads are bounded by the new
resumeScanConcurrency config; compositions without the cache fall back
to the bounded readTitleSnapshots batch. The TUI overlay mounts the
projection registry, storage, and projection-cache rows over the same
storages root the web surface uses, so checkpoints serve both.
2026-08-03 21:13:52 +08:00
Huanqi Cao 0ee198d70e Merge remote-tracking branch 'origin/master' into feat/ripgrep-packaged-binary 2026-08-03 20:19:49 +08:00
Tianyi Cui 8eb97ab47e Merge pull request #1344 from deepseek-harness/worktree/production-issue-automation
chore: enable Issue management automation
2026-08-03 20:03:13 +08:00
Tianyi Cui aec9e3145e chore: enable Issue management automation 2026-08-03 19:53:36 +08:00
Ziya 012bc40f04 Merge pull request #1165 from deepseek-harness/agent/fix-remote-welcome-onboarding
fix(web): unblock remote welcome onboarding
2026-08-03 07:20:06 -04:00
Chinesezjc e6d6e192d5 fix(ui-primitives): keep two-digit source markers out of the scroll clip
Making `.sources` a scroll container turned its `padding-left` from spacing
into a correctness constraint. A scroll container clips inline-start overflow
with no way to scroll it back, and `::marker` is right-aligned to the content
edge, so past nine sources the markers rendered as `0.` and `1.` where `10.`
and `11.` belonged.

`searchMaxResults` is an unbounded positive integer, so size the padding in
`em` against the list's own font to hold a three-digit marker. The browser e2e
measures a `999. ` marker in that inherited font and requires the computed
padding to be at least that wide, pinning the room against the widest marker
rather than one fixture's source count.
2026-08-03 18:58:44 +08:00
imccyu 3770d947cf docs(web): correct welcome acknowledgement contract 2026-08-03 18:43:18 +08:00
imccyu 33b52502f4 Merge branch 'master' into agent/fix-remote-welcome-onboarding 2026-08-03 18:37:37 +08:00
imccyu fc5ee9f786 refactor(client): expose loopback state through connection 2026-08-03 18:35:26 +08:00
imccyu 49ede3ebf3 Merge pull request #1333 from deepseek-harness/codex/fix-subagent-catalog-padding
fix(web): align subagent catalog spacing with Figma
2026-08-03 18:34:24 +08:00
kingwl 6585847144 fix(web): preserve subagent catalog styling 2026-08-03 18:24:25 +08:00
imccyu e47ad8e393 Merge remote-tracking branch 'origin/master' into agent/fix-remote-welcome-onboarding 2026-08-03 18:19:24 +08:00
Chinesezjc 2b02202ba1 Merge remote-tracking branch 'origin/master' into fix/web-sources-scroll
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-08-03 18:18:25 +08:00
imccyu 7f7c86c512 Merge pull request #1174 from deepseek-harness/xtr/trajectory-marker-tooltip-fixes
Fix trajectory request markers and disclosure affordances
2026-08-03 18:17:06 +08:00
Yichen Jiang a31faf24a1 Merge pull request #927 from deepseek-harness/worktree/fix-multi-select-custom-answer
fix(user-interaction): preserve selected options with custom answers
2026-08-03 18:15:00 +08:00
kingwl 70ad82ef00 Merge remote-tracking branch 'origin/master' into codex/fix-subagent-catalog-padding 2026-08-03 18:08:15 +08:00
imccyu ae5ee37591 Merge remote-tracking branch 'origin/master' into mergebot/pr927-r3
# Conflicts:
#	packages/ui/tui/README.i18n.yaml
#	packages/ui/tui/src/components/dialogs.ts
2026-08-03 17:57:50 +08:00
imccyu 4f68543a29 Merge pull request #965 from deepseek-harness/fix/session-waiting-approval
fix(ui-workspace): distinguish approval-waiting sessions
2026-08-03 17:51:09 +08:00
ZiyaZhang 5884a44e6b docs(ui): clarify approval wait ownership 2026-08-03 02:43:27 -07:00