Commit Graph
100 Commits
Author SHA1 Message Date
Tianyi Cui ff5119db35 Merge pull request #832 from deepseek-harness/worktree/fix-test-mock-server-bin
fix(llm): stop exposing the mock server binary
2026-07-29 01:23:55 +08:00
Tianyi Cui 9161d9bf32 Merge branch 'master' into worktree/fix-test-mock-server-bin 2026-07-29 01:08:07 +08:00
Tianyi Cui 4a9278e205 Merge branch 'master' into feature/subagent-policy-inheritance 2026-07-29 00:55:32 +08:00
Tianyi Cui a03989aa36 Merge pull request #860 from deepseek-harness/worktree/pnpm-setup-runner-isolation-20260729
fix(ci): isolate pnpm setup per runner
2026-07-29 00:54:06 +08:00
Tianyi Cui 8f867cc709 Merge branch 'master' into feature/subagent-policy-inheritance 2026-07-29 00:49:35 +08:00
Tianyi Cui f75ee1ddad Merge branch 'master' into worktree/pnpm-setup-runner-isolation-20260729 2026-07-29 00:46:34 +08:00
Tianyi Cui c13d1a4285 fix(ci): isolate pnpm setup per runner 2026-07-29 00:45:52 +08:00
Tianyi Cui 342dff2581 Merge pull request #843 from deepseek-harness/worktree/normalize-snapshot-tmpdir
test(snapshot): normalize temporary workspace paths
2026-07-29 00:41:59 +08:00
Tianyi Cui be23e5b2ac Merge latest master into subagent policy inheritance 2026-07-29 00:40:25 +08:00
Tianyi Cui 739647afc0 fix(subagent): publish inherited policy facts to telemetry
Inherited sandbox and approval events were part of the constructor seed. Session.firstLiveSeq classifies every constructor event as replayed history, so telemetry adoption skipped these child-only creation facts even though no parent or prior process had exported them.

Capture the parent overrides at the same synchronous delegation boundary, but append the events during the child factory setup while the session is still unpublished. They remain ordered after fork history, persist with the first child batch, and retain last-event-wins behavior while landing on the live side of the telemetry boundary. This uses the existing setup and session append contracts instead of adding another seed category or telemetry special case.

Add regression coverage for exporting an unpublished suffix without re-exporting constructor history, assert the spawn and fork firstLiveSeq boundaries, and restore the public seed documentation to replay/fork history only.
2026-07-29 00:39:56 +08:00
Tianyi Cui ea62a61307 Merge branch 'master' into worktree/normalize-snapshot-tmpdir 2026-07-29 00:35:42 +08:00
Tianyi Cui 2a6e6edac4 Merge pull request #859 from deepseek-harness/worktree/fix-snapshot-cwd-boundaries
fix(snapshot): preserve cwd normalization boundaries
2026-07-29 00:35:26 +08:00
Tianyi Cui d533e225ad Merge pull request #852 from deepseek-harness/worktree-fe-docs
Client test runtime: outward service interfaces + single-slot DOM snapshots
2026-07-29 00:29:50 +08:00
Tianyi Cui 9365650371 fix(snapshot): preserve cwd boundary normalization 2026-07-29 00:24:02 +08:00
Tianyi Cui 7f11b721e9 Merge branch 'master' into worktree/normalize-snapshot-tmpdir 2026-07-29 00:03:17 +08:00
Tianyi Cui 63c9db1759 test(snapshot): preserve cwd punctuation 2026-07-29 00:02:38 +08:00
Tianyi Cui 48518ea850 Merge branch 'master' into worktree-fe-docs 2026-07-29 00:00:38 +08:00
Tianyi Cui ce63309515 Merge pull request #854 from deepseek-harness/worktree-devfast
feat(cli): launch source with native TypeScript
2026-07-29 00:00:30 +08:00
Tianyi Cui a65e13cd25 Merge branch 'master' into worktree/normalize-snapshot-tmpdir 2026-07-28 23:47:22 +08:00
Tianyi Cui c3d9f132e8 test(snapshot): canonicalize generated cwd tokens 2026-07-28 23:46:01 +08:00
Tianyi Cui 064205b54d Merge pull request #845 from deepseek-harness/worktree/pr623-policy-inheritance-simplify-20260728
subagent: simplify policy inheritance to seeded events
2026-07-28 23:44:01 +08:00
Tianyi Cui eb38a365dc Merge pull request #791 from deepseek-harness/worktree-projcache
feat: persisted projection cache — durable checkpoints, tail reads, and cold listing columns
2026-07-28 22:55:30 +08:00
Tianyi Cui cc6e5c7173 docs(session): catalog creation-time seed facts
The simplified inheritance path uses Session creation seeds for policy events, and the public CreateSessionOptions JSDoc now names that supported role. The type-equivalent persistence catalog still described seeds as replay/fork-only, so doc-sync correctly rejected the mismatch.

