Commit Graph

8024 Commits

Author SHA1 Message Date
creatixchu
a7b7066267 fix(web): scroll the composer's glyph layer with its textarea
A composer draft past the 14-line cap could not be scrolled: the caret and
the selection moved, but the words stayed frozen at line 1, so the tail of
anything longer than the cap was unreachable while writing it.

The composer paints its text in two stacked layers. The textarea owns the
value, the selection and the caret but renders its own glyphs transparent;
every visible character is painted by the decoration backdrop beneath it,
which also carries the claim-token highlight, the chips and the ghost hint.
The backdrop is `inset: 0; overflow: hidden` — clipped, not scrolled — and
nothing linked its offset to the textarea's. Below the cap both layers rest
at 0, which is why the defect hid behind every short-draft screenshot and
fixture.

InputBar now mirrors the textarea's scrollTop onto the backdrop, from a
`scroll` listener (every gesture and every caret-driven scroll) and from a
layout effect keyed on the committed draft (an edit reflows both layers
without necessarily firing a scroll event).

Scrolling is layout, so jsdom cannot show this: the unit spec stubs both
offsets and proves the mirroring paths run, while a new browser scenario
measures the user-visible fact against the built client with a DOM Range
over the backdrop's own text — after a wheel gesture over a 40-line draft
the last line is on screen and the first has scrolled out. Confirmed both
directions: with the mirroring reverted and the packages rebuilt, the
golden reads `last draft line is on screen: false` while `textarea moved:
true`.
2026-07-31 11:53:04 +08:00
ZiyaZhang
45e5317ecd fix(ci): stabilize merged coverage gates 2026-07-30 20:52:35 -07:00
Hypatia May
322950487e fix(apiproxy): let commands outlive unary deadline 2026-07-31 11:51:49 +08:00
Chinesezjc
17bb02190b fix(fs): regenerate doc graphs and refresh glob-sampling golden after merge
The master merge left docs/event-producer-consumer.md stale (regenerated) and
the master-introduced fs-glob-sampling scenario now carries the search-card
`meta` this branch projects from glob (refreshed golden).
2026-07-31 11:50:10 +08:00
Yichen Jiang
8763491a9d Merge remote-tracking branch 'origin/master' into worktree/web-model-request-retry
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-31 11:49:02 +08:00
Ziya
ade8358e67 Merge branch 'master' into feat/gui-full-access-confirmation 2026-07-30 23:45:31 -04:00
Chinesezjc
3248955f44 Merge pull request #987 from deepseek-harness/feat/web-web-card
feat(web): render web_search/web_fetch output as a web card
2026-07-31 11:44:57 +08:00
Tianyi Cui
dafdf4a852 Merge newer master into status bar token metrics 2026-07-31 11:40:06 +08:00
Yichen Jiang
2e07da19e5 Merge remote-tracking branch 'origin/master' into worktree/web-model-request-retry
# Conflicts:
#	apps/cli/README.i18n.yaml
#	apps/cli/README.md
#	apps/cli/README.zh.md
#	packages/client/runtime/README.i18n.yaml
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-31 11:39:58 +08:00
Tianyi Cui
ba66ade9f4 Merge latest master into status bar token metrics 2026-07-31 11:36:11 +08:00
Tianyi Cui
a42260ea62 Merge origin/master into feature/readme-current-capabilities 2026-07-31 11:33:17 +08:00
Ziya
25fd90a561 Merge branch 'master' into feat/gui-full-access-confirmation 2026-07-30 23:32:55 -04:00
Yichen Jiang
049e64b002 Merge remote-tracking branch 'origin/master' into worktree/fix-models-settings 2026-07-31 11:32:17 +08:00
Yichen Jiang
788b9eb986 fix(web): hide provider liveness badges 2026-07-31 11:32:10 +08:00
Chinesezjc
df5b09cd6e Merge remote-tracking branch 'origin/master' into feat/search-presenter
# Conflicts:
#	docs/config-catalog.md
#	docs/cookbook/adding-a-tool.i18n.yaml
#	docs/cookbook/adding-a-tool.md
#	docs/cookbook/adding-a-tool.zh.md
#	docs/cordis-catalog/events.md
#	docs/cordis-catalog/services.md
#	docs/core-data-structures/tools.i18n.yaml
#	docs/core-data-structures/tools.md
#	docs/core-data-structures/tools.zh.md
#	docs/event-producer-consumer.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/cordis/tool-cordis/src/api-catalog.ts
#	packages/core/tools/README.i18n.yaml
#	packages/core/tools/README.md
#	packages/core/tools/README.zh.md
#	packages/core/tools/src/index.ts
#	packages/core/tools/src/presentation.ts
#	packages/fs/tool-fs-search/src/glob.ts
#	packages/fs/tool-fs-search/src/index.ts
#	packages/ui/tui/src/components/transcript.ts
#	packages/ui/tui/tests/tui.spec.ts
2026-07-31 11:31:32 +08:00
Tianyi Cui
f6443601c4 Merge pull request #1021 from deepseek-harness/worktree/pr884-simplify
fix(atomic-write): preserve contended writer locks
2026-07-31 11:31:17 +08:00
imccyu
aea9cf5e6c test(web): carry Full access label into plan-active golden 2026-07-31 11:30:08 +08:00
Chinesezjc
6f0405ed84 docs: re-record ui-conversation README pairing after master merge 2026-07-31 11:27:13 +08:00
NI0317
c955c9adb1 fix(web): align the credential onboarding page 2026-07-31 11:27:01 +08:00
NI0317
e2373ee562 Merge remote-tracking branch 'origin/feature/readme-current-capabilities' into feature/readme-current-capabilities 2026-07-31 11:26:40 +08:00
Chinesezjc
e4cb667184 Merge remote-tracking branch 'origin/master' into feat/web-web-card
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-31 11:26:35 +08:00
Chinesezjc
5a52f33dd1 Merge remote-tracking branch 'origin/master' into feat/web-diff-card
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-31 11:26:21 +08:00
Chinesezjc
38bd01af52 Merge remote-tracking branch 'origin/master' into feat/read-presenter 2026-07-31 11:25:44 +08:00
Tianyi Cui
f086650b6f Merge branch 'master' into feature/readme-current-capabilities 2026-07-31 11:25:19 +08:00
imccyu
37827c461d Merge remote-tracking branch 'origin/master' into mergebot/pr998
# Conflicts:
#	apps/web/tests/snapshots/code-mode-round/ui.expected.md
#	apps/web/tests/snapshots/cordis-tool-round/ui.expected.md
#	apps/web/tests/snapshots/fresh-round-trip/ui.expected.md
#	apps/web/tests/snapshots/lifecycle-chrome/hero.expected.md
#	apps/web/tests/snapshots/lifecycle-chrome/reloaded.expected.md
#	apps/web/tests/snapshots/live-interactions/cancel.expected.md
#	apps/web/tests/snapshots/live-interactions/error-auth.expected.md
#	apps/web/tests/snapshots/live-interactions/retry.expected.md
#	apps/web/tests/snapshots/message-actions/ui.expected.md
#	apps/web/tests/snapshots/plan-review/approved.expected.md
#	apps/web/tests/snapshots/question-composer/answered.expected.md
#	apps/web/tests/snapshots/queue-actions/collapsed.expected.md
#	apps/web/tests/snapshots/queue-actions/editing.expected.md
#	apps/web/tests/snapshots/queue-actions/ui.expected.md
#	apps/web/tests/snapshots/seeded-history/ui.expected.md
#	apps/web/tests/snapshots/steering/settled.expected.md
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/tests/input-bar.spec.tsx
2026-07-31 11:25:16 +08:00
NI0317
84b52debb1 Merge remote-tracking branch 'origin/master' into feature/readme-current-capabilities 2026-07-31 11:20:05 +08:00
Tianyi Cui
a632934ad7 Merge branch 'master' into worktree/pr884-simplify 2026-07-31 11:19:00 +08:00
NI0317
e9cbfa153a docs: address README review 2026-07-31 11:18:49 +08:00
ZiyaZhang
45627bd93b fix(ci): tolerate initializing Lefthook lock 2026-07-30 20:17:04 -07:00
Yichen Jiang
61edbe400f Merge remote-tracking branch 'origin/master' into worktree/fix-models-settings 2026-07-31 11:14:25 +08:00
Yichen Jiang
311aca3663 fix(web): improve models settings safety and contrast 2026-07-31 11:14:07 +08:00
imccyu
9525cc9db2 Merge pull request #1005 from deepseek-harness/codex/new-task
Open command menu from composer plus button
2026-07-31 11:12:26 +08:00
kingwl
28d308b469 Merge remote-tracking branch 'origin/master' into codex/responsive-queue-panel
# Conflicts:
#	packages/client/ui-conversation/src/client/queue/QueueDock.module.css
#	packages/client/ui-conversation/src/client/skeleton/ConversationRoot.module.css
#	packages/client/ui-conversation/src/client/skeleton/InputBar.module.css
#	packages/client/ui-conversation/src/client/skeleton/TodoPanel.module.css
2026-07-31 11:10:08 +08:00
Turtle
899d25dfb3 fix(tui): defer model-context resolution on the adapter-registration race
Loader activation is service-driven, so the TUI can mount before a
configured adapter plugin registers its provider routes; every fresh
session then printed 'Could not resolve model context: no adapter
registered for provider …' for a working configuration.

