Commit Graph
2686 Commits
Author SHA1 Message Date
imccyu 89ee54ebb7 test(api): align migrated client contracts 2026-08-27 21:57:57 +08:00
imccyu 5f6293e67a test(client): update remote session fixtures 2026-08-27 21:57:57 +08:00
imccyu 812556040d fix(api): restore migrated remote coverage 2026-08-27 21:57:57 +08:00
imccyu 88f2f0aaec test(api): complete migrated Remote coverage 2026-08-27 21:57:57 +08:00
imccyu 160706be60 test(api): refresh Remote migration artifacts 2026-08-27 21:57:56 +08:00
imccyu 5b2f679e4a refactor(client): consume migrated Remote namespaces 2026-08-27 21:57:56 +08:00
imccyu b46953f3cc test(client-modules): type loader resolver stubs 2026-08-27 20:16:51 +08:00
imccyu 827acd07b1 docs(client-modules): align resolver contract 2026-08-27 20:10:20 +08:00
imccyu dc1be1334f fix(inspector): address bootstrap review findings 2026-08-27 20:03:17 +08:00
imccyu ac13b16c0c fix(inspector): stabilize client bootstrap identity 2026-08-27 19:35:34 +08:00
lsdsjyandYif 8b09a0be52 feat(ui-conversation): fold turn process before final answer (#2547)
* feat(ui-conversation): fold turn process before final answer

* fix(ui-chat): polish turn-process control row from review

* test(web): drive preset slash catalog with gestures

* fix(ui-chat): keep turn process order stable

* fix(ui-chat): preserve prompt order after pagination

Co-authored-by: Yif <877193178@qq.com>
2026-08-27 10:12:39 +00:00
fz 1c808341ec Add global CJK/Latin auto-spacing via text-autospace
Progressive enhancement on body in the shell base sheet so mixed
Chinese/English copy gets consistent spacing without content edits;
engines without support ignore the property.
2026-08-27 17:21:40 +08:00
Yichen Jiang efd816c0dd Merge pull request #3182 from deepseek-harness/worktree/web-mention-ux-polish-1bf698
feat(web): trim @ mention rows and cut their discovery cost
2026-08-27 16:12:02 +08:00
Yichen Jiang 317ab06b24 Merge pull request #3176 from deepseek-harness/worktree/web-readable-ask-question-cards
fix(web): render readable ask-user transcripts
2026-08-27 15:45:58 +08:00
Yichen Jiang 093048d256 Merge remote-tracking branch 'origin/master' into worktree/web-mention-ux-polish-1bf698 2026-08-27 15:35:28 +08:00
CreatixChu c10be57913 Merge pull request #3111 from deepseek-harness/worktree/3003-instant-pending-submit
feat(web): 图片询问点击发送即回显,压缩与传输转入后台
2026-08-27 15:31:01 +08:00
Yichen Jiang 8e9da9debf refactor(session-reference): label discovery from projections alone
A title now comes from an attached session's live projection cut or a cold
one's durable checkpoint, and from nothing else. Attachment is decided by the
session store at read time, so a session that attached after the listing is no
longer answered from a checkpoint its log has moved past — the stale-title case
`api-session.list` already handles this way.

The log fold and its per-log memo are gone. Folding one title costs a whole
log, and this call sits under every keystroke; a session no projection answers
for is labeled by its id and regains its title the first time it is opened.

`lib` leaves the default exclusions: Ruby gems and many npm packages keep
sources there, and the miss would be silent and total. A traversal whose root
is unreadable now rejects instead of publishing an empty index over entries
that are still good, which is what the stale-while-revalidate path claimed but
could not do while every readdir error was swallowed. A drill marks the menu
drilled only when its edit actually reached the draft.

Refs #3154
Refs #3180
2026-08-27 15:21:08 +08:00
Yichen Jiang 94d06e23d2 fix(web): preserve mixed ask-user results 2026-08-27 15:11:55 +08:00
Dudu-0223 0615d17a82 Merge pull request #3020 from deepseek-harness/fix/subagent-model-switch-plugins
feat(subagent): authorize selectable child models
2026-08-27 14:12:24 +08:00
Yichen Jiang 49753b33fa fix(web): keep question card props data-only 2026-08-27 13:21:22 +08:00
Yichen Jiang c873fc9d2e fix(client): stop rebuilding the turn rail on every chat render
TurnNavigator was an unmemoized component rendering one div and one
button per loaded Turn, so every ChatView render rebuilt the whole rail:
143 button rebuilds per commit in a 300-Turn session against 8.4 in a
4-Turn one, while a streaming answer commits dozens of times.

memo alone would not have helped, because navigateToTurn was rebuilt on
every render and broke prop identity, so it moves into useCallback.
2026-08-27 13:08:17 +08:00
Dudu-0223 e49e7202c1 fix: align model selection with current settings remotes 2026-08-27 12:18:05 +08:00
Dudu-0223 aad90d5cf3 fix(ui-settings-plugins): preserve model selection drafts 2026-08-27 12:00:02 +08:00
Dudu-0223 cbacceca4b fix(ui-settings-plugins): place Subagent after Agent loop 2026-08-27 12:00:02 +08:00
Dudu-0223 4cc1f5e0ff fix(ui-settings-plugins): relax Subagent card layout 2026-08-27 12:00:02 +08:00
Dudu-0223 5a5e1b7373 test(ui-settings-plugins): cover provider model grouping 2026-08-27 12:00:02 +08:00
Dudu-0223 0b2f476071 fix(ui-settings-plugins): align Subagent configuration card 2026-08-27 12:00:02 +08:00
Dudu-0223 3a146064a4 fix: address subagent model selection review 2026-08-27 12:00:02 +08:00
Dudu-0223 1ea72339fd fix(web): close model switch review gaps 2026-08-27 12:00:02 +08:00
Dudu-0223 7c626fb5d2 fix(subagent): gate model selection with explicit allowlist 2026-08-27 12:00:02 +08:00
Dudu-0223 aefc083be7 feat(subagent): authorize selectable child models 2026-08-27 12:00:01 +08:00
Dudu-0223 f887a8f907 fix(web): move subagent model switch to Plugins 2026-08-27 12:00:01 +08:00
Yichen Jiang c8e8f8249f fix(web): date @ session rows by last activity, not creation
The Host session list already carries each session's `updatedAt`, which is
the number its own rows show; reading it there keeps the two surfaces from
disagreeing and avoids making a context capability depend on the BFF
assembly that owns the `sessionListMetadata` projection. A session the list
does not carry falls back to the candidate's creation time.

Refs #3154
2026-08-27 11:50:52 +08:00
Yichen Jiang 97e0299f74 feat(web): trim @ mention rows and cut their discovery cost
Session candidates labelled from projection checkpoints instead of a full
log fold per keystroke, with the uncheckpointed remainder folded once and
memoized while its log stays cold. The file index keeps answering while an
invalidated traversal rebuilds behind the caret, and its default exclusions
now cover build outputs so deep sources stay reachable.

Rows carry only what distinguishes them: a file names its parent directory,
a session names its workspace only when that workspace is not the current
one, and a drilled listing names none because its new breadcrumb does.

Resolves #3180
Related to #3154
2026-08-27 11:42:06 +08:00
Yichen Jiang 94db8e881b fix(web): render readable ask-user transcripts 2026-08-27 11:28:59 +08:00
creatixchu 25ae5ae6e0 Merge remote-tracking branch 'origin/master' into worktree/feedback-otel-enable 2026-08-27 11:19:57 +08:00
creatixchu 16a7ead9ab Merge remote-tracking branch 'origin/master' into codex/pr-3111-review
# Conflicts:
#	scripts/ci-workflow.spec.ts
2026-08-27 10:57:27 +08:00
Yichen Jiang a24c71127f Merge pull request #3155 from deepseek-harness/feat/web-input-trigger-menu-polish
feat(web): 输入触发菜单(/ 与 @)呈现打磨
2026-08-27 10:12:39 +08:00
imccyu 5918dd205e refactor(client): use settings Remote namespaces 2026-08-27 03:01:02 +08:00
imccyu 6e4087626d refactor(apiproxy)!: remove directory-picker RPCs 2026-08-27 02:20:39 +08:00
imccyu 011d53862d refactor(client): use directory-picker Remote 2026-08-27 02:20:38 +08:00
Yif 36dd657c7e test(ui-input-trigger): cover the onHover slot wiring; restore master's notices
The merge resolution had reverted THIRD_PARTY_NOTICES.md to the SDK 0.3.220
rows; the lockfile pins 0.3.241, so CI regenerated a mismatch. The apply spec
now drives the injected onHover face, closing the per-file coverage gap on
src/client/index.ts.
2026-08-26 22:10:58 +08:00
Yif 9ec543c943 Merge remote-tracking branch 'origin/master' into feat/web-input-trigger-menu-polish
# Conflicts:
#	apps/web/tests/agent-preset-selection.e2e.ts
2026-08-26 21:35:21 +08:00
Yif 0114dc1f81 feat(web): polish the input trigger menu presentation
Candidate rows lead with domain icons instead of localized text
prefixes; pointer and keyboard share one reducer-owned highlight (last
input wins); drillable folder rows reveal a localized Browse-folder +
Tab keycap hint with the library chevron; pending sources render
skeleton bars; the menu spans the composer card. The editable @dir/
text decorates color-only — the domain icon now belongs exclusively to
the settled reference chip. Composer placeholders advertise / and @,
and the zh copy for commands is unified to 指令.
2026-08-26 21:17:46 +08:00
yx.zhang 9e33469913 fix(review): correct the secondary-tier floor claim and pin engine-resolved sizes
The Agent Note (both languages), the PR prose, and the commit message
claimed a 13px floor for the table variants; the formula has none —
max(13px, setting − 2px) selects the −1 branch at low settings rather
than clamping the result, so the tier bottoms out at 11px at the 12px
setting, matching think text. Rewrite the claim, say so in the axis
comment, and split the README sentence that lumped body-pair and
secondary-pair consumers together.

Assert the engine-resolved secondary size in the settings-chrome e2e
(13px at the default, 13px at the 15px boundary, 14px at 16px,
unchanged across reload), sync the StatsLine and workflow-panel spec
headers with the tier they now pin, and note why memberLabel stays at
the body size.
2026-08-26 19:28:04 +08:00
yx.zhang a77e23a975 feat(ui): unify the flow-row secondary font tier and scale tables
Derive --dsh-content-font-size-secondary (setting -1 at <=14, setting -2
above; 13px at the default) with --dsh-content-font-delta-secondary in
gradient-shadow-text.css, and move every one-step-under-the-body text
onto it: think text and reasoning summaries, the shared DisclosureRow
title, ToolRow and bash-row summaries and file links, compaction/
context/command/retry/error rows, StatsLine, the workflow-run panel
tiers, reference summaries, the turn-status clock, and the feedback
note trigger. The markdown table variants join the same tier instead of
staying fixed; its 13px floor keeps them legible at the 12px setting.

At the default setting the flow-row titles and summaries render at 13px
(previously 14px) so they match think text at every setting instead of
sitting 2px above it.
2026-08-26 19:28:04 +08:00
Yichen Jiang 4ecebeb54f Merge pull request #3138 from deepseek-harness/feat/models-provider-card-slots
feat(ui-settings-models): open provider-card and footer extension slots
2026-08-26 17:25:48 +08:00
Yichen Jiang bf0db65bb0 fix(ui-settings-models): address review — derived key fact, required render seat, spec sync
The provider-card seat's keyConfigured now derives from the reference the
page would use — the profile's apiKeyEnv, or the page's derived
<ROUTE>_API_KEY while the profile names none — so the add-provider draft
agrees with its own editor about an existing conventional credential (the
store joins the derived describe in the same batched call, as
ProviderRow.derivedCredential). ModelsSectionProps makes the renderSlot seat
required so a direct render that forgets it fails to compile; the one such
render in provider-form.client.spec regained a real mount and the test
boilerplate collapsed to renderSlot={() => null}. The extension-slots Agent
Note now states the keyed cell's real override rule (same priority throws,
a different priority shadows), and docs/subsystems/slots.md carries the two
new seats in its hierarchy, both languages.
2026-08-26 17:12:58 +08:00
Yichen Jiang e5d39b6076 Merge origin/master into worktree/fix-question-drafts-session-switch 2026-08-26 15:51:15 +08:00
creatixchu 3031cb0e33 Merge remote-tracking branch 'origin/master' into codex/pr-3111-review
# Conflicts:
#	packages/api/session-controller/src/client/contract/snapshot.ts
#	packages/test-support/client-runtime/src/sessions.ts
2026-08-26 15:34:18 +08:00