Align the explanatory paragraph and exact type-equivalent block in both languages, then re-record the bilingual pair. This keeps the public catalog from understating the constructor seam that makes the simplification possible.
2026-07-28 21:54:15 +08:00
Tianyi Cui 6d389d261e docs(policy): describe constructor-seeded inheritance
The implementation no longer stores inherited policy in SessionHeader or resolves a second baseline chain, but the feature, sandbox, and approval notes still described that machinery. Keeping those claims would make the smaller design look incomplete and invite reintroduction of the generic persistence surface.

Rewrite the owning feature note around the actual delegation snapshot: source-tagged policy events follow the optional fork prefix, ordinary last-event-wins folds establish precedence, and persistence captures the constructor seed with the first materialized batch. Condense the alternatives and consequences to the decisions and coverage that remain load-bearing.

Align the sandbox and approval notes plus the subagent-inprocess consumer README with that contract. Update the four Chinese counterparts minimally and re-record each pairing hash so both languages describe the same shipped mechanism.
2026-07-28 21:51:13 +08:00
Tianyi Cui 4cf7603be4 test(snapshot): enforce portable fixture invariants 2026-07-28 21:45:01 +08:00
Tianyi Cui db0b43bf86 persistence: advance schemas after removing policy columns
The simplification deletes sandbox_mode and approval_policy from the parent branch's SQLite layouts. Restoring master's older version numbers would violate the monotonic schema contract and could make a database created by the parent look current under a different layout.

Advance durable session persistence from schema 11 to 12 and the disposable session-query index from 6 to 7. The former rejects the incompatible parent layout; the latter resets its derived tables through the existing version-mismatch path.

JSONL shares SESSION_FORMAT_VERSION 0 during pre-release, so explicitly reject the retired sandboxMode and approvalPolicy header fields instead of silently dropping the only inherited policy facts from a parent-produced child log. New logs carry those facts as ordinary seeded events.

Focused JSONL, SQLite persistence, and SQLite query suites cover all affected source lines and branches.
2026-07-28 21:40:51 +08:00
Tianyi Cui 39ff4866ac Merge retargeted parent into policy inheritance simplification 2026-07-28 21:35:23 +08:00
Tianyi Cui 5d147735ac Merge latest master into subagent policy inheritance 2026-07-28 21:33:40 +08:00
Tianyi Cui 84d0d92cfb test(snapshot): normalize temporary workspace paths 2026-07-28 21:32:49 +08:00
Tianyi Cui a70f1a2b7a test(acp): remove vacuous policy inheritance scenario
The ACP fixture configured read-only as the deployment default for both parent and child. Its delegated write therefore remained denied even with inheritance disabled, so the scenario could not fail on the regression it claimed to protect.

Delete the overlay, scenario registration, sessions, prompt, and 473-line tool-schema sidecar. The Loader-booted headless snapshot remains the real composition guard: only its parent carries read-only while the deployment default is workspace-write, so removing inheritance makes the child write reach disk and fails the test.

