Commit Graph

9398 Commits

Author SHA1 Message Date
Tianyi Cui
3921610f5b Merge pull request #893 from deepseek-harness/feature/shared-cli-config-foundation
refactor(cli): consolidate shipped config trees
2026-07-30 18:28:30 +08:00
Hypatia May
6845e038a9 test(snapshot): refresh request context fixtures 2026-07-30 18:28:30 +08:00
Hypatia May
11bbb77f74 Merge latest PR 956 stack base 2026-07-30 18:28:11 +08:00
Hypatia May
7a6d64981c round 3: disambiguate standalone compaction sections 2026-07-30 18:28:06 +08:00
kingwl
1f5d09c2d7 Merge origin/master into codex/figma-context-injection-row
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-30 18:27:49 +08:00
_Kerman
934e5e957c test(cli): accept durable inbox receipt before turn 2026-07-30 18:27:36 +08:00
_Kerman
250dcfd1ce fix(jsonrpc): drain runtime before protocol exit 2026-07-30 18:27:36 +08:00
ZiyaZhang
98c6380f07 Merge remote-tracking branch 'upstream/master' into fix/session-waiting-approval 2026-07-30 03:25:49 -07:00
_Kerman
98e099d60e test(web): refresh trajectory icon golden 2026-07-30 18:22:16 +08:00
kingwl
cdd1074805 Merge remote-tracking branch 'origin/master' into codex/queue-collapse
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-30 18:21:07 +08:00
Hypatia May
d0e387dfdc Merge remote-tracking branch 'origin/master' into codex/status-bar-token-metrics
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-30 18:19:35 +08:00
_Kerman
349cf35135 docs: mark owned-run boundary decision implemented 2026-07-30 18:18:13 +08:00
_Kerman
a4ae0b4126 fix: commit step context before request dispatch 2026-07-30 18:18:04 +08:00
Chinesezjc
7a60a236bc feat(web): render read tool output as a line-numbered code card
Consume the card:'read' result view (path, numbered lines, totalLines, lang)
the read backend PR added. ReadBlock (ui-primitives) draws a per-line gutter
with each line's own file number, shiki highlighting via a new highlightLines
returning per-line token arrays, a 显示 X / Y 行 window note, a height cap
matching TerminalBlock, and a copy control. read-card-model is the single
resultView derivation; a keyed ReadRow registers under read with the card
resident under its path-link summary. The generic fallback and the details
panel are read-aware. Fixture gains a windowed read turn for the built-boot
snapshot.
2026-07-30 18:15:38 +08:00
Hypatia May
4de4d693a2 round 2: address manual compaction review findings 2026-07-30 18:15:12 +08:00
NI0317
d3323494ba fix(pty-local): resolve the owner workspace policy 2026-07-30 18:12:51 +08:00
creatixchu
a60b25c528 Merge remote-tracking branch 'origin/feat/directory-picker-quiet-navigation' into feat/dir-selector-adaptive-default 2026-07-30 18:11:21 +08:00
_Kerman
a31331cb0e test: align e2e clients with enqueue acknowledgements 2026-07-30 18:11:20 +08:00
creatixchu
14482fcef1 fix(web): keep the approval scenario's goldens platform-neutral
The answered-transcript golden captured the OS's own refusal of the denied
first attempt — "bash: notes.txt: Operation not permitted" on macOS against
"bash: line 1: notes.txt: Read-only file system" on Linux — so it passed
locally and failed the Linux snapshot lane.

