Commit Graph
5560 Commits
Author SHA1 Message Date
Tianyi Cui 461c0c598c Merge branch 'codex/simp-session-dead-surface' into codex/simp-session-log-representation 2026-07-14 00:54:55 +08:00
Tianyi Cui 36a4b16f18 Merge remote-tracking branch 'origin/master' into codex/simp-session-dead-surface 2026-07-14 00:53:26 +08:00
Tianyi Cui 8976adef68 Merge branch 'codex/simp-shared-acp-test-launcher' into codex/simp-trim-hook-snapshot-noise 2026-07-14 00:50:56 +08:00
Tianyi Cui f0cad87492 Merge branch 'codex/simp-snapshot-fixture-inventory' into codex/simp-shared-acp-test-launcher 2026-07-14 00:49:27 +08:00
Tianyi Cui d11b713e0a Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose
# Conflicts:
#	docs/config-catalog.md
#	scripts/gen-persistence-catalog.ts
#	scripts/jsdoc.ts
#	scripts/verify-md-wrap.ts
#	scripts/verify-package-paths.ts
2026-07-14 00:47:30 +08:00
Tianyi Cui 6ad4b4fa42 fix: let snapshot recording create fixture inventory 2026-07-14 00:46:46 +08:00
Tianyi Cui 972e7cc77d Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose
# Conflicts:
#	docs/config-catalog.md
#	docs/event-producer-consumer.md
#	docs/rfc/implemented/feature/2026-07-05-dynamic-workflows.md
#	examples/acp-agent/tests/acp.snapshot.ts
#	packages/code-runtime/code-runtime-worker/tests/built-lib.e2e.ts
#	packages/code-runtime/code-runtime-worker/tsdown.config.ts
2026-07-14 00:40:36 +08:00
Tianyi Cui e0f9805030 Merge branch 'codex/simp-shared-acp-test-launcher' into codex/simp-trim-hook-snapshot-noise 2026-07-14 00:40:14 +08:00
Tianyi Cui 95065330d7 chore: share README gate Markdown scanning 2026-07-14 00:39:48 +08:00
Tianyi Cui dd3941af99 Merge branch 'codex/simp-snapshot-fixture-inventory' into codex/simp-shared-acp-test-launcher 2026-07-14 00:38:11 +08:00
Tianyi Cui bbddd782fd Merge branch 'codex/simp-session-log-representation' into codex/simp-snapshot-fixture-inventory
# Conflicts:
#	examples/acp-agent/tests/acp.snapshot.ts
2026-07-14 00:36:28 +08:00
Tianyi Cui 3a1332e3f0 Merge remote-tracking branch 'origin/master' into codex/model-experience-readmes-20260712 2026-07-14 00:36:28 +08:00
Tianyi Cui 788fb48d4c Merge branch 'codex/simp-session-dead-surface' into codex/simp-session-log-representation
# Conflicts:
#	docs/event-producer-consumer.md
2026-07-14 00:34:46 +08:00
Tianyi Cui a0359bc4a9 Merge pull request #281 from deepseek-harness/codex/stricter-duplication-lint
chore: tighten TypeScript duplication lint
2026-07-14 00:34:26 +08:00
Tianyi Cui 4d9f771f94 Merge remote-tracking branch 'origin/master' into codex/model-experience-readmes-20260712
# Conflicts:
#	package.json
#	packages/code-runtime/code-runtime-worker/README.md
#	packages/workflow/tool-workflow/README.md
2026-07-14 00:34:25 +08:00
Tianyi Cui dc36ec9d52 Merge remote-tracking branch 'origin/master' into codex/simp-session-dead-surface
# Conflicts:
#	packages/session-persistence/session-persistence-jsonl/src/index.ts
2026-07-14 00:31:38 +08:00
Tianyi Cui b579a13db7 test: trim PostToolUse snapshot retries 2026-07-14 00:28:20 +08:00
Tianyi Cui 53d9634043 chore: tighten TypeScript duplication lint 2026-07-14 00:24:04 +08:00
Tianyi Cui eed43abe66 docs: address final model experience review 2026-07-14 00:22:52 +08:00
Tianyi Cui 0e7d539bbc refactor: share the ACP test launcher 2026-07-14 00:18:00 +08:00
Tianyi Cui fdc5dea100 Merge pull request #253 from deepseek-harness/worktree-singleexe
sdk: Python SDK and single-file executable runtime distribution
2026-07-14 00:09:19 +08:00
Tianyi Cui 274db4966a Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose
# Conflicts:
#	packages/ui/acp/tests/stream-update.spec.ts
2026-07-14 00:08:53 +08:00
Tianyi Cui 8d5422606d Merge branch 'master' into worktree-singleexe 2026-07-14 00:07:22 +08:00
Tianyi Cui e481288a3a refactor: derive snapshot session fixtures from disk 2026-07-14 00:04:11 +08:00
Tianyi Cui 15d6a0c69b test(acp): snapshot advanced toolchain flow
The executable golden proves the packaged VFS and Python SDK boundary, but it does not pin the editor-facing ACP updates, and the existing ACP scenarios exercised Code Mode, subagents, and workflows only as separate stories.

