Skip to content
This repository was archived by the owner on Sep 29, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

`dsh-auto-mode` adds an `Sandbox Auto` permission preset, a Host policy on the official `ctx.tools` pipeline, and a small Web UI decorator. It does not provide its own executor or sandbox. Calls outside a Session whose durable preset is `sandbox-auto` retain the official Read Only, Workspace Write, or Full access behavior.

Candidate `0.2.0-alpha.1` targets Harness `0.1.7-rc.2` at master `21638c56315ae6a2b552d6091945d3144c9af32e`. The historical host declarations in [compatibility.json](./compatibility.json) remain, but are not all revalidated in this round. The anticipated official desktop 0.2.0 release requires final-product acceptance; current evidence and pending work are recorded in [desktop preparation](./docs/desktop-020-preparation.md). The relevant upstream seams are:
Stable plugin `0.2.0` targets official Harness `0.2.0-rc.2` at commit `639ed015397290b3745d163aafe02ffee4aa3f84`, while retaining the exact historical hosts in [compatibility.json](./compatibility.json). Release evidence is recorded under `validation/0.2.0`; the source comparison is summarized in [the adaptation record](./docs/harness-020-rc2.md). The relevant upstream seams are:

- `@deepseek-ai/dsh-permission-presets` for durable preset selection;
- `@deepseek-ai/dsh-sandbox-policy` and the sandboxed shell/filesystem providers for per-call file authority;
Expand Down
39 changes: 17 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,47 +9,42 @@
<p align="center">
<a href="https://www.npmjs.com/package/@nanmicoder/dsh-auto-mode"><img src="https://img.shields.io/npm/v/@nanmicoder/dsh-auto-mode.svg" alt="npm version"></a>
<a href="./LICENSE"><img src="https://img.shields.io/npm/l/@nanmicoder/dsh-auto-mode.svg" alt="MIT license"></a>
<img src="https://img.shields.io/badge/DeepSeek%20Harness-0.1.7--rc.2%20candidate-202724" alt="See installation instructions for exact host compatibility">
<img src="https://img.shields.io/badge/DeepSeek%20Harness-0.2.0--rc.2-202724" alt="See installation instructions for exact host compatibility">
</p>

## Sandbox Auto desktop preparation
## Sandbox Auto

`dsh-auto-mode` keeps routine work inside Harness's `workspace-write` sandbox and reviews semantic risks or exact one-shot requests for wider access. The plugin's **Sandbox Auto** mode uses the independent key `sandbox-auto`; it does not replace the official, unsandboxed **Auto review** mode.

> [!IMPORTANT]
> This checkout contains candidate `0.2.0-alpha.1`, adapted for Harness `0.1.7-rc.2` at master `21638c56315ae6a2b552d6091945d3144c9af32e`. This preview is distributed under npm `next`; stable npm `latest` remains `0.1.10`. This is preparation for the anticipated desktop 0.2.0 release, not a compatibility claim for an unreleased final installer.
> Plugin **0.2.0** is the stable npm `latest` release for the official Harness **0.2.0-rc.2** release (`dsh-v0.2.0-rc.2`, commit `639ed015397290b3745d163aafe02ffee4aa3f84`). Plugin and host version numbers are independent. Harness itself still labels this release RC; install the exact supported host rather than assuming its npm `latest` points to it.

| Harness host | Plugin / status |
| Harness host | Plugin support |
| --- | --- |
| `0.1.7-rc.2`, master `21638c56315a` | `0.2.0-alpha.1` candidate; macOS desktop Host, real API and persistence acceptance passed |
| `0.1.5-rc.2` | Published `0.1.10` baseline; candidate product-entry runtime recheck passed |
| `0.1.5-rc.1`, `0.1.2-rc.1`, `0.1.2-alpha.5`, `0.1.2-alpha.3`, `0.1.2-alpha.2` | Historical declarations retained; not all revalidated in this round |
| `0.1.6-alpha.*`, other unlisted hosts | Unsupported |
| Future official `0.2.0` | Final commit, cohort and product require a separate acceptance run |
| `0.2.0-rc.2` | Recommended for plugin `0.2.0` |
| `0.1.7-rc.2`, `0.1.5-rc.2`, `0.1.5-rc.1`, `0.1.2-rc.1`, `0.1.2-alpha.5`, `0.1.2-alpha.3`, `0.1.2-alpha.2` | Retained exact compatibility; product-entry matrix required for release |
| Other unlisted hosts, including `0.2.0-rc.1` and `0.1.6-alpha.*` | Not declared supported |

