Commit graph

82 commits

Author SHA1 Message Date
fz
0a0f9e59ff feat(base): expose web fetch by default 2026-09-01 15:18:18 +08:00
Tianyi Cui
215e90dfb2 fix: rename the remaining code mode-value prose found in review
The subagent review found stale code mode-value prose the mechanical pass
missed: tools and agent-tool-presentation READMEs (en/zh), the CLI reference
page (DSH_TOOLS_MODE and the preset roster), the zh tool catalog, the
execute JSDoc and collapse comments in dsh-tools, the codeModeHarness
helper in agent-loop tests, and stale code-mode titles in ptc.spec.
2026-08-27 23:14:33 +08:00
imccyu
e57e7c3f25 docs(api): describe Connection-owned transport 2026-08-27 22:26:30 +08:00
creatixchu
9c37f7a553 Merge remote-tracking branch 'origin/master' into worktree/feedback-otel-enable
# Conflicts:
#	apps/cli/reference/README.i18n.yaml
#	apps/cli/reference/README.md
#	apps/cli/reference/README.zh.md
#	packages/bundle/base/cordis.patch.yml
2026-08-26 10:06:55 +08:00
creatixchu
ac4a2f9792 fix(feedback): address review — accurate release wording, current-state notes, default-mode snapshot lane 2026-08-26 10:05:31 +08:00
fengsy
1477d5b9ef fix(profile): preserve current fallback architecture after rebase 2026-08-26 00:15:18 +08:00
Magolor
0b5eba0c8d docs: rebuild the documentation skill and standards (#2983) 2026-08-25 23:47:20 +08:00
lsdsjy
937d2b3513 feat(headless): stream reasoning progress to stderr 2026-08-25 18:51:37 +08:00
Dudu-0223
aaf0924b48 Merge origin/master into fix/web-fetch-ssrf 2026-08-25 14:40:51 +08:00
Dudu-0223
797c711e11 refactor(web): remove fetch approval policy 2026-08-25 14:25:12 +08:00
Tianyi Cui
7e6193acca refactor(cli): keep config dumps out of runtime healing 2026-08-25 12:21:51 +08:00
creatixchu
106e5ce0bc feat(bundle): default session telemetry to feedback-gated sharing 2026-08-25 12:00:24 +08:00
Dudu-0223
357d9749d1 Merge remote-tracking branch 'origin/master' into fix/web-fetch-ssrf
# Conflicts:
#	apps/web/tests/preview-boot.e2e.ts
2026-08-24 21:13:00 +08:00
Tianyi Cui
7a11f5fde3 docs(python): define the standalone minimal profile
Record sdk-minimal as the narrow repository-owned exception to base-first profile composition: callers still launch only dsh and cannot provide an arbitrary Cordis tree, while the shipped bundle may own a complete explicit roster. Cross-link the launcher, profile-bundle, Python-runtime, minimal-agent, snapshot, and telemetry decisions; the supersession audit keeps each older note active because its remaining rationale is independent.

Update the CLI, architecture, Python tutorial/reference, example, runtime-wheel reference, and bundle documentation. The docs distinguish the full sdk profile from sdk-minimal, explain explicit-home/plugin/patch customization, state the minimal permission and persistence choices, and retain the separately packaged web profile and frontend assets for direct dsh use.

Correct dsh-base descriptions to cover base-backed profiles, make SDK startup configuration visible in the generated config catalog, add sdk-minimal to the module graph, and regenerate the base-composition graph. English and Chinese pairs are re-recorded at the exact reviewed contents.
2026-08-24 17:28:29 +08:00
Tianyi Cui
f0f9b294dd docs(python): make the dsh profile runtime current
Document dsh as the only application launcher across architecture, CLI, SDK, app-boot, Python package, contributor, tutorial, and example references. Explain explicit home selection, profile and patch precedence, persistent external plugin installation, the Node-free runtime path, and the absence of complete-config or ~/.dsh fallbacks.

Record the Python profile-runtime decision and update the active naming, installed-wheel, and SEA packaging notes with precise supersession. Regenerate the configuration catalog and module graph after deleting the carrier, update both reviewed languages and pairing records, and classify the retained standalone Cordis files as lower-level test fixtures rather than launch interfaces.
2026-08-24 17:28:27 +08:00
Dudu-0223
14e4d3f078 docs(web): document shipped fetch policy 2026-08-24 13:40:08 +08:00
Tianyi Cui
3b33ca058f chore(repo): enforce dsh as the only Node application launcher
Add verify-application-entrypoints to the top-level gate graph. It inventories executable sources and package bins across apps, packages, and examples; rejects unclassified launchers including root-level js/mjs/cjs/ts files; and permits only the dsh CLI plus the explicitly private Python runtime carrier exception.

Update repository, architecture, CLI, and naming records to state the same rule: Node consumers select a dsh profile instead of invoking application-package bins, and no compatibility aliases remain. Fixtures prove both allowed classifications and representative escape attempts, making the architectural rule mechanically enforceable.
2026-08-23 10:59:01 +08:00
Tianyi Cui
47a46e4cca feat(profiles): add the ACP application bundle
Introduce @deepseek-ai/dsh-acp-app as the thin application layer for the built-in acp profile. It contributes only the ACP protocol bridge and profile metadata; dsh-base remains the single owner of shared agent composition, providers, persistence, permissions, and tools.

Wire the bundle into CLI resolution, catalogs, workspace configuration, and built-bin coverage. The focused bundle and startup tests prove that base plus acp-app exposes automation sessions while keeping stdout reserved for ACP JSON-RPC.
2026-08-23 10:59:00 +08:00
Tianyi Cui
a16822944b feat(profiles): add the SDK application bundle
Introduce @deepseek-ai/dsh-sdk-app as the thin application layer for the built-in sdk profile. The bundle contributes the JSON-RPC server and startup-only profile metadata, while dsh-base continues to own the shared agent, provider, persistence, and tool composition.

Publish ctx.appReady from the launcher only after the Loader tree and launcher-owned setup succeed. The stdio lifetime binding leaves stdin unread until the protocol transport claims it and defers EOF exit 0 until readiness commits, so early protocol frames remain buffered and a racing startup failure remains the nonzero process outcome. Fiber disposal cancels both pending lifecycle listeners.

Register the bundle in the CLI resolver closure, generated configuration catalog, workspace graph, and built-bin smoke. Startup tests prove that base plus sdk-app exposes the SDK server without taking ownership of shared runtime plugins; focused and built-bin regressions cover early input, EOF readiness, and startup-error precedence.
2026-08-23 10:59:00 +08:00
Tianyi Cui
2c9da6eb5b feat(cli): make profile patch reload policy explicit
Add a patchReload field to built-in profile metadata and carry it through CLI profile resolution into app boot. Live profiles install the existing patch watcher; startup profiles freeze every layer after boot and apply later edits only on the next launch. Missing or invalid metadata fails before the plugin tree starts.

The implementation keeps reload policy with the profile that owns it instead of inferring behavior from an entrypoint. Unit tests cover metadata validation and both lifecycle modes, while the CLI and app-boot references document which built-ins are live versus startup.
2026-08-23 10:59:00 +08:00
Tianyi Cui
5f60e50d71 feat(webhook): create workspace sessions from GitHub events 2026-08-23 01:48:35 +08:00
kingwl
82db1515fb fix(sandbox): isolate bwrap PID namespace 2026-08-20 10:05:16 +08:00
lsdsjy
d66841ea3f feat(web,cli): open the ready Web UI by default 2026-08-19 15:42:12 +08:00
pku-xht
b2178ade80 feat(subagent): make Codex provider directly installable 2026-08-15 03:25:43 +08:00
pku-xht
b4366e711d feat(subagent): make Claude Code provider directly installable 2026-08-14 16:05:48 +08:00
pku-xht
9fcdb2c160 fix(subagent): close Claude SDK runtime dependencies 2026-08-13 20:30:36 +08:00
pku-xht
bb3010a8df fix(subagent): use bundled Claude Code CLI 2026-08-13 18:45:16 +08:00
pku-xht
7de660305a Merge commit '5ccacf0fb452ec8fecd7fda4b61eb16fd8da8f64' into codex/installable-product-subagents 2026-08-13 16:54:39 +08:00
pku-xht
208f37157a fix(subagent): simplify optional provider delivery 2026-08-13 16:41:25 +08:00
pku-xht
22152e39be Merge commit 'f2685aa648d9d7239ae553ff42f3811ced59d393' into codex/installable-product-subagents
# Conflicts:
#	.agents/notes/implemented/architecture/2026-08-05-profile-plugin-bundles.i18n.yaml
#	.agents/notes/implemented/architecture/2026-08-05-profile-plugin-bundles.zh.md
#	.agents/notes/implemented/simplification/2026-08-12-production-dsh-excludes-product-subagent-providers.i18n.yaml
#	.agents/notes/implemented/simplification/2026-08-12-production-dsh-excludes-product-subagent-providers.md
#	.agents/notes/implemented/simplification/2026-08-12-production-dsh-excludes-product-subagent-providers.zh.md
#	apps/cli/composition.md
#	apps/cli/tests/web-agent-presets.e2e.ts
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/bundle/base/README.i18n.yaml
#	packages/bundle/base/README.zh.md
#	packages/bundle/base/package.json
#	packages/subagent/subagent-claude-code/package.json
#	packages/subagent/subagent-codex/package.json
#	pnpm-lock.yaml
2026-08-13 15:58:24 +08:00
Tianyi Cui
6cbf927e0a fix(web): reject unsupported wildcard host 2026-08-13 14:54:22 +08:00
Tianyi Cui
a2d0f7f411 refactor: apply repository naming contract
Apply the accepted pre-release package, service, type, directory, and role renames as one repository-wide change.
2026-08-13 00:54:38 +08:00
pku-xht
d1629eed45 feat(subagent): make product providers directly installable 2026-08-12 19:28:31 +08:00
Chinesezjc
93b400a1de Merge branch 'codex/disable-telemetry-default' into master
Resolved conflicts:
- packages/client/ui-settings-general/README.md, README.zh.md: kept PR
  opt-in telemetry description (DSH_TELEMETRY_MODE)
- scripts/snapshots/translation-prompt-v4: kept master's newer README
  structure snapshot
- i18n.yaml pairing records: resolved per file state
- pnpm-lock.yaml: regenerated
- Modify/delete conflicts (scaffold/telemetry, sdk-follow-up-capabilities):
  kept master deletions
2026-08-12 17:27:37 +08:00
Turtle
4e7f40382d docs: clarify source build prerequisite 2026-08-12 15:37:03 +08:00
Turtle
5d3fdf3042 docs: record separate dsh build decision 2026-08-12 15:37:03 +08:00
Turtle
4c49e7109b fix(cli): separate dsh from repository build 2026-08-12 15:37:03 +08:00
Turtle
341051603f refactor(web): remove --dev; mount the reload chain unconditionally
The client-hmr row joins the web bundle as an ordinary always-on roster
row: without a rebuild watcher rewriting client bundles it polls
unchanged files and stays idle. This deletes the --dev flag, the web
runtime's mode config, the mode-forked prompt contract, the DSH_WEB_MODE
bash variable, and the post-settlement row-creation machinery the
conditional row required. dsh web + pnpm run dev:web remains the
development loop.
2026-08-11 18:01:25 +08:00
Turtle
c598989d08 refactor(cmdline): trim the command-line seams to existing interfaces
The web runtime creates its dev-mode client-hmr row in the root tree
after Loader settlement with plain loader.create, deleting the vendored
Entry.enableRuntime state machine and dsh-cmdline's enableRow export.
Include declares the existing EntryGroup.key tree-carrier marker instead
of the EntryConfigResolver protocol (its own path stays literal; nothing
used a dynamic path). The launcher recognizes no app row: SIGTERM exits
0 on every surface, every boot watches its user patch layers, and the
headless runner exits through ctx.appExit, deleting ctx.headlessIo. Also
restores the vendor README rescope entry to the position the
rescope-vendor exact-edit anchor requires, fixing the master hygiene
regression.
2026-08-11 18:00:15 +08:00
Chinesezjc
b86c2f351c Merge remote-tracking branch 'origin/master' into codex/disable-telemetry-default
Resolve three conflicts:

- packages/bundle/base/tests/base.spec.ts: keep both assertion sets — this
  branch's telemetry-otel mode expression and master's subagent rows plus
  manifest dependencies.
- packages/session/session-telemetry-otel/tests/otel.spec.ts: keep master's
  per-mode sharing disclosure test, but select FULL explicitly instead of
  relying on an omitted mode, because the default is now DISABLED; the
  default-construction test keeps asserting disabled delivery and gains a
  case pinning that an omitted mode reports 'disabled' sharing.
- scripts/snapshots/translation-prompt-v4/request-response.expected.json:
  re-recorded from the merged READMEs rather than hand-merging the embedded
  document text.
2026-08-11 15:57:02 +08:00
Turtle
67ef355800 refactor(cli): inline source launch script 2026-08-11 11:58:47 +08:00
Turtle
d8e50c2c0b fix(review): address source-run feedback 2026-08-11 11:22:08 +08:00
Turtle
ee9465e4b3 build before source dsh launch 2026-08-11 11:22:08 +08:00
Turtle
34abf69730 cleanup: remove managed source installer 2026-08-11 11:22:08 +08:00
Turtle
09e2d2ddc1 refactor(cmdline): make command providers ordinary 2026-08-10 23:45:05 +08:00
Turtle
37ee7b0f24 fix(cmdline): reject multiple command-line owners 2026-08-10 23:45:04 +08:00
Turtle
d4ccfbd80f refactor(cli)!: complete app-owned profile startup 2026-08-10 23:45:04 +08:00
Turtle
37cbd155f5 refactor(cli)!: the launcher parses only its own flags
Launcher flags come first and end at the first token dsh does not
recognize; everything after reaches the booted app verbatim, so
dsh --profile tui --resume <id> works with no launcher change and
dsh --profile web --help prints the web app's help. A bare dsh -h, which
has no app to hand the flag to, still prints the launcher's own.

src/web.ts is deleted: the Web flag family, its LAN-trust sampling, and the
one-shot task positional now live in their bundles, and runProfile no
longer knows any row id. What the startup row decides comes back as a
launcher-owned patch layer above every layer a user can edit, so a live
config edit recomposes the tree without resetting a served port.

dsh web and dsh --profile web finally boot through one path, which also
gives --profile web the harness-source prompt section that only the alias
used to add.
2026-08-10 23:45:04 +08:00
Yichen Jiang
a4e679853f Merge remote-tracking branch 'origin/master' into worktree/fix-minimal-preset-prompt 2026-08-10 22:15:30 +08:00
Turtle
e6eb44ed2a feat(telemetry): require explicit opt-in 2026-08-10 21:57:56 +08:00