dsh-sidecar is a Windows x64 wrapper for pinned DeepSeek Harness Web. Version 0.1.0 exposes a stable JSON protocol while keeping Node, DSH output, credentials, sessions, and implementation details private.
The launcher, protocol, private adapter, runtime staging, test hosts, supply-chain pins, corresponding-source tooling, and fail-closed release pipeline are implemented. On 2026-08-23, aggregate verification and the full race suite passed under exact go1.26.7 linux/amd64; Windows x64 cross-compilation/PE inspection and PowerShell AST parsing also passed on Linux. Those results are not native Windows evidence. The current revision is not yet a published release: protected Windows 10/11 client evidence, the final runtime audit, Authenticode signing, formal ZIP creation, and publication remain NOT_RUN or BLOCKED.
dsh-sidecar version --json
dsh-sidecar doctor --json --data-dir <absolute> --workspace <existing-absolute>
dsh-sidecar serve --data-dir <absolute> --workspace <existing-absolute> --listen 127.0.0.1:0 [--parent-pid PID] [--open-browser] [--env-policy inherit] [--pass-env NAME ...]
Unknown commands/options and positional arguments exit 2. serve writes JSON Lines to stdout and accepts only protocol-1 shutdown messages on stdin. DSH never inherits protocol stdout.
make verify
make build-windows-launcherWindows verification: pwsh -NoProfile -File .\build\windows.ps1 -Mode Verify.
make verify is the first aggregate verification command after any source change. Release evidence uses the exact pinned Go 1.26.7 toolchain. The Windows command must run on 64-bit Windows; cross-compilation and PowerShell AST parsing on Linux are useful static evidence but are not substitutes for executing the scripts or testing the launcher on native Windows.
The default-branch pipeline exposes an unsigned, non-release candidate through a manual job:
- Open Build > Pipelines in GitLab and select the pipeline for the desired commit.
- Start the manual
windows_hosted_candidatejob. - When it succeeds, open the job and download its artifacts. The archive contains:
dsh-sidecar-0.1.0-dsh-0.1.1-rc.2-windows-x64-test-staging.zipdsh-sidecar-0.1.0-dsh-0.1.1-rc.2-windows-x64-test-staging.zip.sha256
The job runs on hosted Windows Server 2022. Its result is smoke coverage only and is never accepted as Windows 10/11 release evidence. The ZIP name ends in -test-staging.zip, its CycloneDX metadata records TEST_STAGING_NOT_A_RELEASE, it is unsigned, and it cannot be renamed, signed in place, or promoted as the reserved formal artifact.
From a checkout of the same commit, verify the downloaded candidate on Windows:
$zip = (Resolve-Path .\dsh-sidecar-0.1.0-dsh-0.1.1-rc.2-windows-x64-test-staging.zip).Path
$expected = ((Get-Content "$zip.sha256" -Raw).Trim() -split '\s+')[0].ToLowerInvariant()
$actual = (Get-FileHash -LiteralPath $zip -Algorithm SHA256).Hash.ToLowerInvariant()
if ($actual -cne $expected) { throw 'candidate SHA-256 mismatch' }
$extract = Join-Path $env:TEMP ('dsh-sidecar-candidate-' + [guid]::NewGuid().ToString('N'))
$data = Join-Path $env:TEMP ('dsh-sidecar-data-' + [guid]::NewGuid().ToString('N'))
$workspace = Join-Path $env:TEMP ('dsh-sidecar-workspace-' + [guid]::NewGuid().ToString('N'))
New-Item -ItemType Directory -Force $extract, $workspace | Out-Null
Expand-Archive -LiteralPath $zip -DestinationPath $extract
$exe = Join-Path $extract 'dsh-sidecar.exe'
& $exe version --json
& $exe doctor --json --data-dir $data --workspace $workspace
pwsh -NoProfile -File .\examples\host.ps1 -Exe $exe -DataDir $data -Workspace $workspaceThe repository-native Windows suite is still required separately:
pwsh -NoProfile -File .\build\windows.ps1 -Mode VerifyThe protected v0.1.0 pipeline reserves these immutable package files:
dsh-sidecar-0.1.0-dsh-0.1.1-rc.2-windows-x64.zipdsh-sidecar-0.1.0-dsh-0.1.1-rc.2-windows-x64.zip.sha256dsh-sidecar-0.1.0-dsh-0.1.1-rc.2-windows-x64.zip.signing.jsondsh-sidecar-0.1.0-dsh-0.1.1-rc.2-windows-x64-corresponding-source.zipdsh-sidecar-0.1.0-dsh-0.1.1-rc.2-windows-x64-corresponding-source.zip.sha256
The formal binary ZIP is a separate output of the protected sign_package job, not a promoted test-staging ZIP. The repository deliberately does not create it until every release gate passes, including release-owner review of every locked native CPE identity. A successful manual publish job uploads all five files to the GitLab Generic Package Registry under dsh-sidecar/0.1.0; overwrite is forbidden. No formal ZIP or publication is claimed for the current revision.
See protocol, architecture, and implementation status.
Licensed under the MIT License.