The exact declaration lives in [compatibility.json](./compatibility.json); declarations alone are not runtime evidence. See [desktop preparation](./docs/desktop-020-preparation.md) for current scope and pending checks. [VALIDATION.md](./VALIDATION.md) records historical acceptance.
See [compatibility.json](./compatibility.json), [release acceptance](./validation/0.2.0), and [the release adaptation record](./docs/harness-020-rc2.md). Historical preview evidence remains in [desktop preparation](./docs/desktop-020-preparation.md).

### Install the local candidate
### Install

Build and pack this checkout:
In Harness, open **Plugins → Add plugin** and enter either:

```sh
pnpm install --frozen-lockfile
pnpm build
pnpm pack --pack-destination /tmp
```text
@nanmicoder/dsh-auto-mode
https://github.com/NanmiCoder/dsh-auto-mode
```

In Harness, open **Plugins → Add plugin** and enter the absolute path to the generated `nanmicoder-dsh-auto-mode-0.2.0-alpha.1.tgz`. Use the application's own plugin manager for the Desktop profile; the CLI does not accept `--profile desktop`.
For an immutable release, use `@nanmicoder/dsh-auto-mode@0.2.0` or `github:NanmiCoder/dsh-auto-mode#v0.2.0`. An npm package page URL is not an install spec. Desktop users should use the application's plugin manager so the plugin is installed into the correct profile.

For a Web profile, the equivalent installation is:
For a Web profile:

```sh
dsh plugin --profile web add /tmp/nanmicoder-dsh-auto-mode-0.2.0-alpha.1.tgz
dsh plugin --profile web add @nanmicoder/dsh-auto-mode@0.2.0
```

Install the preview with `@nanmicoder/dsh-auto-mode@next`, or pin `@nanmicoder/dsh-auto-mode@0.2.0-alpha.1`. For the published stable plugin on its historical supported hosts, pin `@nanmicoder/dsh-auto-mode@0.1.10`. An npm package page URL is not an install spec.

Git installs of this candidate consume tracked `lib` output and have no `prepare` hook. A GitHub URL still resolves the remote commit, so it will not contain these local changes until they are pushed. After source edits, run `pnpm build` and include the matching compiled output before distribution.
To test local changes, run `pnpm install --frozen-lockfile`, `pnpm build`, and `pnpm pack --pack-destination /tmp`, then add the generated tarball by absolute path. Git installations consume tracked `lib` output without an install-time `prepare` hook; include the rebuilt output whenever source changes.

### Mode selection and migration

Expand Down
37 changes: 16 additions & 21 deletions README_ZH.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,47 +9,42 @@
<p align="center">
<a href="https://www.npmjs.com/package/@nanmicoder/dsh-auto-mode"><img src="https://img.shields.io/npm/v/@nanmicoder/dsh-auto-mode.svg" alt="npm 版本"></a>
<a href="./LICENSE"><img src="https://img.shields.io/npm/l/@nanmicoder/dsh-auto-mode.svg" alt="MIT 许可证"></a>
<img src="https://img.shields.io/badge/DeepSeek%20Harness-0.1.7--rc.2%20candidate-202724" alt="精确宿主兼容矩阵见安装说明">
<img src="https://img.shields.io/badge/DeepSeek%20Harness-0.2.0--rc.2-202724" alt="精确宿主兼容矩阵见安装说明">
</p>

## Sandbox Auto 桌面端预适配
## Sandbox Auto 沙箱自动审批

`dsh-auto-mode` 让日常操作继续留在 Harness 的 `workspace-write` 沙箱内,审查语义风险及精确的一次性越界请求。插件模式显示为 **沙箱自动审批 / Sandbox Auto**,使用独立 key `sandbox-auto`,不接管官方无沙箱的 **Auto review**。

> [!IMPORTANT]
> 当前工作区已实现 `0.2.0-alpha.1` 候选版,适配目标为 Harness `0.1.7-rc.2`、master `21638c56315ae6a2b552d6091945d3144c9af32e`。本预览版使用 npm `next` 标签,稳定版 npm `latest` 保持 `0.1.10`。这是面向预计发布的桌面端 0.2.0 的预适配,不能视为对尚未发布的正式安装包完成验收。
> 插件 **0.2.0** 发布到 npm 稳定标签 `latest`,推荐配合官方 Harness **0.2.0-rc.2**(标签 `dsh-v0.2.0-rc.2`,提交 `639ed015397290b3745d163aafe02ffee4aa3f84`)。插件和宿主的版本号相互独立;官方宿主仍标记为 RC,不应假定其 npm `latest` 已指向该版本。

