Commit Graph

633 Commits

Author SHA1 Message Date
kingwl
dec8173c43 Merge remote-tracking branch 'origin/master' into codex/queue-collapse 2026-07-30 19:20:20 +08:00
kingwl
5f87c7a89c fix(web): close queue collapse review gaps 2026-07-30 19:20:13 +08:00
kingwl
cdd1074805 Merge remote-tracking branch 'origin/master' into codex/queue-collapse
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-30 18:21:07 +08:00
Tianyi Cui
53ff5c6ef2 Merge branch 'master' into feature/shared-cli-config-foundation 2026-07-30 18:02:07 +08:00
Tianyi Cui
66e182b516 Merge branch 'master' into feature/shared-cli-config-foundation 2026-07-30 17:35:47 +08:00
kingwl
3d6cacc59b Merge remote-tracking branch 'origin/master' into codex/composer-dock-stacking
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-30 17:35:22 +08:00
kingwl
abf498b8dc fix(web): align composer context stack 2026-07-30 17:26:44 +08:00
imccyu
4cd5745b94 Merge branch 'master' into codex/details-default-closed 2026-07-30 17:14:51 +08:00
Tianyi Cui
abd7d57358 Merge branch 'master' into feature/shared-cli-config-foundation 2026-07-30 17:08:42 +08:00
imccyu
34c124585a fix: test 2026-07-30 16:46:50 +08:00
kingwl
0a25c0d237 feat(web): add queue collapse control 2026-07-30 16:41:55 +08:00
imccyu
17fea637d5 Merge branch 'master' into codex/details-default-closed 2026-07-30 15:40:36 +08:00
imccyu
e184b9561a Merge branch 'master' into feat/ask-question-gui 2026-07-30 15:36:22 +08:00
imccyu
925cb0b315 feat(web): plan chip as an always-visible pressed-state toggle
fix: plan button add label
2026-07-30 15:33:45 +08:00
Turtle
da5f1878c0 Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation 2026-07-30 15:29:47 +08:00
imccyu
245aeb414c feat(web): workspace header hover card with cwd and creation time 2026-07-30 15:29:12 +08:00
imccyu
4c33ca8bec fix: hero layout when no-workspace 2026-07-30 15:25:50 +08:00
imccyu
6ea1238714 docs(web): the composer bar is one session-maybe slot, not a swapped pair
fix(web): keep one composer bar DOM across the no-workspace transition

The composer.bar slot moves from session to session-maybe scope: with no
current session the entry still mounts, the machine faces (keyboard, stop,
command) arrive undefined, and the bar renders its normal DOM inert via the
disabled owner prop. DisabledInputBar and its parallel tree are gone, so the
textarea node survives the cold-start workspace pick instead of flashing
through a remount. A blank session whose workspace was deleted takes the
same inert path through owner props.

test(web): add the composer DOM-continuity acceptance probe

Drives a real dsh web server with headless chromium through the cold-start
-> pick-workspace -> type flow and asserts the composer textarea is the
same DOM node throughout (a marker property must survive). Rerun
prerequisites are in the header comment.

docs(web): session-maybe identity is adoption, not hold-forever

fix(web): session-maybe entries adopt the first session, then remount like strict entries

