Yichen Jiang
fe59dd3530
Merge worktree-llm-web-config (939, with latest master) into worktree/onboarding-deepseek-config
...
# Conflicts:
# apps/web/tests/scaffold.ts
2026-07-31 00:01:28 +08:00
Yichen Jiang
86ae2b70d5
Merge worktree-llm-dynamic-config (884, with latest master) into worktree-llm-web-config
2026-07-30 23:57:01 +08:00
Yichen Jiang
2a9a5ff412
Merge latest master into worktree-llm-dynamic-config
2026-07-30 23:55:50 +08:00
Yichen Jiang
55ae4751b7
Merge worktree-llm-web-config (939, with latest master) into worktree/onboarding-deepseek-config
2026-07-30 22:21:05 +08:00
Yichen Jiang
015b065e9d
Merge worktree-llm-dynamic-config (884, with latest master) into worktree-llm-web-config
...
# Conflicts:
# apps/web/tests/scaffold.ts
2026-07-30 22:19:53 +08:00
Yichen Jiang
80c36ff0d3
Merge latest master into worktree-llm-dynamic-config
2026-07-30 22:18:16 +08:00
Tianyi Cui
95293e58b6
Merge remote-tracking branch 'origin/master' into worktree/fix-macos-web-replay
2026-07-30 22:14:28 +08:00
Tianyi Cui
dea8f31273
Merge branch 'master' into worktree/fix-macos-web-replay
...
# Conflicts:
# .agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.i18n.yaml
2026-07-30 22:00:50 +08:00
creatixchu
ddc4adb7a3
Merge remote-tracking branch 'origin/master' into feat/dir-selector-adaptive-default
2026-07-30 21:42:30 +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
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
Yichen Jiang
eae4219e04
Merge branch 'worktree-config-settings-seam' into worktree-llm-dynamic-config
...
# Conflicts:
# apps/cli/README.i18n.yaml
# apps/cli/composition.md
# apps/cli/config/base.cordis.yml
# apps/cli/src/app-cli-entry.ts
# apps/cli/src/tui.ts
# apps/cli/tests/tui-keyless-smoke.e2e.ts
# examples/package.json
# packages/ui/app-boot/README.i18n.yaml
# packages/ui/app-boot/README.md
# packages/ui/app-boot/README.zh.md
# pnpm-lock.yaml
# python/sdk-runtime/package.json
2026-07-30 19:46:04 +08:00
Tianyi Cui
fb30187161
fix(web): isolate replay skill discovery
2026-07-30 19:30:06 +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
5e4922a761
Merge remote-tracking branch 'origin/feat/directory-picker-quiet-navigation' into feat/dir-selector-adaptive-default
...
# Conflicts:
# apps/cli/cordis.yml
# packages/host/README.i18n.yaml
2026-07-30 18:41:41 +08:00
Tianyi Cui
ff364c53a2
Merge master into worktree-config-settings-seam
2026-07-30 18:31:50 +08:00
creatixchu
bfbab9d2ab
Merge remote-tracking branch 'origin/feat/directory-picker-quiet-navigation' into feat/dir-selector-adaptive-default
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-28-directory-picker-capability-seam.i18n.yaml
2026-07-30 16:20:22 +08:00
Turtle
674c25a6a2
Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation
...
# Conflicts:
# docs/tool-catalog.md
# examples/package.json
# packages/examples/agent-spine-demo/README.i18n.yaml
# packages/examples/agent-spine-demo/README.zh.md
# pnpm-lock.yaml
2026-07-30 16:11:21 +08:00
creatixchu
c90410deaa
Merge remote-tracking branch 'origin/master' into feat/dir-selector-adaptive-default
2026-07-30 15:25:46 +08:00
Tianyi Cui
2550882875
Merge branch 'master' into worktree/persistent-bash-str-replace-editor
2026-07-30 15:19:27 +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
Yichen Jiang
8ff6b23214
Merge branch 'worktree-config-settings-seam' into worktree-llm-dynamic-config
...
# Conflicts:
# docs/capability-seams.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.i18n.yaml
# docs/module-graph.md
# examples/tui-agent/cordis.yml
# packages/README.i18n.yaml
# packages/cordis/tool-cordis/src/api-catalog.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-pi-ai/README.zh.md
# packages/settings/settings-local/src/index.ts
# packages/util/README.i18n.yaml
# packages/util/README.md
# packages/util/README.zh.md
# scripts/doc-budgets.manifest.json
2026-07-30 14:33:36 +08:00
Yichen Jiang
c50aaea5e9
Merge remote-tracking branch 'origin/master' into worktree-config-settings-seam
...
# Conflicts:
# docs/cordis-catalog/events.md
# docs/core-data-structures/core.i18n.yaml
# docs/event-producer-consumer.md
# packages/README.i18n.yaml
# packages/cordis/tool-cordis/src/api-catalog.ts
# scripts/doc-budgets.manifest.json
2026-07-30 13:13:59 +08:00
Yichen Jiang
0b689e0d2c
test(web): cover keyless DeepSeek onboarding
2026-07-30 12:41:22 +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
Turtle
5dbcedfbba
Merge origin/master into feature/shared-cli-config-foundation
2026-07-30 10:11:38 +08:00
creatixchu
3d9df6c9c9
Merge remote-tracking branch 'origin/master' into feat/dir-selector-adaptive-default
...
# Conflicts:
# apps/web/tests/workspace-flow.snapshot.ts
2026-07-30 09:51:26 +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
kingwl
76e14793a9
Merge remote-tracking branch 'origin/master' into codex/web-queue-actions
...
# Conflicts:
# docs/architecture.i18n.yaml
# docs/cordis-catalog/events.md
# docs/core-data-structures/core.i18n.yaml
# docs/event-producer-consumer.md
2026-07-30 01:04:25 +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
kingwl
f893e2281d
feat(agent): add addressable queue operations
2026-07-30 00:05:00 +08:00
imccyu
dcb8b592ee
Merge remote-tracking branch 'origin/master' into worktree-trpc
2026-07-30 00:04:52 +08:00
Turtle
c00a54d334
Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation
...
# Conflicts:
# packages/host/apiproxy/README.i18n.yaml
2026-07-30 00:01:13 +08:00
imccyu
f773985e71
feat(typert): add compiler-independent type pipeline
2026-07-29 23:45:42 +08:00
Turtle
19fc1575f3
Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation
...
# Conflicts:
# packages/host/apiproxy/README.i18n.yaml
2026-07-29 23:41:20 +08:00
Tianyi Cui
039547979d
test(web): cover skill invocation policy on real host
2026-07-29 22:58:46 +08:00
Turtle
b6552fcf3e
Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation
...
# Conflicts:
# packages/context/README.i18n.yaml
# packages/context/README.md
# packages/context/README.zh.md
2026-07-29 21:24:46 +08:00
imccyu
bf8db964d4
Merge branch 'master' into xtr/trajectory-inspection-ui
2026-07-29 21:20:38 +08:00
Turtle
ea9315841f
refactor(session): exclude live-session registry foundation
2026-07-29 21:15:48 +08:00
Turtle
9e2c3d3093
refactor(cli): exclude tmux context and source guard
2026-07-29 21:15:48 +08:00
Turtle
f290a8b851
refactor(cli)!: one shared base config with per-surface overlays
...
`dsh` shipped two config trees that were 43 rows the same: apps/cli/cordis.yml
composed web as 74 flat rows, while the TUI booted examples/tui-agent/cordis.yml
whose single `@deepseek-ai/dsh-tui-demo` row mounted twelve plugins behind a
twenty-key pass-through Config. Neither file was what its location claimed —
apps/cli hardcoded the "example" as the product default and the "demo" bundle
was the application — and every capability change had to be made twice.
- apps/cli/base.cordis.yml holds the 43 shared rows; tui.cordis.yml and
web.cordis.yml are patch lists stating only what differs per surface
- overlays apply as SIBLING patch lists at one include level, because include
patches never cross an include boundary. Precedence: base < surface <
(--config | personal ~/.dsh/config.yaml) < launcher flag/profile patches
- `--config` now applies an overlay INSTEAD OF the personal one, so a demo or
test tree never inherits the user's route; new `--config-replace` boots a file
as the entire tree (the old `--config` behaviour). Both survive /resume
- vendor/include: index each `insert`ed row as it is added so a later patch can
configure or disable it. Upstream built the id index once before the patch
loop, leaving every surface-only row — the whole TUI front door — silently
unpatchable from user config. Logged as local modification 8
- session identity moves to dsh-agent-loop's CONFIGURED_AGENT_IDENTITIES_KEY;
dsh-tui's MAIN_SESSION_ID_KEY is deleted (only the bundle read it)
- delete examples/tui-agent, examples/cordis-agent, packages/examples/tui-demo;
TUI tests → apps/cli/tests, cordis e2e → packages/cordis/tool-cordis/tests,
examples/code-mode survives as an overlay leaf
- `dsh web` gains --config, threaded into AppCLIEntry as an extra overlay
Three latent defects surfaced and are fixed here: the TUI captured the optional
sessionQuery service once at construction and could permanently disable /resume
when it won the mount race; the session-store root silently reverted to a
project-local ./.sessions; --config-replace was dropped by the resume handoff.
Verified by booting each tree through the real Loader (TUI 55 entries, web 75,
zero unsettled) rather than reading YAML. All eight terminal snapshots replay
byte-identically; 14/14 PTY smoke, 112/112 snapshots, 25/25 doc-sync, hygiene
and lint clean.
2026-07-29 21:15:42 +08:00
Turtle
e7c0a5b794
Merge origin/master: web permission sandbox, default pi-ai providers
2026-07-29 21:15:34 +08:00
Tianyi Cui
b060b6f5f6
Merge commit 'refs/codex/pr758/master' into HEAD
...
# Conflicts:
# packages/context/README.i18n.yaml
# packages/context/README.zh.md
2026-07-29 20:55:09 +08:00
creatixchu
8cec74748b
feat(host): adaptive directory-picker default via -auto chooser
...
Add @deepseek-ai/dsh-host-directory-picker-auto, a node-half-only chooser
that samples the host situation once at boot (bind host via a new
httpServer.host getter, SSH markers, platform, DISPLAY/WAYLAND_DISPLAY)
and mounts the matching dual-face backend (-native or -browse) as a real
Loader entry in the in-memory root tree; the effect disposer removes it.
Entry-level mounting keeps the seam's one-row-swaps-both-faces invariant:
the client module table discovers the mounted backend's browser half
exactly as a config row's. apps/cli now composes -auto as its
directory-picker row; composing a backend row directly remains the pin.
2026-07-29 18:34:06 +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
07akioni
59c0f92cb6
Merge branch 'master' into feat/agent-action
2026-07-29 15:09:04 +08:00
07akioni
afab428c0c
Merge branch 'master' into feat/agent-action
2026-07-29 14:21:44 +08:00
Yichen Jiang
665c21693b
feat(tools): add persistent bash and str-replace editor
2026-07-29 14:12:27 +08:00
Yichen Jiang
aee06097ee
feat(credentials): file-backed provider layering process env over $DSH_HOME/.env
...
Live environment wins read-only (shadowed writes reject instead of
appearing to succeed); the file is the writable source with byte-preserving
line edits, a quoting ladder dotenv reads back verbatim, atomic 0600
writes, wholesale snapshot replacement on reload, and write-drain
teardown.
2026-07-29 13:18:28 +08:00
Yichen Jiang
3a794495ad
feat(credentials): abstract credential seam (ctx.credentials)
...
References-not-values doctrine: settings carry env-shaped CredentialRefs,
providers own storage. Per-operation resolve, UI-safe describe, fail-loud
set/unset under read-only shadowing, credentials/updated commit event with
a live-service invariant.
2026-07-29 13:03:12 +08:00