yixiangihsiang
488e438277
fix(web): address review feedback
2026-09-17 21:04:42 +08:00
07akioni
5c369a0a1f
fix: carry session writer failures by typed remote code
2026-09-16 15:38:34 +08:00
Tianyi Cui
e11b2a5558
merge: refresh session-log-v3 from master 345248f470
2026-09-08 21:15:06 +08:00
_Kerman
f7c9170b3b
fix(web): dismiss tooltips when composer actions become disabled
2026-09-08 17:21:13 +08:00
_Kerman
839a6fa995
test(web): await mutation replies before capturing settled UI
2026-09-08 16:35:16 +08:00
_Kerman
e33834f522
test(web): await session and responsive layout readiness
2026-09-08 16:12:14 +08:00
Tianyi Cui
be9d401c33
test(web): await action acknowledgements before following controls
2026-09-08 15:00:53 +08:00
Tianyi Cui
6c0e258b27
test(web): await observed browser settlement in replay scenarios
2026-09-08 14:35:11 +08:00
Tianyi Cui
96fa1dfac8
Merge pinned master 84bde6c7 into V3 readiness repair
2026-09-08 13:16:35 +08:00
Tianyi Cui
f3c98e4539
test(web): settle queue tooltip and select exact seeded session
2026-09-07 19:03:25 +08:00
Tianyi Cui
1a9bef60c2
test: separate native V3 writer expectations from historical replay
2026-09-06 20:45:00 +08:00
Yichen Jiang
69161395ce
fix(web): wait for queue admission before collapsed snapshots
2026-09-05 12:24:05 +08:00
Yichen Jiang
a3ccbd4d99
fix(web): show sending state for queued submissions
2026-09-05 11:51:52 +08:00
Tianyi Cui
f693946509
test(snapshot): roll corpus forward to format v2
2026-09-02 04:18:52 +08:00
lsdsjy and Yif
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 <[email protected] >
2026-08-27 10:12:39 +00: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
Tianyi Cui
ce031ddd16
fix(web): cover authenticated host runtimes
2026-08-25 14:23:46 +08:00
Yichen Jiang
0a247137f0
Merge remote-tracking branch 'origin/master' into worktree/web-textarea-refactor-991614
...
# Conflicts:
# apps/web/tests/composer-draft-scroll.e2e.ts
# apps/web/tests/expected/reference-composer/caret-edits.expected.md
# apps/web/tests/startup-auto-selection.e2e.ts
# pnpm-lock.yaml
2026-08-25 10:42:32 +08:00
Tianyi Cui
6ea8a52e22
fix(test): harden snapshot corpus invariants
2026-08-24 21:37:57 +08:00
Tianyi Cui
6189e4a374
test(web): separate session snapshots from goldens
2026-08-24 21:36:31 +08:00
Yichen Jiang
339a12030d
fix(web): project sent user text inline and fold wire references in queue rows
...
The user-bubble decorator rendered every plain run through the
block-level MessageText div, so a decorated single-line message broke
into one line per run and the space between two tokens rendered as a
blank line. The queue dock's read-only row printed row.preview verbatim,
showing the wire session form (@[label](dsh-session:...)) instead of a
readable label. Both predate the Lexical composer; the logged model text
was correct in both cases.
One shared inline projection (reference/user-text.tsx) now owns sent
user text for the bubble and the queue row: plain runs are spans with
white-space policy left to the consumer (bubble pre-wrap, queue nowrap),
and a highest-precedence rule folds the wire session form to its label
chip, shielding the URI from the bare-token scan. The queue edit field
keeps the literal sent text. user-text.client.spec pins the inline
guarantee and every fold rule; queue-actions.e2e locators move to
row-container matching (the projection adds one span layer).
2026-08-21 14:23:01 +08:00
Yichen Jiang
9b64106e9e
test(web): settle the remaining e2e drive gaps
...
Every consecutive composer send waits out the submit round-trip's
read-only span; the end-of-document caret gesture becomes select-all +
ArrowRight (Cmd/Ctrl+End moves no caret in mac contenteditable), which
lets Lexical's own ancestor scroll walk prove the typing reveal.
2026-08-20 19:05:26 +08:00
Yichen Jiang
4f808771ce
test(web): finish the e2e migration to the composer surface
...
textContent/data-placeholder probes replace inputValue/placeholder reads,
evaluate-string selectors move to the composer anchor, queued fills wait
out the submit round-trip's read-only span, and the refreshed aria goldens
drop the hover tooltip the old interaction order happened to capture.
2026-08-20 18:50:59 +08:00
Yichen Jiang
f6fb66a318
docs+build(ui-conversation): lexical composer collateral
...
The client-bundle preset pins the production/development exports condition
(lexical's node-condition file selects its flavor with a top-level await a
CJS bundle cannot carry); the composer carries an explicit aria-label (a
div's data-placeholder does not name it the way a textarea placeholder
did); READMEs, the composer.bar slot doc, and the Agent Note record the
editor architecture; web e2e drives the contenteditable surface.
2026-08-20 18:27:55 +08:00
_Kerman
a04037479b
test(web): await stopped queue state
2026-08-04 15:09:55 +08:00
_Kerman
f4a2e0d10a
fix(agent): align consumers with inbox lifecycle
2026-08-03 13:14:24 +08:00
kingwl
6332b5b952
fix(web): align context cards on narrow screens
2026-08-02 13:26:08 +08:00
kingwl
cd121c636a
fix(web): align composer context stack
2026-08-02 12:45:36 +08:00
kingwl
32a0e871b7
fix(web): preserve queue on stop
2026-07-31 20:51:05 +08:00
creatixchu
637c0c3113
Merge remote-tracking branch 'origin/master' into worktree/unify-workspace-add
2026-07-31 16:50:14 +08:00
creatixchu
d6231007af
cleanup(web): give adding a Workspace one route
...
Both Workspace surfaces offered "Open local folder…" and "Create a new
workspace" for one outcome. The browse occupant already carries its own
New folder affordance, so picking a directory covered creating one; the
name dialog only added a second vocabulary and a create target the
operator could neither see nor choose.
The surviving entry is named after the outcome — "Add workspace…" — and a
menu now appears only where there is something to choose between: with no
Workspace listed (the add-only sidebar header, or an empty hero list) the
anchor gesture raises the directory flow directly instead of a one-row
popover. An empty list counts as final only after the list baseline lands,
and a composition with no directory-flow occupant hides the sidebar button
rather than offering a dead one.
WorkspaceCreateFlow becomes WorkspacePickFlow (createOnly -> addOnly) and
the injected createWorkspace narrows to { path }. The host's
workspace.create({ name }) branch and `dsh web --workspace-root` lost their
last product consumer; both are marked at the call site for a follow-up.
2026-07-31 15:47:40 +08:00
Tianyi Cui
fbf28700af
Merge master into codex/sandbox-policy-context
...
# Conflicts:
# apps/web/tests/snapshots/live-interactions/retry.expected.md
# apps/web/tsconfig.json
# tsconfig.host.json
2026-07-31 13:04:21 +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
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
imccyu
1e10966ef6
wip
...
fix: docs
2026-07-31 02:13:53 +08:00
NI0317
e61054c4d1
test(sandbox-policy): refresh durable context snapshots
2026-07-30 23:17:33 +08:00
kingwl
5f87c7a89c
fix(web): close queue collapse review gaps
2026-07-30 19:20:13 +08:00
kingwl
0a25c0d237
feat(web): add queue collapse control
2026-07-30 16:41:55 +08:00
kingwl
751b970997
fix(web): align queue panel with responsive composer
2026-07-30 12:25:48 +08:00
imccyu
876d1947fe
test(web): pin queue replay locale
2026-07-30 11:56:54 +08:00
kingwl
f893e2281d
feat(agent): add addressable queue operations
2026-07-30 00:05:00 +08:00