dsh-deeppilot 0.8.2 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COMPATIBILITY.md +9 -3
- package/README.md +9 -6
- package/README.zh-CN.md +8 -6
- package/SKILL.md +87 -0
- package/docs/DSH_RELEASE_MEMORY.md +98 -0
- package/lib/client.js +426 -126
- package/lib/client.js.map +1 -1
- package/lib/index.d.ts +170 -2
- package/lib/index.js +964 -119
- package/lib/index.js.map +1 -1
- package/package.json +18 -16
package/COMPATIBILITY.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Compatibility
|
|
2
2
|
|
|
3
|
-
This branch targets **DSH 0.1.7-rc.
|
|
3
|
+
This branch targets **DSH 0.1.7-rc.2**. The DSH peer dependencies and the development packages are pinned to that exact release. Earlier DSH builds and later release candidates are outside this branch's support scope.
|
|
4
4
|
|
|
5
5
|
| Component | Current contract | Evidence |
|
|
6
6
|
|---|---|---|
|
|
7
7
|
| Node.js | 22 or newer | Package engine and CI |
|
|
8
|
-
| DSH CLI and Host API | `0.1.7-rc.
|
|
8
|
+
| DSH CLI and Host API | `0.1.7-rc.2` | Peer metadata, source typecheck, unit tests, bundle build, and config schema projection against rc.2 |
|
|
9
9
|
| iOS bridge | DeepPilot protocol v2 | Bridge protocol tests; device behavior must be checked with the running Host and app |
|
|
10
10
|
| Remote access | Tailscale Funnel on ports 443, 8443, or 10000 | Helper and supervisor tests |
|
|
11
11
|
|
|
@@ -21,9 +21,15 @@ This branch targets **DSH 0.1.7-rc.1**. The DSH peer dependencies and the develo
|
|
|
21
21
|
|
|
22
22
|
- Protocol v2 is the only supported phone wire version. Protocol-v1 devices must pair again. The LAN listener uses its own TLS identity and certificate pinning; old LAN pairings without a fingerprint must also pair again.
|
|
23
23
|
- The current app accepts the `deeppilot://pair` link and the JSON pairing payload. Bearer authentication, URL credentials, and first-frame shared tokens are rejected; devices register a P-256 public key and sign each WebSocket challenge.
|
|
24
|
-
- The plugin's persisted device and Funnel state migration remains separate from DSH API version support. Session logs written by earlier DSH builds are readable only when the
|
|
24
|
+
- The plugin's persisted device and Funnel state migration remains separate from DSH API version support. Session logs written by earlier DSH builds are readable only when the current Host's own history reader accepts them; this plugin does not rewrite those logs.
|
|
25
25
|
- An unavailable optional OS facility, transport, or controller disables its dependent capability without crashing the Host.
|
|
26
26
|
|
|
27
|
+
## rc.2 feature planning
|
|
28
|
+
|
|
29
|
+
The source-level audit of `dsh-v0.1.7-rc.2` found no breaking change in the DSH service surfaces currently used by the plugin. The exact rc.2 package pins, corrected registry lockfile, compatibility assertions, generated output, unit tests, typecheck, build, and config-schema check now pass locally. A real rc.2 `web` profile smoke test and the clean-install release gate remain before publishing. The planned phone additions for durable schedules and session forking are specified in [`docs/DEEPPILOT_FEATURE_PLAN.md`](./docs/DEEPPILOT_FEATURE_PLAN.md); they are not advertised until the protocol, iOS mirror, and integration tests land.
|
|
30
|
+
|
|
31
|
+
The complete audit evidence and re-audit procedure remain in [`docs/DSH_RELEASE_MEMORY.md`](./docs/DSH_RELEASE_MEMORY.md).
|
|
32
|
+
|
|
27
33
|
## Evidence limits
|
|
28
34
|
|
|
29
35
|
Unit tests and config schema projection do not prove every network, Mac, Linux, Windows, or iPhone combination. In particular, physical-device performance, signed helper distribution, and production APNs delivery need their own checks. Include the exact DSH version, plugin commit, Node version, OS, connection mode, and sanitized status output when reporting a compatibility issue; never include credentials or message content.
|
package/README.md
CHANGED
|
@@ -32,12 +32,12 @@ Host on your own Mac and does not replace or modify the DSH Web UI.
|
|
|
32
32
|
|
|
33
33
|
## Install from npm
|
|
34
34
|
|
|
35
|
-
This source checkout targets Node.js 22+ and **DSH 0.1.7-rc.
|
|
35
|
+
This source checkout targets Node.js 22+ and **DSH 0.1.7-rc.2** with a `web` profile. The package includes
|
|
36
36
|
Funnel helpers for macOS, Linux, and Windows on amd64/arm64; trusted-LAN mode
|
|
37
37
|
does not require the helper.
|
|
38
38
|
|
|
39
39
|
The current working tree pins its DSH packages and compatibility checks to
|
|
40
|
-
`0.1.7-rc.
|
|
40
|
+
`0.1.7-rc.2`. A previously published plugin package may still carry its own
|
|
41
41
|
older compatibility declaration until a release is made from this tree.
|
|
42
42
|
|
|
43
43
|
```sh
|
|
@@ -80,12 +80,12 @@ DeepPilot state under `$DSH_HOME/deeppilot/`.
|
|
|
80
80
|
|
|
81
81
|
## Publishing (maintainers)
|
|
82
82
|
|
|
83
|
-
Release from this branch only after validating against DSH `0.1.7-rc.
|
|
83
|
+
Release from this branch only after validating against DSH `0.1.7-rc.2`:
|
|
84
84
|
|
|
85
85
|
1. Bump `version` in `package.json` and in the root `""` entry of
|
|
86
86
|
`package-lock.json`, then run `npm test && npm run typecheck && npm run build`
|
|
87
87
|
and inspect `npm pack --dry-run --json`. The compatibility metadata test
|
|
88
|
-
enforces the exact rc.
|
|
88
|
+
enforces the exact rc.2 peer and development dependency versions.
|
|
89
89
|
2. Commit the release and push it. `npm publish` runs `prepack` (build) and
|
|
90
90
|
`prepublishOnly` (test + typecheck) automatically.
|
|
91
91
|
3. Publish pre-releases without touching `latest`:
|
|
@@ -95,7 +95,7 @@ Release from this branch only after validating against DSH `0.1.7-rc.1`:
|
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
After a successful publish, verify the dist tag and install the package in
|
|
98
|
-
a DSH `0.1.7-rc.
|
|
98
|
+
a DSH `0.1.7-rc.2` profile before pointing users at it.
|
|
99
99
|
4. Tag the release commit `vX.Y.Z` and prepare a GitHub Release
|
|
100
100
|
(English + 简体中文 notes) that links this README section.
|
|
101
101
|
5. Publish stable releases with `npm publish --tag latest`, which moves
|
|
@@ -117,7 +117,10 @@ connection, one-time pairing, and health endpoints, not the complete DSH Web UI.
|
|
|
117
117
|
The DeepPilot settings page exposes **Connections per public source** under
|
|
118
118
|
the collapsed **Advanced settings** section. It defaults to `8`, accepts
|
|
119
119
|
`1`–`16`, and briefly restarts the Funnel helper when changed, so connected
|
|
120
|
-
remote clients reconnect once.
|
|
120
|
+
remote clients reconnect once. The device list also supports a custom name for
|
|
121
|
+
each paired device. Names are stored in the host registry and survive iPhone
|
|
122
|
+
reconnects or changes to the system-reported name; saving an empty value restores
|
|
123
|
+
the iPhone-reported default.
|
|
121
124
|
|
|
122
125
|
Offline push is optional. Relay mode sends only the target APNs device token
|
|
123
126
|
and a limited notification payload; full conversation history and live output
|
package/README.zh-CN.md
CHANGED
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
|
|
31
31
|
## 从 npm 安装
|
|
32
32
|
|
|
33
|
-
当前源码仅面向 Node.js 22+ 与带 `web` profile 的 **DSH 0.1.7-rc.
|
|
33
|
+
当前源码仅面向 Node.js 22+ 与带 `web` profile 的 **DSH 0.1.7-rc.2**。npm 包内置 macOS、Linux、Windows
|
|
34
34
|
的 amd64/arm64 Funnel helper;可信局域网模式不依赖 helper。
|
|
35
35
|
|
|
36
|
-
当前工作树的 DSH 包和兼容性检查均固定为 `0.1.7-rc.
|
|
36
|
+
当前工作树的 DSH 包和兼容性检查均固定为 `0.1.7-rc.2`。从此工作树发布新版本前,
|
|
37
37
|
已发布的旧插件包仍可能带有各自的旧兼容声明。
|
|
38
38
|
|
|
39
39
|
```sh
|
|
@@ -68,12 +68,12 @@ dsh plugin --profile web remove dsh-deeppilot
|
|
|
68
68
|
|
|
69
69
|
## 发布说明(维护者)
|
|
70
70
|
|
|
71
|
-
此分支仅在 DSH `0.1.7-rc.
|
|
71
|
+
此分支仅在 DSH `0.1.7-rc.2` 下完成验证后发布:
|
|
72
72
|
|
|
73
73
|
1. 同步修改 `package.json` 与 `package-lock.json` 根 `""` 条目中的
|
|
74
74
|
`version`,然后运行 `npm test && npm run typecheck && npm run build`,
|
|
75
75
|
并检查 `npm pack --dry-run --json`。兼容性元数据测试会校验 peer 与开发依赖
|
|
76
|
-
均固定为 rc.
|
|
76
|
+
均固定为 rc.2。
|
|
77
77
|
2. 提交发布并推送。`npm publish` 会自动执行 `prepack`(构建)与
|
|
78
78
|
`prepublishOnly`(测试 + 类型检查)。
|
|
79
79
|
3. 发布预发布版本,不要动 `latest`:
|
|
@@ -82,7 +82,7 @@ dsh plugin --profile web remove dsh-deeppilot
|
|
|
82
82
|
npm publish --tag alpha
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
发布成功后检查 dist tag,并在 DSH `0.1.7-rc.
|
|
85
|
+
发布成功后检查 dist tag,并在 DSH `0.1.7-rc.2` profile 中安装验证发布的包。
|
|
86
86
|
4. 为发布提交打 `vX.Y.Z` tag,并准备包含英文与简体中文说明的
|
|
87
87
|
GitHub Release,链接本 README 的发布说明。
|
|
88
88
|
5. 稳定版用 `npm publish --tag latest` 发布,使 `latest` 切换到新版本。
|
|
@@ -101,7 +101,9 @@ DSH Web UI。
|
|
|
101
101
|
|
|
102
102
|
DeepPilot 设置页在默认折叠的“高级设置”中提供“每个公网来源的连接上限”,默认
|
|
103
103
|
`8`,可设置为 `1`–`16`。修改后 Funnel helper 会短暂重启,已连接的远程客户端
|
|
104
|
-
|
|
104
|
+
会自动重连一次。设备列表支持为每台已配对设备设置自定义名称;名称会保存在主机
|
|
105
|
+
设备注册表中,即使 iPhone 重连或上报了新的系统名称也不会被覆盖。留空保存可恢复
|
|
106
|
+
iPhone 上报的默认名称。
|
|
105
107
|
|
|
106
108
|
离线推送是可选功能。中继模式只发送目标 APNs 设备 Token 和有限的通知内容;
|
|
107
109
|
完整会话历史与实时输出不会经过中继。启用远程访问或推送前,请阅读
|
package/SKILL.md
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dsh-release-audit
|
|
3
|
+
description: Audit DeepSeek Harness releases for the dsh-deeppilot plugin. Use when a DSH version changes, when checking plugin compatibility, or when looking for new DSH capabilities that could become safe DeepPilot features.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# DSH release audit for DeepPilot
|
|
7
|
+
|
|
8
|
+
Use this skill to keep the public `dsh-deeppilot` plugin aligned with DeepSeek
|
|
9
|
+
Harness without repeatedly rediscovering the compatibility rules.
|
|
10
|
+
|
|
11
|
+
## Source of truth
|
|
12
|
+
|
|
13
|
+
Read these files before making a compatibility decision:
|
|
14
|
+
|
|
15
|
+
- `docs/DSH_RELEASE_MEMORY.md` — the last audited release, risk decisions,
|
|
16
|
+
feature opportunities, and the re-audit rule;
|
|
17
|
+
- `COMPATIBILITY.md` — the currently supported DSH baseline and validation
|
|
18
|
+
limitations;
|
|
19
|
+
- `AGENTS.md` — repository contracts and validation requirements;
|
|
20
|
+
- `package.json` and `package-lock.json` — the exact DSH peer/development pins.
|
|
21
|
+
|
|
22
|
+
Treat the official DSH release page and tagged source as evidence, not the
|
|
23
|
+
release-note summary alone.
|
|
24
|
+
|
|
25
|
+
## Audit workflow
|
|
26
|
+
|
|
27
|
+
1. Identify the new DSH tag and the last audited tag. Fetch the official
|
|
28
|
+
release page and the complete tag-to-tag comparison.
|
|
29
|
+
2. Read this repository's `package.json`, lockfile, compatibility assertions,
|
|
30
|
+
and DSH adapter source. Identify the exact Host services, Events, Remote
|
|
31
|
+
methods, Gateway carriers, and Client bundles that the plugin imports.
|
|
32
|
+
3. Inspect the corresponding tagged DSH source for each used surface. Check
|
|
33
|
+
method presence, argument/result shapes, stream envelopes, lifecycle
|
|
34
|
+
behavior, and package version constraints.
|
|
35
|
+
4. Classify the result separately as:
|
|
36
|
+
- **install/deployment**: package metadata, peer constraints, loader and
|
|
37
|
+
profile compatibility;
|
|
38
|
+
- **runtime**: Host service, Gateway, Cordis lifecycle, and event behavior;
|
|
39
|
+
- **phone protocol**: DeepPilot `PROTOCOL.md` v2, iOS mirror, pairing,
|
|
40
|
+
replay, and authorization boundaries.
|
|
41
|
+
5. Identify new capabilities. For each candidate, state the user value, the
|
|
42
|
+
DSH API it would use, the required DeepPilot protocol/UI work, the
|
|
43
|
+
authorization scope, and the tests needed before shipping it.
|
|
44
|
+
6. Update `docs/DSH_RELEASE_MEMORY.md` with the tag, date, evidence links,
|
|
45
|
+
decision, risks, feature backlog, and upgrade gate. Update
|
|
46
|
+
`COMPATIBILITY.md` when the supported baseline changes.
|
|
47
|
+
7. Never claim a release is supported until the dependency pins, generated
|
|
48
|
+
output, automated checks, and a real DSH Host smoke test have passed.
|
|
49
|
+
|
|
50
|
+
## DeepPilot-specific rules
|
|
51
|
+
|
|
52
|
+
- Keep `/phone` and `/phone/health` compatible with the current iOS app.
|
|
53
|
+
- Treat `PROTOCOL.md` as normative. Any phone wire change must update the
|
|
54
|
+
TypeScript mirror and coordinate with the private iOS repository.
|
|
55
|
+
- Protocol v2 is the current baseline. New optional capabilities should be
|
|
56
|
+
capability-gated; do not silently change existing frame meanings.
|
|
57
|
+
- A DSH controller change belongs behind the stable `ApiProxyLike` boundary;
|
|
58
|
+
do not leak DSH controller shapes into the phone protocol.
|
|
59
|
+
- Reminder prompts, message bodies, pairing tokens, APNs tokens, relay
|
|
60
|
+
credentials, and tool arguments must not be written to logs.
|
|
61
|
+
- New file-open or shell-like behavior must use DSH's verified Host path seam
|
|
62
|
+
and explicit user confirmation. Never add arbitrary remote command execution.
|
|
63
|
+
- Scheduled tasks must remain bound to their original DSH Session and use a
|
|
64
|
+
dedicated authorization scope when exposed to phones.
|
|
65
|
+
|
|
66
|
+
## Required validation
|
|
67
|
+
|
|
68
|
+
For documentation-only audits, run `git diff --check` and verify every link.
|
|
69
|
+
For an actual DSH dependency upgrade, run the repository's full release
|
|
70
|
+
checklist, including tests, typecheck, build, config schema projection, Go
|
|
71
|
+
helper tests, and binary checksums. Add a real DSH `web` profile smoke test for
|
|
72
|
+
sessions, history, prompts, models, workspaces, approvals, questions, replay,
|
|
73
|
+
and any newly exposed capability.
|
|
74
|
+
|
|
75
|
+
## Output format
|
|
76
|
+
|
|
77
|
+
When reporting an audit, lead with one of these verdicts:
|
|
78
|
+
|
|
79
|
+
- **compatible** — tested and ready to support;
|
|
80
|
+
- **source-compatible, upgrade required** — no code break found, but pins or
|
|
81
|
+
validation still block release;
|
|
82
|
+
- **runtime risk** — a used service or event needs an integration change;
|
|
83
|
+
- **protocol impact** — DeepPilot/iOS wire coordination is required;
|
|
84
|
+
- **unsupported** — a confirmed incompatibility remains.
|
|
85
|
+
|
|
86
|
+
Never turn a source-level review into a false claim of runtime or iPhone
|
|
87
|
+
compatibility.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# DSH release compatibility memory
|
|
2
|
+
|
|
3
|
+
> This is the durable audit record for DeepPilot's public DSH plugin. Re-audit
|
|
4
|
+
> the next DSH release instead of assuming that an rc upgrade is runtime-safe.
|
|
5
|
+
|
|
6
|
+
## Current decision
|
|
7
|
+
|
|
8
|
+
- **Audited release:** `dsh-v0.1.7-rc.2` (official release page: <https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.1.7-rc.2>).
|
|
9
|
+
- **Comparison baseline:** `dsh-v0.1.7-rc.1` (the previous plugin baseline).
|
|
10
|
+
- **Plugin runtime verdict:** **no confirmed breaking change in the DSH APIs
|
|
11
|
+
that DeepPilot currently calls**.
|
|
12
|
+
- **Install/deployment verdict:** the exact peer/dev pins and lockfile are now
|
|
13
|
+
updated to `0.1.7-rc.2`; `npm test`, `npm run typecheck`, `npm run build`, and
|
|
14
|
+
the rc.2 config-schema check pass locally. Support still awaits a real rc.2
|
|
15
|
+
`web` profile smoke test and the release checklist's clean-install gate.
|
|
16
|
+
- **Protocol verdict:** no required DeepPilot phone-protocol break was found in
|
|
17
|
+
the rc.2 release notes or the inspected rc.2 source. This does not waive the
|
|
18
|
+
normal integration test against a real rc.2 Host.
|
|
19
|
+
- **Current implementation:** the optional DSH Schedule facade, schedule phone
|
|
20
|
+
frames, `schedule.manage` authorization, DSH `schedule/changed` projection,
|
|
21
|
+
a prompt-free persistent mutation journal, and the DSH Session fork facade
|
|
22
|
+
with fork idempotency are implemented and locally tested. The private iOS
|
|
23
|
+
protocol mirror, BridgeClient/AppModel integration, reminder list/editor/
|
|
24
|
+
history UI, and message “Branch from here” action are implemented; real
|
|
25
|
+
Host/iPhone integration remains pending.
|
|
26
|
+
|
|
27
|
+
## Evidence and risk assessment
|
|
28
|
+
|
|
29
|
+
| Area | rc.2 finding | DeepPilot impact |
|
|
30
|
+
| --- | --- | --- |
|
|
31
|
+
| Session controller | The rc.2 source still exposes the methods used by the adapter: `list`, `inspect`, `create`, `modelCatalog`, `selectModel`, `rename`, `prompt`, `attachment`, `cancel`, and `projections`. It adds `search`, `page`, `follow`, `fork`, `updateQueue`, `initializeDefaultModel`, and native workspace-path operations. | Existing calls are source-compatible at the inspected API level. New calls must remain optional and capability-gated. |
|
|
32
|
+
| Workspace controller | `create`, `archiveSession`, `unarchiveSession`, and `follow` remain. rc.2 adds rename/delete/order/pin operations and archive activity handling. | Existing bridge behavior is source-compatible. Archive behavior is stricter when a Session has active work, including scheduled reminders. |
|
|
33
|
+
| Gateway / Typert | The in-process `typertGateway.wireStream.open(endpoint, payload, uplink, peer, signal)` seam used by the resident approval/question Client remains. Typert registration still exposes `register(contribution)`. | No confirmed break in the resident Remote Events path. Re-run the approval/question tests on rc.2 because this is the highest-risk integration seam. |
|
|
34
|
+
| Release metadata | The plugin's peer/dev pins and lockfile now target rc.2 with real rc.2 integrity metadata. | Keep `package.json`, `package-lock.json`, compatibility assertions, generated `lib/`, and release documentation synchronized before claiming rc.2 support. |
|
|
35
|
+
| DSH event/history internals | rc.2 continues to evolve session projections, history paging, and assistant stream presentation. The plugin currently consumes the older `session/event`/`inspect` projection seam rather than the newer Remote `page`/`follow` surface. | Treat as a compatibility risk requiring a real Host smoke test, not as a confirmed wire break. Keep the phone protocol independent of DSH controller shapes. |
|
|
36
|
+
|
|
37
|
+
Official comparison: <https://github.com/deepseek-ai/deepseek-harness/compare/dsh-v0.1.7-rc.1...dsh-v0.1.7-rc.2>.
|
|
38
|
+
|
|
39
|
+
## New rc.2 capabilities worth using
|
|
40
|
+
|
|
41
|
+
Prioritized for DeepPilot, in this order:
|
|
42
|
+
|
|
43
|
+
1. **Durable reminders and schedules (highest value).** DSH now has
|
|
44
|
+
`schedule_create`, `schedule_list`, `schedule_delete`, and
|
|
45
|
+
`schedule_update`, persistent one-shot/fixed-rate/daily/weekly/cron tasks,
|
|
46
|
+
restart survival, delivery history, and a minimum one-minute interval. Add
|
|
47
|
+
an optional, session-bound schedule surface to the phone: list tasks, create
|
|
48
|
+
or edit a task, delete it, and show delivery history. Keep all operations
|
|
49
|
+
behind `sessions.manage` plus a dedicated schedule scope; never log reminder
|
|
50
|
+
prompts. A reminder must remain bound to its original Host Session.
|
|
51
|
+
2. **Host Session search.** `sessionController.search(query)` returns bounded
|
|
52
|
+
snippets without activating an Agent. This maps naturally to a phone search
|
|
53
|
+
screen and can reduce the amount of history transferred over a mobile link.
|
|
54
|
+
Return only the bounded snippet/session identity and keep it in the
|
|
55
|
+
`sessions.read` authorization domain.
|
|
56
|
+
3. **Conversation forking.** `sessionController.fork({ sessionId, atSeq? })`
|
|
57
|
+
enables a phone action such as “branch from this turn”. It is additive to
|
|
58
|
+
the phone protocol but needs an iOS mirror, cursor/ownership tests, and a
|
|
59
|
+
deliberate policy for subagent and archived Sessions.
|
|
60
|
+
4. **Queue editing.** `sessionController.updateQueue` supports editing,
|
|
61
|
+
removing, or steering a pending queue item. This is useful for a phone when
|
|
62
|
+
a turn is already running, but it needs first-class queue UI and conflict
|
|
63
|
+
handling rather than silently changing the existing prompt path.
|
|
64
|
+
5. **Open/reveal on the Mac.** rc.2 adds verified native workspace-path opening
|
|
65
|
+
and application discovery. This could power a deliberate “Reveal in Finder /
|
|
66
|
+
Open associated app” action. Keep the Host's path verification and show an
|
|
67
|
+
explicit confirmation on the phone; do not expose arbitrary shell access.
|
|
68
|
+
|
|
69
|
+
Features that are primarily Web/Desktop UX (onboarding, keyboard shortcut
|
|
70
|
+
management, archived-only filters, account/API-key model entry separation, and
|
|
71
|
+
background continuation) should not be copied into the phone plugin unless
|
|
72
|
+
they solve a mobile-specific need.
|
|
73
|
+
|
|
74
|
+
## Required rc.2 upgrade gate
|
|
75
|
+
|
|
76
|
+
Do not call the rc.2 baseline fully supported until all of these are true:
|
|
77
|
+
|
|
78
|
+
1. The exact DSH peer/dev pins and lockfile remain on `0.1.7-rc.2`.
|
|
79
|
+
2. The plugin's full release checklist passes: `npm ci`, `npm test`,
|
|
80
|
+
`npm run typecheck`, `npm run build`, `npm run check:config-schema`, Go helper
|
|
81
|
+
tests, and the binary checksum verification.
|
|
82
|
+
3. A real DSH rc.2 `web` profile smoke test covers: session list/open, history,
|
|
83
|
+
prompt, model selection, workspace list/create/archive/unarchive, approval,
|
|
84
|
+
question, and disconnect/reconnect replay.
|
|
85
|
+
4. A phone-visible schedule create/list/update/delete/history flow is tested
|
|
86
|
+
after the schedule surface is implemented; a passing plugin build alone does
|
|
87
|
+
not prove mobile protocol compatibility.
|
|
88
|
+
5. Fork is tested for exact event-prefix behavior, idempotent retries, and
|
|
89
|
+
original-session immutability after the fork surface is implemented.
|
|
90
|
+
6. `COMPATIBILITY.md`, README compatibility text, generated `lib/`, and this
|
|
91
|
+
file are updated with the tested DSH version and intentional support range.
|
|
92
|
+
|
|
93
|
+
## Re-audit rule
|
|
94
|
+
|
|
95
|
+
For every future DSH release, compare the new tag against the last audited tag,
|
|
96
|
+
inspect the package/service surfaces actually imported by this repository,
|
|
97
|
+
classify install/runtime/protocol risk separately, and append a dated decision
|
|
98
|
+
here. Do not treat a release-note summary as proof of compatibility.
|