Commit Graph
5560 Commits
Author SHA1 Message Date
imccyu 78f21bf703 fix(sdk): list create <source> and headless flags in usage help
dsh-sdk's usage template predates the create command and create-sdk's
predates --config/--config-json/--json, so --help hid both surfaces the
README already documents. Pin each with a help-output assertion.
2026-07-18 22:10:22 +08:00
Yichen Jiang 6ce4072599 fix(ci): avoid concurrent docs site builds 2026-07-18 21:53:30 +08:00
Yichen Jiang 5190e10d27 Merge latest agent execution context base 2026-07-18 21:42:38 +08:00
Yichen Jiang 57f23bae6a Merge remote-tracking branch 'origin/master' into worktree/docs-website
# Conflicts:
#	docs/user/develop/basic/config.zh.md
#	docs/user/develop/basic/index.zh.md
#	docs/user/develop/basic/tool.zh.md
#	docs/user/develop/framework/index.zh.md
#	docs/user/develop/framework/service.zh.md
#	docs/user/develop/practice/index.zh.md
#	docs/user/guide/index.zh.md
#	package.json
#	pnpm-lock.yaml
#	pnpm-workspace.yaml
#	website/.vitepress/config/index.ts
#	website/.vitepress/config/zh-CN.ts
#	website/package.json
#	website/zh-CN/api/cordis/context.md
#	website/zh-CN/api/cordis/events.md
#	website/zh-CN/api/cordis/fiber.md
#	website/zh-CN/api/cordis/registry.md
#	website/zh-CN/api/cordis/service.md
#	website/zh-CN/api/harness/bash.md
#	website/zh-CN/api/harness/fs.md
#	website/zh-CN/api/harness/llm.md
#	website/zh-CN/api/harness/tools.md
#	website/zh-CN/api/index.md
#	website/zh-CN/design/composability.md
#	website/zh-CN/design/context-model.md
#	website/zh-CN/design/reactive-coeffects.md
#	website/zh-CN/design/revertible-effects.md
#	website/zh-CN/develop/framework/events.md
#	website/zh-CN/develop/practice/llm-adapter.md
#	website/zh-CN/guide/config.md
2026-07-18 21:35:06 +08:00
Yichen Jiang cddb79e844 Merge branch 'worktree/agent-execution-context-rfc' into worktree/explicit-turn-signal 2026-07-18 21:33:17 +08:00
Tianyi Cui 864b7bfd65 Merge remote-tracking branch 'origin/master' into feat/tui-package
# Conflicts:
#	docs/architecture.md
#	docs/config-catalog.md
#	docs/cordis-catalog/events.md
#	docs/event-producer-consumer.md
#	docs/module-graph.md
#	examples/coding-agent/cordis.yml
#	examples/echo-agent/cordis.yml
#	knip.json
#	packages/core/agent-loop/README.md
#	packages/core/agent-loop/tests/config-session-id.spec.ts
#	packages/examples/README.md
#	packages/examples/stdio-demo/README.md
#	packages/examples/stdio-demo/tests/stdio-agent.spec.ts
2026-07-18 21:20:47 +08:00
Yichen Jiang 0e4785cdb7 Merge origin/master into worktree/agent-execution-context-rfc 2026-07-18 21:20:30 +08:00
Yichen Jiang 619da217d8 Merge branch 'master' into worktree/fix-sqlite-file-permissions 2026-07-18 21:17:01 +08:00
Yichen Jiang b2ccf235dc Merge branch 'master' into worktree/pi-ai-manual-e2e 2026-07-18 21:16:46 +08:00
Tianyi Cui 417248eed8 Merge pull request #265 from deepseek-harness/parallel-tool-call
feat(agent-loop): run safe tool calls in parallel
2026-07-18 20:46:18 +08:00
Tianyi Cui 78f68dbbb9 docs(agent-loop): track scheduler drain follow-up 2026-07-18 20:35:58 +08:00
Tianyi Cui 3b52d216f3 Merge branch 'master' into parallel-tool-call 2026-07-18 20:18:24 +08:00
Tianyi Cui 29d5322e23 Merge pull request #369 from deepseek-harness/codex/session-persistence-events-catalog
docs: expand session persistence event catalog
2026-07-18 20:17:03 +08:00
NI0317 382708b1c0 chore(ui): satisfy desktop package gates 2026-07-18 17:44:12 +08:00
NI0317 2f37bbc61a feat(ui): refine desktop workbench navigation 2026-07-18 17:39:31 +08:00
NI0317 649183aa65 feat(ui): add desktop harness workbench 2026-07-18 17:05:46 +08:00
imccyu ed418827c2 chore(sdk): satisfy CI gates — config catalog, md-wrap, knip
Regenerate docs/config-catalog.md for the telemetry package, unwrap the
design doc's multi-line blockquote paragraphs, and stop exporting the
create-sdk headless spec internals that have no external consumer.
2026-07-18 16:32:08 +08:00
imccyu 64f64724e5 fix(subprocess): honor Windows termination semantics 2026-07-18 16:25:51 +08:00
imccyu d36dc6ece9 test(windows): replace POSIX-only filesystem fixtures 2026-07-18 16:25:16 +08:00
imccyu 560ce3b539 feat(dsh-sdk): launcher telemetry reporting around every command
Wrap runDshSdkCommand so each command times itself and, in a finally block,
resolves consent (option A) and sends one best-effort, fire-and-forget telemetry
event (redacted cordis.yml + package.json content; never reads .env). Never
affects the command's exit code. Adds dsh-scripts -> dsh-telemetry dependency.
Default-on via absent consent entry; opt-out by a disabled telemetry entry.
The config/create wizard opt-out toggle is deferred (see design doc).
2026-07-18 16:11:57 +08:00
imccyu ca7533880e feat(dsh-sdk): create <source> — add external plugin as native PM dependency + cordis mount
dsh-sdk create <source> adds a github (github:owner/repo#ref) or npm (pkg@version)
plugin as a package-manager-native dependency, then mounts the resolved dependency
in cordis.yml through ProjectEditSession. Adds PackageManager.add(spec) and
ProjectEditSession.addExternalPlugin(id, packageName). No giget/pacote. Per-file
100% coverage on the new/changed files.
2026-07-18 16:11:57 +08:00
imccyu 16485392e4 docs(sdk): retarget #2 to native npm/pnpm dependency + cordis mount 2026-07-18 16:11:57 +08:00
imccyu 8052370155 chore(sdk): drop dsh-plugin-fetch (giget/pacote) — #2 will use native npm/pnpm deps
External-plugin creation will add a package-manager-native dependency
(github:owner/repo#ref or pkg@version) plus a cordis mount instead of fetching
tarballs into a temp dir, so the giget/pacote fetch package is no longer needed.
2026-07-18 16:11:56 +08:00
imccyu 472a683bdc feat(create-sdk): headless creation via --config/--config-json + NDJSON + skill
Add a headless create path: --config <file> / --config-json <json> supply a
structured project spec (answers + feature plan) that drives CreateWizard through
a HeadlessPromptPort, bypassing the TTY. --json emits NDJSON lifecycle events
(done / action-required / error) so an agent can fill a missing input and re-run.
Ship a thin SKILL.md playbook for agent-driven creation. Per-file 100% coverage.
2026-07-18 16:11:26 +08:00
imccyu a66b98d270 fix(telemetry): report unless telemetry entry is explicitly disabled
Per ccyu's decision (option A), remove the consent asymmetry in ConsentResolver:
telemetry is OFF only when cordis.yml has a telemetry entry with disabled: true.
A cordis.yml with no telemetry entry now reports (allowWhenEntryAbsent defaults
to true) rather than denying. No cordis.yml, an enabled entry, and DO_NOT_TRACK/CI
are unchanged. Both no-config and absent-entry defaults stay configurable.

Updates the module/README docs and the unit tests (file-present-but-no-entry and
non-object/non-sequence roots now report). Per-file 100% coverage holds.
2026-07-18 16:11:25 +08:00
imccyu fe668a6dfe feat(telemetry): greenfield dsh-sdk telemetry modules
Add @deepseek-ai/dsh-telemetry, a launcher-side (non-plugin) library for the
ConsentResolver (parses cordis.yml consent + DO_NOT_TRACK/CI), buildTelemetryPayload
(redacted cordis.yml + package.json full content, never .env), getOrCreateAnonymousId
(random UUID in a per-machine global config file), and TelemetryReporter
(fire-and-forget, never blocks or crashes the command).

Endpoint is a fixed .invalid placeholder pending the real endpoint. Launcher
dispatch wiring and the helper feature-catalog entry are intentionally out of
scope. Registers the package in tsconfig references, the module graph, and the
README model-experience audit map. Per-file 100% coverage.
2026-07-18 16:11:25 +08:00
imccyu 825a63ab01 feat(sdk): add dsh-plugin-fetch source + fetcher seam
Greenfield #2 "建插件" modules for the forthcoming `dsh-sdk create <source>`
command, in a new foundation-independent package so it touches none of the
dsh-scripts / dsh-helper / create-sdk hotspots the foundation refactor edits.

- `resolvePluginSource(spec)` parses `owner/repo[/subdir]#ref` (github) or
  `pkg@version` (npm) into a `PluginSource` discriminated union, failing loud on
  an ambiguous or malformed spec.
- `PluginFetcher<S>` seam + `fetchPlugin` tag dispatch returning a common
  `FetchedPlugin` (temp dir + immutable provenance).
- `GigetFetcher` (github) over @bluwy/giget-core: resolve `#ref` to a commit SHA
  first, download that SHA; provenance pins the SHA. Chosen over unjs/giget for
  its single runtime dep and absent install/action surface.
- `PacoteFetcher` (npm) over pacote: resolve the manifest, then extract the
  tarball verified against its registry integrity. Registry-only is enforced by
  the source resolver; extract runs no lifecycle scripts.
- Branded `CommitSha`/`Integrity`; network + temp-dir boundaries are injected so
  the logic is unit-tested at 100% per-file coverage without network.

Wiring (package.json pin, cordis.yml via ProjectEditSession with a confirmed
diff, install --ignore-scripts) and the launcher command registration land
later with the foundation.
2026-07-18 16:08:12 +08:00
imccyu dcd886798f feat(sdk): headless PromptPort + create/config headless plan
Add HeadlessPromptPort (fail-loud non-interactive PromptPort), thread
prefilled feature values through FeatureConfigurator, and let CreateWizard
and ConfigWorkflow accept a headless feature plan that skips the interactive
tree/suggests prompts. Per-file 100% coverage on all changed files.
2026-07-18 16:05:14 +08:00
imccyu 923b04606e docs: DeepSeek Harness SDK follow-up work design draft 2026-07-18 16:05:14 +08:00
imccyu 7d28b611b2 test(windows): align platform coverage ignores 2026-07-18 15:55:37 +08:00
Tianyi Cui 2b4641799e docs: expand session persistence event catalog 2026-07-18 15:11:51 +08:00
Tianyi Cui 50f0291b93 Merge latest origin/master into parallel-tool-call
# Conflicts:
#	docs/architecture.md
#	examples/acp-agent/tests/snapshots/bash-spill/session.jsonl
#	examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
#	examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
#	packages/core/agent-loop/src/loop.ts
2026-07-18 15:09:39 +08:00
Tianyi Cui 21ec178841 docs: tighten parallel tool-call prose 2026-07-18 14:59:26 +08:00
Tianyi Cui 7d9f0431fc Merge remote-tracking branch 'origin/master' into codex/simp-drop-unused-schema-default 2026-07-18 14:52:54 +08:00
Tianyi Cui 45600e74e4 Merge branch 'codex/simp-prune-llm-contract' into codex/simp-hide-llm-adapter-helpers 2026-07-18 14:52:54 +08:00
Tianyi Cui 90cbe2573b Merge remote-tracking branch 'origin/master' into codex/simp-prune-llm-contract 2026-07-18 14:52:54 +08:00
Tianyi Cui 4863746432 Merge branch 'codex/simp-ui-identity-residue' into codex/simp-name-front-door-defaults 2026-07-18 14:52:48 +08:00
Tianyi Cui f7bdc17ee3 Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-18 14:52:43 +08:00
Tianyi Cui 2db38ecf05 Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop
# Conflicts:
#	docs/event-producer-consumer.md
#	packages/core/agent-loop/README.md
#	packages/core/agent-loop/tests/contract-regressions.spec.ts
2026-07-18 14:52:34 +08:00
Tianyi Cui 7d34e33b9e Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue
# Conflicts:
#	docs/event-producer-consumer.md
2026-07-18 14:51:21 +08:00
Tianyi Cui d2426fed5d Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id
# Conflicts:
#	docs/cordis-catalog/events.md
#	docs/event-producer-consumer.md
#	packages/core/agent-loop/src/agent.ts
#	packages/core/agent-loop/tests/contract-regressions.spec.ts
#	packages/core/agent-loop/tests/loop.spec.ts
#	website/zh-CN/api/harness/events.md
2026-07-18 14:50:55 +08:00
Tianyi Cui 68544463df Merge branch 'codex/simp-compaction-surface' into codex/simp-agent-entry-state 2026-07-18 14:48:27 +08:00
Tianyi Cui 30a3a6db58 Merge branch 'codex/simp-trim-hook-snapshot-noise' into codex/simp-compaction-surface 2026-07-18 14:48:20 +08:00
Tianyi Cui f62ba61077 Merge branch 'codex/simp-shared-acp-test-launcher' into codex/simp-trim-hook-snapshot-noise 2026-07-18 14:48:20 +08:00
Tianyi Cui a9734b9868 Merge branch 'codex/simp-snapshot-fixture-inventory' into codex/simp-shared-acp-test-launcher 2026-07-18 14:48:20 +08:00
Tianyi Cui cde31a18a7 Merge remote-tracking branch 'origin/master' into codex/simp-snapshot-fixture-inventory 2026-07-18 14:48:14 +08:00
Tianyi Cui 7a29676c01 Merge pull request #320 from deepseek-harness/debug-pangwenjie
Fix async injection tool-result ordering
2026-07-18 14:40:58 +08:00
NI0317 aa18e2a9b2 feat(trace-workbench): reveal the session's jsonl in the file manager
POST /api/sessions/:id/reveal resolves the file server-side (execFile,
argv array — no shell) and opens the platform file manager; the header
button shows the full path on hover.
2026-07-18 14:37:35 +08:00
NI0317 5c0d741531 feat(trace-workbench): show spawned-session links in chat tool blocks
The parent session log has no record of subagent spawns (the workflow
engine spawns them internally; the only durable linkage is the child
header's parentSession field), so the workbench reconstructs call ->
children attribution by creation-time window. Surface that panel in the
chat tool block too, not just the trajectory row.
2026-07-18 14:33:45 +08:00
Tianyi Cui f4eb811139 Merge remote-tracking branch 'origin/master' into codex/simp-drop-unused-schema-default 2026-07-18 14:29:41 +08:00