v0.35.0
[0.35.0] — 2026-08-14
Added
triss-dsh-provider-bundle, a standalone npm package (workspace
packages/dsh-provider-bundle) that activates the DeepSeek Harness
llm-pi-aiadapter foropencode,opencode-go, andzairoutes in a
dshprofile without changing the Harness default provider or model.- Release gates publish and registry-verify both packages from one
coordinated tag (scripts/publish-gate.js, updatedpublish.yml), and a
dedicated CI bundle matrix covers Node22.19.0,24, and26plus
pnpm-missing diagnostics.
Changed
test/coder-init-credential-gate-blocker.test.jspins
TRISS_PROJECT_ROOTto the temp HOME so credential-gate isolation no
longer depends on cwd lookups; no runtime code changed in this release
train (an earlier iteration of this PR touchedsrc/safety.jsand was
reverted for expanding the sandbox boundary).- The publish workflow plans publication from live registry state for BOTH
packages (plan-publish), skips a publish step when the registry already
holds the byte-identical tarball, and registry-verifies both packages again
after publication — a partial-failure rerun is now safe, including after
mainhas moved past the tag (fresh releases require the exact
origin/maintip; retries only require the tag to remain an ancestor,
viapublish-gate.js authorize-tag). - The tag workflow separates privileges: an unprivileged
release-gates
job runs every repository-script verification (versions, tarball
inspection, registry planning, tag authorization) and only a minimal
npm-publishjob behind thenpm-productionenvironment holds
id-token: write. The publish job repacks with--ignore-scriptsand
byte-compares both tarballs against the gates artifact before publishing
the same bytes with--provenance. - CI gains a required
dsh plugin lifecyclejob (real@deepseek-ai/dsh
0.1.0-rc.6 + pnpm 9): add → real in-place update (add v2 over v1, no
remove) → remove → reinstall → npx-style anchor, asserting the dumped
llm-pi-ai.config.providersobject (exact provider set andapiKeyEnv
mapping) plus the profile manifest at every phase. The job lives in a
reusablebundle-checksworkflow included by both PR CI and the tag
publish flow, and a post-publishregistry-acceptancejob installs the
published package from the registry on Node22.19.0and24, exercises
add/update/remove/reinstall, and records the compatibility tuple with
registry integrity and provenance evidence. npm testnow runsscripts/check-lockfile-gate.cjs, which asserts the
workspace name/version/engines against the live manifests plus the
pinned@deepseek-ai/dsh-app-boot.
Unchanged
- Triss runtime code, CLI, MCP schemas, and the root
triss-coworker
published-file allowlist; the root tarball contains no companion manifest
or patch. (Correction, review finding: the follow-up fix commit DID touch
src/safety.js—projectRoot()was extended to.codex/worktrees,
widening the restricted-mode sandbox boundary to sibling worktrees. That
change is REVERTED in this corrective release; only the test-isolation
env pin from that commit remains.)
Artifact integrity (0.35.0)
triss-dsh-provider-bundle-0.35.0.tgz— sha256
25d9d80417c7955ac29d933cdb9c3c5e412e0a6a3ebc2f73de852985ce2a4900,
integritysha512-7NkUhHg+RruXEAJhMXr1nWlFv7g7N2iAh0z416oTS7yK/PPi4GnE8h8LqJOzFrGr86BUPHMhVmYinNe8cF6YZQ==
(computed with the pinned release npm 11.6.2 via
scripts/publish-gate.js pack-inspect;npm packoutput is
byte-deterministic — tar entries carry the fixed npm epoch mtime — so a
test pins this value against every future pack of the same content).- Root
triss-coworker-0.35.0.tgzsha256 is reproducible via
npm packat tagv0.35.0(the root tarball shipsCHANGELOG.md, so its
hash cannot be recorded inside this file); registry verification compares
the packed artifact against the published tarball byte-for-byte
(scripts/publish-gate.js pack-inspect).
Full acceptance evidence: compatibility tuple, registry integrity, provenance attestations, and the live provider-route smokes are recorded in docs/deepseek-harness-provider-bundle-plan.md and in the registry-acceptance-node-* workflow artifacts.