Commit Graph
1909 Commits
Author SHA1 Message Date
imccyu 5dba32bb48 Merge pull request #3083 from deepseek-harness/worktree-apire-b
refactor(apiproxy): subagent control to Remote
2026-08-26 15:08:59 +08:00
imccyu 00c37f4ead test(web): drive preset slash catalog with gestures 2026-08-26 14:52:54 +08:00
imccyu b8360cac53 test(web): wait for editable permission composer 2026-08-26 14:52:53 +08:00
imccyu 91fea67745 test(subagent): cover Remote control migration 2026-08-26 14:52:53 +08:00
Yichen Jiang 56d3e8f82a fix(agent-presets): answer health from the walk alone, and keep the reason reachable
`import.meta.resolve`'s `parentURL` argument takes effect only under
`--experimental-import-meta-resolve`, which no launch passes, so the
fallback resolved from this module rather than from the harness — the one
question it existed to answer. The disk walk is the whole answer now, and
the refusal memo it needed goes with it. A `file:` URL joins the file
branch rather than the package one, where a resolver would only normalize
it and report a missing target as present, and a row is skipped on the
Loader's own `Boolean(disabled)` so `disabled: 0` is checked like the
Loader checks it.

A broken card says so through `aria-disabled` rather than `disabled`, and
refuses the pick in its own handler. `disabled` took it out of the tab
order, which with the reason moved onto the badge left it unreachable
without a pointer — reachable before this change, so hiding it was a
regression rather than a path that never existed.

Both notes this decision partly supersedes are updated in place and
cross-linked, one README pair loses an editing residue that repeated a
sentence, and the single-row diagnostic no longer reads "row row 1".
2026-08-26 14:42:39 +08:00
Yichen Jiang cd3401a39a Merge remote-tracking branch 'origin/master' into worktree/wizardly-maxwell-194a2a
# Conflicts:
#	packages/client/ui-agent-preset/src/client/seat-store.ts
2026-08-26 13:37:53 +08:00
Yichen Jiang f7890f591a fix(agent-presets): make a preset's failures legible where they happen
Discovery proved only that a composition parsed, so a preset naming a
package a later rename took away kept a healthy card and its place in
every picker until a person switched to it. It now resolves each row it
can prove will start, reading the package off disk and falling back to
the resolver only for names that look absent — the resolver costs a
synchronous hooks-thread round-trip under the source launch's tsx hook,
which the walk avoids for every row it clears.

The mount diagnostic followed `AggregateError.errors` but never a cause,
so a group that failed on two rows named neither. It now follows a cause
that carries more than its own message.