Keeping one discriminating snapshot avoids 662 lines of duplicated fixture data and makes the review evidence correspond to the actual security boundary.
2026-07-28 21:32:10 +08:00
Tianyi Cui cfceb8452b subagent: seed inherited policy events at creation
The parent implementation introduced sandboxMode and approvalPolicy as generic SessionHeader fields, then propagated those fields through both persistence backends, session-query indexes, collision checks, policy-specific seed-boundary folds, catalogs, and a broad test matrix. That storage plane is unnecessary: Session already accepts a validated constructor seed, and persistence captures that seed when the session is announced before committing its first batch.

Capture each parent override synchronously at delegation, append source-tagged sandbox/mode and approval/policy records after the optional fork prefix, and create the child with that combined seed. Keeping header.seedLength at the original fork-prefix length preserves lineage while ordinary last-event-wins folds make the inherited records outrank stale parent history and remain subordinate to later child switches. Unswitched parents still stamp nothing, so children continue to follow deployment defaults.

Remove the generic header fields and every persistence/query/schema branch built around them. Collapse the inheritance suite from ten leaking scenarios to four owned-context cases covering real filesystem confinement, stale fork precedence, delegation-time capture, and the no-override path. The assembled headless snapshot now asserts the persisted inheritance event directly.

This keeps the security behavior while restoring policy ownership to the existing event log and deleting the speculative durability machinery that the original tests did not exercise.
2026-07-28 21:31:17 +08:00
Tianyi Cui 5335c03837 Merge pull request #824 from deepseek-harness/worktree/dedupe-snapshot-contracts
test(snapshot): share identical header sidecars
2026-07-28 21:13:01 +08:00
Tianyi Cui afa38c4b2f Merge latest master into subagent policy inheritance
Retarget the feature branch to the current master tip without rewriting its existing review history. Keeping this as a dedicated merge checkpoint makes the later simplification diff attributable to the stacked child rather than mixing base movement with design changes.

Resolve the identified-message API drift in the feature tests by constructing complete user messages, reading the nested tool-result message shape, and adapting the prompt-submit listener signature. Preserve both sides of the user-approval conflict: master’s createUserMessage wrapper and the feature’s inherited-policy attribution.

Regenerate the Cordis and persistence catalogs, re-record the session README pair, and refresh the affected ACP/headless fixtures so derived artifacts describe the merged source rather than either parent in isolation.

Validated with the focused policy/session/persistence/query suites (430 tests), focused ACP/headless snapshots (3 tests), build, doc-sync (25 gates), lint, hygiene, and git diff checks.
2026-07-28 21:11:20 +08:00
Tianyi Cui 0304ba1457 Merge branch 'master' into worktree/dedupe-snapshot-contracts 2026-07-28 21:08:38 +08:00
Tianyi Cui 466d13ed9c Merge pull request #806 from deepseek-harness/xtr/identified-immutable-messages 2026-07-28 19:39:56 +08:00
Tianyi Cui 291676f704 Merge branch 'master' into xtr/identified-immutable-messages 2026-07-28 18:55:50 +08:00
Tianyi Cui 6d107252aa Merge pull request #826 from deepseek-harness/worktree/python-sdk-max-output-tokens 2026-07-28 18:23:55 +08:00
Tianyi Cui 9c78a7df33 test(snapshot): share identical header sidecars 2026-07-28 17:26:03 +08:00
Tianyi Cui f63d2deecf Merge pull request #818 from deepseek-harness/fix/wine-workspace-snapshot-flake
fix(ci): retry the Wine lane's pnpm install on the hoisted-linker rename race
2026-07-28 16:36:42 +08:00
Tianyi Cui 6227b55e4a fix(ci): retry the Wine lane's pnpm install on the hoisted-linker rename race
The wine blocking job flaked with ERR_PNPM_ENOENT rename '_tmp_*' ->
'<pkg>/node_modules/esbuild' during workspace snapshot + pnpm install
(runs 30334004123 and 30340039598), and a plain rerun passed. Root
cause is upstream pnpm/pnpm#12880: the hoisted linker's parallel
linkers race to rename their _tmp_* staging directory onto the same
nested package path, and the loser exits although an identical
re-install succeeds. Only this lane uses nodeLinker: hoisted, so only
this lane hits it.