Add a dedicated both-mode replay composition that mounts a Cordis marker, inspects it through a real Code Mode worker dispatch, runs a direct spawn child and a workflow-owned spawn child, then unmounts the marker. Commit normalized ACP frames, parent and child logs, and the composition-specific request-header pin.

Use cordis_inspect as the Code Mode sub-dispatch instead of registering another dynamic tool: the executable snapshot already owns tool-set mutation and header-delta coverage, while this keeps the ACP header contract stable and focuses the new golden on transport presentation and cross-feature composition.
2026-07-13 23:56:58 +08:00
Tianyi Cui 1123e946c0 refactor: simplify session log representation 2026-07-13 23:56:10 +08:00
Tianyi Cui 500e70739c Merge pull request #277 from deepseek-harness/codex/sonarjs-duplicate-lint
chore: gate TypeScript duplication in CI
2026-07-13 23:50:45 +08:00
lintianle 2850b42654 Merge remote-tracking branch 'origin/master' into feat/mcp-client 2026-07-13 23:48:11 +08:00
lintianle af3152fefe feat(mcp): adopt mainstream server-qualified MCP tool naming
Research across 8 multi-server agent clients (Claude Code, Codex, Gemini
CLI, VS Code, Cline, Roo Code, Goose, OpenCode) showed all of them keep
the server namespace in model-facing MCP tool names; the RFC's premise
for raw names ("servers already prefix their tools") is false for the
official GitHub/filesystem/Sentry servers.

- Config: drop toolPrefix; require serverName ([A-Za-z0-9_-]{1,32}),
  duplicate serverName fails the later instance at load (per-root
  reservation, released on dispose)
- Names: always mcp__<serverName>__<rawName>; normalize to the DeepSeek
  64-char [A-Za-z0-9_-] contract with a deterministic 12-hex identity
  hash on lossy normalization; raw name is the only thing sent on the
  wire (tools/call)
- Sync: two-phase fetch/swap — fetch failure keeps the previous
  generation; a swap conflict rolls back the whole generation (never a
  partial set); duplicate raw names reject the tool list
- RFC: moved to implemented/ (status + skeleton rewritten per the
  format contract), naming design + tier-level test coverage recorded
- Tests: naming algorithm unit suite; keyless Streamable HTTP e2e
  against an in-process StreamableHTTPServerTransport (namespace
  discovery, execution, per-request auth headers); dotted-name
  normalization e2e via a new fixture tool
2026-07-13 23:46:49 +08:00
Tianyi Cui 20402b637c Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose
# Conflicts:
#	docs/config-catalog.md
#	docs/cordis-catalog/services.md
#	docs/rfc/proposed/feature/2026-07-08-interactive-side-sessions.md
#	docs/rfc/proposed/simplification/2026-06-20-unify-agent-and-session-id.md
#	examples/coding-agent/tests/keyless-smoke.e2e.ts
#	packages/ui/acp/src/index.ts
2026-07-13 23:44:44 +08:00
Tianyi Cui 661504b3ec chore: gate TypeScript duplication in CI 2026-07-13 23:42:54 +08:00
Tianyi Cui 56a1b23cc1 Merge remote-tracking branch 'origin/worktree-singleexe' into codex/pr253-fixes 2026-07-13 23:32:14 +08:00
Tianyi Cui cf89226510 test(pkg): snapshot advanced Python SDK executable flow
The existing assertion-only executable smoke proved selected outputs but could not detect drift across the integrated Python SDK, JSON-RPC notification stream, and persisted session shape.

Keep this separate from ACP snapshots because it must launch the actual platform-native packaged executable through the Python SDK. The deterministic model drives Cordis dynamic tool mounting, a Code Mode worker dispatch, direct spawn delegation, workflow-worker delegation, plugin disposal, and the parent/child persistence lineage.

Commit four portable goldens for the SDK result and three JSONL logs. Normalize timestamps, temporary paths, opaque session and agent identifiers, and bulky request headers while retaining ordering, tool names and arguments, header deltas, results, lineage, and final responses so all native build legs compare the same behavior.