A refused switch left the chip's label snapping back with no account of
why, which is the only account there can be for a preset that resolves
and then refuses. It announces through the shared Toast, which gained a
caller-set hold for a cause that names packages and rows.
2026-08-26 13:31:08 +08:00
_Kerman bf83f0889b Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2731 2026-08-26 11:40:56 +08:00
Yichen Jiang d2a4a95a85 Merge pull request #2852 from deepseek-harness/worktree/web-textarea-refactor-991614
refactor(web): rebuild the composer on Lexical with atomic reference chips
2026-08-26 11:24:22 +08:00
_Kerman 6a311f0638 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2731 2026-08-26 11:17:50 +08:00
fengsy 194facabdb fix(team): authenticate browser panel snapshot 2026-08-26 10:56:57 +08:00
fengsy eadd5df82b fix(team): preserve current Client architecture after rebase 2026-08-26 10:56:57 +08:00
Dudu-0223 80e033efe5 fix(team): address Agent Teams Web review 2026-08-26 10:56:57 +08:00
Dudu-0223 61dea35bd2 refactor: let Team own browser remotes 2026-08-26 10:56:57 +08:00
Dudu-0223 806642b064 feat(team): add experimental Agent Teams Web profile 2026-08-26 10:56:57 +08:00
_Kerman d3dd816d67 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2731
# Conflicts:
#	packages/util/brand/README.i18n.yaml
#	packages/util/brand/README.md
#	packages/util/brand/README.zh.md
2026-08-26 10:35:38 +08:00
Yichen Jiang 2f157dbd76 Merge remote-tracking branch 'origin/master' into worktree/web-textarea-refactor-991614
# Conflicts:
#	packages/client/ui-chat/src/client/chat/MessageItem.module.css
#	packages/client/ui-conversation/package.json
#	packages/client/ui-input-trigger/README.i18n.yaml
#	packages/client/ui-input-trigger/README.md
#	packages/client/ui-input-trigger/README.zh.md
#	packages/client/ui-reference/README.i18n.yaml
#	packages/client/ui-reference/README.md
#	packages/client/ui-reference/README.zh.md
#	pnpm-lock.yaml
2026-08-26 10:10:09 +08:00
Yichen Jiang f47b18d2f6 Merge remote-tracking branch 'origin/master' into worktree/session-turn-nav-styling-7715ae
# Conflicts:
#	packages/client/ui-chat/README.i18n.yaml
#	packages/client/ui-chat/README.md
#	packages/client/ui-chat/README.zh.md
2026-08-26 10:05:44 +08:00
fengsy 1477d5b9ef fix(profile): preserve current fallback architecture after rebase 2026-08-26 00:15:18 +08:00
07akioni 79fd46b98e Merge pull request #3025 from deepseek-harness/ihsiangzhang/content-width-font-size
feat(ui): adaptive content width and settings font-size control
2026-08-25 21:54:15 +08:00
_Kerman 248d22f2c6 Merge remote-tracking branch 'origin/master' into xtr/message-tool-call-id 2026-08-25 21:44:26 +08:00
ihsiang be994a9270 Merge branch 'master' into ihsiangzhang/content-width-font-size 2026-08-25 21:27:28 +08:00
_Kerman cef391487a Merge remote-tracking branch 'origin/master' into xtr/projection-per-session-cache 2026-08-25 21:23:28 +08:00
Yichen Jiang a91fa3ddbc test(web): stabilize minimal Bash card snapshot 2026-08-25 21:05:01 +08:00
Yichen Jiang 9b6729d505 fix(web): expand persistent Bash result cards 2026-08-25 21:05:01 +08:00
_Kerman 741083f03b Merge remote-tracking branch 'origin/master' into xtr/projection-per-session-cache 2026-08-25 20:54:08 +08:00
yx.zhang 5720917ea7 polish(ui): trim the width handle and describe the font-size scope
Drop the width handle's double-click reset and tooltip — the handle is now
drag-only and a stored preference is only replaced by another drag — and
add a tertiary description line under the Settings font-size title stating
the size only affects conversation content. Update both Agent Notes and
the settings dialog goldens.
2026-08-25 20:44:07 +08:00
ihsiang 6d6f8f044c feat(ui): adaptive content width and font-size control
Add conversation adaptive content width and a Settings font-size control,
with theme presenter, font-size row, snapshots, tests, and agent notes.
2026-08-25 20:42:03 +08:00
_Kerman f436c888aa Merge remote-tracking branch 'origin/master' into xtr/message-tool-call-id 2026-08-25 20:24:54 +08:00
imccyu 1ec75c9082 perf(history): retain packed records in client 2026-08-25 20:13:54 +08:00
kingwl 3511796fa6 test(web): await completed turn footers 2026-08-25 20:10:43 +08:00
kingwl f2ca913756 perf(history): carry packed assistant chunks 2026-08-25 20:10:42 +08:00
_Kerman 3f34c026e3 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2781 2026-08-25 20:04:32 +08:00
Yichen Jiang effbffbff1 test(web): drive the streaming-fence prompt through the composer surface
The scenario landed on master with a textarea locator; the composer is a
Lexical contenteditable surface here, so the fill waited 30s for a node
that never exists. Use the shared per-key draft helper against
[data-composer-input] like the other composer scenarios.
2026-08-25 19:55:45 +08:00
Yichen Jiang e177571236 Merge remote-tracking branch 'origin/master' into worktree/web-textarea-refactor-991614
# Conflicts:
#	.agents/notes/archived/manifest.json
#	apps/web/tests/reference-composer.e2e.ts
#	pnpm-lock.yaml
2026-08-25 19:35:55 +08:00
Yichen Jiang 47067a8ad2 Merge remote-tracking branch 'origin/master' into worktree/session-turn-nav-styling-7715ae
# Conflicts:
#	packages/client/ui-chat/README.i18n.yaml
#	packages/client/ui-chat/README.md
#	packages/client/ui-chat/README.zh.md
#	snapshots/web/cordis-tool-round/ui.expected.md
#	snapshots/web/message-actions/ui.expected.md
#	snapshots/web/seeded-history/command-row.expected.md
#	snapshots/web/seeded-history/feedback-row.expected.md
#	snapshots/web/seeded-history/ui.expected.md
#	snapshots/web/subagent-conversation/ui.expected.md
2026-08-25 19:32:16 +08:00
ZiyaandZiyaZhang b565df3442 feat(web): show exact per-turn token usage (#3005)
* feat(web): show exact per-turn token usage

* test(runtime): refresh exact token usage snapshots

* refactor(token-meter): own per-turn usage folding

* perf(ui-chat): bound paging anchor layout reads

* test(web): align usage golden with system prompt row

* fix(test): resolve token-meter client from source

* test(token-meter): cover retry without usage

---------

Co-authored-by: ZiyaZhang <199893125+ZiyaZhang@users.noreply.github.com>
2026-08-25 19:05:52 +08:00
Dudu-0223 b68f36a1ca test(web): authenticate folding snapshot 2026-08-25 17:20:06 +08:00
Dudu-0223 2abd486f8f Merge remote-tracking branch 'origin/master' into fix/web-fetch-ssrf 2026-08-25 17:07:57 +08:00
lsdsjy fd0ed9fed4 Merge pull request #2845 from deepseek-harness/fix/workspace-new-session-fold-quota
fix(ui-workspace): keep blank new sessions outside the fold quota
2026-08-25 16:57:41 +08:00
Dudu-0223 44468d4583 Merge remote-tracking branch 'origin/master' into fix/web-fetch-ssrf 2026-08-25 15:53:46 +08:00
Yichen Jiang 1272c7d0df perf(web): accumulate the Turn rail instead of scanning the loaded window
The rail's items now ride the Chat snapshot: a structural upsert re-derives
the loaded Turn set, a content-only upsert re-derives only the Turns whose
nodes changed, and each preview is capped so navigation state never holds a
copy of the transcript. The published array keeps its identity until an item
changes, so ChatView selects it as both data and change signal — and a
streaming reply's preview follows the in-place node update instead of the
last structural publication.

A scroll frame resolves the active mark with one hit test at the reading
line, falling back to a single row scan, rather than a DOM query per mark.
Flow-height changes resync through the existing column observer, navigating
during a pending page keeps the paging anchor, and the rail height no longer
holds a floor taller than the band it centers in.
2026-08-25 14:46:38 +08:00
Dudu-0223 8e681a66b9 Merge origin/master into fix/web-fetch-ssrf 2026-08-25 14:46:26 +08:00
_Kerman 38355623a2 Merge remote-tracking branch 'origin/master' into xtr/projection-per-session-cache
# Conflicts:
#	packages/bundle/web-app/README.i18n.yaml
#	packages/bundle/web-app/README.md
#	packages/bundle/web-app/README.zh.md
2026-08-25 14:45:03 +08:00
07akioni 61b65d3147 fix(web): show system prompts in chat
Render reconstructable system prompts at each request-series boundary, preserve series declarations through pre-step wrappers, and keep the presentation and replay snapshots aligned across clients.
2026-08-25 14:44:08 +08:00
_Kerman 804db36546 Merge remote-tracking branch 'origin/master' into xtr/message-tool-call-id 2026-08-25 14:42:35 +08:00
Dudu-0223 aaf0924b48 Merge origin/master into fix/web-fetch-ssrf 2026-08-25 14:40:51 +08:00
_Kerman b588675ccf Merge remote-tracking branch 'origin/master' into xtr/projection-per-session-cache
# Conflicts:
#	pnpm-lock.yaml
2026-08-25 14:40:22 +08:00
_Kerman 9365ef496d Merge remote-tracking branch 'origin/master' into xtr/message-tool-call-id
# Conflicts:
#	packages/acp/acp/tests/approval.spec.ts
#	packages/acp/acp/tests/edges.spec.ts
#	packages/api/session-controller/tests/event-script.client.ts
#	packages/client/connection/src/client/fixture.ts
#	packages/client/ui-conversation/src/client/contract/slots.ts
#	packages/client/ui-conversation/src/client/contract/views.ts
#	packages/client/ui-conversation/src/client/index.ts
#	packages/client/ui-conversation/src/client/stores.ts
#	packages/core/agent-loop/tests/loop.spec.ts
#	packages/extensions/cordis-client-runner/src/client/slot-catalog.ts
#	packages/extensions/tool-cordis/src/api-catalog.ts
#	packages/host/apiproxy/src/api-proxy.ts
#	packages/host/apiproxy/src/api/events.ts
#	packages/host/apiproxy/tests/api-proxy-view.spec.ts
#	packages/interaction/user-approval/src/index.ts
#	packages/llm/llm-deepseek/tests/adapter.e2e.ts
#	packages/llm/llm-pi-ai/src/context.ts
#	packages/llm/llm-pi-ai/tests/context.spec.ts
#	packages/llm/llm/tests/content.spec.ts
#	packages/subagent/subagent/tests/continuation.spec.ts
#	packages/subagent/tool-subagent/tests/tool-subagent.spec.ts
#	packages/test-support/llm-replay/tests/llm-replay.spec.ts
#	packages/todo/tool-todo/tests/tool-todo.spec.ts
#	scripts/gen-persistence-catalog.ts
2026-08-25 14:37:44 +08:00
lsdsjy 9d25fbf218 fix(ui-workspace): keep blank new sessions outside the fold quota
Keep five non-blank rows stable while the selected blank New Session is provisional, and derive the overflow count from the rows still hidden.

Fixes #2841
2026-08-25 14:36:56 +08:00