Yichen Jiang
8c0d626cd5
Merge worktree-llm-dynamic-config (884, with latest master) into worktree-llm-web-config
...
# Conflicts:
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.i18n.yaml
# packages/client/runtime/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/README.md
# packages/host/apiproxy/README.zh.md
2026-07-30 23:32:31 +08:00
imccyu
da9f02221e
Merge remote-tracking branch 'origin/master' into worktree-forkweb
2026-07-30 22:53:07 +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
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
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
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
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
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
kingwl
17893c503e
feat(web): match context injection disclosure design
2026-07-30 16:20:34 +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
imccyu
ecd07abdc0
test(web): refresh question-composer goldens for the merged composer
...
The master-side refresh batch recorded these goldens against master's
composer (customTrigger row, header pager); the merge keeps this
branch's redesigned composer (always-visible custom input, footer
pager) with copy on the standard locale seat, so the waiting aria and
the answered transcript re-record against the merged UI. The answered
golden also picks up the ask_user_question toolview row this branch
introduces.
2026-07-30 15:07:31 +08:00
creatixchu
0ad6bf4b06
test(web): re-record directory-browser golden after master merge
...
The English-locale golden refreshed on master (8c753fd8f1) was recorded
against master's pre-miller dialog; this branch's own golden predated the
miller two-pane landing and was never enforced before the web browser
snapshot CI gate landed. Re-recorded against the merged tree: two-pane
landing plus the show-hidden footer toggle.
2026-07-30 15:00:43 +08:00
imccyu
291fe1e823
test(web): refresh composer stats expected outputs
2026-07-30 13:15:57 +08:00
Yichen Jiang
d1bfdbff84
feat(ui-models)!: single-key hand-written provider editors with derived credential references
...
The Models page drops the generic schema renderer and the visible
environment-variable field: each editor is a curated per-family card whose
primary input is one write-only API key stored under a derived
<ROUTE>_API_KEY reference (recorded as apiKeyEnv in the pi-ai profile), an
unkeyed whole-section provider opens as its setup card, and the collapsed
customized-settings fold carries baseURL/reasoningEffort (deepseek) or
reasoning (pi-ai). dsh-client-schema-form reduces to the schema/draft model
layer (no React).
2026-07-30 12:17:56 +08:00
imccyu
23fb779f7f
test(web): refresh queue expected outputs
2026-07-30 11:57:00 +08:00
imccyu
b523a04af8
Merge remote-tracking branch 'origin/master' into worktree-fetest
2026-07-30 11:51:09 +08:00
imccyu
e80d7bce17
test(web): refresh message action expected outputs
2026-07-30 11:50:12 +08:00
imccyu
2fa26cd140
test(web): refresh localized expected outputs
2026-07-30 11:39:40 +08:00
imccyu
0dbe631c3a
test(web): refresh browser expected outputs
2026-07-30 10:23:23 +08:00
Yichen Jiang
0d96676f35
feat(web): mount the config plane in dsh web and pin the Models page keyless
...
apps/cli/cordis.yml gains settings-local, credentials-local, and the bare
dormant llm-pi-ai row (manifest deps added for the resolver contract);
llm-deepseek drops its !!js apiKey inline for per-request credential
resolution. Both adapters tag apiKeyEnv role('credential-ref') so the
form mounts the credential control. The web e2e scaffold isolates a
harness home per run — an in-process boot must never touch the
developer's real ~/.dsh — and the new models-settings scenario pins the
whole loop through the shipped app: dormant directory as add vocabulary,
schema-driven editor apply landing in settings.yaml, the route
registering live (topology frame), and a write-only key landing in the
temp .env with the configured badge converging. A hermetic test-owned
reference name keeps a developer's real provider keys from flipping the
badge. schema-form joins the platform module table (seed + externals)
so client bundles share one instance.
2026-07-30 09:29:40 +08:00
imccyu
e56c0699a9
Merge branch 'master' into codex/web-queue-actions
2026-07-30 01:21:13 +08:00
kingwl
c97b1d025e
Merge remote-tracking branch 'origin/master' into codex/web-queue-actions
...
# Conflicts:
# apps/web/tsconfig.json
# docs/architecture.i18n.yaml
# docs/event-producer-consumer.md
# packages/client/runtime/README.i18n.yaml
# packages/client/tsdown.client.ts
# packages/client/ui-conversation/README.i18n.yaml
# packages/core/agent-loop/README.i18n.yaml
# packages/core/agent/README.i18n.yaml
# packages/core/agent/README.zh.md
# packages/host/apiproxy/README.i18n.yaml
# tsconfig.host.json
2026-07-30 00:30:38 +08:00
Tianyi Cui
492eef806a
Merge commit 'refs/codex/pr921/master' into worktree/retarget-pr921-20260729
...
# Conflicts:
# apps/web/tests/slash-flow.snapshot.ts
2026-07-30 00:06:50 +08:00
kingwl
f893e2281d
feat(agent): add addressable queue operations
2026-07-30 00:05:00 +08:00
imccyu
4d1ab81f05
test(web): shrink the assembled jsdom lane to one built-bundle boot smoke
...
The seven behavior-pinning snapshots (workspace-flow, slash-flow,
todo-display, session-title, session-actions, terminal-card,
code-mode-fixture) asserted per-package behavior through the whole
built app: every assertion now lives in the owning package's suite at
equal strength (SlotTestRuntime benches assemble the same plugin apply
over the production slot machinery), while the assembled layer kept
re-failing on unrelated churn at 10s-timeout debugging cost.
What only this lane can prove is the artifact plane: lib/client.js
bundles loading through the ModuleLoader path, staged boot activation
across the inject layers, per-plugin CSS injection, and a journey
reaching chat content over the fixture transport. built-boot.snapshot.ts
pins exactly that, and nothing else — behavior assertions belong to the
package suites.
2026-07-29 23:51:21 +08:00
Tianyi Cui
4146e403ea
test(web): refresh skill menu snapshot after retarget
2026-07-29 23:47:50 +08:00
Tianyi Cui
fca0c05155
Merge remote-tracking branch 'origin/master' into worktree/pr823-retarget-latest-20260729
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/skills.i18n.yaml
# docs/core-data-structures/skills.md
# docs/core-data-structures/skills.zh.md
# packages/host/apiproxy/README.i18n.yaml
# packages/skill/skill-local/README.i18n.yaml
# packages/skill/skill/README.i18n.yaml
# packages/skill/skill/README.md
# packages/skill/skill/README.zh.md
# packages/skill/skill/src/index.ts
# packages/skill/skill/tests/skill.spec.ts
# packages/skill/tool-skill/README.i18n.yaml
# packages/skill/tool-skill/src/index.ts
# packages/ui/tui/README.i18n.yaml
# packages/ui/tui/README.md
# packages/ui/tui/README.zh.md
# packages/ui/tui/src/index.ts
# packages/ui/tui/tests/tui.spec.ts
2026-07-29 23:36:49 +08:00
Tianyi Cui
039547979d
test(web): cover skill invocation policy on real host
2026-07-29 22:58:46 +08:00
imccyu
32c3d1e17f
Merge remote-tracking branch 'origin/master' into worktree-renameweb
...
# Conflicts:
# packages/client/runtime/README.i18n.yaml
# packages/client/test-runtime/src/sessions.ts
2026-07-29 21:45:29 +08:00
imccyu
6e8ad4b382
Merge remote-tracking branch 'origin/master' into worktree-renameweb
...
# Conflicts:
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/README.zh.md
# packages/session-title/session-title/README.i18n.yaml
# packages/session-title/session-title/README.zh.md
2026-07-29 20:58:22 +08:00
imccyu
b23c3d596a
Merge remote-tracking branch 'origin/master' into trajectory-history-source
2026-07-29 20:58:04 +08:00
imccyu
d257c3878e
feat(web): session-row Rename menu action with a browser-owned dialog
...
The row menu's Rename item opens the same dialog pattern as workspace rename
(no client-side conflict rule; the host normalizes) and resolves through the
session face via ctx.sessions.binding. Assembled-app snapshot covers the
row-menu -> dialog -> unary-settle flow.
2026-07-29 18:59:46 +08:00
_Kerman
859452d807
Merge remote-tracking branch 'github/master' into xtr/trajectory-inspection-ui
...
# Conflicts:
# 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/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
# packages/client/runtime/src/client/contract/session.ts
# packages/client/ui-conversation/README.i18n.yaml
2026-07-29 17:31:33 +08:00
Yichen Jiang
fee12f1af0
refactor(llm-deepseek)!: rename the provider route to deepseek-official
...
The native adapter's route was named deepseek, colliding with pi-ai's
catalog provider of the same name, so the two DeepSeek paths could never
be mounted side by side. The web settings page needs both configurable at
once. Compositions, fixtures, goldens, scaffolding defaults, and docs all
move together (pre-release, no shim); TUI/session-query-spill/
missing-credential goldens re-recorded through their keyless refresh
modes because provider-name length shifts box padding and spill
truncation points.
2026-07-29 16:36:07 +08:00
Chinesezjc
c87a20b506
Merge remote-tracking branch 'origin/master' into feat/web-terminal-card
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/README.md
# packages/client/ui-conversation/README.zh.md
2026-07-29 15:44:58 +08:00
Chinesezjc
612b3c7c4e
Merge remote-tracking branch 'origin/master' into feat/web-terminal-card
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
2026-07-29 14:45:23 +08:00
07akioni
4aa1aa4a66
test(web): refresh aria goldens for message IconActions and clocks
...
Settled history now exposes user/assistant chrome (including date-aware
clocks) in the accessibility tree; collapse clocks via scaffold and update
keyless scenario goldens.
2026-07-29 14:30:09 +08:00
07akioni
afab428c0c
Merge branch 'master' into feat/agent-action
2026-07-29 14:21:44 +08:00
Chinesezjc
eba81fe1f2
Merge remote-tracking branch 'origin/master' into feat/web-terminal-card
...
# Conflicts:
# packages/client/ui-conversation/README.i18n.yaml
2026-07-29 11:49:10 +08:00