creatixchu
98ed9d8d4b
Merge remote-tracking branch 'origin/master' into worktree/web-multimodal-image-input
...
# Conflicts:
# apps/cli/cordis.yml
# apps/cli/package.json
# apps/cli/src/bin.ts
# apps/cli/tests/args.spec.ts
# packages/client/ui-conversation/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/ui/tui/README.i18n.yaml
# pnpm-lock.yaml
2026-07-30 20:04:22 +08:00
imccyu
a1f1f9c29a
Merge branch 'master' into codex/figma-context-injection-row
2026-07-30 19:20:21 +08:00
kingwl
1f5d09c2d7
Merge origin/master into codex/figma-context-injection-row
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
2026-07-30 18:27:49 +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
0f0564b3d0
Merge origin/master into codex/figma-context-injection-row
2026-07-30 17:35:04 +08:00
kingwl
f5228e7c71
Merge origin/master into codex/figma-context-injection-row
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/src/client/chat/ToolRow.module.css
# packages/client/ui-conversation/src/client/chat/ToolRow.tsx
2026-07-30 17:34:14 +08:00
kingwl
abf498b8dc
fix(web): align composer context stack
2026-07-30 17:26:44 +08:00
creatixchu
44d7dc7a73
fix(web): keep image intake inert without a session
2026-07-30 17:17:25 +08:00
creatixchu
352d669e4d
Merge remote-tracking branch 'origin/master' into worktree/web-multimodal-image-input
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-25-web-input-machine-and-slash-pipeline.i18n.yaml
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/src/client/apply.ts
# packages/client/ui-conversation/src/client/contract/slots.ts
# packages/client/ui-conversation/src/client/skeleton/InputBar.tsx
2026-07-30 17:16:28 +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
d7641ec028
Merge origin/master into codex/figma-context-injection-row
2026-07-30 16:20:47 +08:00
kingwl
17893c503e
feat(web): match context injection disclosure design
2026-07-30 16:20:34 +08:00
creatixchu
981ef5bfa0
Merge remote-tracking branch 'origin/master' into worktree/web-multimodal-image-input
2026-07-30 15:57:36 +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
creatixchu
fc8e059a2f
Merge remote-tracking branch 'origin/master' into worktree/web-multimodal-image-input
2026-07-30 15:04:35 +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
creatixchu
0d1250f743
fix: address ds-review-bot v7 findings on the merged image-input head
...
- gate model selection on steering-placement image carriers from enqueue
until their steering/message event publishes; release the gate when an
admission ends idle without publication (both behaviorally asserted)
- reject session.updateQueue edits carrying non-text blocks at the RPC
boundary (queue edits cannot bypass image admission)
- extend the durable-directory walk past a first-created DSH_HOME to the
deepest pre-existing ancestor
- strip Windows-style separators from attachment display names on POSIX
- verify attachment reads with a header-only probe (digest already proves
the bytes decoded fully at admission); document the read path
- make SessionInputShell.addImages refusal observable and keep workspace
transfers/composer intake from leaking refused drafts
- own ONE recursive image walk (dsh-llm contentHasImage) across apiproxy,
pi-ai, compact-basic, and the DeepSeek text-only assertion
- drop the redundant canonical-base64 regex and the no-op role read
- move AttachmentId/AttachmentError out of types.ts (brand.ts/error.ts);
document why AttachmentError does not extend HarnessError
- document the hard attachments inject in both consumer READMEs
2026-07-30 14:34:08 +08:00
imccyu
ac37caa1ee
Merge branch 'master' into worktree-fetest
2026-07-30 14:31:44 +08:00
creatixchu
97cf33b7e0
Merge remote-tracking branch 'origin/master' into worktree/web-multimodal-image-input
...
# Conflicts:
# packages/ui/tui/README.i18n.yaml
2026-07-30 13:50:24 +08:00
creatixchu
0a9b6e75d6
Merge remote-tracking branch 'origin/master' into worktree/web-multimodal-image-input
...
# Conflicts:
# docs/architecture.i18n.yaml
# docs/core-data-structures/core.i18n.yaml
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# packages/README.i18n.yaml
# packages/README.md
# packages/README.zh.md
# packages/client/connection/src/client/fixture.ts
# packages/client/connection/tests/fake-api.ts
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/src/client/contract/session.ts
# packages/client/runtime/src/client/sessions/session.ts
# packages/client/runtime/tests/fake-api.ts
# packages/client/test-runtime/src/sessions.ts
# packages/client/test-runtime/tests/runtime.spec.tsx
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/src/client/service.ts
# packages/client/ui-conversation/src/client/skeleton/InputBar.tsx
# packages/client/ui-conversation/tests/queue-dock.spec.tsx
# packages/client/ui-conversation/tests/service-orchestration.spec.ts
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/src/api-proxy.ts
# packages/host/apiproxy/src/api/index.ts
# packages/host/apiproxy/src/api/rpc-map.ts
# packages/host/apiproxy/src/api/rpc.schema.ts
# packages/host/apiproxy/src/api/rpc.ts
# packages/host/apiproxy/src/api/sessions.schema.ts
# packages/host/apiproxy/src/api/sessions.ts
# packages/host/apiproxy/src/fetch/client.ts
# packages/host/apiproxy/src/fetch/handler.ts
# packages/host/apiproxy/tests/api-proxy-commands.spec.ts
# packages/host/apiproxy/tests/client-handler.spec.ts
# packages/host/apiproxy/tests/fetch-carrier.spec.ts
# packages/host/apiproxy/tests/rpc-schemas.spec.ts
2026-07-30 13:48:33 +08:00
creatixchu
a703575dab
Merge remote-tracking branch 'origin/worktree/web-multimodal-image-input' into worktree/pr555-fixes
...
# Conflicts:
# .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.i18n.yaml
# .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.md
# .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.zh.md
2026-07-30 13:11:07 +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
creatixchu
6bc0335fcc
Merge remote-tracking branch 'origin/worktree/web-multimodal-image-input' into worktree/pr555-simplify
...
# Conflicts:
# .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.i18n.yaml
# apps/web/tests/image-display.snapshot.ts
# docs/core-data-structures/core.i18n.yaml
# packages/client/ui-trajectory/tests/client-bundle.spec.ts
2026-07-30 13:02:44 +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