| Harness 宿主 | 插件 / 状态 |
| Harness 宿主 | 插件支持情况 |
| --- | --- |
| `0.1.7-rc.2`,master `21638c56315a` | `0.2.0-alpha.1` 候选版,macOS 桌面 Host、真实 API 和落盘恢复验收通过 |
| `0.1.5-rc.2` | 已发布 `0.1.10` 的基线;候选版产品入口运行时复验通过 |
| `0.1.5-rc.1`、`0.1.2-rc.1`、`0.1.2-alpha.5`、`0.1.2-alpha.3`、`0.1.2-alpha.2` | 保留历史声明,本轮尚未全部复验 |
| `0.1.6-alpha.*` 及其他未列出版本 | 不支持 |
| 未来官方 `0.2.0` | 需对最终提交、依赖组合及产品入口补做验收 |
| `0.2.0-rc.2` | 插件 `0.2.0` 的推荐宿主 |
| `0.1.7-rc.2`、`0.1.5-rc.2`、`0.1.5-rc.1`、`0.1.2-rc.1`、`0.1.2-alpha.5`、`0.1.2-alpha.3`、`0.1.2-alpha.2` | 保留精确兼容声明,发布前运行产品入口矩阵 |
| 其他未列出的版本,包括 `0.2.0-rc.1`、`0.1.6-alpha.*` | 未声明支持 |

精确声明见 [compatibility.json](./compatibility.json),声明本身不等于运行时验证。当前范围和待验收项见[桌面端预适配记录](./docs/desktop-020-preparation.md);[VALIDATION.md](./VALIDATION.md) 保留历史验收证据。
精确版本见 [compatibility.json](./compatibility.json),证据见[发布验收](./validation/0.2.0)和[适配记录](./docs/harness-020-rc2.md)。此前的[预适配记录](./docs/desktop-020-preparation.md)保留历史范围。

### 安装本地候选版
### 安装

在当前源码目录构建并打包:
在 Harness 的 **插件 → 添加插件** 中输入以下任意一项:

```sh
pnpm install --frozen-lockfile
pnpm build
pnpm pack --pack-destination /tmp
```text
@nanmicoder/dsh-auto-mode
https://github.com/NanmiCoder/dsh-auto-mode
```

在 Harness 中打开“插件 → 添加插件”,输入生成的 `nanmicoder-dsh-auto-mode-0.2.0-alpha.1.tgz` 的绝对路径。桌面版请使用应用自己的插件管理器;CLI 不接受 `--profile desktop`。
固定版本可使用 `@nanmicoder/dsh-auto-mode@0.2.0` 或 `github:NanmiCoder/dsh-auto-mode#v0.2.0`。npm 网页地址不是安装 spec。桌面用户使用应用内插件管理器,确保安装到正确的 profile。

Web profile 可使用:

```sh
dsh plugin --profile web add /tmp/nanmicoder-dsh-auto-mode-0.2.0-alpha.1.tgz
dsh plugin --profile web add @nanmicoder/dsh-auto-mode@0.2.0
```

安装预览版时输入 `@nanmicoder/dsh-auto-mode@next`,也可固定为 `@nanmicoder/dsh-auto-mode@0.2.0-alpha.1`。历史受支持宿主的已发布稳定版可固定为 `@nanmicoder/dsh-auto-mode@0.1.10`。npm 网页地址不是安装 spec。

本候选版的 Git 安装直接使用受版本控制的 `lib` 产物,不再执行 `prepare`。GitHub URL 获取的是远端提交,本地改动推送前不会包含这些修复。修改源码后执行 `pnpm build`,分发时一并包含对应编译产物。
测试本地修改时,执行 `pnpm install --frozen-lockfile`、`pnpm build`、`pnpm pack --pack-destination /tmp`,再添加生成 tarball 的绝对路径。Git 安装直接使用受版本控制的 `lib`,不运行 `prepare`;修改源代码后必须一并更新构建产物。

### 模式选择与旧会话迁移

Expand Down
9 changes: 9 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
Sandbox Auto 0.2.0 is now the stable npm `latest` release, targeting official Harness 0.2.0-rc.2 (tag dsh-v0.2.0-rc.2, commit 639ed015397290b3745d163aafe02ffee4aa3f84).

- Admit the exact newly released host in package peers and the runtime guard, and pin the full official development dependency cohort.
- Retain the independent Sandbox Auto preset, workspace sandbox, exact one-shot approvals, delegated child protections, and append-only old-session migration from the preview.
- Keep prebuilt Git distribution compatible with the desktop installer. Install using `@nanmicoder/dsh-auto-mode`, `@nanmicoder/dsh-auto-mode@0.2.0`, or the GitHub repository URL.
- Preserve seven previously supported exact hosts and verify the release artifact through the product-entry matrix, real provider calls and persistence acceptance. See validation/0.2.0 and docs/harness-020-rc2.md for exact evidence and scope.

---

Sandbox Auto 0.2.0-alpha.1 prepares for the upcoming Harness desktop release against verified Harness 0.1.7-rc.2 and master 21638c56315ae6a2b552d6091945d3144c9af32e. Install from npm with `@nanmicoder/dsh-auto-mode@next` (or the exact version). Stable `latest` remains 0.1.10.

