Commit Graph
100 Commits
Author SHA1 Message Date
Tianyi Cui be7b064504 feat(python-runtime): package the dsh CLI and profile assets
Make the zero-code dsh-python-runtime-closure depend on the real @deepseek-ai/dsh application and every required profile peer, then package apps/cli's built bin instead of the deleted Python carrier. Rename executables to deepseek-harness-sdk-runtime-<platform>-<arch>, update wheel/platform/build workflow discovery, and install a Python dsh console command that requires explicit DSH_HOME before exec.

Include profile, bundle, preset, native addon, and shared-library assets needed by the full CLI. Remove the checked-in default cordis.yml and preserve the existing wheel distribution names, Python module names, sidecar validation, and wire identity. Runtime resolution and release tests pin the new artifacts and dev Node carrier.
2026-08-24 17:28:26 +08:00
Tianyi Cui 809a4c5bad fix(app-boot): preserve profile modules inside pkg executables
Teach the profile installation fallback to use normal symlinks under Node and real ESM proxy packages under pkg. Each proxy records the source package version, mirrors its explicit runtime subpath exports, and re-exports the virtual /snapshot URLs, so built-in Loader rows and external plugin peers resolve one shared Cordis/module instance from an on-disk profile.

Keep proxy healing idempotent, reject foreign real directories, cover root and subpath imports in packaged mode, and expand AggregateError startup diagnostics so concurrent Loader failures retain their individual import causes. This is the reusable packaged-profile mechanism; Python-specific artifact wiring remains in the next commit.
2026-08-24 17:28:26 +08:00
Tianyi Cui 1d4dcf3b57 refactor(python): remove the private direct-config carrier
Delete @deepseek-ai/dsh-sdk-python-runtime and its packaged-bin entry now that Python uses the repository's dsh application launcher. Remove the package's project reference, Knip entry, workspace-policy exception, executable allowlist entry, and README-model classification together so no tooling preserves the old exception.

This commit is deliberately mechanical: it removes the obsolete package and gate accommodations without introducing the replacement launch behavior. The following commits add the packaged dsh runtime and Python profile API, keeping the architecture change separate from deletion noise.
2026-08-24 17:28:26 +08:00
Tianyi Cui 51f274d7a4 Merge pull request #2972 from deepseek-harness/worktree/upgrade-pi-ai-0.84.2
chore(llm): bump pi-ai to 0.84.2
2026-08-24 02:22:50 +08:00
Tianyi Cui c4f10577b5 test(llm): cover pi-ai upgrade compatibility 2026-08-24 01:57:18 +08:00
Tianyi Cui 76c3bf5f6f Merge origin/master into worktree/upgrade-pi-ai-0.84.2 2026-08-24 01:38:25 +08:00
Tianyi Cui 114846b4ca test(web): refresh pi-ai provider catalog snapshots 2026-08-24 01:37:51 +08:00
Tianyi Cui 44bd9182ff chore(llm): bump pi-ai to 0.84.2 2026-08-24 01:19:01 +08:00
Tianyi Cui 11b69490bf Merge pull request #2964 from deepseek-harness/worktree/localize-ui-strings-gate
fix(client): localize UI copy and gate regressions
2026-08-23 22:56:29 +08:00
Tianyi Cui 2a72de67d1 fix(ci): preserve cross-platform lint suppressions 2026-08-23 21:48:32 +08:00
Tianyi Cui ac4ade3aaa fix(client): address localization review findings 2026-08-23 21:22:41 +08:00
Tianyi Cui 174c672f45 Merge remote-tracking branch 'origin/master' into worktree/localize-ui-strings-gate 2026-08-23 20:15:02 +08:00
Tianyi Cui e1a5942c9a fix(client): satisfy UI localization CI gates 2026-08-23 20:14:53 +08:00
Tianyi Cui c9b1c1b0b0 Merge pull request #2960 from deepseek-harness/worktree/fix-master-sandbox-ci-20260823
fix(ci): restore Sandbox master checks
2026-08-23 19:50:25 +08:00
Tianyi Cui b6b08beb0d test(sandbox): derive packed workspace closure
The Landlock packed-install rehearsal packed a hand-maintained list of
workspace tarballs. When dsh-llm gained the dsh-util-crypto runtime
dependency, the list stayed stale and npm tried to fetch the unpublished
release candidate from the public registry, failing both Linux master jobs
with E404 before confinement ran.

