cb69ca80d68be66ead5e1ea0de44ec6f89a35775
The lane-split merge moved the Run gates step to `shell: bash`, which broke it twice over. First, GHA's bash shell runs with -e, so a failing gate aborted the step before the ::warning::/exit 0 lines — the lane went red X instead of the intended yellow warning. Second, and worse, Git Bash as the PARENT of the gate run leaks MSYS environment into the suite itself, producing 8 real test failures the pwsh-launched runs (and the DSec VM runs) never saw: - bash exports PWD; the MSYS runtime rewrites it to Windows form for native children, dsh-bash-local's adaptEnv passes it through, and the executor's MSYS bash adopts it — `pwd` prints `D:/a/...` where the tests (and the executor's MSYS dialect) expect `/d/a/...` (7 tests). - cygwin enables SeBackupPrivilege on the runner's admin token; children inherit the enabled state, and libuv's FILE_FLAG_BACKUP_SEMANTICS read opens then pierce the dwShareMode=0 lock the jsonl EBUSY test holds — loadLive resolves instead of rejecting (1 test). Evidence: run 28918325498 (pwsh step, pre-merge) failed only the two hooks dispose tests since fixed by f8fd8c00; run 28921741006 (bash step) fixed those and failed exactly the 8 above, with zero relevant source diff between them. Fix: run the wrapper in pwsh — a native command's failure doesn't abort pwsh, so $LASTEXITCODE capture + ::warning:: + exit 0 works without an errexit dance, and the gates start from a native Windows shell as they do everywhere else Windows CI has been validated. Docs: the windows-support RFC drops the stale continue-on-error wording (replaced by the warning wrapper) and records the launch-environment limitation — native shell required today; making an MSYS parent a supported launch environment (PWD scrub in adaptEnv, privilege-explicit tests) is a future improvement direction.
DeepSeek Harness
English | 中文
The DeepSeek Harness SDK is a plugin-based SDK for building agent harnesses.
Development
This monorepo is built on the Cordis framework (vendored as source under vendor/), microkernel-style: everything is a plugin.
pnpm install
pnpm run test # vitest
pnpm run demo:repl # REPL agent demo (needs DEEPSEEK_API_KEY)
pnpm run demo:acp # ACP server agent demo (needs DEEPSEEK_API_KEY)
For humans, start with the development guide for local setup, hooks, environment variables, and quality gates, then read the architecture design and documentation graph index before package work. Local context lives in packages/ and vendor/.
For agents, follow AGENTS.md.
Languages
TypeScript
96.9%
CSS
1.6%
JavaScript
0.7%
Python
0.7%