The model controller now treats a NO_ADAPTER rejection of the
context-window resolution as transient: it parks the resolution
silently and re-resolves on the next llm/adapters-updated commit. A
commit that still lacks the route parks the wait again; any target
change clears it; all other resolution errors still surface. A wrong
provider name keeps failing loudly at dispatch, where it is actionable.
2026-07-31 11:10:05 +08:00
imccyu
1f2452bfae docs: add agent note for full-access confirmation 2026-07-31 11:07:59 +08:00
Chinesezjc
40b9ccff20 Merge remote-tracking branch 'origin/master' into feat/web-diff-card
# Conflicts:
#	packages/client/ui-conversation/src/client/chat/GenericToolCard.tsx
#	packages/client/ui-conversation/src/client/chat/ToolRow.module.css
#	packages/client/ui-conversation/src/client/chat/ToolRow.tsx
2026-07-31 11:07:52 +08:00
NI0317
05c4b916cb Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context 2026-07-31 11:05:02 +08:00
NI0317
4e1ccebfff Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context
# Conflicts:
#	examples/acp-agent/tests/goal-snapshots/goal-session/session.expected.jsonl
#	examples/acp-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
#	examples/acp-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
#	examples/acp-agent/tests/snapshots/advanced-toolchain/session.jsonl
#	examples/acp-agent/tests/snapshots/bash-spill/session.jsonl
#	examples/acp-agent/tests/snapshots/bash-tool-turn/session.jsonl
#	examples/acp-agent/tests/snapshots/both-mode-turn/session.jsonl
#	examples/acp-agent/tests/snapshots/cancel-tool-calls/session.jsonl
#	examples/acp-agent/tests/snapshots/cancel/session.jsonl
#	examples/acp-agent/tests/snapshots/code-mode-turn/session.jsonl
#	examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	examples/acp-agent/tests/snapshots/empty-response-retry/session.jsonl
#	examples/acp-agent/tests/snapshots/error-finish/session.jsonl
#	examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
#	examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-edit/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-escalation-approved/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-policy-reject/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-read-window/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-read/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-write-overwrite/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-write/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-invalid-matcher/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-posttool-block/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-posttool-context/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-pretool-deny/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-context/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-stop-continue/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-invalid-matcher/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-posttool-block/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-posttool-context/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-pretool-block/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-context/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-stop-continue/session.jsonl
#	examples/acp-agent/tests/snapshots/lsp-definition/session.jsonl
#	examples/acp-agent/tests/snapshots/multi-turn/session.jsonl
#	examples/acp-agent/tests/snapshots/packed-chunks/session.jsonl
#	examples/acp-agent/tests/snapshots/parallel-tool-calls/session.jsonl
#	examples/acp-agent/tests/snapshots/pty-tools/session.jsonl
#	examples/acp-agent/tests/snapshots/repeat-tool-guard/session.jsonl
#	examples/acp-agent/tests/snapshots/session-query-spill/session.jsonl
#	examples/acp-agent/tests/snapshots/session-sandbox-root/session.jsonl
#	examples/acp-agent/tests/snapshots/session-title-after-turn/session.jsonl
#	examples/acp-agent/tests/snapshots/skill-load/session.jsonl
#	examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.1.jsonl
#	examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.2.jsonl
#	examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.jsonl
#	examples/acp-agent/tests/snapshots/subagent-fork/session.1.jsonl
#	examples/acp-agent/tests/snapshots/subagent-fork/session.jsonl
#	examples/acp-agent/tests/snapshots/subagent-mixed/session.1.jsonl
#	examples/acp-agent/tests/snapshots/subagent-mixed/session.2.jsonl
#	examples/acp-agent/tests/snapshots/subagent-mixed/session.jsonl
#	examples/acp-agent/tests/snapshots/subagent-multi/session.1.jsonl
#	examples/acp-agent/tests/snapshots/subagent-multi/session.2.jsonl
#	examples/acp-agent/tests/snapshots/subagent-multi/session.jsonl
#	examples/acp-agent/tests/snapshots/subagent-spawn/session.1.jsonl
#	examples/acp-agent/tests/snapshots/subagent-spawn/session.jsonl
#	examples/acp-agent/tests/snapshots/text-turn/session.jsonl
#	examples/acp-agent/tests/snapshots/todo-write/session.jsonl
#	examples/acp-agent/tests/snapshots/tool-call-turn/session.jsonl
#	examples/acp-agent/tests/snapshots/web-fetch/session.jsonl
#	examples/acp-agent/tests/snapshots/workflow-run/session.1.jsonl
#	examples/acp-agent/tests/snapshots/workflow-run/session.jsonl
#	examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
#	examples/acp-agent/tests/snapshots/workspace-edit/session.jsonl
#	examples/headless-agent/tests/snapshots/pty-tools/session.jsonl
#	examples/headless-agent/tests/snapshots/pty-tools/stream-json.expected.jsonl
#	examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/child.expected.jsonl
#	examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/parent.expected.jsonl
#	examples/jsonrpc-agent/tests/snapshots/persistent-tools/notifications.expected.jsonl
#	examples/jsonrpc-agent/tests/snapshots/persistent-tools/session.jsonl
#	packages/core/agent-loop/src/agent.ts
2026-07-31 11:02:45 +08:00
Tianyi Cui
e9096c891c Merge latest master into worktree/pr884-simplify 2026-07-31 11:00:07 +08:00
NI0317
46515aec6c Merge remote-tracking branch 'origin/master' into feature/readme-current-capabilities 2026-07-31 11:00:05 +08:00
Chinesezjc
2cad75a217 test(client-ui-conversation): assert localized 输出 section title in web-card panel
master's locale rollout renders the details Output section title through
t('details.output') (输出 under the zh seat the test uses). The spec still
asserted the English 'Output' literal and failed. Match the sibling
terminal-card suite's localized assertion.
2026-07-31 10:59:43 +08:00
Chinesezjc
32ab26a30b fix(tui): route read card content through renderBody's stripped-content path
The master merge added a web card whose renderBody content narrow checked
only card === 'generic', so a read card fell through to the raw result
content and rendered the full <path>/<type>/<content> envelope instead of
the envelope-stripped text. Include card === 'read' in that narrow, mirroring
the markdownContent selection in render(); the parallel-file-reads terminal
golden is byte-for-byte unchanged.
2026-07-31 10:58:19 +08:00
Hypatia May
3a99cf7446 Merge current master into status bar projection 2026-07-31 10:56:34 +08:00
Chinesezjc
452ba583d2 test(client-ui-conversation): pass locale seat to web-card GenericToolCard/DetailsPanel renders
master's locale rollout made `t` a required prop on GenericToolCardProps and
the details slot; the web-card spec predates it. Supply the makeTranslate seat
the sibling suites use.
2026-07-31 10:54:36 +08:00
Chinesezjc
bf26cfd2ff docs: re-record ui README pairings after master merge 2026-07-31 10:51:58 +08:00
Ziya
7b95559f18 Merge branch 'master' into feat/gui-full-access-confirmation 2026-07-30 22:51:43 -04:00
Chinesezjc
83f3ed8b91 Merge remote-tracking branch 'origin/master' into feat/web-web-card
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/src/client/chat/GenericToolCard.tsx
#	packages/client/ui-conversation/src/client/skeleton/DetailsPanel.tsx
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.md
#	packages/client/ui-primitives/README.zh.md
#	packages/client/ui-primitives/src/index.ts
2026-07-31 10:51:09 +08:00
Chinesezjc
c1f990a066 test(acp): refresh cordis-inspect-jsdoc and workspace-context fixtures post-merge
The merge combined ReadResultView (this branch) and WebResultView (master)
into ToolResultView; refresh cordis-inspect-jsdoc for the merged union and
workspace-context for the read window offset now in persisted meta.
2026-07-31 10:45:34 +08:00
Chinesezjc
224e3f85be docs: re-record ui-conversation README pairing after base merge 2026-07-31 10:43:51 +08:00
Chinesezjc
fa6ba79ddf Merge remote-tracking branch 'origin/feat/web-presenter' into feat/web-web-card
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-31 10:42:43 +08:00