A session-maybe entry used to keep one React instance across every
transition, so component-local state leaked between sessions once the
composer bar moved to that scope (PermissionSelect's optimistic pick, the
IME composition guard). Identity is now adoption: an incarnation born
session-less holds through the arrival of the first session (the blank
shell's DOM survives the workspace pick), and afterwards behaves exactly
like a strict session entry — a switch or a drop to no-session remounts,
clearing local state by construction. The child key is an incarnation
counter kept in the stable outlet wrapper via render-phase setState.

chore: knip knows the root acceptance probe's playwright dependency

scripts/hero-composer-dom-continuity.mjs resolves playwright through
apps/web's devDependency tree (createRequire), which knip cannot follow;
ignore it at the root workspace.
2026-07-30 15:18:06 +08:00
imccyu
6c7520c652 Merge remote-tracking branch 'origin/master' into mergebot/pr883
# Conflicts:
#	apps/web/tests/snapshots/question-composer/answered.expected.md
#	apps/web/tests/snapshots/question-composer/ui.expected.md
2026-07-30 15:04:59 +08:00
imccyu
03936cb320 Merge remote-tracking branch 'origin/master' into mergebot/pr883
# Conflicts:
#	packages/client/ui-question/package.json
#	packages/client/ui-question/src/client/QuestionComposer.tsx
#	packages/client/ui-question/src/client/contract/slots.ts
#	packages/client/ui-question/src/client/index.ts
#	packages/client/ui-question/src/client/locales.ts
#	packages/client/ui-question/tests/browser-plugin.spec.ts
#	packages/client/ui-question/tests/question-composer.spec.tsx
2026-07-30 15:01:10 +08:00
Turtle
39efc3dd73 Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation
# Conflicts:
#	.agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.i18n.yaml
#	docs/testing.i18n.yaml
2026-07-30 15:00:42 +08:00
Turtle
36f6d8fd05 Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation
# Conflicts:
#	packages/ui/tui/README.i18n.yaml
2026-07-30 14:58:10 +08:00
imccyu
5c2fc03d8f Merge branch 'master' into codex/details-default-closed 2026-07-30 14:50:50 +08:00
_Kerman
df25ca41dc Merge remote-tracking branch 'github/master' into xtr/fix-trajectory-scroll-layering 2026-07-30 14:45:16 +08:00
_Kerman
c0b8fea4c8 fix(ui): contain trajectory scrolling and overlays 2026-07-30 14:45:07 +08:00
kingwl
4ef3e60d57 fix(web): keep details closed by default 2026-07-30 14:42:39 +08:00
imccyu
ac37caa1ee Merge branch 'master' into worktree-fetest 2026-07-30 14:31:44 +08:00
imccyu
4869e0bbfc Merge branch 'master' into worktree-fetest 2026-07-30 13:09:53 +08:00
imccyu
1b84126f70 Merge branch 'master' into worktree/short-default-labels 2026-07-30 13:08:34 +08:00
imccyu
432a64ef2f Merge branch 'master' into worktree/short-default-labels 2026-07-30 12:56:11 +08:00
Turtle
5a490553bc Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation
# Conflicts:
#	docs/event-producer-consumer.md
#	packages/host/apiproxy/README.i18n.yaml
#	tsconfig.base.json
2026-07-30 12:00:15 +08:00
imccyu
6e99027917 Merge remote-tracking branch 'origin/master' into mergebot/pr937
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/src/client/queue/QueueDock.module.css
2026-07-30 11:59:59 +08:00
imccyu
b523a04af8 Merge remote-tracking branch 'origin/master' into worktree-fetest 2026-07-30 11:51:09 +08:00
imccyu
02a9d4113e Merge remote-tracking branch 'origin/master' into worktree-fetest 2026-07-30 11:40:34 +08:00
kingwl
ad1bb84425 Merge remote-tracking branch 'origin/master' into codex/web-queue-actions
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-30 11:38:54 +08:00
imccyu
aae1b48535 Merge remote-tracking branch 'origin/master' into worktree-fetest 2026-07-30 11:17:03 +08:00
imccyu
6303b22487 ci: run web replay on master linux 2026-07-30 11:16:37 +08:00
07akioni
b92c6bcc66 Merge branch 'master' into fix/ui-action-display 2026-07-30 11:15:35 +08:00
imccyu
60620ec36c Green the jsdom lane for the composer-seat ResizeObserver and new StatsLine format
The seat's height publisher needs a ResizeObserver stub in every spec that
renders ConversationRoot (jsdom has none), and the two branch-tail StatsLine
assertions move to the grouped detail-row output.
2026-07-30 11:09:03 +08:00
imccyu
b94df7348f Merge branch 'master' into codex/web-queue-actions 2026-07-30 10:50:34 +08:00
Yichen Jiang
fb4b8f3973 Merge remote-tracking branch 'origin/master' into worktree/short-default-labels
# Conflicts:
#	packages/client/ui-model/src/client/ModelSelect.tsx
#	packages/client/ui-model/tests/model-select.spec.tsx
2026-07-30 10:47:35 +08:00
imccyu
4b4f7752c1 ci: gate web browser snapshots 2026-07-30 10:23:05 +08:00
Yif
04f6dfdc29 Web composer stats detail row and input-zone polish
Stats line moves into the InputBar's new footer slot (sharing the card's
width column) and expands to the design's grouped detail row: turns/steps,
LLM and tool wall time, cache hit, and input/output token split, all
derived client-side from the snapshot. The composer stack owns one 8px
rhythm, the seat fades the transcript through a fixed 36px gradient band,
back-to-bottom follows a live --dsh-composer-height, and goal/todo strips
share one 752px tip-fill column.
2026-07-30 10:22:44 +08:00
Turtle
5dbcedfbba Merge origin/master into feature/shared-cli-config-foundation 2026-07-30 10:11:38 +08:00
kingwl
112b0fbad1 fix(web): address queue review feedback 2026-07-30 04:12:38 +08:00
kingwl
ebbcfdd03b Merge remote-tracking branch 'origin/master' into codex/web-queue-actions
# Conflicts:
#	packages/core/agent-loop/src/agent.ts
2026-07-30 03:33:41 +08:00
kingwl
7ce330f0e4 refactor(agent): scope queue actions to edit and remove 2026-07-30 01:58:51 +08:00
imccyu
606b6aa78c Merge remote-tracking branch 'origin/master' into worktree-locale
# Conflicts:
#	packages/client/ui-slots/src/index.ts
2026-07-30 01:53:28 +08:00
imccyu
93fc1e2ab8 Merge branch 'master' into feat/ask-question-gui 2026-07-30 01:46:05 +08:00
imccyu
622450192d fix(client): mark the parallel register overloads for the clone gate
The two overload declarations differ only in the inject share; folding them
would lose per-overload inference of I, so the duplication is deliberate.
2026-07-30 01:40:10 +08:00