Read the current pnpm workspace inventory and traverse dependencies,
optionalDependencies, and required peerDependencies from the packed test
roots. Verify package identities, fail loudly on unresolved workspace names,
sort the closure deterministically, and leave native-family packages to the
existing mode-preserving native packer.

Cover runtime traversal, optional-peer exclusion, native filtering, and
invalid workspace metadata. Remove the obsolete vendoring exact edit for the
deleted manual list so future runtime workspace additions are included by
their manifests instead of becoming post-merge CI failures.
2026-08-23 19:24:50 +08:00
Tianyi Cui 4f3a47d792 fix(terminal-bash): handle terminal protocol replies
Unix PowerShell emits cursor-position requests while PSReadLine starts and
redraws prompts. The subprocess PTY is only a transport, so those requests
went unanswered. Startup could then accept the dsh> literal echoed from its
setup source as a rendered prompt, and later sends were lost or clipped.

Feed raw PTY output into a zero-scrollback @xterm/headless state machine and
write generated replies through the provider-owned terminal handle. Drain
replies before caller input, repeat foreground inspection when terminal
activity races the sample, and retain send ownership until parser and reply
work quiesce. Coalesce raw chunks behind one active parser write so large
Windows output cannot create thousands of queued parse callbacks.

Publish pwsh only from backend stdin_read evidence and start one timeoutMs
deadline before the complete startup retry loop, so inferred-idle follow-ups
cannot reset the bound. Dispose the emulator when the
terminal or cleanup fails. Document the fail-loud ConstrainedLanguage path
and add focused coverage for split queries, reply ordering, foreground
resampling, failure containment, batching, timeout, and disposal.
2026-08-23 19:24:50 +08:00
Tianyi Cui 9ebda8755e Merge remote-tracking branch 'origin/master' into worktree/localize-ui-strings-gate
# Conflicts:
#	packages/client/ui-chat/src/client/chat/AssistantMarkdown.tsx
#	packages/client/ui-chat/src/client/chat/CompactionItem.tsx
#	packages/client/ui-conversation/src/client/locales.ts
#	packages/client/ui-renderer/src/client/app.tsx
#	packages/client/ui-renderer/src/client/index.ts
#	packages/client/ui-renderer/tests/ui-renderer.client.spec.tsx
#	packages/client/ui-tool/src/client/tool/models/tool-call-model.ts
#	packages/client/ui-trajectory/src/client/trajectory-record.ts
#	packages/client/ui-trajectory/src/client/trajectory-snapshot-builder.ts
#	packages/client/ui-trajectory/tests/views.client.spec.tsx
#	packages/client/ui-workspace/src/client/tree.ts
2026-08-23 18:34:42 +08:00
Tianyi Cui 3c10f5d2d3 fix(client): route UI copy through locale 2026-08-23 17:31:37 +08:00
Tianyi Cui 3c1c6a89b1 test(python): gate installed runtime wheels across release targets (#2953)
* test(python): exercise installed wheels as black boxes

Add an installed-wheel mode that refuses source/editable imports, repository working directories, mismatched SDK/runtime versions, unpinned runtime dependencies, and executables outside the installed runtime distribution. The mode resolves the wheel-owned executable itself, so callers cannot accidentally prove an explicit checkout artifact.

Add a real-API scenario that drives two tool-using turns through the public synchronous SDK, verifies the file bytes outside the agent, checks completed turn/tool events and persistence, and projects provider failures without retaining credential-bearing error text. The existing deterministic scenario set remains the keyless behavior oracle.

Refs #2952.

* ci(python): require installed-wheel checks on every release target

Move the complete deterministic runtime scenarios behind construction and clean installation of the SDK and matching runtime wheels. Each native leg runs outside the checkout with source-resolution environment variables removed; Linux manylinux smokes assert the same installed provenance.

Expand the required pull-request call from Linux x64 to Linux x64, Linux arm64, and macOS arm64. Trusted heads receive only DEEPSEEK_API_KEY_EXTERNAL for a fail-loud live two-turn smoke on each carrier, while fork and Dependabot heads retain the full keyless path without exposing secrets.

Pin the reusable secret declaration, matrix call, aggregate dependency, untrusted-head condition, and live/keyless commands in the workflow contract test.

Refs #2952.

* docs(testing): make installed wheels the Python CI authority

Record the clean-wheel provenance boundary, complete keyless scenario set, trusted real-API contract, secret handling, and three-target required topology in a new implemented testing decision. Update the SEA distribution and portable-CI authorities plus the Python contributor reference to describe the same current state.

Archive the fully superseded Linux-x64-only decision after consolidating its rationale and alternatives into the new owner. Preserve its bilingual triplet as a sealed historical snapshot and redirect every active current-state reference.

Refs #2952.
2026-08-23 16:53:55 +08:00
Tianyi Cui 4ba47e665b Merge pull request #2119 from deepseek-harness/worktree/gate-package-subsystem-pages
Require package groups to declare subsystem documentation
2026-08-23 16:14:47 +08:00
Tianyi Cui 5e0fd757e1 Merge pull request #2460 from deepseek-harness/test/translation-prompt-snapshot-fixtures
test: decouple the translation prompt snapshot from live documents
2026-08-23 16:13:58 +08:00
Tianyi Cui 1d46946963 test(docs): use a block cleanup callback 2026-08-23 16:02:32 +08:00
Tianyi Cui 97938582e5 test(docs): avoid duplicate fixture cleanup 2026-08-23 15:55:46 +08:00
Tianyi Cui 4bc6f4bdf7 Merge origin/master into worktree/gate-package-subsystem-pages 2026-08-23 15:47:32 +08:00
Tianyi Cui ce2de363dd Merge latest master into test/translation-prompt-snapshot-fixtures 2026-08-23 15:41:54 +08:00
Tianyi Cui 947205fb80 Merge pull request #2956 from deepseek-harness/worktree/win32-utf16-nul-truncation-20260823
fix(directory-picker-native): stop truncating Win32 UTF-16 paths at U+XX00
2026-08-23 14:28:53 +08:00
Tianyi Cui 56f0297321 docs(agent-notes): record the Win32 UTF-16 NUL-scan fix 2026-08-23 14:22:03 +08:00
Tianyi Cui b7e16fdaeb Merge pull request #2954 from deepseek-harness/worktree/remove-openai-yml
chore: remove openai.yaml files
2026-08-23 13:22:09 +08:00
Tianyi Cui 8c420de301 chore: remove OpenAI skill metadata 2026-08-23 13:14:41 +08:00
Tianyi Cui 92f8fb6c4a Merge pull request #2948 from deepseek-harness/worktree/unify-dsh-launch-profiles-reviewable-20260823
feat: unify application launch under dsh profiles
2026-08-23 11:10:27 +08:00
Tianyi Cui fd814589fb refactor(profiles): make module HMR opt-in
Move the shared module-reload policy into dsh-base by inserting its HMR row disabled, then remove the redundant disabled overrides from Web, headless, SDK, and ACP. No shipped profile enables server module reload; live profile patch watching continues through the launcher-owned config-only fallback, and browser client HMR remains a separate mechanism.

A later profile layer can opt into source-module reload explicitly with disabled: false while retaining the base root configuration. Composition tests cover every shipped mode and the explicit enable path, and the bundle references plus launcher Agent Notes document the resulting ownership and safety rationale.
2026-08-23 10:59:01 +08:00
Tianyi Cui 2eea02dae3 ci: bound profile e2e subprocess fan-out
Set DSH_E2E_MAX_WORKERS=4 for the credentialed e2e workflow and pin that environment contract in the workflow test. Profile-launched SDK and ACP scenarios each boot a complete subprocess tree, so the previous file-level fan-out could multiply process and provider pressure far beyond the runner's useful concurrency.

The bound changes scheduling only: every e2e file still runs, the Vitest configuration retains its explicit override knob, and local callers can choose a different positive worker count when their resources allow it.
2026-08-23 10:59:01 +08:00
Tianyi Cui fdac6cffcb test: refresh profile migration catalogs and built smokes
Regenerate the configuration catalog and module graph after replacing standalone application packages with dsh profile bundles and renaming the private Python carrier. Update built-bin coverage to launch the shipped sdk and acp profiles, assert retired bins stay absent, and keep the Web golden text aligned with the same assembled runtime.

Clarify that headless is a startup profile whose patches freeze after boot. This commit is projection and verification work: it contains no application implementation, and every generated document is produced from source committed earlier in the series.
2026-08-23 10:59:01 +08:00
Tianyi Cui 32c32932f9 chore(repo): wire profile apps and the renamed runtime through builds
Update workspace manifests, the lockfile, Host project references, Knip inputs, package constraints, vendoring rewrites, and Python runtime build/smoke scripts for sdk-app, acp-app, and @deepseek-ai/dsh-sdk-python-runtime. Add the ACP hook packages to the dsh dependency closure so installed profile materialization resolves the same plugins as source workspaces.

Keep Python distribution outputs deliberately unchanged: the wheel modules, executable names, and smoke targets retain their public identities even though their private npm carrier moved. Constraint fixtures pin the new package locations and catch missing application dependencies on every platform.
2026-08-23 10:59:01 +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 a6447db01c refactor(sdk): name the private Python runtime carrier explicitly
Rename the relocated npm workspace to @deepseek-ai/dsh-sdk-python-runtime and the runnable example to python-sdk-agent, then update every owning English/Chinese document, test, and packaged-runtime reference. Remove the obsolete standalone bin while retaining the carrier entrypoints used to assemble the wheel runtime.

This is intentionally a naming and ownership change, not a Python SDK migration. The public deepseek_harness_sdk and deepseek_harness_runtime module, wheel, executable, environment, and wire behavior remain unchanged. Documentation records that this private carrier is the temporary sole non-dsh application exception and will move to profile launch later.
2026-08-23 10:59:01 +08:00
Tianyi Cui 189e7b84e8 test(sdk): refresh dsh-profile SDK transcripts
Regenerate the four TypeScript SDK replay scenarios after switching their subprocess to dsh --profile sdk. The fixtures now project profile-owned runtime context, tool composition, nested-child persistence, and the opt-in DeepSeek session-log acceptance event while preserving each scenario's final response and file assertions.

This commit contains only committed snapshot outputs. Separating them from the SDK implementation keeps protocol/API review focused and makes the model-visible consequences auditable as generated evidence.
2026-08-23 10:59:00 +08:00
Tianyi Cui 3368ddc0ab feat(sdk): launch TypeScript clients through dsh profiles
Replace the TypeScript SDK's public arbitrary command/argv launch surface with the same-version dsh CLI, a named profile, ordered per-launch patches, optional process cwd, and explicit Harness home selection. Installed consumers use the built CLI; clean source checkouts use the package's src/bin.ts through an absolute tsx/esm loader and a source-only patch that omits build-generated Typert loading.

Materialize explicit or inherited environments at spawn time, keep profile-internal patches below caller patches, and resolve every caller-relative path before the child starts. The SDK subagent provider validates its optional CLI and patch files at plugin load and requires an isolated absolute child home.

Treat JSON-RPC initialize as the Loader-owned readiness point: Loader settlement joins entry imports, fiber lifecycle work, and synchronous effect registration, so the server needs no scheduler tick. A delayed profile entry registers a private adapter before initialize resolves, proving caller-supplied plugin routes are visible without fallback.

Update sdk-app ownership, server diagnostics, TypeScript SDK examples, nested-loader coverage, and session-upload replay layering together. The following commit contains only the regenerated SDK transcripts, keeping this API and lifecycle change directly reviewable.
2026-08-23 10:59:00 +08:00
Tianyi Cui f3402eff58 refactor(sdk): relocate JSON-RPC example and runtime without edits
Move examples/jsonrpc-agent to examples/python-sdk-agent and packages/examples/jsonrpc-demo to packages/sdk/python-runtime while preserving every file byte-for-byte. The directory placement now reflects the example's Python-distribution role and the private runtime carrier's SDK ownership.

This commit deliberately keeps the old package names, commands, configuration, and snapshots inside their new directories. All 42 files are 100% renames; API/profile migration and naming changes follow separately so reviewers do not have to disentangle behavior from filesystem movement.
2026-08-23 10:59:00 +08:00
Tianyi Cui d52f2900d6 test(acp): refresh profile-launched application transcripts
Regenerate the ACP composition graph and committed replay outputs from the assembled dsh base plus acp-app profile. The updated logs, system prompts, tool schemas, and stdout projections capture the same scenarios after shared plugins move out of the retired demo package and into profile-owned composition.

There is no runtime source in this commit. Keeping generator-owned artifacts separate lets reviewers validate the behavioral migration first, then inspect expected wire/model-visible consequences as a mechanical projection update.
2026-08-23 10:59:00 +08:00
Tianyi Cui d8dbb8235c refactor(acp): launch automation through the dsh acp profile
Replace the standalone @deepseek-ai/dsh-acp-demo application with dsh --profile acp plus ordered example patches. The shipped acp-app bundle owns only the protocol bridge; every example overlay now targets shared dsh-base rows instead of copying a complete application tree.

Move launcher responsibilities into the ACP snapshot harness: it materializes profile patches, links required packages, reserves stdout for JSON-RPC, observes spawn and drain failures, and escalates process teardown deterministically. The relocated control-surface fixture and the ACP/subagent integration tests now exercise the real CLI/profile path.

This commit contains authored runtime, configuration, and test changes only. Generated transcript and projection churn is deliberately left for the next commit so reviewers can inspect the migration logic without hundreds of expected-output edits.
2026-08-23 10:59:00 +08:00
Tianyi Cui 713b41a946 refactor(acp): relocate control-surface fixtures without edits
Move the ACP control-surface e2e, scripted LLM, and Cordis fixture out of the application package that later commits retire and into the runnable examples/acp-agent test tree. This gives the assembled dsh profile example ownership of its integration fixture.

This commit is intentionally mechanical: all three files retain their exact blobs and appear as 100% renames. Imports and launch behavior are updated only in the subsequent ACP migration commit, keeping reviewer-visible code changes separate from file movement.
2026-08-23 10:59:00 +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 3fa19b3b30 docs: define dsh as the sole Node application launcher
Record the final architecture before any runtime or file-layout changes. The decision makes named dsh profiles the only supported Node application launch path, gives TypeScript SDK callers ordered profile patches for per-launch customization, and retains the packaged Python runtime as an explicitly temporary exception with a later migration obligation.

Keeping this decision in a documentation-only commit gives every following commit one stable naming, lifecycle, and compatibility reference. The English and Chinese notes and their pairing record enter together.
2026-08-23 10:58:59 +08:00
Tianyi Cui ca53c90a74 Merge pull request #2875 from deepseek-harness/ci/python-release-gray
ci(python): drop PR labeled trigger for python-release dry-run
2026-08-23 10:34:15 +08:00
Tianyi Cui e73c78fc20 Merge pull request #2946 from deepseek-harness/worktree/webhook-real-e2e
test(webhook): exercise real CLI and model flow
2026-08-23 09:34:53 +08:00
Tianyi Cui c5311d665d test(webhook): preserve real e2e environment 2026-08-23 01:56:42 +08:00
Tianyi Cui 65509a225b test(webhook): resolve the real CLI rule from examples 2026-08-23 01:48:55 +08:00
Tianyi Cui 3bf5edb5d5 test(webhook): exercise the real CLI and model flow 2026-08-23 01:48:55 +08:00
Tianyi Cui 76a450529d docs(app-boot): clarify patch path anchoring 2026-08-23 01:48:36 +08:00
Tianyi Cui 2b2a8e8240 test(webhook-github): verify chunked overflow response 2026-08-23 01:48:36 +08:00
Tianyi Cui 2f56345439 fix(webhook-github): export provider event types 2026-08-23 01:48:36 +08:00
Tianyi Cui bf23f59979 fix(webhook): quiet expected disposal cancellation 2026-08-23 01:48:35 +08:00
Tianyi Cui ea3d0ffcee fix(webhook): preserve the initial model selection 2026-08-23 01:48:35 +08:00
Tianyi Cui d06f544d8c fix(ci): give Wine Host compiler sufficient heap 2026-08-23 01:48:35 +08:00
Tianyi Cui 9cd383059f fix(build): raise host compiler heap ceiling 2026-08-23 01:48:35 +08:00
Tianyi Cui 01258a6bca fix(webhook): retain checked invariant installer 2026-08-23 01:48:35 +08:00
Tianyi Cui a1455edeb8 fix(webhook): align patch-relative fixtures and invariants 2026-08-23 01:48:35 +08:00
Tianyi Cui 5f60e50d71 feat(webhook): create workspace sessions from GitHub events 2026-08-23 01:48:35 +08:00
Tianyi Cui c6c9426efb Merge pull request #2917 from deepseek-harness/worktree/deepseek-session-log-upload
feat(deepseek): upload incremental session logs
2026-08-23 01:23:59 +08:00
Tianyi Cui 9c7e142f79 refactor(session): send canonical events directly 2026-08-23 00:22:41 +08:00
Tianyi Cui 3c0da7bef7 refactor(session): name delivery acceptance event 2026-08-22 23:18:13 +08:00
Tianyi Cui e0a8050aea docs(deepseek): merge todo event graph updates 2026-08-22 22:55:02 +08:00
Tianyi Cui 8ac8245d39 docs(deepseek): specify session log wire format 2026-08-22 22:55:02 +08:00
Tianyi Cui 1c7af99c80 feat(deepseek): apply session upload review feedback 2026-08-22 22:55:02 +08:00
Tianyi Cui fe72ab42d1 feat(deepseek): upload incremental session logs 2026-08-22 22:55:02 +08:00
Tianyi Cui df6e581f58 Merge pull request #2934 from deepseek-harness/worktree/todo-event-ownership-v2-20260822
refactor(todo): move todo event vocabulary to its producer
2026-08-22 22:37:23 +08:00
Tianyi Cui 851eab756e docs(todo): add the owning subsystem reference 2026-08-22 22:22:43 +08:00
Tianyi Cui b7dca9eb7e fix(todo): validate announced session histories 2026-08-22 22:22:27 +08:00
Tianyi Cui c41c5f3959 Merge origin/master into todo-event-ownership-v2 2026-08-22 21:12:36 +08:00
Tianyi Cui 59e49458e5 docs(todo): record event ownership 2026-08-22 21:10:02 +08:00
Tianyi Cui a2b415096d refactor(todo): own todo event vocabulary 2026-08-22 21:10:02 +08:00
Tianyi Cui d16ab1ac9a Merge pull request #2914 from deepseek-harness/worktree/trim-cot-leakage-20260821
docs: trim CoT leakage from post-purge prose
2026-08-22 20:54:12 +08:00
Tianyi Cui f964f4078c docs: remove rebase residue and hedge parser-swap regression
- drop the commit-message suffix left at the end of the ui-workspace zh README
- state parser-swap regressions as possible, not guaranteed
2026-08-22 20:35:11 +08:00
Tianyi Cui 750c7f7535 docs: address CoT review findings
- stop attributing the 45-case helper/Node divergence to the path port spec,
  which pins only the Node-facing port to Node
- keep the divergence measurement as provenance, without a dead owner
- fix the path corpus comment so it does not claim divergence from the spec
  that asserts equality
- drop the v2 generation stamp from the cordis mount fallback test
- restate the watcher refusal rationale in current-state terms
- re-record the ui-workspace bilingual pair after rebase
2026-08-22 20:35:11 +08:00
Tianyi Cui 17f85bdbcd docs: trim CoT leakage from post-purge prose
Remove dead design-session citations, change narration, indexical
stamps, and review-adjacent justification found by the
dsh-trim-cot-leakage recall batteries in prose that landed after the
last purge. Bilingual README pairs are re-recorded.
2026-08-22 20:35:11 +08:00
Tianyi Cui efdafb8610 Merge pull request #2926 from deepseek-harness/worktree/optimize-windows-ci-20260822
perf(ci): shorten native Windows coverage critical path
2026-08-22 20:21:00 +08:00
Tianyi Cui f39af7bae9 feat(acp): complete standard v1 automation controls (#2928)
* feat(acp): complete standard v1 automation controls

* docs: refresh ACP module graph

* docs: synchronize module graph pair

* docs(acp): explain empty-session durability

* test(acp): align assembled automation coverage

* fix(acp): address lifecycle review findings
2026-08-22 20:19:21 +08:00
Tianyi Cui 35f26699be fix(test): publish lint probes atomically 2026-08-22 20:10:55 +08:00
Tianyi Cui 811788e57a fix(ci): harden optimized Windows gate fixtures 2026-08-22 20:10:55 +08:00
Tianyi Cui c92c86492d ci: require native Windows aggregate verdict 2026-08-22 20:10:55 +08:00
Tianyi Cui c8cecd6079 perf(ci): raise isolated Windows coverage fan-out 2026-08-22 20:10:55 +08:00
Tianyi Cui d39b6c638b perf(test): widen transform corpus sharding 2026-08-22 20:10:55 +08:00
Tianyi Cui d27a5f2967 perf(test): shard the transform corpus checker 2026-08-22 20:10:55 +08:00
Tianyi Cui 12ad38b234 perf(ci): phase native Windows coverage work 2026-08-22 20:10:55 +08:00
Tianyi Cui 4edf6400ff perf(ci): isolate the transform corpus from coverage 2026-08-22 20:10:54 +08:00
Tianyi Cui cd6197b428 Merge origin/master into worktree/acp-v1-control 2026-08-22 20:05:11 +08:00
Tianyi Cui ea6f61f144 feat(deepseek): upload plugin package metadata (#2916)
* feat(deepseek): upload plugin package metadata

* feat(deepseek): apply metadata review feedback

* docs(deepseek): specify request wire extensions

* docs(notes): record inventory cache benchmark

* docs(site): keep DeepSeek wire spec repository-only
2026-08-22 20:03:23 +08:00
Tianyi Cui 52bd3e1805 fix(acp): address lifecycle review findings 2026-08-22 19:44:00 +08:00
Tianyi Cui e37985f5d5 test(acp): align assembled automation coverage 2026-08-22 19:32:27 +08:00
Tianyi Cui e0a700baf9 docs(acp): explain empty-session durability 2026-08-22 19:17:06 +08:00
Tianyi Cui 696ec4880e docs: synchronize module graph pair 2026-08-22 19:11:28 +08:00
Tianyi Cui 28c93d8224 docs: refresh ACP module graph 2026-08-22 19:06:37 +08:00
Tianyi Cui c1764157e7 Merge origin/master into worktree/acp-v1-control 2026-08-22 18:52:58 +08:00
Tianyi Cui 511181684c feat(acp): complete standard v1 automation controls 2026-08-22 18:52:27 +08:00
Tianyi Cui e184d26380 Merge pull request #2923 from deepseek-harness/worktree/archive-agent-notes-20260822
docs(notes): archive low-future-value records
2026-08-22 15:45:31 +08:00
Tianyi Cui 198c6c595c docs(notes): archive low-value records 2026-08-22 15:15:08 +08:00
Tianyi Cui 7476b0495d Merge pull request #2922 from deepseek-harness/worktree/trim-cot-skill-followup-20260822
docs: harden chain-of-thought leakage audits
2026-08-22 14:43:09 +08:00