Commit Graph
2575 Commits
Author SHA1 Message Date
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
Tianyi Cui 42dc2a46c2 refactor(session): require known event types on read 2026-08-26 00:22:31 +08:00
imccyu f18f2215b6 Merge pull request #3073 from deepseek-harness/worktree-apire-a
refactor(apiproxy): delete the goal unary domain
2026-08-25 23:54:01 +08:00
Magolor 0b5eba0c8d docs: rebuild the documentation skill and standards (#2983) 2026-08-25 23:47:20 +08:00
Yichen Jiang e601f813a4 Merge pull request #3079 from deepseek-harness/worktree/3077-model-selector-names-only
fix(web): hide model selector descriptions
2026-08-25 22:02:18 +08:00
ihsiang be994a9270 Merge branch 'master' into ihsiangzhang/content-width-font-size 2026-08-25 21:27:28 +08:00
Yichen Jiang b6c5aa7516 fix(web): hide model selector descriptions
Refs #3077
2026-08-25 21:19:21 +08:00
Yichen Jiang 9b6729d505 fix(web): expand persistent Bash result cards 2026-08-25 21:05:01 +08:00
imccyu 243f6629ef refactor(apiproxy): delete the goal unary domain
The goal domain has been served by GoalService's @Remote namespace since it
shipped; the API Proxy copy was a second implementation of the same six
mutations. Remove the goals contract, schemas, route rows, IApiClient stub,
host implementation, and the fixture's compatibility face, leaving
ctx.remote.goals as the only path.

The fixture's goal fold keeps its coverage through the Goal Remotes: its
lifecycle case moves out of the unary-dispatch test, which no longer has
goal rows to cover.
2026-08-25 20:52:46 +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
yx.zhang 9ecd18e986 feat(ui): extend the content font-size axis to flow chrome
Adopt --dsh-content-font-size / --dsh-content-font-delta across the flow
rows around the transcript body: DisclosureRow header (row height, title,
leading box, and registered glyphs, with StateDot exempt), ToolRow and
bash-row summaries and file links, think text, compaction/context/retry/
error rows, message clock and icon actions, the workflow-run panel, and
the workspace browser. Update the font-size Agent Note and add CSS-text
specs for the new adoptions.
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
imccyu 45b9f2db44 fix(locale): validate contributed language tags 2026-08-25 20:40:26 +08:00
imccyu bbe00b0db2 feat(locale): allow external language registration 2026-08-25 20:40:26 +08:00
imccyu 9d61ab6756 docs(locale): define extensible language fallbacks 2026-08-25 20:40:25 +08:00
imccyu 27b8d6fe97 fix(chat): exclude packed deltas from token fold 2026-08-25 20:25:23 +08:00
imccyu d3efd9c35d fix(conversation): restore merge-map lint scope 2026-08-25 20:15:07 +08:00
imccyu f37bb35a97 perf(conversation): fold packed assistant history 2026-08-25 20:15:06 +08:00
imccyu 1ec75c9082 perf(history): retain packed records in client 2026-08-25 20:13:54 +08:00
kingwl 04c0758fe9 fix(history): adapt packed pages to session journal 2026-08-25 20:10:43 +08:00
kingwl f2ca913756 perf(history): carry packed assistant chunks 2026-08-25 20:10:42 +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
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
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
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
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
Tianyi Cui b43d0934f7 test(web): keep credential fixtures package-local 2026-08-25 14:23:47 +08:00
Tianyi Cui 9c964848cd fix(web): keep browser authentication synchronous 2026-08-25 14:23:47 +08:00
Tianyi Cui 5595d593d1 docs(web): state authentication contracts directly 2026-08-25 14:23:47 +08:00
Tianyi Cui 3b3b493a96 fix(web): retain launch token across reloads 2026-08-25 14:23:46 +08:00
Tianyi Cui ce031ddd16 fix(web): cover authenticated host runtimes 2026-08-25 14:23:46 +08:00
Tianyi Cui 3e24087bfa fix(web): authenticate the browser Host API 2026-08-25 14:23:45 +08:00
Yichen Jiang 19c772f46c Merge pull request #3036 from deepseek-harness/worktree/system-prompt-order-bands
fix(system-prompt): centralize sparse section orders
2026-08-25 14:16:26 +08:00
Yichen Jiang d38ff54150 feat(web): navigate loaded Chat Turns from a compact rail
ChatView derives one navigation mark per currently loaded Turn, keyed by
Turn number and anchored on that Turn's first loaded user node. The rail
sits against the scrollport's right edge, centered in the band the sticky
composer leaves visible; hover and keyboard focus preview the Turn's
prompt and response, and activating a mark moves the shared scrollport
and records the resulting restoration anchor.

ConversationRoot publishes --dsh-conversation-viewport-height beside the
composer height it already measures on the scrollport, so floating View
chrome can center in that band without assuming a Session header height.
2026-08-25 14:02:57 +08:00
07akioni 1825cb4657 feat(client): highlight streaming fences incrementally
Keep recognized code fences syntax-highlighted while assistant text streams. Preserve completed Shiki token lines across chunks, mirror token styles and CRLF handling, and retain plain rendering for unsupported or math-like fences.

Add unit, DOM-parity, and keyless assembled-Web coverage for the streaming-to-settled transition.

Closes #1499
2026-08-25 12:59:21 +08:00
Yichen Jiang 145e060992 Merge remote-tracking branch 'origin/master' into worktree/system-prompt-order-bands 2026-08-25 12:07:56 +08:00
Yichen Jiang 43ac97b554 fix(system-prompt): centralize sparse section orders 2026-08-25 11:06:01 +08:00
creatixchu dde6c8d7fc Merge remote-tracking branch 'origin/master' into worktree/2986-trajectory-image-attachments 2026-08-25 10:50:06 +08:00
imccyu 075a46cdec fix(client): preserve combo source identities 2026-08-25 06:43:25 +08:00
imccyu 83463aa896 feat(client): use bounded plugin combo URLs 2026-08-25 06:43:24 +08:00
imccyu f5f0448bee refactor(subagent): consume shared session observations 2026-08-25 06:09:25 +08:00
imccyu b8dfa8b892 fix(agent-presets): project selection and refresh client catalogs 2026-08-25 06:07:58 +08:00
imccyu 822d735356 feat(session): persist model selection and share its catalog 2026-08-25 06:07:42 +08:00
lsdsjy 838006d960 docs(client-modules,client-hmr): align bootstrap and rebuild semantics 2026-08-24 20:49:13 +08:00
imccyu 9c3a0893f6 perf(client-modules): defer per-plugin revision hashing
Preserve sourcemaps through the production Client build and verify batched loading across Host, HMR, and Web Worker paths.
2026-08-24 20:49:13 +08:00
lsdsjy 47bf44a5bb fix(client-modules,webserver,webworker-runtime): preserve batched boot across transports 2026-08-24 20:49:12 +08:00
lsdsjy 445de0ab3e fix(client-modules): tolerate incomplete source maps 2026-08-24 20:48:13 +08:00
lsdsjy 5bbaf168d9 perf(client-modules): batch startup plugin scripts 2026-08-24 20:48:12 +08:00
imccyu 82aa8906e5 Merge pull request #2905 from deepseek-harness/turtle/local-build-banner-version
Show build version in local Web banner
2026-08-24 20:46:43 +08:00