- Rename the plugin-owned permission preset to `sandbox-auto` (Sandbox Auto / 沙箱自动审批), preserving workspace-write + ask while keeping the host's official full-access Auto separate.
Expand Down
8 changes: 6 additions & 2 deletions compatibility.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
{
"schemaVersion": 1,
"recommendedHost": "0.1.7-rc.2",
"recommendedHost": "0.2.0-rc.2",
"previewTag": "next",
"supportedHosts": [
{
"version": "0.1.7-rc.2",
"version": "0.2.0-rc.2",
"track": "recommended"
},
{
"version": "0.1.7-rc.2",
"track": "legacy"
},
{
"version": "0.1.5-rc.2",
"track": "legacy"
Expand Down
13 changes: 13 additions & 0 deletions docs/harness-020-rc2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Harness 0.2.0-rc.2 adaptation

Plugin 0.2.0 targets official Harness tag `dsh-v0.2.0-rc.2`, commit `639ed015397290b3745d163aafe02ffee4aa3f84`, for distribution under npm `latest`. This follows the plugin 0.2.0-alpha.1 preview tested against master `21638c56315ae6a2b552d6091945d3144c9af32e`. Plugin and host versions are independent: Harness still labels its release RC.

The earlier preview rejects this host because its exact peer declarations and runtime guard do not include 0.2.0-rc.2. This release adds that exact host, makes it recommended, and updates the official DSH dependency cohort. It retains the independent `sandbox-auto` identity, workspace-write + ask baseline, producer-owned message sources, append-only legacy identity migration and delegated authority protections. An unlisted future host, including a subsequent final 0.2.0 release, is not automatically admitted.

The consumed permission-presets, approval, tool pipeline, Session, system-prompt, subagent core and LLM source trees are unchanged across the two revisions. Related shell changes add deletion-path guidance and tolerate padded PowerShell completion lines. Those changes do not alter the plugin's consumed call or event contracts. Source equality alone does not establish runtime compatibility; `validation/0.2.0/source-contracts.json` records the comparison separately from execution results.

This release's runtime acceptance scope is the official, exact npm Harness 0.2.0-rc.2 package cohort through the `dsh --profile headless` product entry on macOS arm64, using the existing `/tmp` workspace. The release process requires the same immutable plugin tarball for the product-entry fixture, real DeepSeek API checks, three-process persistence checks and publication. Recorded results, artifact identity and dependency evidence in `release-candidate.json` and `validation/0.2.0` determine which checks passed; neither this document nor a compatibility declaration substitutes for those results. Persistence checks cover native V4 logs carrying the old Auto identity, including subagent lineage, and do not establish V3-to-V4 artifact-format migration compatibility. Historical hosts remain declared and are checked by the product-entry CI matrix; they are not all covered by the local new-host run.

At the user's explicit request, this release does not repeat Desktop installation or browser UI acceptance. The user has already installed the official application. The checks above must not be described as a test of the 0.2.0-rc.2 Desktop installer, Electron application, plugin-manager UI or Windows sandbox. Earlier preview Desktop evidence remains historical and is not relabeled as evidence for this release.

The documented installation routes are the application plugin manager with `@nanmicoder/dsh-auto-mode` (npm latest), the exact spec `@nanmicoder/dsh-auto-mode@0.2.0`, or `https://github.com/NanmiCoder/dsh-auto-mode`. Registry web pages are not install specs. Documenting these routes does not claim that a Desktop UI installation was exercised in this release run.
4 changes: 2 additions & 2 deletions lib/git-artifact.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"schemaVersion": 1,
"inputs": {
"package.json": "2794f00e7d269494327c66eb0dd9c222c149e7f6f0ecd3faf043bd2f9f4d1dec",
"pnpm-lock.yaml": "e850baa61d15b3c7f1360466ab44bc7e537b786f2d734c6d48b0276325016081",
"package.json": "9f9f0a4a64f0050a7be170cad64b5b76df343280abffdbccf2967f540ab18aa0",
"pnpm-lock.yaml": "7c246705b458071e7988d2b5350079972eb871ebf0e125dc5206cf5729994949",
"scripts/clean.mjs": "90d1e2cd893f67c53f77f8b3eb2c0327e2969c4321571cb222e12e500e543f08",
"scripts/verify-git-artifact.mjs": "730ebc5eb35aff563ddbd71286eee4fff3ede16195d244c0b5e0a42212c20ab5",
"src/artifacts.ts": "7aaa62c2614a3be779a6d8237299fbc9caac11a39e7c240ff1879eb99962af5d",
Expand Down
Loading
Loading