Commit Graph
100 Commits
Author SHA1 Message Date
Tianyi Cui c024c53d34 Merge pull request #3458 from deepseek-harness/xtr/record-browser-gif-gh-attach
docs(record-browser-gif): publish PR GIFs with gh --attach
2026-09-02 18:24:51 +08:00
Tianyi Cui 2f091ee8e6 docs(record-browser-gif): publish PR GIFs with gh --attach
Prefer gh v2.99.0's repeatable --attach flag for publishing demonstration
GIFs: it uploads the artifact and rewrites the body's local-path
reference in place, keeping media out of git history without an orphan
assets branch. The assets-branch workflow remains the fallback when the
GIF exceeds 10 MB, gh is older than v2.99.0, or the repository is not on
github.com.
2026-09-02 17:58:36 +08:00
Tianyi Cui 3c5b7097ae Merge pull request #3425 from deepseek-harness/feat/ptc-disable-workflow-plugin
feat(presets): omit workflow from Web PTC mode
2026-09-01 23:18:39 +08:00
Tianyi Cui c3e5bd7dae Merge pull request #3418 from deepseek-harness/fix/ptc-note-cloudflare-link
docs: restore Cloudflare's Code Mode name and blog link in PTC Agent Note
2026-09-01 22:36:56 +08:00
Tianyi Cui b74486ab29 docs: restore Cloudflare's Code Mode name and blog link in PTC note
The code-mode → ptc rename rewrote Cloudflare's product name in the
link text and the external URL path, leaving "PTC mode" pointing at
https://blog.cloudflare.com/ptc/ (404). Restore Cloudflare's own name
and the working https://blog.cloudflare.com/code-mode/ link in both
the English and Chinese notes.
2026-09-01 21:27:44 +08:00
Tianyi Cui 876a3e0414 Merge pull request #3346 from deepseek-harness/worktree/session-format-02-seq-brands
refactor(session)!: distinguish event seqs from log offsets
2026-09-01 20:56:20 +08:00
Tianyi Cui 27bf1039db refactor(session)!: distinguish event seqs from log offsets 2026-09-01 20:36:00 +08:00
Tianyi Cui 50b6be997d Merge pull request #3289 from deepseek-harness/worktree/pr1148-runtime-contract-fixes
fix(code-runtime): settle Python provider contracts
2026-08-31 17:30:15 +08:00
Tianyi Cui 01141e619a Merge latest #1148 into #3289 2026-08-31 17:11:37 +08:00
Tianyi Cui d87b755e37 Merge origin/master into feat/code-runtime-python-backend 2026-08-31 17:11:11 +08:00
Tianyi Cui d15610a66b test(snapshot): refresh Python PTC fixture for latest master 2026-08-31 17:00:18 +08:00
Tianyi Cui dc5cc0d575 test(code-runtime-python): align PATH rejection diagnostic 2026-08-31 16:47:26 +08:00
Tianyi Cui ba0609571f Merge #1148 validation corrections into #3289
# Conflicts:
#	packages/experimental/code-runtime-python/tests/runtime.spec.ts
2026-08-31 16:29:52 +08:00
Tianyi Cui f14189cf8c chore(deps): refresh Python runtime lock importer 2026-08-31 16:27:40 +08:00
Tianyi Cui 04aee12cc2 test(code-runtime-python): align macOS runtime expectations 2026-08-31 16:26:39 +08:00
Tianyi Cui 4e2c568efe Merge corrected #1148 checkpoint into #3289
# Conflicts:
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.zh.md
#	packages/experimental/code-runtime-python/README.i18n.yaml
#	packages/experimental/code-runtime-python/README.md
#	packages/experimental/code-runtime-python/README.zh.md
#	packages/experimental/code-runtime-python/src/index.ts
#	packages/experimental/code-runtime-python/tests/runtime.spec.ts
2026-08-31 16:10:13 +08:00
Tianyi Cui 61b3e06e97 fix(code-runtime-python): preserve post-merge hardening 2026-08-31 16:03:32 +08:00
Tianyi Cui d6bd5eb973 fix(code-runtime): bound interpreter version probe 2026-08-31 15:55:05 +08:00
Tianyi Cui 711ec7ffac test(snapshot): canonicalize Python PTC fixture 2026-08-31 15:50:45 +08:00
Tianyi Cui 7f84a825c9 fix(code-runtime): settle Python provider contracts 2026-08-31 15:50:45 +08:00
Tianyi Cui cf2d0986cf Merge pull request #3361 from deepseek-harness/revert-2573-fix/windows-path-case-test-fragility
Revert "test(session): resolve one relative root on both sides of the jsonl round-trip"
2026-08-31 14:33:01 +08:00
Tianyi Cui 1f3101982b Revert "test(session): resolve one relative root on both sides of the jsonl round-trip" 2026-08-31 14:32:48 +08:00
Tianyi Cui 2491a9d1d9 Merge pull request #2573 from deepseek-harness/fix/windows-path-case-test-fragility
test(session): resolve one relative root on both sides of the jsonl round-trip
2026-08-31 14:13:23 +08:00
Tianyi Cui 817c67d799 Merge pull request #3339 from deepseek-harness/worktree/session-format-01-jsonl-only
refactor(session)!: remove SQLite persistence backend
2026-08-31 13:58:04 +08:00
Tianyi Cui 4553c9d957 refactor(session)!: remove SQLite persistence backend 2026-08-31 13:23:07 +08:00
Tianyi Cui ed9fb840d6 Merge pull request #3325 from deepseek-harness/worktree/revert-pr-3087
revert(session): restore ignorable event compatibility
2026-08-30 15:34:41 +08:00
Tianyi Cui b7a77f4f08 Merge origin/master into worktree/revert-pr-3087 2026-08-30 14:18:37 +08:00
Tianyi Cui 089e044e5b docs(session): clarify external event compatibility 2026-08-30 14:17:44 +08:00
Tianyi Cui b7bccd5897 fix(docs): repair reverted session note references 2026-08-30 12:35:11 +08:00
Tianyi Cui 29b65af60b docs(session): retain ignorable events for external plugins 2026-08-30 12:29:24 +08:00
Tianyi Cui 2c6ff296af Revert "Merge pull request #3087 from deepseek-harness/worktree/remove-ignorable-session-events"
This reverts commit 2123b2f418b1c8fbb86dc327b598fb11423da226, reversing
changes made to 3c0b5c68ce697537a21084f9135663017474a2e1.
2026-08-30 12:26:20 +08:00
Tianyi Cui 8437bfb9e4 Merge pull request #3074 from deepseek-harness/worktree/ptc-rename-base
Rename code-mode to ptc (PTC mode), except session-persistent vocabulary
2026-08-28 00:49:44 +08:00
Tianyi Cui 188d77ed4b docs: sync remaining code mode-value prose to ptc in notes and spill README
Review bot findings: DSH_TOOLS_MODE values, the wire-replacement
wording, 'code-only' mode references, and the spill README's
dispatch-log waterfall name all still named the removed 'code' value.
2026-08-28 00:24:05 +08:00
Tianyi Cui b7c71d805a docs(zh): sync remaining code mode-value prose to ptc
The review bot found stale 'code' configuration values in the zh tools
and agent-tool-presentation READMEs and the zh tool catalog, which the
runtime schema already rejects in favor of 'ptc'.
2026-08-28 00:16:29 +08:00
Tianyi Cui 84dd2447f3 docs: point note references at the surviving RPC test homes
Master removed the ApiProxy package; its former test paths now live in
the client connection, API gateway, and settings controller test
directories. Update the three notes' references so verify-package-paths
resolves.
2026-08-27 23:22:02 +08:00
Tianyi Cui 558b6d9193 fix(notices): restore the SDK 0.3.241 platform payload rows
The rename commit regenerated the notices file against a stale local
install (0.3.220); the lockfile and CI install resolve 0.3.241.
2026-08-27 23:14:33 +08:00
Tianyi Cui cf12723ba8 docs: re-record pairing hashes after the master rebase merge
The rebase merged master's SDK-example and telemetry prose with the
ptc renames in the tools and CLI reference READMEs and the executor
collapse note; re-record their pair hashes.
2026-08-27 23:14:33 +08:00
Tianyi Cui c3904faee0 test(snapshot): restore canonical packed fixture layout
The DSH_SNAPSHOT refresh recorded the internal seq-range form; the
canonical fixture layout expands those ranges. Apply the mechanical
migration instead.
2026-08-27 23:14:33 +08:00
Tianyi Cui ee42efbccd test(snapshot): re-record cordis-inspect-jsdoc after the seq-range projection
Master's session persistence projection now writes sourceEventSeqs as
compressed ranges; the recorded replay fixture must match the new output.
2026-08-27 23:14:33 +08:00
Tianyi Cui 70af4edf3e fix: point the rename note at the fail-closed session-event vocabulary note
Master replaced the session-log-version-mechanism note with the
fail-closed-session-event-vocabulary note; update the rename note's links
(en/zh) so cross-links resolve.
2026-08-27 23:14:33 +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
Tianyi Cui 409f9ee304 fix: repair merged README remnants and note links after the master rebase
Apply the rename pass to READMEs and docs the master sweep rewrote, fix
PTC mode anchors and the renamed-note links in the spill READMEs, and
regenerate the doc graphs.
2026-08-27 23:14:33 +08:00
Tianyi Cui 45c514a42b fix: align mode-value prose and stale persistent mentions with the split
The split kept the session-persistent vocabulary (tool/code-dispatch*,
tools-code-mode, :code:) on this PR, but several prose surfaces still named
the new values: the zh persistence/tool catalogs, the renamed Agent Notes'
event mentions, spill-policy comments, and a garbled 're-enPTC mode'
replacement. Also rename the mode value to ptc in the places the rename
missed (tools and agent-tool-presentation READMEs, the Config JSDoc, note
mode unions) and the codeModeHarness* e2e helpers.
2026-08-27 23:14:32 +08:00
Tianyi Cui 3ca9c7d489 rename code-mode to ptc (PTC mode), except session-persistent vocabulary
Rename the tool-presentation transport from code-mode to ptc everywhere
that is not written into session logs: the mode config value becomes 'ptc',
the preset directory/id becomes ptc, the demo becomes demo:ptc, the
dispatch waterfall becomes tools/ptc-dispatch-log (types PtcDispatch*), the
prompt rule becomes tools:ptc-only, source/test files become ptc.ts etc.,
and prose says PTC mode / PTC 模式. The session-persistent vocabulary
(durable events tool/code-dispatch*, logged plugin name tools-code-mode,
sub-call id segment :code:) intentionally stays and moves in the stacked
persistence PR, which is blocked until the SESSION_FORMAT_VERSION v0→v1
migration lands with it. run_code, its code parameter, CodeSdkLanguage,
CodeRunFailedError, the dsh-code-runtime family, third-party codex names,
and frozen archived notes keep their names.
2026-08-27 23:14:31 +08:00
Tianyi Cui d233300d55 Merge pull request #3087 from deepseek-harness/worktree/remove-ignorable-session-events
refactor(session): require known event types on read
2026-08-26 02:57:19 +08:00
Tianyi Cui 035ac85f42 Merge branch 'master' into worktree/remove-ignorable-session-events 2026-08-26 02:44:26 +08:00
Tianyi Cui 0d551b9f5c docs(session): align SQLite schema evidence 2026-08-26 01:39:53 +08:00
Tianyi Cui e7522ad39b test(persistence): retain primitive log-only coverage 2026-08-26 00:44:31 +08:00
Tianyi Cui 42dc2a46c2 refactor(session): require known event types on read 2026-08-26 00:22:31 +08:00
Tianyi Cui f4d1d3fb25 Merge pull request #3058 from deepseek-harness/fix/pwsh-local-dispose-status
fix(ci): consolidate windows/snapshot/e2e CI blocker fixes
2026-08-25 22:36:54 +08:00
Tianyi Cui 5e868ef2c6 Merge pull request #3033 from deepseek-harness/worktree/fix-2090-web-auth
fix(web): authenticate the browser Host API
2026-08-25 14:40:58 +08:00
Tianyi Cui 4de11c0229 test(web): authenticate streaming fence scaffold 2026-08-25 14:23:47 +08:00
Tianyi Cui b43d0934f7 test(web): keep credential fixtures package-local 2026-08-25 14:23:47 +08:00
Tianyi Cui 9c964848cd fix(web): keep browser authentication synchronous 2026-08-25 14:23:47 +08:00
Tianyi Cui 5595d593d1 docs(web): state authentication contracts directly 2026-08-25 14:23:47 +08:00
Tianyi Cui 3b3b493a96 fix(web): retain launch token across reloads 2026-08-25 14:23:46 +08:00
Tianyi Cui ce031ddd16 fix(web): cover authenticated host runtimes 2026-08-25 14:23:46 +08:00
Tianyi Cui 3e24087bfa fix(web): authenticate the browser Host API 2026-08-25 14:23:45 +08:00
Tianyi Cui 78b9b9d499 Merge pull request #3032 from deepseek-harness/worktree/post-2958-simplifications-20260824
refactor: remove post-#2958 redundancy
2026-08-25 12:51:51 +08:00
Tianyi Cui 7e6193acca refactor(cli): keep config dumps out of runtime healing 2026-08-25 12:21:51 +08:00
Tianyi Cui 8146557ef5 refactor(python): keep launch override on client 2026-08-25 12:21:51 +08:00
Tianyi Cui aa801a418a test(python): share advanced runtime profile patch 2026-08-25 12:21:51 +08:00
Tianyi Cui d0e8f5f9c4 test(sdk): leave model surface to packaged snapshot 2026-08-25 12:21:50 +08:00
Tianyi Cui 43f0f07f9b refactor(prompt): remove unused complete-persona config 2026-08-25 12:21:50 +08:00
Tianyi Cui d35459e3c1 refactor(sdk): remove unused root tool filter 2026-08-25 12:21:50 +08:00
Tianyi Cui f8b0ca046f Merge pull request #3028 from deepseek-harness/worktree/fix-windows-coverage-worker-exit
fix(ci): order native Windows coverage after build
2026-08-24 23:35:24 +08:00
Tianyi Cui aec6e4371a docs(ci): align Windows coverage capacity model 2026-08-24 23:33:18 +08:00
Tianyi Cui 10ba26dcf7 test(sqlite): decouple retry pacing from setup time 2026-08-24 23:06:05 +08:00
Tianyi Cui 97f9e2e402 fix(ci): serialize native Windows coverage after build 2026-08-24 22:36:02 +08:00
Tianyi Cui 084a1ac5f6 Merge pull request #2977 from deepseek-harness/worktree/remove-examples
refactor(repo): retire top-level examples
2026-08-24 14:17:05 +00:00
Tianyi Cui e73c8a9fce fix(repo): close examples migration review gaps 2026-08-24 22:02:44 +08:00
Tianyi Cui 3b090c3c1b fix(test): declare Loader fixture dependencies 2026-08-24 22:02:44 +08:00
Tianyi Cui 4125514a08 refactor(repo): retire top-level examples 2026-08-24 22:02:44 +08:00
Tianyi Cui e25463bc0a test(snapshot): cover Windows workspace symlinks 2026-08-24 22:02:38 +08:00
Tianyi Cui 59b156cb6c fix(test): refresh inherited session pins 2026-08-24 21:48:06 +08:00
Tianyi Cui 1232e61138 fix(test): align snapshots with merged tool routing 2026-08-24 21:37:58 +08:00
Tianyi Cui 6a74eec7a3 fix(test): reconcile snapshot corpus with merged parent 2026-08-24 21:37:58 +08:00
Tianyi Cui 920fe95be7 fix(test): refresh Goal UI from complete build 2026-08-24 21:37:58 +08:00
Tianyi Cui 8e23adcd28 fix(test): align snapshots with latest base 2026-08-24 21:37:58 +08:00
Tianyi Cui 84d172de3d fix(test): make Goal replay host-independent 2026-08-24 21:37:58 +08:00
Tianyi Cui 61cfe86f6e fix(test): stabilize rebased web fixtures 2026-08-24 21:37:58 +08:00
Tianyi Cui 6ea8a52e22 fix(test): harden snapshot corpus invariants 2026-08-24 21:37:57 +08:00
Tianyi Cui d1e8f4672e fix(test): make session replay portable in CI 2026-08-24 21:37:14 +08:00
Tianyi Cui e4a3918e87 docs: refresh module dependency graph 2026-08-24 21:37:14 +08:00
Tianyi Cui caf386f59c fix(test): use expected-output naming 2026-08-24 21:37:14 +08:00
Tianyi Cui 1cfe0f9942 refactor(test): reserve snapshots for session recordings 2026-08-24 21:37:14 +08:00
Tianyi Cui d4e81b6af7 test(snapshot): verify final workspace state 2026-08-24 21:37:14 +08:00
Tianyi Cui 6ca682733f refactor(test): drive sessions through owning profiles 2026-08-24 21:37:13 +08:00
Tianyi Cui 4790f23fea test(snapshot): drive ordinary turns through headless dsh 2026-08-24 21:36:32 +08:00
Tianyi Cui 6189e4a374 test(web): separate session snapshots from goldens 2026-08-24 21:36:31 +08:00
Tianyi Cui 33faf7f35f test(snapshot): separate headless sessions from goldens 2026-08-24 21:36:31 +08:00
Tianyi Cui da1cb2c06e test(snapshot): centralize SDK session corpus 2026-08-24 21:36:31 +08:00
Tianyi Cui 84d6482a95 test(snapshot): declare recorded session ownership 2026-08-24 21:36:31 +08:00
Tianyi Cui 5c67cf898c test(snapshot): centralize ACP session corpus 2026-08-24 21:36:31 +08:00
Tianyi Cui 30762b63c9 refactor(test): make session snapshots transport neutral 2026-08-24 21:36:31 +08:00
Tianyi Cui eeae6ba96a Merge pull request #2961 from deepseek-harness/worktree/python-sdk-windows-x64
feat(python): publish the Windows x64 dsh runtime
2026-08-24 20:43:37 +08:00
Tianyi Cui dff3e18afd fix(python): budget cold profile initialization
The Windows x64 installed-wheel job timed out while waiting for initialize even though the same head passed on rerun. Exact packaged-runtime VM evidence showed a 6.47-second first cold handshake and 2.69-2.94-second warm fresh-home handshakes, leaving too little variance below the public 10-second default.\n\nRaise the independent initialize default to 30 seconds in both Python SDK configuration layers. Ordinary turn and shutdown timeouts remain unchanged, callers retain an explicit override, and tests plus paired documentation pin the public behavior.
2026-08-24 19:09:40 +08:00
Tianyi Cui 8101a0d097 fix(python): make Windows release paths native
Run the GitHub Windows runtime leg under the runner’s native PowerShell instead of inheriting the POSIX Bash body. POSIX and Windows now own explicit output resolution, virtual-environment setup, environment scrubbing, and keyless/live black-box commands, while portable build commands continue to use each runner’s default shell.