The scenario now keeps one golden (the waiting panel, platform-neutral) and
asserts the answered state on the world instead: the decided outcome, the file
the escalated command actually wrote, DONE, the panel gone, and the composer
re-enabled. The file assertion is stronger evidence than the transcript dump
it replaces — it proves the grant reached the executor.
2026-07-30 18:11:05 +08:00
Hypatia May
e3ece4b22c test(web): isolate snapshots from user skills 2026-07-30 18:11:00 +08:00
creatixchu
8fc7157d2e Merge remote-tracking branch 'origin/feat/directory-picker-show-hidden' into feat/directory-picker-quiet-navigation 2026-07-30 18:10:35 +08:00
creatixchu
d27d27419f Merge remote-tracking branch 'origin/feat/directory-picker-quiet-navigation' into feat/directory-picker-quiet-navigation 2026-07-30 18:10:35 +08:00
NI0317
91d31b0739 Merge origin/master into codex/sandbox-policy-context 2026-07-30 18:09:49 +08:00
creatixchu
bda377f6a5 Merge remote-tracking branch 'origin/feat/directory-picker-show-hidden' into feat/directory-picker-show-hidden 2026-07-30 18:09:34 +08:00
Chinesezjc
2928c65ccd feat(web): fold the search truncation total into the summary line
Replace the separate '已截断 · 共 N' pill with '显示 X / 共 N 处匹配 · K 个文件'
(and '显示 X / 共 N 个路径' for glob), mirroring the read card's '显示 X / Y 行',
so the retained count and the pre-cap total read as one clause instead of two
numbers that appear to disagree.
2026-07-30 18:09:03 +08:00
creatixchu
cf21f0a1ea Merge remote-tracking branch 'origin/master' into feat/directory-picker-show-hidden 2026-07-30 18:08:30 +08:00
_Kerman
f296fd3075 Merge remote-tracking branch 'github/master' into xtr/trajectory-timeline-click-focus
# Conflicts:
#	apps/web/tests/details-session-lifecycle.e2e.ts
#	packages/client/ui-layout/README.i18n.yaml
2026-07-30 18:08:22 +08:00
creatixchu
e080ff2c34 fix(directory-picker-browse): resolve quiet-navigation review 2026-07-30 18:08:22 +08:00
creatixchu
3d26b8a696 fix(directory-picker-browse): bot round 1 — pill cascade+corner, slow-scan close reset, asymmetry+calibration recorded
- .loadingFloat moved after the .status/.error block (its padding was
  losing the same-specificity race) and re-anchored bottom-right: the
  truncated/error rows own the bottom left and keep rendering through a
  scan, so the pill can never cover them; confirmCreate's relist now
  clears the stale failure text like every other scan launch.
- The close edge resets loading, so the slow-scan effect disarms while
  hidden and a reopened dialog waits out a fresh silence window
  (regression test added).
- The truncated note's survival through a scan is now asserted in the
  slow-scan test; the wait-bound test moved to fake timers with the
  200ms bound explicit.
- select()'s exemption from the one-frame rule and the constants' local
  calibration premise are recorded in JSDoc and the capability-seam
  Agent Note; the themed-scrollbars note's rebinding enumeration is
  replaced by a pointer to the mechanical gate (it had drifted twice).
  Both pairs re-recorded.
2026-07-30 18:08:22 +08:00
creatixchu
7895754ae9 fix(directory-picker-browse): rebind the scrollbar elevation pair on the browser card
The loading pill's layer-2 background made the sheet an
elevated-surface painter, and the ui-theme scrollbar invariant rightly
flagged what was already latent: the dialog's columns scroll on an l2
card while the thumbs rendered in the base-surface pair. Rebind the
indirection on the card rule so it inherits to the scrolling columns.
2026-07-30 18:08:22 +08:00
creatixchu
101c3908f3 feat(directory-picker-browse): quiet navigation — one-frame landings and a slow-scan loading pill
Navigations keep the previous view rendering while scanning: target and
parent legs land as one two-pane frame when the parent leg settles within
a 200ms wait bound (past it the target lands alone and the late leg
upgrades in place; Escape inside the landing window withdraws the
navigation). The loading indicator floats over the content on the card
background and appears only once a scan outlives a 300ms silence window,
so navigation never shifts the columns or flashes an intermediate frame.
The truncated note now describes the on-screen panes instead of hiding
during scans.
2026-07-30 18:08:22 +08:00
imccyu
d4d5a11e8d Merge remote-tracking branch 'origin/master' into feat/directory-picker-show-hidden 2026-07-30 18:07:42 +08:00
creatixchu
f4111a3701 fix(ui): drop the caption from the /permission error text too
Review round: the no-caption rule the Agent Note states applied only to the
success texts, leaving `permission · unknown permission preset "bogus" (…)`.
The error text now reads `unknown preset "bogus" (…)` and its exact wording
is pinned; the fixture mirror drops `JSON.stringify` for the host's own
quoting so the two cannot drift on a quoted argument.