snapshot_and_install now retries exactly that log signature up to two
times, wiping the scratch tree's node_modules first (the snapshot
itself contains none, so the wipe restores the pre-install state) and
logging each retry with the upstream issue. Any other install failure
still fails on the first attempt, and a race that survives the final
attempt still fails loud with the install log tail.
2026-07-28 16:16:10 +08:00
Tianyi Cui 15ed8e5d55 Merge pull request #761 from deepseek-harness/worktree/replayable-gate-plans-20260727
feat(dev-infra): validate gate graphs and order artifact consumers
2026-07-28 15:51:14 +08:00
Tianyi Cui d70cb63833 Merge remote-tracking branch 'origin/master' into worktree/replayable-gate-plans-20260727 2026-07-28 15:41:26 +08:00
Tianyi Cui 108374772f Merge branch 'master' into xtr/remove-append-out-of-band 2026-07-28 15:36:20 +08:00
Tianyi Cui 463ab62a6a Merge pull request #816 from deepseek-harness/worktree/sandbox-master-only-20260728
ci: run sandbox matrix on master only
2026-07-28 15:36:12 +08:00
Tianyi Cui 2a5137f0e9 Merge branch 'master' into worktree/sandbox-master-only-20260728 2026-07-28 15:35:36 +08:00
Tianyi Cui 09a65125ba Merge remote-tracking branch 'origin/master' into worktree/replayable-gate-plans-20260727 2026-07-28 15:34:30 +08:00
Tianyi Cui cbbd888cab simplify gate graph validation 2026-07-28 15:33:20 +08:00
Tianyi Cui 0a09924c00 Merge remote-tracking branch 'origin/master' into worktree/sandbox-master-only-20260728 2026-07-28 15:28:53 +08:00
Tianyi Cui 032aa16018 Merge pull request #811 from deepseek-harness/worktree/ci-flake-followup-20260728
fix(ci): stabilize readiness timing boundaries
2026-07-28 15:26:20 +08:00
Tianyi Cui f85736e814 ci: run sandbox matrix on master only 2026-07-28 15:26:00 +08:00
Tianyi Cui 16958cdbe7 fix(pty): observe readiness before exact probe threshold 2026-07-28 15:22:05 +08:00
Tianyi Cui 6a763e4b3c Merge branch 'master' into worktree/ci-flake-followup-20260728 2026-07-28 14:58:47 +08:00
Tianyi Cui eeaf4c7220 fix(ci): stabilize readiness timing boundaries 2026-07-28 14:49:59 +08:00
Tianyi Cui 4c6fb8b957 Merge pull request #794 from deepseek-harness/dependabot/github_actions/actions/upload-artifact-7
chore(deps): bump actions/upload-artifact from 6 to 7
2026-07-28 12:40:15 +08:00
Tianyi Cui f89fe5c259 Merge branch 'master' into dependabot/github_actions/actions/upload-artifact-7 2026-07-28 12:35:34 +08:00
Tianyi Cui 4ea537210b Merge pull request #777 from deepseek-harness/dependabot/npm_and_yarn/native/landlock-run/types/node-26.0.1
chore(deps-dev): bump @types/node from 24.13.2 to 26.0.1 in /native/landlock-run
2026-07-28 12:27:39 +08:00
Tianyi Cui 18653c029d Merge branch 'master' into dependabot/npm_and_yarn/native/landlock-run/types/node-26.0.1 2026-07-28 12:23:28 +08:00
Tianyi Cui 589e421220 Merge pull request #776 from deepseek-harness/dependabot/npm_and_yarn/native/landlock-run/typescript-6.0.3
chore(deps-dev): bump typescript from 5.9.3 to 6.0.3 in /native/landlock-run
2026-07-28 12:15:39 +08:00
Tianyi Cui 5f6ba69e2b Merge branch 'master' into dependabot/npm_and_yarn/native/landlock-run/typescript-6.0.3 2026-07-28 12:11:50 +08:00
Tianyi Cui 10d8fc1dce Merge pull request #775 from deepseek-harness/dependabot/github_actions/actions/deploy-pages-5
chore(deps): bump actions/deploy-pages from 4 to 5
2026-07-28 12:11:27 +08:00
Tianyi Cui fb3b35d70b Merge branch 'master' into dependabot/github_actions/actions/deploy-pages-5 2026-07-28 12:06:30 +08:00
Tianyi Cui 1ffaeedd3b Merge pull request #770 from deepseek-harness/dependabot/github_actions/actions/configure-pages-6
chore(deps): bump actions/configure-pages from 5 to 6
2026-07-28 12:01:42 +08:00
Tianyi Cui b27a542149 Merge branch 'master' into dependabot/github_actions/actions/configure-pages-6 2026-07-28 11:56:00 +08:00
Tianyi Cui bbeaa9fb2e Merge pull request #790 from deepseek-harness/worktree/sdk-public-api
fix(sdk): narrow TypeScript client interface
2026-07-28 11:09:59 +08:00
Tianyi Cui cee7462994 Merge remote-tracking branch 'origin/master' into worktree/sdk-public-api 2026-07-28 11:06:00 +08:00
Tianyi Cui 3f97b88ff9 Merge pull request #787 from deepseek-harness/worktree/change-scope-trim-20260728
refactor(dev-infra): narrow change-scope contract
2026-07-28 11:03:13 +08:00
Tianyi Cui 4bba60f726 Merge remote-tracking branch 'origin/master' into worktree/sdk-public-api 2026-07-28 11:03:06 +08:00
Tianyi Cui e98c180062 Merge branch 'master' into worktree/change-scope-trim-20260728 2026-07-28 10:59:00 +08:00
Tianyi Cui b7abd1bb8b Merge branch 'master' into dependabot/github_actions/actions/configure-pages-6 2026-07-28 10:58:36 +08:00
Tianyi Cui 7efd0a1192 Merge branch 'master' into dependabot/npm_and_yarn/native/landlock-run/types/node-26.0.1 2026-07-28 03:03:00 +08:00
Tianyi Cui 283fcd6605 Merge branch 'master' into dependabot/npm_and_yarn/native/landlock-run/typescript-6.0.3 2026-07-28 02:58:20 +08:00
Tianyi Cui c4c142c855 Merge branch 'master' into dependabot/github_actions/actions/deploy-pages-5 2026-07-28 02:51:31 +08:00
Tianyi Cui c49c0ba497 Merge pull request #773 from deepseek-harness/dependabot/uv/python/sdk/hatchling-gte-1.30.1
chore(deps-dev): update hatchling requirement from >=1.24.0 to >=1.30.1 in /python/sdk
2026-07-28 02:47:37 +08:00
Tianyi Cui 9803b1c62c Merge branch 'master' into dependabot/uv/python/sdk/hatchling-gte-1.30.1 2026-07-28 02:41:56 +08:00
Tianyi Cui a2f6f9db39 Merge pull request #772 from deepseek-harness/dependabot/github_actions/actions/setup-python-6.3.0
chore(deps): bump actions/setup-python from 6 to 6.3.0
2026-07-28 02:41:21 +08:00
Tianyi Cui d597cbf87a Merge branch 'master' into dependabot/github_actions/actions/setup-python-6.3.0 2026-07-28 02:36:09 +08:00
Tianyi Cui 67109cac49 Merge pull request #771 from deepseek-harness/dependabot/github_actions/actions/upload-pages-artifact-5
chore(deps): bump actions/upload-pages-artifact from 4 to 5
2026-07-28 02:35:33 +08:00
Tianyi Cui 8067ef8bd7 Merge branch 'master' into dependabot/github_actions/actions/upload-pages-artifact-5 2026-07-28 02:28:25 +08:00
Tianyi Cui 69c60d6ad6 Merge branch 'master' into dependabot/github_actions/actions/configure-pages-6 2026-07-28 02:25:00 +08:00
Tianyi Cui 6c6dd37d4f Merge pull request #741 from deepseek-harness/codex/ignore-worktree-directories
chore: ignore worktree directories
2026-07-28 02:15:51 +08:00
Tianyi Cui 629f1c638b Merge branch 'master' into worktree/sdk-public-api 2026-07-28 02:11:10 +08:00
Tianyi Cui 4da9876b30 Merge current master into codex/ignore-worktree-directories 2026-07-28 02:11:08 +08:00
Tianyi Cui 547c0ab55e Merge pull request #728 from deepseek-harness/codex/fix-acp-snapshot-refresh-volatiles
fix(snapshot): stabilize refresh volatiles
2026-07-28 01:57:40 +08:00
Tianyi Cui 7503fa896f fix(snapshot): pass refresh context in SDK snapshots 2026-07-28 01:43:40 +08:00
Tianyi Cui 3b5be72086 fix(sdk): narrow TypeScript client interface 2026-07-28 01:41:32 +08:00
Tianyi Cui 1a623946b9 Merge current master with codex/fix-acp-snapshot-refresh-volatiles 2026-07-28 01:36:32 +08:00
Tianyi Cui a1401349d8 Merge remote-tracking branch 'origin/master' into worktree/change-scope-trim-20260728 2026-07-28 01:26:55 +08:00
Tianyi Cui fed1b23eac Merge pull request #726 from deepseek-harness/fix/pty-handoff-grace
fix(pty-local): make the foreground-handoff grace a config field
2026-07-28 01:26:27 +08:00
Tianyi Cui f6a850b107 Merge remote-tracking branch 'origin/master' into worktree/change-scope-trim-20260728 2026-07-28 01:21:25 +08:00
Tianyi Cui 9ebd0075e9 Merge master into fix/pty-handoff-grace 2026-07-28 01:19:58 +08:00
Tianyi Cui 5904543fb3 Merge pull request #720 from deepseek-harness/fix/worker-timer-clamp
fix(code-runtime): reject a maxWallMs above Node's maximum timer delay
2026-07-28 01:16:35 +08:00
Tianyi Cui 2b539346c8 Merge remote-tracking branch 'origin/master' into worktree/change-scope-trim-20260728 2026-07-28 01:12:16 +08:00
Tianyi Cui 9aed9b76d7 Merge pull request #784 from deepseek-harness/archive-agent-notes-sweep-2
docs(notes): aggressive archive sweep of low-value decision records
2026-07-28 01:08:42 +08:00
Tianyi Cui 9cd87f91cc Merge origin/master into worktree/change-scope-trim-20260728 2026-07-28 01:03:15 +08:00
Tianyi Cui 2a562236d0 Merge remote-tracking branch 'origin/master' into worktree/pr784-merge-20260728 2026-07-28 01:02:49 +08:00
Tianyi Cui a5ed3a5cfc refactor(dev-infra): narrow change scope report 2026-07-28 01:02:43 +08:00
Tianyi Cui 00b6aff3fc docs(notes): seal corrected archive inputs 2026-07-28 00:58:33 +08:00
Tianyi Cui 98e953596d docs(notes): normalize archive inputs before sealing 2026-07-28 00:56:48 +08:00
Tianyi Cui b85c453e22 Merge pull request #786 from deepseek-harness/worktree/dependabot-daily-4am-shanghai-20260728
chore: run Dependabot every day at 04:00 Shanghai time
2026-07-28 00:55:54 +08:00
Tianyi Cui c0b9734494 Merge remote-tracking branch 'origin/master' into worktree/pr784-merge-20260728 2026-07-28 00:52:23 +08:00