NI0317
e61054c4d1
test(sandbox-policy): refresh durable context snapshots
2026-07-30 23:17:33 +08:00
ZiyaZhang
d2521a7e61
test(web): refresh queue collapse access golden
2026-07-30 08:09:59 -07:00
NI0317
04f8b30db1
fix(web): make the welcome notice scan-first
2026-07-30 22:58:52 +08:00
imccyu
da9f02221e
Merge remote-tracking branch 'origin/master' into worktree-forkweb
2026-07-30 22:53:07 +08:00
Hypatia May
b86ce10741
Merge Web queue collapse from master
2026-07-30 22:50:09 +08:00
Hypatia May
c2940f620e
Merge Web queue collapse from master
2026-07-30 22:48:45 +08:00
ZiyaZhang
fa67427c39
Merge remote-tracking branch 'origin/master' into feat/gui-full-access-confirmation
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
2026-07-30 07:48:33 -07:00
NI0317
e5ec7e2b64
Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context
2026-07-30 22:42:52 +08:00
kingwl
1986de9ac1
fix(web): show plan status only while active
2026-07-30 22:42:25 +08:00
Chinesezjc
e830ed7939
fix(web-search-card): surface truncation recovery, widen cardless fallback, validate wire shape, fix tail-cap
...
Address the ds-review-bot findings on the search card:
- searchCardModel dropped the result view's `content`, so a capped search's
`Full … stored at: <locator>` recovery footer vanished from the UI (the card
replaces the raw text). Thread it through as `SearchCardModel.recovery` and
render it below the card at all three sites, only when truncated.
- SearchRow's fallback body was gated on `state === 'error'`, so a settled
non-error call with no card (a successful nested run_code sub-dispatch, a
legacy generic result) showed only its summary with content lost. Widen it to
any settled call with `search === null`.
- searchCardModel trusted the `files`/`paths` shape the host wire schema only
string-checks; a malformed known-kind frame would crash SearchBlock. Validate
the full shape and fall to the generic path on mismatch.
- SearchBlock's restored tail file header added a row without consuming a tail
slot, exceeding maxLines by one and overstating the hidden count. Make it
consume a slot so the visible count holds at maxLines and `hidden` stays exact.
Correct the fixture JSDoc (now genuinely exceeds the row cap) and the Agent Note
recovery-text claim, sync the ui-conversation bilingual README with the search
row, and add an assembled keyless snapshot (apps/web/tests/search-card.snapshot.ts)
that pins the grep card's shape from the built bundles.
2026-07-30 22:40:07 +08:00
Chinesezjc
7d97418d42
test(web): refresh code-mode-round golden for read error state
...
The nested read of a missing file surfaces its error state as 失败 in the
code-dispatch row summary, a consequence of this PR's read-card error
presentation. The golden predated it (never re-recorded while the PR was
conflicting); refreshed keyless via DSH_SNAPSHOT=refresh over the existing
session.jsonl.
2026-07-30 22:33:03 +08:00
NI0317
afe26c27ab
test(sandbox-policy): refresh merged web evidence
2026-07-30 22:24:07 +08:00
NI0317
c311400945
Merge updated DeepSeek onboarding base
...
# Conflicts:
# packages/host/apiproxy/README.i18n.yaml
2026-07-30 22:19:31 +08:00
NI0317
bef8db3add
feat(web): add versioned first-run welcome
2026-07-30 22:17:56 +08:00
NI0317
1a4349be88
test(sandbox-policy): record cache-safe policy context
2026-07-30 22:15:34 +08:00
creatixchu
1102cfc1f3
Merge remote-tracking branch 'origin/master' into worktree/plan-review-layout
2026-07-30 22:10:56 +08:00
Yichen Jiang
e5d7fa4cef
Merge worktree-llm-web-config (939, with latest master) into worktree/onboarding-deepseek-config
2026-07-30 21:52:25 +08:00
Yichen Jiang
5b29d04c21
test(web): re-record the goldens for master's context-injection disclosure
...
Merging master swapped the plain "▸ 上下文注入" button for the shared
DisclosureRow, which every conversation golden carrying an injected-context
row renders. The only change in all twelve files is that row.
2026-07-30 21:40:34 +08:00
imccyu
3b370549a1
feat(client): increment forked session titles
2026-07-30 21:28:17 +08:00
imccyu
213de9a737
feat(ui-conversation): wire assistant session forks
2026-07-30 21:28:17 +08:00
imccyu
7d27c92851
test(web): cover row fork in the real app
2026-07-30 21:28:16 +08:00
imccyu
36f1489398
fix(web): address session fork review findings
2026-07-30 21:28:13 +08:00
Yichen Jiang
7022ab4a75
Merge worktree-llm-dynamic-config (884) into worktree-llm-web-config
2026-07-30 21:19:17 +08:00
Yichen Jiang
b6130b178d
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-models/README.md
# packages/client/ui-models/README.zh.md
# packages/client/ui-models/src/client/store.ts
# packages/client/ui-models/tests/components.spec.tsx
2026-07-30 20:55:12 +08:00
Hypatia May
538f23678a
Merge origin/master into codex/status-bar-token-metrics
...
Build-review integration round 1; isolate Web snapshots from user skill homes.
2026-07-30 20:51:38 +08:00
ZiyaZhang
6d416b06c5
fix(client): gate every full access picker
2026-07-30 05:48:33 -07:00
kingwl
7da7d5784d
Open command menu from composer plus button
2026-07-30 20:42:48 +08:00
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