imccyu
d67b80f2fd
Merge branch 'master' into xtr/trajectory-timeline-click-focus
2026-07-30 20:27:47 +08:00
Yichen Jiang
e55a904e1d
feat(web): render remote Markdown images
2026-07-30 20:26:33 +08:00
07akioni
d704a2b782
fix: ci
2026-07-30 20:19:42 +08:00
Yichen Jiang
3957ce007a
Merge branch 'worktree-llm-dynamic-config' into worktree-llm-web-config
...
# Conflicts:
# apps/cli/cordis.yml
# apps/cli/package.json
# apps/cli/tests/tui-keyless-smoke.e2e.ts
# apps/web/tests/details-session-lifecycle.e2e.ts
# 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/question-composer/answered.expected.md
# apps/web/tests/snapshots/seeded-history/ui.expected.md
# apps/web/tests/snapshots/steering/mid-steer.expected.md
# apps/web/tests/snapshots/steering/settled.expected.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# docs/user/guide/config.i18n.yaml
# docs/user/guide/config.md
# docs/user/guide/config.zh.md
# docs/user/guide/index.i18n.yaml
# docs/user/guide/index.md
# docs/user/guide/index.zh.md
# examples/acp-agent/tests/snapshots/subagent-fork/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.2.jsonl
# examples/cordis-agent/cordis.yml
# examples/cordis-agent/tests/cordis-tools.e2e.ts
# examples/headless-agent/tests/semantic-checkpoint-snapshots/tool-outcome-unknown/session.expected.jsonl
# examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/parent.expected.jsonl
# examples/tui-agent/code-mode.cordis.yml
# examples/tui-agent/cordis.yml
# packages/examples/tui-demo/README.md
# packages/examples/tui-demo/README.zh.md
# packages/host/apiproxy/README.i18n.yaml
# packages/pty/tool-bash-persistent/README.i18n.yaml
# packages/ui/tui/tests/snapshots/status-diagnostics-narrow.expected.txt
# packages/ui/tui/tests/snapshots/status-diagnostics.expected.txt
# pnpm-lock.yaml
# scripts/snapshots/python-sdk-single-exe/advanced/result.json
# scripts/snapshots/python-sdk-single-exe/advanced/session.1.jsonl
# scripts/snapshots/python-sdk-single-exe/advanced/session.2.jsonl
# scripts/snapshots/python-sdk-single-exe/advanced/session.jsonl
2026-07-30 20:15:40 +08:00
kingwl
29d8ca5ee5
Merge remote-tracking branch 'origin/master' into codex/queue-collapse
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
2026-07-30 20:11:46 +08:00
Yichen Jiang
5b9c088fb7
Merge remote-tracking branch 'origin/master' into worktree/web-model-request-retry
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
2026-07-30 20:09:37 +08:00
Yichen Jiang
4d0843df3e
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
# 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
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/src/client/sessions/session.ts
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/README.zh.md
2026-07-30 20:03:39 +08:00
Hypatia May
c2337bfa10
Merge remote-tracking branch 'origin/fix/human-transcript-projection' into fix/web-transcript-projection
...
# Conflicts:
# apps/web/tests/scaffold.ts
# apps/web/tests/seeded-history.e2e.ts
# apps/web/tests/snapshots/seeded-history/ui.expected.md
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/src/client/chat/MessageItem.tsx
2026-07-30 20:02:32 +08:00
07akioni
af01552789
fix(web): keep IconActions on turn-tail content only
...
Drop the running-turn withhold path; last-content-seq gating alone keeps mid-turn narration chrome-free.
2026-07-30 19:59:58 +08:00
07akioni
4bf09d508c
fix: cr
2026-07-30 19:59:50 +08:00
Yichen Jiang
7d8403ac73
Merge remote-tracking branch 'origin/master' into worktree/chat-ui-polish
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/src/client/chat/MessageItem.tsx
# packages/client/ui-conversation/tests/chat-branch-tails.spec.tsx
2026-07-30 19:58:25 +08:00
Yichen Jiang
e1fe6696df
test(web): refresh question composer disclosure
2026-07-30 19:52:46 +08:00
Yichen Jiang
b6d8fd46ed
Merge remote-tracking branch 'origin/master' into worktree/fix-multi-select-custom-answer
2026-07-30 19:51:42 +08:00
NI0317
0592d0fcea
Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context
2026-07-30 19:48:35 +08:00
Yichen Jiang
e76b15e8ad
Merge remote-tracking branch 'origin/master' into worktree/fix-multi-select-custom-answer
...
# Conflicts:
# apps/cli/tests/fixtures/tui-scripted-llm.ts
# packages/host/apiproxy/README.i18n.yaml
# packages/ui/tui/README.i18n.yaml
2026-07-30 19:46:51 +08:00
NI0317
1e56cd6765
Merge origin/master into codex/sandbox-policy-context
2026-07-30 19:40:26 +08:00
Yichen Jiang
c12a659dbf
Merge remote-tracking branch 'origin/master' into worktree/chat-ui-polish
2026-07-30 19:31:12 +08:00
Yichen Jiang
b121adcf1a
Polish web chat presentation
2026-07-30 19:30:58 +08:00
NI0317
598d0ea769
test(sandbox-policy): record wording evidence
2026-07-30 19:30:11 +08:00
imccyu
a1f1f9c29a
Merge branch 'master' into codex/figma-context-injection-row
2026-07-30 19:20:21 +08:00
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
creatixchu
2363ef01eb
feat(web): render a plan review as a decision card, not a quiz
...
The Web composer now renders a request that declares the `plan-review` intent
as its own surface: the waiting-approval card language — amber "Plan review"
strip, the plan as the scrolling markdown body, the question as the card's
accessible name — over one decision row of Chat about it / Refuse / Approve.
Gone from that surface are the 1/1 pager, the numbered radio rows, the custom
answer row, and Skip/Submit, which made approving a plan read as sitting an
exam.
Approve and Refuse answer with the asker's own option labels and keep its
descriptions as tooltips; Chat about it cancels the request so the composer
returns and the user can simply say what they want. Copy is bilingual under the
existing `question` namespace.
The shape choice lives inside the single composer entry rather than a second
chain registration, so the two surfaces cannot race the same carrier, and
`planReviewOf` falls back to the generic flow for any request it cannot render
as a card — the client sits downstream of a wire boundary and every request
must stay answerable.
2026-07-30 19:09:35 +08:00
creatixchu
f5ab6d94a8
Merge remote-tracking branch 'origin/master' into worktree/approval-panel-max-height
2026-07-30 18:59:06 +08:00
imccyu
b1307d652f
Merge branch 'master' into xtr/trajectory-timeline-click-focus
2026-07-30 18:54:17 +08:00
Yichen Jiang
234018032d
Merge remote-tracking branch 'origin/worktree-llm-web-config' into worktree/onboarding-deepseek-config
...
# Conflicts:
# packages/client/ui-models/README.i18n.yaml
# packages/client/ui-primitives/src/Modal.tsx
# packages/client/ui-settings/README.i18n.yaml
2026-07-30 18:43:06 +08:00
creatixchu
12b55adf6b
fix(web): keyboard reach and resting metrics on the approval scroll region
...
Review follow-ups on the approval takeover:
The scroll region is now a tab stop (tabIndex + named role="group"). The
question composer's scroll body needs none — its option rows are focusable and
pull the container along — but this one holds nothing but text, so a
keyboard-only user could reach the buttons and never the command's tail, and
approve what they could not finish reading.
The action row's padding reproduces the 14px gap it had inside the body: the
flex gap of 6 plus its 8px top margin, neither of which reaches it now that the
row sits outside the scroll region. The resting card is unchanged again.
2026-07-30 18:35:20 +08:00
_Kerman
98e099d60e
test(web): refresh trajectory icon golden
2026-07-30 18:22:16 +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
creatixchu
14482fcef1
fix(web): keep the approval scenario's goldens platform-neutral
...
The answered-transcript golden captured the OS's own refusal of the denied
first attempt — "bash: notes.txt: Operation not permitted" on macOS against
"bash: line 1: notes.txt: Read-only file system" on Linux — so it passed
locally and failed the Linux snapshot lane.
The scenario now keeps one golden (the waiting panel, platform-neutral) and
asserts the answered state on the world instead: the decided outcome, the file
the escalated command actually wrote, DONE, the panel gone, and the composer
re-enabled. The file assertion is stronger evidence than the transcript dump
it replaces — it proves the grant reached the executor.
2026-07-30 18:11:05 +08:00
Hypatia May
e3ece4b22c
test(web): isolate snapshots from user skills
2026-07-30 18:11:00 +08:00
NI0317
91d31b0739
Merge origin/master into codex/sandbox-policy-context
2026-07-30 18:09:49 +08:00
_Kerman
f296fd3075
Merge remote-tracking branch 'github/master' into xtr/trajectory-timeline-click-focus
...
# Conflicts:
# apps/web/tests/details-session-lifecycle.e2e.ts
# packages/client/ui-layout/README.i18n.yaml
2026-07-30 18:08:22 +08:00
Yichen Jiang
3ba4d40e6a
fix(user-interaction): address review feedback
2026-07-30 17:59:37 +08:00
creatixchu
c0679f42b5
fix(web): cap the approval takeover at the composer's text height
...
The approval panel replaces the InputBar while a sandbox escalation waits,
and its justification and command are unbounded model text. With no height
cap, a long command grew the card until the refuse/allow row went under the
fold: at 900x700 the action row's bottom landed at y=749, so the user could
read the request and not answer it.
Justification and command now scroll in one region capped at the same height
as the composer's draft area, with the amber strip and the action row outside
it. The cap is one value with two consumers — declared as
--dsh-composer-text-max-height on ConversationRoot's .composerSeat, the
composer chain's only shared ancestor — so the seat cannot cap its two states
differently. The card rebinds the l2 scrollbar pair like every other scrolling
surface on an elevated background.
Covered by a new web e2e scenario that drives the real composition (read-only
session, denied write, the model's escalation retry, answer clicked through
the panel) and measures the live panel at two viewport heights against the
composer's own cap, read off the textarea rather than hardcoded.
2026-07-30 17:50:04 +08:00
_Kerman
c000bf3be8
fix(ui): hide sidebar resize pill
2026-07-30 17:43:45 +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
creatixchu
d9cb19f276
feat(ui): drop the slash and the argument echo from the command row
...
The web command row renders `title · summary` from one logged command
lifecycle pair, and the two halves were written without knowing about each
other: the title was the dispatched line rebuilt from `command/run` and the
summary was `command/done`'s verbatim text, so every Access-chip pick read
`/permission workspace-write · Permission preset: workspace-write.` — the
command name twice and its argument twice.
The title is now the bare command name (no `/`, no arguments — the summary
already says what the command did), and a command handler's settlement text
never repeats the command's own name, so `/permission` returns `preset
workspace-write`. The row reads `permission · preset workspace-write`, and
the TUI notice still names the preset that now applies. The log is
unchanged: `command/run` keeps its structured name/args split for a richer
registered row.
2026-07-30 17:34:03 +08:00
Hypatia May
16378e4ba7
Merge remote-tracking branch 'origin/fix/human-transcript-projection' into fix/web-transcript-projection
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
2026-07-30 17:33:55 +08:00
Hypatia May
fd0fa8806f
Merge remote-tracking branch 'origin/master' into codex/status-bar-token-metrics
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
2026-07-30 17:22:42 +08:00
Hypatia May
6d58953f30
fix(token-meter): close projected usage review gaps
2026-07-30 17:22:15 +08:00
creatixchu
b8d9fb1ede
Merge remote-tracking branch 'origin/master' into feat/directory-picker-show-hidden
2026-07-30 17:17:03 +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
Hypatia May
3b3d5579cb
Merge remote-tracking branch 'origin/fix/human-transcript-projection' into fix/web-transcript-projection
...
# Conflicts:
# apps/web/tests/snapshots/seeded-history/ui.expected.md
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/README.md
# packages/client/runtime/src/client/index.ts
# packages/client/runtime/src/client/sessions/fold-adapter.ts
# packages/client/runtime/tests/fold-adapter.spec.ts
# packages/client/ui-trajectory/src/client/layout.ts
# packages/client/ui-trajectory/src/client/spans.ts
# packages/compact/compact/README.i18n.yaml
2026-07-30 16:37:22 +08:00
kingwl
17893c503e
feat(web): match context injection disclosure design
2026-07-30 16:20:34 +08:00
NI0317
4a72beacf2
test(web): keep policy acceptance portable
2026-07-30 15:51:03 +08:00
NI0317
7407c26bc1
feat(sandbox-policy): expose current file policy
2026-07-30 15:48:05 +08:00
imccyu
d34bc5bfa4
test(web): pick up the plan chip in the answered composer golden
...
The always-visible plan-mode toggle (fe9191934) adds one composer-row
button; the answered transcript golden re-records with it.
2026-07-30 15:44:53 +08:00
Yichen Jiang
483199d47a
Merge branch 'worktree-llm-dynamic-config' into worktree-llm-web-config
...
# Conflicts:
# apps/cli/cordis.yml
# apps/web/tests/snapshots/code-mode-round/session.jsonl
# apps/web/tests/snapshots/cordis-tool-round/session.jsonl
# apps/web/tests/snapshots/fresh-round-trip/session.jsonl
# apps/web/tests/snapshots/lifecycle-chrome/session.jsonl
# apps/web/tests/snapshots/live-interactions/session.jsonl
# apps/web/tests/snapshots/navigation-panes/seed.jsonl
# apps/web/tests/snapshots/question-composer/session.jsonl
# apps/web/tests/snapshots/seeded-history/seed.jsonl
# apps/web/tests/snapshots/steering/session.jsonl
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.i18n.yaml
# docs/core-data-structures/settings.i18n.yaml
# docs/event-producer-consumer.md
# docs/module-graph.md
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
# packages/client/connection/README.i18n.yaml
# packages/client/connection/src/index.ts
# packages/client/connection/tests/node-half.spec.ts
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/README.md
# packages/client/runtime/README.zh.md
# packages/client/runtime/src/client/index.ts
# packages/client/runtime/tests/fake-api.ts
# packages/client/ui-models/README.i18n.yaml
# packages/examples/tui-demo/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/package.json
# packages/host/apiproxy/src/api-proxy.ts
# packages/host/apiproxy/src/api/rpc.schema.ts
# packages/host/apiproxy/src/api/rpc.ts
# packages/llm/llm-deepseek/README.i18n.yaml
# packages/llm/llm-deepseek/README.zh.md
# packages/llm/llm-pi-ai/README.i18n.yaml
# packages/llm/llm/README.i18n.yaml
# packages/llm/llm/README.zh.md
# packages/sdk/sdk-client/README.i18n.yaml
# packages/settings/settings/README.i18n.yaml
# packages/settings/settings/README.md
# packages/settings/settings/README.zh.md
# packages/subagent/subagent-dsh-sdk/README.i18n.yaml
# packages/subagent/subagent-dsh-sdk/README.zh.md
# packages/support/llm-replay/README.i18n.yaml
# packages/ui/jsonrpc/README.i18n.yaml
# packages/ui/jsonrpc/README.zh.md
# packages/ui/tui/tests/snapshots/model-selector.expected.txt
# packages/ui/tui/tests/snapshots/model-switching.expected.txt
# packages/ui/tui/tests/snapshots/resume-sessions.expected.txt
# packages/ui/tui/tests/snapshots/status-diagnostics-narrow.expected.txt
# packages/ui/tui/tests/snapshots/status-diagnostics.expected.txt
# packages/ui/tui/tests/tui.snapshot.ts
# pnpm-lock.yaml
# python/sdk/README.i18n.yaml
# scripts/snapshots/translation-prompt-v4/request-response.expected.json
2026-07-30 15:18:26 +08:00