Add an explicit publication gate to DeepSeek Harness reusable releases so test and non-main invocations build and verify without logging in or pushing to GHCR or Docker Hub.
Reject unsafe workstation credentials, fix native ARM64 Java, and remove duplicate extensions, caches and temporary tool layers.
Pin OpenCode's baseline and Gemini's source/runtime inputs; refresh maintained browser and OS packages; fix Nginx and vendored ZIP vulnerabilities. Verify real login, default plugins, browser/CDP persistence and isolated OpenClaw sandbox operations.
Build each platform once and bind release publication to the tested config and manifest digests. Keep service-specific vulnerability gates and refresh DSH APT stages during PR verification.
Validation: all 13 PR verification jobs passed, including native amd64/arm64 workstations and DSH variants, plus both browser variants and OpenClaw on amd64. Publication jobs were skipped for PR verification.
Source builds installed every publishable DSH/vendor tarball as an npm root, including optional Codex and Claude Code subagents with large native payloads. Follow the packed CLI's dependencies, optional runtime dependencies and required peers instead: DSH 0.1.5-rc.2 installs 239 of 274 locally built packages. This preserves source patches and unpublished-source support, keeps both hooks packages, and lets users install subagent plugins through their Profile. Document those commands and update the source baseline to rc.2.
Uncompressed image-layer sizes from Trivy `Metadata.Size`, comparing the same DSH rc.2 release against the [previous native build](https://github.com/okxlin/release-factory/actions/runs/34573930207):
| Image | Before (MiB) | After (MiB) | Reduction |
| --- | ---: | ---: | ---: |
| Runtime amd64 | 1347.5 | 710.6 | 47.3% |
| Runtime arm64 | 1309.9 | 718.5 | 45.1% |
| Workstation amd64 | 2758.1 | 2121.2 | 23.1% |
| Workstation arm64 | 2679.6 | 2088.2 | 22.1% |
Validation:
- [Native amd64/arm64 CI](https://github.com/okxlin/release-factory/actions/runs/34659070544): both variants pass full authentication/passthrough, production dependency audit, Caddy and Trivy gates; Workstation compiler and actual sandbox enforcement tests pass on both architectures.
- [Component/regression CI](https://github.com/okxlin/release-factory/actions/runs/34659070784): includes five new dependency-selection tests, with real unpublished tarballs installed offline and lifecycle scripts verified disabled.
- Local amd64 Runtime: both subagent plugins install with the bundled pnpm, register as Profile bundles and boot the Web Profile. Codex CLI 0.153.4 executes; Claude Agent SDK imports and its Claude Code 2.1.263 payload executes. No model calls were made.
Security thresholds remain in place. All four scans report zero fixable HIGH/CRITICAL findings; existing unfixed findings remain. These are verification builds; no registry publication was triggered.
Centralize component inputs and scoped Trivy policies. Replace the Buildx
source patch with compiled package-graph evidence.
Verify native amd64/arm64 images and publish the tested artifacts without
a second build. Add an explicit APT refresh path that reuses source caches.
Resolve current proxy-core releases and compatible Go modules in CI, pass immutable source inputs to both image builds, and cover the resolver with regression/contract tests.
Replace the brittle release-specific patch with an idempotent semantic Dockerfile transformation. Preserve the upstream package-manager version, reuse an existing npm refresh, and fail closed when required runtime anchors disappear.
Resolve the highest published DSH version, add scheduled component update checks, rebalance the workstation toolset, and retain the existing runtime and workstation targets.
Remove Rust/Cargo, restore pinned npm, add checksum-pinned development tools, build actionlint with the pinned Go toolchain, and reduce the workstation image by about 505 MiB while preserving cross-platform node-pty assets.
Validated by component-pin checks, runtime/workstation builds and smoke tests, dependency audits, Caddy checks, and Trivy gates.
Build committed amd64 runtime and workstation inputs without publishing, then exercise the existing dependency, smoke, Caddy, toolchain, and Trivy gates. Pin the Docker-socket Trivy fallback image by digest across the DeepSeek Harness workflows.
Normalize AUTH_MODE=none requests at Caddy so browser-facing Host and Origin headers do not bypass DeepSeek Harness' loopback-only privileged API boundary. Add a regression smoke for settings and credentials APIs, invoke it for both image variants, and document the external-auth deployment requirement.
Fixes#56.
Persist the workstation HOME in one named volume, keep the workspace directly mounted, extend the bounded login lifetime options, retain the opt-in Docker socket contract, and document the arm64 QEMU Landlock probe exception.
Pin the audited Paseo runtime, expose it directly on container port 6767 for an operator-managed reverse proxy, and retain authentication, persistence, supply-chain, and runtime checks.
Refresh the pinned Node runtime images and apply a fail-closed upstream patch that upgrades npm and pnpm past the fixable critical vulnerabilities reported by the image gate.