Commit Graph
5620 Commits
Author SHA1 Message Date
ZiyaZhang 047ea50987 feat(web): add preview badge to empty hero 2026-08-04 01:46:52 -07:00
creatixchu 29646074cd Merge origin/master into worktree/sidebar-scrollbar-reveal 2026-08-04 16:19:46 +08:00
imccyu ad03ccbd7a Merge branch 'master' into feat/turn-running-time 2026-08-04 16:03:31 +08:00
imccyu b4a4f337e4 test(client): derive retry timing expectation 2026-08-04 16:02:19 +08:00
imccyu cc435a9c0c fix(web): use exact turn boundaries for run time 2026-08-04 15:55:07 +08:00
creatixchu 86514f2921 Merge origin/master into worktree/sidebar-scrollbar-reveal
#1381 landed the bar's horizontal position; this branch decides when it is
drawn. The e2e keeps both scenarios and the golden carries both palettes'
pointer-state readings alongside the new edge-offset lines.
2026-08-04 15:46:53 +08:00
creatixchu 10ce8d8a45 fix(web): decide the sidebar's pointer leave by geometry, and tighten the gate
Review findings from the first round:

- ui-settings renders its full-viewport panel as a fixed-position DESCENDANT
  of the sidebar column, so `pointerleave` never fires when the pointer moves
  onto it and the bars stayed drawn after it closed. Leaving is now decided
  against the column's box from a document-level pointermove that exists only
  while the bars are drawn; the element's own leave stays for the pointer that
  leaves the window.
- The rebind gate judges the rule rather than each declaration, so a pair that
  mixes `transparent` with an l2 hover no longer passes, and the elevation
  half compares whole values instead of token shape.
- Hiding no longer exempts a sheet from the elevated-surface rebind check.
- The e2e polls the reveal before reading a colour for the golden, and pins
  that a pointerless scroll draws no thumb.
2026-08-04 15:42:39 +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
fz 193d918856 Merge remote-tracking branch 'origin/master' into codex/fix-headless-sigint
# Conflicts:
#	apps/cli/README.i18n.yaml
#	apps/cli/README.md
#	apps/cli/README.zh.md
#	apps/cli/config/base.cordis.yml
2026-08-04 15:18:48 +08:00
creatixchu ef2fbdfc19 fix(web): preserve focus when restoring drafts 2026-08-04 15:12:11 +08:00
creatixchu a030397aca feat(web): draw the sidebar's scrollbar only under the pointer
The session list overflows after a handful of sessions, and its scrollbar
was drawn permanently in a column that is at rest most of the time.

SidebarRoot now tracks the pointer over the whole column and rebinds
ui-theme's scrollbar indirection pair to `transparent` while it is
outside, keeping the thumb for 2s after the pointer leaves so it does not
blink out on the way past. Rebinding colour leaves the list's
`scrollbar-gutter: stable` reservation in force, so revealing the bar
moves no row.

ui-theme's gate now states the widened contract: a rebind targets an -l2
token pair or `transparent`, and nothing else.
2026-08-04 15:05:32 +08:00
_Kerman 099edf1f4b Merge pull request #1381 from deepseek-harness/xtr/sidebar-session-spacing
fix(web): tighten sidebar session spacing
2026-08-04 15:04:19 +08:00
_Kerman 369fad9faf fix(web): inset sidebar scrollbar by 2px 2026-08-04 14:56:30 +08:00
imccyu 9f33f1d652 Merge pull request #1391 from deepseek-harness/worktree-tsx-map
fix(client): correct sourcemap in devtools
2026-08-04 14:56:08 +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 a44c8797b6 test(web): add opt-in reasoning chunk stress lane 2026-08-04 14:37:31 +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
imccyu 6c6d933732 fix(client): load plugin bundles as external scripts 2026-08-04 14:18:47 +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
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 10bb9cbf4a cleanup: remove TUI package and legacy dsh entrypoints 2026-08-04 13:20:28 +08:00
Chinesezjc 6601738e32 Merge origin/master into fix/web-sources-scroll 2026-08-04 13:11:40 +08:00
Turtle ec4e130e31 fix(jsonl): recover truncated zstd frames on node 26 2026-08-04 11:58:38 +08:00
fz f0e5a39d19 Merge remote-tracking branch 'origin/master' into codex/fix-headless-sigint 2026-08-04 11:07:36 +08:00
fz 8ea88a589b test(cli): cover shutdown timer invariants 2026-08-04 11:03:52 +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
fz 003d297442 Merge remote-tracking branch 'origin/master' into codex/fix-headless-sigint 2026-08-03 22:21:46 +08:00
fz ef23b88ad4 fix(cli): bound telemetry shutdown on signals
Refs #1356
2026-08-03 22:08:47 +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
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
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
kingwl 70ad82ef00 Merge remote-tracking branch 'origin/master' into codex/fix-subagent-catalog-padding 2026-08-03 18:08:15 +08:00