Run the comparison in the label-gated executable build workflow and document the current coverage in the paired implemented RFC.
2026-07-13 23:31:26 +08:00
Tianyi Cui 148046b9c8 docs: rebalance prose cleanup and add trimming skill 2026-07-13 23:27:00 +08:00
Tianyi Cui d060c0dd4f refactor: prune dead session surfaces 2026-07-13 23:25:20 +08:00
Tianyi Cui 3fba88e873 Merge branch 'master' into codex/truncated-design 2026-07-13 23:24:55 +08:00
Yichen Jiang 4a4566c922 Merge branch 'master' into worktree-singleexe 2026-07-13 22:57:11 +08:00
Yichen Jiang b0d6bfb578 Merge branch 'master' into codex/rfc-subagent-background-tasks 2026-07-13 22:53:55 +08:00
Tianyi Cui 62eba83f4f Merge pull request #259 from deepseek-harness/codex/pr224-simplification-audit
docs: propose simplifications atop agent scopes
2026-07-13 22:45:11 +08:00
Tianyi Cui a4417f4924 docs: classify consumer-owned model effects as indirect 2026-07-13 22:40:19 +08:00
Tianyi Cui be67ca41ca docs: address review bot feedback 2026-07-13 22:29:23 +08:00
Tianyi Cui 24e6b90bff Merge remote-tracking branch 'origin/master' into codex/pr224-simplification-audit
# Conflicts:
#	docs/rfc/INDEX.md
2026-07-13 22:26:51 +08:00
Tianyi Cui d77f797d89 docs: replace model experience tables with sections 2026-07-13 22:26:33 +08:00
Tianyi Cui 328a15734a Merge pull request #247 from deepseek-harness/rfc/interactive-side-sessions
RFC: interactive side sessions and merge-back
2026-07-13 22:18:10 +08:00
Tianyi Cui 522a570cc7 Merge branch 'master' into rfc/interactive-side-sessions 2026-07-13 22:16:01 +08:00
Tianyi Cui b49c37f83a docs(i18n): align single-exe terminology
Add canonical Chinese bindings for build target, deploy root, peer
dependency, serving surface, wheel, wrapper, and VFS so future translations
have one source of truth. Apply the existing runtime, plugin, artifact, and
pipeline bindings throughout every Chinese counterpart touched by this PR.

Require the first Chinese use of peer dependency to retain the English term
so readers can map it back to the package-manager concept without
reintroducing mixed prose throughout the document.

Rewrite mixed-language prose where the English term is not an identifier,
while retaining package names, paths, flags, pkg, single-exe, and other
literal names exactly. Explain VFS on first use and keep technical constraints
readable without inventing compatibility terminology.

Describe single-executable worker support as implemented behavior, including
the filesystem-string entry contract and CommonJS worker artifact required by
the pkg loader, and remove the obsolete bundled-but-unsupported limitation.

Regenerate pairing fingerprints and the generated catalog reference so the
mechanical documentation gates validate the revised English and Chinese
pairs. This keeps the terminology table authoritative and prevents the two
languages from drifting as the runtime documentation evolves.
2026-07-13 22:09:41 +08:00
Tianyi Cui 35804737fa docs: address simplification RFC review 2026-07-13 21:55:38 +08:00
Tianyi Cui ebcfab1621 fix(pkg): support worker-backed tools in single exe
pkg stores application files in a virtual filesystem, and its
worker_threads hook discovers worker entry points only when they are passed
as filesystem strings. Convert the code-runtime entry with fileURLToPath()
and return the workflow built entry as a string while retaining its
source-mode data URL bootstrap.

Emit worker entry bundles as CommonJS .cjs files. pkg executes a VFS-backed
string-path worker through Module._compile, so an ESM-only entry can be
present in the executable yet still fail when launched. Keep the public hosts
ESM, adapt worker startup accordingly, and align exports, package file lists,
workspace constraints, documentation, and built-worker tests with the actual
artifact format.

Expand the custom-config executable smoke to load the Code Mode and workflow
plugins and script real run_code and zero-agent workflow calls. Require both
tools to return 42 from workers launched inside the pkg VFS, turning worker
support from an asset-presence assumption into an end-to-end runtime
contract.

Update the implemented RFC and verification gates to describe and exercise
the supported built-worker path. This adds no tool or JSON-RPC protocol shape;
it fixes how existing worker-backed capabilities are located and executed in
the single-file distribution.
2026-07-13 21:40:33 +08:00
Tianyi Cui d5e894edf4 fix(sdk): harden runtime lifecycle and JSON-RPC
Keep DeepSeekHarness.run() reusable, but make ownership of its lazy
runtime process explicit. Document the context-manager/close contract and
update every construction example to use a context manager so repeated runs
remain valid without encouraging leaked subprocesses.

Contain notification predicate failures at the subscription boundary. Remove
only the subscriber whose callback raised, deliver that exception through its
queue, and continue dispatching to healthy subscribers so arbitrary callback
code cannot terminate the shared reader thread or strand later requests.

Enforce one in-flight prompt per server session with an atomic activePrompt
guard. Route overlap through the existing -32603 handler-error response and
clear the guard in finally, preserving parallel prompts across sessions and
sequential reuse without changing JSON-RPC request or notification shapes.

Use StringDecoder for line framing so a UTF-8 code point split across Buffer
chunks is not corrupted. Add a queued-write flush barrier, and make memoized
shutdown await it before disposal and exit while retaining exactly-once
cleanup when shutdown calls race or flushing fails.

Cover callback isolation, same-session exclusion, cross-session concurrency,
split multibyte input, delayed writes, racing shutdown, and flush failure with
deterministic tests.
2026-07-13 21:40:12 +08:00
Tianyi Cui 646f3d2d0c docs: apply verbatim model experience guidance repo-wide 2026-07-13 21:33:23 +08:00