Put the pinned uv installation on the GitLab Windows job PATH before either the smoke or release builder invokes it. Reject a runtime executable whose basename does not match the selected platform manifest, and reject Intel macOS at platform selection instead of reporting a misleading missing artifact.

Add a complete PowerShell path to the published Python tutorial and record the three-phase shutdown-time bound in the Windows runtime decision. Workflow, Python, and bilingual documentation tests pin the resulting behavior.
2026-08-24 19:09:40 +08:00
Tianyi Cui d4a63abe85 docs(python): define the Windows x64 runtime contract
Record win-x64 as the sole Windows Python carrier: node24-win-x64 builds a py3-none-win_amd64 wheel with dsh.exe, rg.exe, and both ConPTY addons; Windows arm64 remains explicitly unsupported. The note also pins native build ownership, shell-free pnpm launch, installed-wheel keyless/live gates, and the PowerShell-specific minimal snapshot.

Update the active SEA, sole-launcher, profile-runtime, installed-wheel, and publication decisions from three runtime wheels to four, preserving their existing rationale while linking the Windows extension. Contributor and runtime references now state the exact target, filenames, sidecars, snapshot ownership, and five-wheel release set in both languages.
2026-08-24 19:09:40 +08:00
Tianyi Cui 28442337cf feat(python-example): select the persistent shell by platform
Make the checked-in minimal SDK overlay disable both one-shot shell rows and mount exactly one persistent PTY stack: Bash on Linux/macOS and PowerShell on Windows. The SDK server, explicit dsh home, persistence, editor, timeout, and reduced tool catalog remain unchanged.

Update the runnable example and tutorial to list Windows x64 as supported, describe the platform-selected shell, and remove the obsolete POSIX-only restriction. This keeps the documented first Python task executable through the packaged Windows dsh profile instead of advertising a Linux-only overlay on a Windows-capable SDK.
2026-08-24 19:09:40 +08:00