The Note now states the line it draws: the rule bans a caption for the
command's own value, not the vocabulary, so `/plan`'s `Plan mode off.` and
`/goal`'s `Goal cleared.` conform as written — recorded with the broader
name-ban as a rejected alternative. The web row assertions are scoped to the
row so unrelated page text reading `permission` cannot satisfy them.
2026-07-30 18:07:35 +08:00
_Kerman
daed49ad54 perf(ui-trajectory): reuse finalized stream projections 2026-07-30 18:05:49 +08:00
_Kerman
7ba60845d6 test(agent-loop): update lifecycle regression contracts 2026-07-30 18:05:23 +08:00
Tianyi Cui
53ff5c6ef2 Merge branch 'master' into feature/shared-cli-config-foundation 2026-07-30 18:02:07 +08:00
imccyu
c8658aa3d3 Merge pull request #979 from deepseek-harness/codex/composer-dock-stacking
fix(web): align composer context stack
2026-07-30 18:00:46 +08:00
Yichen Jiang
3ba4d40e6a fix(user-interaction): address review feedback 2026-07-30 17:59:37 +08:00
_Kerman
97111cb5b3 fix: align lifecycle consumers with durable inbox semantics 2026-07-30 17:56:02 +08:00
Hypatia May
eda7c76eb1 Merge latest PR 956 stack base
# Conflicts:
#	docs/core-data-structures/compaction.i18n.yaml
#	docs/core-data-structures/compaction.md
#	docs/core-data-structures/compaction.zh.md
2026-07-30 17:55:35 +08:00
_Kerman
7ec01dad08 fix(ui-trajectory): bound expensive record previews 2026-07-30 17:55:06 +08:00
Turtle
83ae7046f2 fix(install): preserve pnpm version errors 2026-07-30 17:54:48 +08:00
Chinesezjc
dd56f6c646 docs: regenerate config/cordis/event catalogs for the web card tag
The re-exports for WebResultView shift line numbers in packages/core/tools;
regenerate the generated catalogs the static gate checks.
2026-07-30 17:54:15 +08:00
Chinesezjc
41ce92776e docs: regenerate config and event catalogs for the search card tag
The re-exports for SearchResultView shift line numbers in packages/core/tools;
regenerate the generated docs the static gate checks (cordis catalog was already
regenerated with the feature commit).
2026-07-30 17:52:59 +08:00
_Kerman
a43c6da1b9 fix(llm-retry): validate retries within their request step 2026-07-30 17:52:03 +08:00
Chinesezjc
c38f3fd523 docs: regenerate config/cordis/event catalogs for the read card tag
The re-exports for ReadResultView shift line numbers in packages/core/tools;
regenerate the generated catalogs the static gate checks.
2026-07-30 17:50:40 +08:00
creatixchu
c0679f42b5 fix(web): cap the approval takeover at the composer's text height
The approval panel replaces the InputBar while a sandbox escalation waits,
and its justification and command are unbounded model text. With no height
cap, a long command grew the card until the refuse/allow row went under the
fold: at 900x700 the action row's bottom landed at y=749, so the user could
read the request and not answer it.

Justification and command now scroll in one region capped at the same height
as the composer's draft area, with the amber strip and the action row outside
it. The cap is one value with two consumers — declared as
--dsh-composer-text-max-height on ConversationRoot's .composerSeat, the
composer chain's only shared ancestor — so the seat cannot cap its two states
differently. The card rebinds the l2 scrollbar pair like every other scrolling
surface on an elevated background.

Covered by a new web e2e scenario that drives the real composition (read-only
session, denied write, the model's escalation retry, answer clicked through
the panel) and measures the live panel at two viewport heights against the
composer's own cap, read off the textarea rather than hardcoded.
2026-07-30 17:50:04 +08:00
_Kerman
4e5266daa4 test: align consumers with owned-run semantics 2026-07-30 17:45:58 +08:00
_Kerman
c000bf3be8 fix(ui): hide sidebar resize pill 2026-07-30 17:43:45 +08:00
Chinesezjc
f6802ee019 feat(web): render web_search/web_fetch output as a web card
Consume the card:'web' result view (structured sources + answer for search, the
URL and HTTP status for fetch) the web backend PR added. WebBlock
(ui-primitives) draws both kinds via the kind discriminant: a citation list of
safe external links (the MarkdownText protocol allowlist, title-or-hostname
label), a truncation indicator, a height cap matching TerminalBlock; a fetch
summary for the other kind. web-card-model is the single resultView derivation;
a keyed WebRow registers under web_search and web_fetch with the card resident
under its summary. The generic fallback and the details panel are web-aware.
Fixture gains web_search and web_fetch turns for the built-boot snapshot.
2026-07-30 17:43:13 +08:00