@softspark/ai-toolkit 4.32.4 → 4.33.0
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/CHANGELOG.md +25 -0
- package/README.md +13 -16
- package/app/.claude-plugin/plugin.json +1 -1
- package/kb/procedures/sop-release-verification.md +6 -4
- package/kb/reference/dsh-compatibility.md +85 -13
- package/llms-full.txt +91 -17
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/scripts/ecosystem_tools.json +5 -5
- package/scripts/install_steps/dsh.py +506 -53
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,31 @@ Versioning follows [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## v4.33.0 - DSH refresh and maintenance contracts (2026-09-06)
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Explicit DSH profile lifecycle targets runtime `0.1.2-rc.1` and exact packages
|
|
15
|
+
`@softspark/dsh-codex@1.5.0` and `@softspark/dsh-orchestrator@2.0.0`.
|
|
16
|
+
Upgrade the DSH runtime before updating the managed profile packages.
|
|
17
|
+
- Refresh the ecosystem source references and retain the pnpm 11 support range
|
|
18
|
+
declared by the reviewed upstream release.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Automatically select Claude Agent SDK `0.3.263` for the DSH Claude provider,
|
|
23
|
+
replacing the bundled CLI rejected by current models. Preserve unrelated
|
|
24
|
+
profile settings and restore prior configuration after failed installation
|
|
25
|
+
or update; concurrent file replacements remain preserved for recovery.
|
|
26
|
+
- Align the security support table with the current 4.x release line and describe
|
|
27
|
+
the actual scope of hooks, network-aware commands, and managed installation files.
|
|
28
|
+
- Require documentation, generated surfaces, and counts to change in the same
|
|
29
|
+
pull request as the corresponding behavior.
|
|
30
|
+
- Cover migration from the previously shipped DSH package pair and retain
|
|
31
|
+
rollback tests that restore the exact recorded package versions.
|
|
32
|
+
- Canonicalize temporary test roots on macOS so recovery assertions compare
|
|
33
|
+
the same paths reported by the lifecycle without weakening the assertions.
|
|
34
|
+
|
|
10
35
|
## v4.32.4 - Validation parity and API error contracts (2026-09-06)
|
|
11
36
|
|
|
12
37
|
### Changed
|
package/README.md
CHANGED
|
@@ -6,24 +6,21 @@
|
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](app/skills/)
|
|
8
8
|
[](app/agents/)
|
|
9
|
-
[](tests/)
|
|
10
10
|
|
|
11
|
-
## What's New in v4.
|
|
11
|
+
## What's New in v4.33.0
|
|
12
12
|
|
|
13
|
-
**v4.
|
|
13
|
+
**v4.33.0** refreshes the explicit DSH lifecycle and public maintenance policies:
|
|
14
14
|
|
|
15
|
-
- **
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
- **Release smoke tests verify the installed artifact.** Procedures use
|
|
25
|
-
disposable environments, current inventories and assertions for missing
|
|
26
|
-
generated files, without modifying the operator's live installation.
|
|
15
|
+
- **Current DSH package pins.** Explicit profile installation and updates target
|
|
16
|
+
DSH `0.1.2-rc.1`, `dsh-codex 1.5.0`, and `dsh-orchestrator 2.0.0`.
|
|
17
|
+
- **Existing profile ownership survives the update.** Regression tests cover
|
|
18
|
+
refreshing the previously shipped package pair and restoring the recorded
|
|
19
|
+
versions when an update fails.
|
|
20
|
+
- **Accurate security scope.** The support table follows the current release
|
|
21
|
+
line, and the policy describes the actual installation and network boundaries.
|
|
22
|
+
- **Documentation travels with code.** Contributions update affected KB pages,
|
|
23
|
+
manifests, counts, and generated instructions in the same pull request.
|
|
27
24
|
|
|
28
25
|
See [CHANGELOG.md](CHANGELOG.md) for full history.
|
|
29
26
|
|
|
@@ -96,7 +93,7 @@ ai-toolkit dsh doctor --profile web
|
|
|
96
93
|
ai-toolkit dsh uninstall --profile web --yes
|
|
97
94
|
```
|
|
98
95
|
|
|
99
|
-
DSH is excluded from `--editors all`, auto-detection, and defaults. Its only DSH-specific project output is `.agents/skills`; the normal `--local` Claude files, detected language rules, and other generic project outputs still apply. Project and profile `--dry-run` commands are read-only. The
|
|
96
|
+
DSH is excluded from `--editors all`, auto-detection, and defaults. Its only DSH-specific project output is `.agents/skills`; the normal `--local` Claude files, detected language rules, and other generic project outputs still apply. Project and profile `--dry-run` commands are read-only. The lifecycle targets DSH `0.1.2-rc.1`, `@softspark/dsh-codex@1.5.0`, and `@softspark/dsh-orchestrator@2.0.0`. Update the DSH runtime before updating this profile integration. Codex, Claude Code, and GitHub Copilot own their logins. ai-toolkit accepts no provider API keys, and GitHub AI credits apply to the Copilot Gemini route. See [DSH Compatibility](kb/reference/dsh-compatibility.md) for the exact contract and version-specific qualification evidence.
|
|
100
97
|
|
|
101
98
|
### Plugin Management
|
|
102
99
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "ai-toolkit",
|
|
4
4
|
"displayName": "AI Toolkit",
|
|
5
5
|
"description": "Professional-grade engineering skills, agents, rules, and lifecycle guardrails for Claude Code, Claude Chat, and Cowork.",
|
|
6
|
-
"version": "4.
|
|
6
|
+
"version": "4.33.0",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "SoftSpark",
|
|
9
9
|
"url": "https://github.com/softspark"
|
|
@@ -3,7 +3,7 @@ title: "SOP: Release Verification"
|
|
|
3
3
|
category: procedures
|
|
4
4
|
service: ai-toolkit
|
|
5
5
|
tags: [sop, verification, release, smoke-test, install, update, qa, provenance, sarif, dsh]
|
|
6
|
-
version: "1.8.
|
|
6
|
+
version: "1.8.2"
|
|
7
7
|
created: "2026-04-08"
|
|
8
8
|
last_updated: "2026-09-06"
|
|
9
9
|
description: "End-to-end smoke test after installing or updating @softspark/ai-toolkit. Verifies CLI, native Codex and GitHub Copilot surfaces, explicit DSH lifecycle, Claude app export, doctor, validation, tests, eject, provenance, SARIF, and per-skill permissions."
|
|
@@ -473,15 +473,17 @@ app-native rules skill, bundled agents/skills, and plugin-relative Cowork hooks.
|
|
|
473
473
|
|
|
474
474
|
Run this phase whenever the release changes the `dsh` target, package pins, preset lifecycle, or DSH compatibility documentation. Use a new task-specific `DSH_HOME`; never replace `HOME` or reuse a regular profile.
|
|
475
475
|
|
|
476
|
-
Prerequisites: DSH `0.1.
|
|
476
|
+
Prerequisites: DSH `0.1.2-rc.1`, pnpm `>=11.7.0,<12.0.0`, Codex logged in through ChatGPT, Claude Code logged in natively, and GitHub Copilot CLI logged in natively. Do not supply provider API keys. The lifecycle automatically installs the scoped Claude Agent SDK `0.3.263` override and checks the actual provider and SDK metadata; no manual vendor configuration is needed.
|
|
477
477
|
|
|
478
478
|
```bash
|
|
479
479
|
DSH_SMOKE_ROOT="$(mktemp -d)"
|
|
480
480
|
export DSH_HOME="$DSH_SMOKE_ROOT/dsh-home"
|
|
481
|
+
export AI_TOOLKIT_HOME="$DSH_SMOKE_ROOT/toolkit-state"
|
|
482
|
+
mkdir -p "$DSH_HOME"
|
|
481
483
|
|
|
482
484
|
ai-toolkit dsh install --profile web
|
|
483
485
|
ai-toolkit dsh doctor --profile web
|
|
484
|
-
dsh --profile web --host 127.0.0.1 --port 0 --no-open
|
|
486
|
+
DSH_TELEMETRY_DISABLED=1 dsh --profile web --host 127.0.0.1 --port 0 --no-open
|
|
485
487
|
```
|
|
486
488
|
|
|
487
489
|
In a new `softspark-orchestrator` session, select the `codex` provider and run two standalone marker prompts:
|
|
@@ -495,7 +497,7 @@ Stop DSH, then remove only the managed profile artifacts:
|
|
|
495
497
|
ai-toolkit dsh uninstall --profile web --yes
|
|
496
498
|
```
|
|
497
499
|
|
|
498
|
-
**Verify:** both tool results have `isError=false`, both turns end as `completed`, `doctor` reports no recovery requirement before uninstall, and an unrelated preset fixture remains unchanged. Preserve only redacted event sequence evidence; never attach credentials, auth files, or full private prompts.
|
|
500
|
+
**Verify:** both tool results have `isError=false`, both turns end as `completed`, `doctor` reports `Claude SDK: compatible (0.3.263)` and no recovery requirement before uninstall, and an unrelated preset fixture remains unchanged. The task-specific `AI_TOOLKIT_HOME` keeps lifecycle state separate from the operator's installation; `HOME` remains unchanged. Preserve only redacted event sequence evidence; never attach credentials, auth files, or full private prompts.
|
|
499
501
|
|
|
500
502
|
---
|
|
501
503
|
|
|
@@ -3,9 +3,9 @@ title: "AI Toolkit - DSH Compatibility"
|
|
|
3
3
|
category: reference
|
|
4
4
|
service: ai-toolkit
|
|
5
5
|
tags: [dsh, deepseek-harness, subscriptions, lifecycle, compatibility]
|
|
6
|
-
version: "1.
|
|
6
|
+
version: "1.8.0"
|
|
7
7
|
created: "2026-08-31"
|
|
8
|
-
last_updated: "2026-09-
|
|
8
|
+
last_updated: "2026-09-06"
|
|
9
9
|
description: "Compatibility contract for project skills and the explicit SoftSpark package lifecycle in DeepSeek Harness."
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -15,14 +15,14 @@ description: "Compatibility contract for project skills and the explicit SoftSpa
|
|
|
15
15
|
|
|
16
16
|
ai-toolkit supports DeepSeek Harness as an explicit developer-preview target. The integration is maintained by SoftSpark as a community compatibility layer. DeepSeek AI has not endorsed it.
|
|
17
17
|
|
|
18
|
-
The
|
|
18
|
+
The 4.33.0 lifecycle targets DSH `0.1.2-rc.1`, with the exact package pair below. Other upstream prereleases require their own qualification. Historical marker roundtrips from 2026-09-01 used DSH `0.1.1-rc.2`; version-specific evidence is recorded under Qualification below.
|
|
19
19
|
|
|
20
20
|
## Project vs Profile Outputs
|
|
21
21
|
|
|
22
22
|
| Surface | Command | Managed output | Explicit non-output |
|
|
23
23
|
|---|---|---|---|
|
|
24
24
|
| Project install | `ai-toolkit install --local --editors dsh` | `CLAUDE.md`, `.claude/settings.local.json`, `.claude/constitution.md`, detected language rules, other generic local outputs, and the DSH-specific one-level `.agents/skills/<name>/SKILL.md` catalog with bundled resources | No `$DSH_HOME` writes, npm package changes, profile changes, preset changes, or credential reads |
|
|
25
|
-
| DSH profile | `ai-toolkit dsh install --profile web` | Two exact npm dependencies
|
|
25
|
+
| DSH profile | `ai-toolkit dsh install --profile web` | Two exact npm dependencies, the scoped Claude SDK override and missing profile initialization files, the released `softspark-orchestrator` preset, and ai-toolkit ownership state | No project files, provider login, API keys, unrelated plugins, or user presets |
|
|
26
26
|
|
|
27
27
|
DSH is excluded from `--editors all`, auto-detection, default profiles, and default editor selection. Naming `dsh` without `--local` is not a supported project install route.
|
|
28
28
|
|
|
@@ -50,13 +50,31 @@ The DSH profile defaults to `web` when `--profile` is omitted. `DSH_HOME` select
|
|
|
50
50
|
|
|
51
51
|
| Component | Reviewed version | Role |
|
|
52
52
|
|---|---:|---|
|
|
53
|
-
| DeepSeek Harness | `0.1.
|
|
53
|
+
| DeepSeek Harness | `0.1.2-rc.1` | Profile host and plugin manager |
|
|
54
54
|
| pnpm | `>=11.7.0,<12.0.0` | Package manager used by the DSH plugin command |
|
|
55
|
-
| `@softspark/dsh-codex` | `1.
|
|
56
|
-
| `@softspark/dsh-orchestrator` | `
|
|
55
|
+
| `@softspark/dsh-codex` | `1.5.0` | Codex parent provider through local `codex app-server` |
|
|
56
|
+
| `@softspark/dsh-orchestrator` | `2.0.0` | Claude Code and GitHub Copilot Gemini delegation bundle plus released preset |
|
|
57
|
+
| Claude Agent SDK | `0.3.263` | Exact profile override for the DSH Claude provider's bundled CLI |
|
|
57
58
|
|
|
58
59
|
Install and update use exact package arguments with `--save-exact`. Arbitrary DSH prereleases and unpinned SoftSpark packages are outside this contract.
|
|
59
60
|
|
|
61
|
+
Install and update also configure the exact profile selector
|
|
62
|
+
`@deepseek-ai/dsh-subagent-claude-code@0.1.2-rc.1>@anthropic-ai/claude-agent-sdk`
|
|
63
|
+
to `0.3.263`. DSH's original SDK `0.3.241` embeds Claude Code `2.1.241`, which
|
|
64
|
+
current models reject even when the standalone Claude command is up to date.
|
|
65
|
+
The override is applied through pnpm's JSON configuration API. Unrelated
|
|
66
|
+
settings and overrides are preserved; an incompatible SDK override or an
|
|
67
|
+
explicit non-hoisted package layout fails with guidance before modification.
|
|
68
|
+
The installed SDK's actual package metadata is checked before state is committed.
|
|
69
|
+
|
|
70
|
+
Upgrade the DSH runtime to `0.1.2-rc.1` before running this release's profile
|
|
71
|
+
update. Ownership records for the earlier exact package pair remain valid and
|
|
72
|
+
are migrated by `ai-toolkit dsh update`. On failure, rollback uses the versions
|
|
73
|
+
recorded before the operation. The optional `dsh-file-preview` and
|
|
74
|
+
`dsh-process-console` UI bundles are separate profile additions; their `2.0.0`
|
|
75
|
+
line targets the new DSH client APIs, and the toolkit preserves them as unrelated
|
|
76
|
+
dependencies.
|
|
77
|
+
|
|
60
78
|
The reviewed DSH tag declares `pnpm@11.7.0`. The isolated cold-install environment used Corepack pnpm `11.24.0`, so the lifecycle accepts stable pnpm releases from `11.7.0` through the end of major 11. Before it creates the lifecycle lock or changes a profile, it resolves exact DSH and pnpm command paths from the minimal child `PATH`, records their command and resolved-file identities, and runs their version probes with a five-second bound. Missing, nonzero, timed-out, malformed, or unsupported pnpm probes fail with no package, preset, state, or lifecycle artifact.
|
|
61
79
|
|
|
62
80
|
## Subscription and Authentication Boundaries
|
|
@@ -111,6 +129,17 @@ The DSH record stores the canonical DSH home, profile, exact package versions, p
|
|
|
111
129
|
|
|
112
130
|
The published npm packages own their installed code. The canonical preset source is `@softspark/dsh-orchestrator/agent-presets/softspark-orchestrator` inside the exact installed package. ai-toolkit copies and verifies that tree. It does not reconstruct the preset.
|
|
113
131
|
|
|
132
|
+
Missing profile initialization files are created exclusively under pinned
|
|
133
|
+
directories using the qualified DSH profile schema before invoking the external
|
|
134
|
+
configuration command. A file appearing concurrently is never adopted as owned,
|
|
135
|
+
even when its bytes match. The transaction snapshots `pnpm-workspace.yaml` bytes, mode and file identity in
|
|
136
|
+
addition to package state. Ordinary failures restore that prestate through the
|
|
137
|
+
same guarded file restoration used for the profile manifest. Default profile
|
|
138
|
+
files created during initialization are removed only while their recorded
|
|
139
|
+
identities still match. Unexpected settings changes or ambiguous failed
|
|
140
|
+
external writes remain preserved behind a recovery marker. Configuration
|
|
141
|
+
contents are never copied into lifecycle state, receipts, or error messages.
|
|
142
|
+
|
|
114
143
|
Mutations first take a nonblocking exclusive POSIX `flock` on the already pinned `DSH_HOME` directory descriptor, then claim the bounded canonical lifecycle lock and use the shared state lock with compare-and-swap publication. Directory locking is independent of the replaceable lock filename. It remains held across sentinel scans, package and preset mutation, normal canonical-lock release, or recovery-sentinel creation plus file and directory `fsync`. A competing lifecycle must acquire the same directory lock before it can scan recovery state or claim the canonical name. The immutable prerequisite record is revalidated after lock acquisition and before every package mutation or package rollback. A replaced or removed executable, or a new earlier `pnpm` PATH shadow, blocks the command. The verified pnpm command directory is placed first in the child PATH so DSH's literal `pnpm` lookup resolves to the probed command. Install, update, and uninstall verify the profile manifest, package trees, preset identity, and unrelated dependencies before and after each external package-manager command. Rollback restores the immutable pre-operation target. It does not reinterpret concurrent bytes as owned data.
|
|
115
144
|
|
|
116
145
|
Each DSH plugin add, update, remove, or rollback command has a 300-second process bound, separate from the short prerequisite probe. This bound accommodates cold package resolution without promising registry or network latency. Every mutation starts DSH in a dedicated POSIX session and process group. A timeout or interruption signals the complete group, escalates from `SIGTERM` to `SIGKILL` when needed, and waits for confirmed group exit before rollback. If exit cannot be confirmed, package rollback is blocked and deterministic inspection steps are reported. Child stdout and stderr remain suppressed from user-facing errors.
|
|
@@ -144,8 +173,17 @@ The first native target also excludes DSH hook bridging, MCP bridging, arbitrary
|
|
|
144
173
|
|
|
145
174
|
`ai-toolkit dsh doctor` is read-only. It reports the DSH runtime version, pnpm availability and version, package pins, package-tree and preset ownership, state consistency, lifecycle lock recovery artifacts, staging paths, and recovery markers. A recovery marker keeps `Recovery needed: yes` visible until the operator resolves the named paths.
|
|
146
175
|
|
|
176
|
+
Doctor also checks the required SDK override and installed SDK version. It
|
|
177
|
+
queries pnpm directly only when the profile directory exists. It never uses
|
|
178
|
+
`dsh plugin` for inspection, because that command initializes missing profiles.
|
|
179
|
+
|
|
147
180
|
`ai-toolkit dsh uninstall --yes` removes only the recorded SoftSpark packages, preset, and profile state. Drift or ownership ambiguity stops removal. Unrelated profile dependencies, patch files, presets, and state keys remain unchanged.
|
|
148
181
|
|
|
182
|
+
Successful uninstall retains the scoped SDK compatibility setting and the
|
|
183
|
+
profile's pnpm layout. They are runtime prerequisites for a later reinstall,
|
|
184
|
+
not ownership of the user's entire profile. Failed operations restore their
|
|
185
|
+
pre-operation configuration unless concurrent edits make that unsafe.
|
|
186
|
+
|
|
149
187
|
## Verification
|
|
150
188
|
|
|
151
189
|
Run the static and isolated checks without modifying a regular DSH profile:
|
|
@@ -163,11 +201,45 @@ ai-toolkit dsh doctor --profile web
|
|
|
163
201
|
ai-toolkit dsh uninstall --profile web --dry-run --yes
|
|
164
202
|
```
|
|
165
203
|
|
|
166
|
-
|
|
204
|
+
### Historical qualification, 2026-09-01
|
|
205
|
+
|
|
206
|
+
The earlier DSH `0.1.1-rc.2` package pair completed real-profile qualification
|
|
207
|
+
with a task-specific `DSH_HOME`, exact published package artifacts, and native
|
|
208
|
+
vendor logins. The pre-tag candidate and registry package produced successful
|
|
209
|
+
child and parent markers through `subagent_claude_code` and
|
|
210
|
+
`subagent_gemini_copilot`. No provider API key was supplied or handled; the
|
|
211
|
+
isolated processes stopped and the unrelated profile fixture remained intact.
|
|
212
|
+
|
|
213
|
+
### DSH 0.1.2-rc.1 qualification
|
|
214
|
+
|
|
215
|
+
On 2026-09-06, the installed 4.33.0 candidate completed install, doctor,
|
|
216
|
+
update, doctor, a controlled second-package failure with real pnpm rollback,
|
|
217
|
+
doctor and uninstall against the published Codex 1.5.0/orchestrator 2.0.0
|
|
218
|
+
pair. Rollback preserved the manifest, pnpm settings, ownership state and
|
|
219
|
+
unrelated preset byte for byte. Doctor reported the exact package versions,
|
|
220
|
+
Claude SDK 0.3.263 and no recovery requirement. Uninstall removed the managed
|
|
221
|
+
packages, preset and profile ownership while retaining the unrelated preset
|
|
222
|
+
and runtime SDK prerequisite. Both state roots were disposable; HOME stayed
|
|
223
|
+
unchanged.
|
|
224
|
+
|
|
225
|
+
The composed web host returned the Claude and Gemini child markers through
|
|
226
|
+
the Codex parent. Browser checks covered cancellation, restart, the native
|
|
227
|
+
child transcript and preservation of the parent session. The DSH package
|
|
228
|
+
verification records retain those runtime results and their separate exact
|
|
229
|
+
registry signature/provenance checks.
|
|
230
|
+
|
|
231
|
+
The toolkit candidate also passed 1,989 Bats and 354 Python tests. An
|
|
232
|
+
unmounted disposable container passed global install, status, doctor, local
|
|
233
|
+
installation for all editors, repeated installation, eject and the official
|
|
234
|
+
Claude 2.1.263 plugin validator. Exact published toolkit artifact results are
|
|
235
|
+
recorded on the 4.33.0 release page after publication.
|
|
167
236
|
|
|
168
237
|
## Preview and Upstream Drift
|
|
169
238
|
|
|
170
|
-
DeepSeek Harness
|
|
239
|
+
DeepSeek Harness is a developer preview with compatibility-breaking changes.
|
|
240
|
+
On 2026-09-06, npm `latest` pointed to `0.1.2-rc.1`. GitHub also listed
|
|
241
|
+
`0.1.3-alpha.1`, but that exact CLI version was absent from npm. It is outside
|
|
242
|
+
this lifecycle contract.
|
|
171
243
|
|
|
172
244
|
Use the registry doctor to detect documentation, capability-marker, and local version changes. A new upstream version requires source review, focused fixture updates, isolated real-profile qualification, and explicit pin changes before support moves.
|
|
173
245
|
|
|
@@ -175,9 +247,9 @@ Use the registry doctor to detect documentation, capability-marker, and local ve
|
|
|
175
247
|
|
|
176
248
|
- [DeepSeek Harness documentation](https://deepseek-harness.github.io/deepseek-harness/)
|
|
177
249
|
- [DeepSeek Harness releases](https://github.com/deepseek-ai/deepseek-harness/releases)
|
|
178
|
-
- [Reviewed DSH 0.1.
|
|
179
|
-
- [Reviewed DSH package-manager declaration](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.
|
|
180
|
-
- [Reviewed DSH CLI profile and plugin contract](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.
|
|
181
|
-
- [Reviewed DSH skill discovery contract](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.
|
|
250
|
+
- [Reviewed DSH 0.1.2-rc.1 release](https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.1.2-rc.1)
|
|
251
|
+
- [Reviewed DSH package-manager declaration](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.2-rc.1/package.json)
|
|
252
|
+
- [Reviewed DSH CLI profile and plugin contract](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.2-rc.1/apps/cli/reference/README.md)
|
|
253
|
+
- [Reviewed DSH skill discovery contract](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.2-rc.1/docs/subsystems/skills.md)
|
|
182
254
|
- [PATH: kb/reference/manifest-install.md]
|
|
183
255
|
- [PATH: kb/history/completed/dsh-native-install-target-plan.md]
|
package/llms-full.txt
CHANGED
|
@@ -8243,7 +8243,7 @@ title: "SOP: Release Verification"
|
|
|
8243
8243
|
category: procedures
|
|
8244
8244
|
service: ai-toolkit
|
|
8245
8245
|
tags: [sop, verification, release, smoke-test, install, update, qa, provenance, sarif, dsh]
|
|
8246
|
-
version: "1.8.
|
|
8246
|
+
version: "1.8.2"
|
|
8247
8247
|
created: "2026-04-08"
|
|
8248
8248
|
last_updated: "2026-09-06"
|
|
8249
8249
|
description: "End-to-end smoke test after installing or updating @softspark/ai-toolkit. Verifies CLI, native Codex and GitHub Copilot surfaces, explicit DSH lifecycle, Claude app export, doctor, validation, tests, eject, provenance, SARIF, and per-skill permissions."
|
|
@@ -8713,15 +8713,17 @@ app-native rules skill, bundled agents/skills, and plugin-relative Cowork hooks.
|
|
|
8713
8713
|
|
|
8714
8714
|
Run this phase whenever the release changes the `dsh` target, package pins, preset lifecycle, or DSH compatibility documentation. Use a new task-specific `DSH_HOME`; never replace `HOME` or reuse a regular profile.
|
|
8715
8715
|
|
|
8716
|
-
Prerequisites: DSH `0.1.
|
|
8716
|
+
Prerequisites: DSH `0.1.2-rc.1`, pnpm `>=11.7.0,<12.0.0`, Codex logged in through ChatGPT, Claude Code logged in natively, and GitHub Copilot CLI logged in natively. Do not supply provider API keys. The lifecycle automatically installs the scoped Claude Agent SDK `0.3.263` override and checks the actual provider and SDK metadata; no manual vendor configuration is needed.
|
|
8717
8717
|
|
|
8718
8718
|
```bash
|
|
8719
8719
|
DSH_SMOKE_ROOT="$(mktemp -d)"
|
|
8720
8720
|
export DSH_HOME="$DSH_SMOKE_ROOT/dsh-home"
|
|
8721
|
+
export AI_TOOLKIT_HOME="$DSH_SMOKE_ROOT/toolkit-state"
|
|
8722
|
+
mkdir -p "$DSH_HOME"
|
|
8721
8723
|
|
|
8722
8724
|
ai-toolkit dsh install --profile web
|
|
8723
8725
|
ai-toolkit dsh doctor --profile web
|
|
8724
|
-
dsh --profile web --host 127.0.0.1 --port 0 --no-open
|
|
8726
|
+
DSH_TELEMETRY_DISABLED=1 dsh --profile web --host 127.0.0.1 --port 0 --no-open
|
|
8725
8727
|
```
|
|
8726
8728
|
|
|
8727
8729
|
In a new `softspark-orchestrator` session, select the `codex` provider and run two standalone marker prompts:
|
|
@@ -8735,7 +8737,7 @@ Stop DSH, then remove only the managed profile artifacts:
|
|
|
8735
8737
|
ai-toolkit dsh uninstall --profile web --yes
|
|
8736
8738
|
```
|
|
8737
8739
|
|
|
8738
|
-
**Verify:** both tool results have `isError=false`, both turns end as `completed`, `doctor` reports no recovery requirement before uninstall, and an unrelated preset fixture remains unchanged. Preserve only redacted event sequence evidence; never attach credentials, auth files, or full private prompts.
|
|
8740
|
+
**Verify:** both tool results have `isError=false`, both turns end as `completed`, `doctor` reports `Claude SDK: compatible (0.3.263)` and no recovery requirement before uninstall, and an unrelated preset fixture remains unchanged. The task-specific `AI_TOOLKIT_HOME` keeps lifecycle state separate from the operator's installation; `HOME` remains unchanged. Preserve only redacted event sequence evidence; never attach credentials, auth files, or full private prompts.
|
|
8739
8741
|
|
|
8740
8742
|
---
|
|
8741
8743
|
|
|
@@ -12072,9 +12074,9 @@ title: "AI Toolkit - DSH Compatibility"
|
|
|
12072
12074
|
category: reference
|
|
12073
12075
|
service: ai-toolkit
|
|
12074
12076
|
tags: [dsh, deepseek-harness, subscriptions, lifecycle, compatibility]
|
|
12075
|
-
version: "1.
|
|
12077
|
+
version: "1.8.0"
|
|
12076
12078
|
created: "2026-08-31"
|
|
12077
|
-
last_updated: "2026-09-
|
|
12079
|
+
last_updated: "2026-09-06"
|
|
12078
12080
|
description: "Compatibility contract for project skills and the explicit SoftSpark package lifecycle in DeepSeek Harness."
|
|
12079
12081
|
---
|
|
12080
12082
|
|
|
@@ -12084,14 +12086,14 @@ description: "Compatibility contract for project skills and the explicit SoftSpa
|
|
|
12084
12086
|
|
|
12085
12087
|
ai-toolkit supports DeepSeek Harness as an explicit developer-preview target. The integration is maintained by SoftSpark as a community compatibility layer. DeepSeek AI has not endorsed it.
|
|
12086
12088
|
|
|
12087
|
-
The
|
|
12089
|
+
The 4.33.0 lifecycle targets DSH `0.1.2-rc.1`, with the exact package pair below. Other upstream prereleases require their own qualification. Historical marker roundtrips from 2026-09-01 used DSH `0.1.1-rc.2`; version-specific evidence is recorded under Qualification below.
|
|
12088
12090
|
|
|
12089
12091
|
## Project vs Profile Outputs
|
|
12090
12092
|
|
|
12091
12093
|
| Surface | Command | Managed output | Explicit non-output |
|
|
12092
12094
|
|---|---|---|---|
|
|
12093
12095
|
| Project install | `ai-toolkit install --local --editors dsh` | `CLAUDE.md`, `.claude/settings.local.json`, `.claude/constitution.md`, detected language rules, other generic local outputs, and the DSH-specific one-level `.agents/skills/<name>/SKILL.md` catalog with bundled resources | No `$DSH_HOME` writes, npm package changes, profile changes, preset changes, or credential reads |
|
|
12094
|
-
| DSH profile | `ai-toolkit dsh install --profile web` | Two exact npm dependencies
|
|
12096
|
+
| DSH profile | `ai-toolkit dsh install --profile web` | Two exact npm dependencies, the scoped Claude SDK override and missing profile initialization files, the released `softspark-orchestrator` preset, and ai-toolkit ownership state | No project files, provider login, API keys, unrelated plugins, or user presets |
|
|
12095
12097
|
|
|
12096
12098
|
DSH is excluded from `--editors all`, auto-detection, default profiles, and default editor selection. Naming `dsh` without `--local` is not a supported project install route.
|
|
12097
12099
|
|
|
@@ -12119,13 +12121,31 @@ The DSH profile defaults to `web` when `--profile` is omitted. `DSH_HOME` select
|
|
|
12119
12121
|
|
|
12120
12122
|
| Component | Reviewed version | Role |
|
|
12121
12123
|
|---|---:|---|
|
|
12122
|
-
| DeepSeek Harness | `0.1.
|
|
12124
|
+
| DeepSeek Harness | `0.1.2-rc.1` | Profile host and plugin manager |
|
|
12123
12125
|
| pnpm | `>=11.7.0,<12.0.0` | Package manager used by the DSH plugin command |
|
|
12124
|
-
| `@softspark/dsh-codex` | `1.
|
|
12125
|
-
| `@softspark/dsh-orchestrator` | `
|
|
12126
|
+
| `@softspark/dsh-codex` | `1.5.0` | Codex parent provider through local `codex app-server` |
|
|
12127
|
+
| `@softspark/dsh-orchestrator` | `2.0.0` | Claude Code and GitHub Copilot Gemini delegation bundle plus released preset |
|
|
12128
|
+
| Claude Agent SDK | `0.3.263` | Exact profile override for the DSH Claude provider's bundled CLI |
|
|
12126
12129
|
|
|
12127
12130
|
Install and update use exact package arguments with `--save-exact`. Arbitrary DSH prereleases and unpinned SoftSpark packages are outside this contract.
|
|
12128
12131
|
|
|
12132
|
+
Install and update also configure the exact profile selector
|
|
12133
|
+
`@deepseek-ai/dsh-subagent-claude-code@0.1.2-rc.1>@anthropic-ai/claude-agent-sdk`
|
|
12134
|
+
to `0.3.263`. DSH's original SDK `0.3.241` embeds Claude Code `2.1.241`, which
|
|
12135
|
+
current models reject even when the standalone Claude command is up to date.
|
|
12136
|
+
The override is applied through pnpm's JSON configuration API. Unrelated
|
|
12137
|
+
settings and overrides are preserved; an incompatible SDK override or an
|
|
12138
|
+
explicit non-hoisted package layout fails with guidance before modification.
|
|
12139
|
+
The installed SDK's actual package metadata is checked before state is committed.
|
|
12140
|
+
|
|
12141
|
+
Upgrade the DSH runtime to `0.1.2-rc.1` before running this release's profile
|
|
12142
|
+
update. Ownership records for the earlier exact package pair remain valid and
|
|
12143
|
+
are migrated by `ai-toolkit dsh update`. On failure, rollback uses the versions
|
|
12144
|
+
recorded before the operation. The optional `dsh-file-preview` and
|
|
12145
|
+
`dsh-process-console` UI bundles are separate profile additions; their `2.0.0`
|
|
12146
|
+
line targets the new DSH client APIs, and the toolkit preserves them as unrelated
|
|
12147
|
+
dependencies.
|
|
12148
|
+
|
|
12129
12149
|
The reviewed DSH tag declares `pnpm@11.7.0`. The isolated cold-install environment used Corepack pnpm `11.24.0`, so the lifecycle accepts stable pnpm releases from `11.7.0` through the end of major 11. Before it creates the lifecycle lock or changes a profile, it resolves exact DSH and pnpm command paths from the minimal child `PATH`, records their command and resolved-file identities, and runs their version probes with a five-second bound. Missing, nonzero, timed-out, malformed, or unsupported pnpm probes fail with no package, preset, state, or lifecycle artifact.
|
|
12130
12150
|
|
|
12131
12151
|
## Subscription and Authentication Boundaries
|
|
@@ -12180,6 +12200,17 @@ The DSH record stores the canonical DSH home, profile, exact package versions, p
|
|
|
12180
12200
|
|
|
12181
12201
|
The published npm packages own their installed code. The canonical preset source is `@softspark/dsh-orchestrator/agent-presets/softspark-orchestrator` inside the exact installed package. ai-toolkit copies and verifies that tree. It does not reconstruct the preset.
|
|
12182
12202
|
|
|
12203
|
+
Missing profile initialization files are created exclusively under pinned
|
|
12204
|
+
directories using the qualified DSH profile schema before invoking the external
|
|
12205
|
+
configuration command. A file appearing concurrently is never adopted as owned,
|
|
12206
|
+
even when its bytes match. The transaction snapshots `pnpm-workspace.yaml` bytes, mode and file identity in
|
|
12207
|
+
addition to package state. Ordinary failures restore that prestate through the
|
|
12208
|
+
same guarded file restoration used for the profile manifest. Default profile
|
|
12209
|
+
files created during initialization are removed only while their recorded
|
|
12210
|
+
identities still match. Unexpected settings changes or ambiguous failed
|
|
12211
|
+
external writes remain preserved behind a recovery marker. Configuration
|
|
12212
|
+
contents are never copied into lifecycle state, receipts, or error messages.
|
|
12213
|
+
|
|
12183
12214
|
Mutations first take a nonblocking exclusive POSIX `flock` on the already pinned `DSH_HOME` directory descriptor, then claim the bounded canonical lifecycle lock and use the shared state lock with compare-and-swap publication. Directory locking is independent of the replaceable lock filename. It remains held across sentinel scans, package and preset mutation, normal canonical-lock release, or recovery-sentinel creation plus file and directory `fsync`. A competing lifecycle must acquire the same directory lock before it can scan recovery state or claim the canonical name. The immutable prerequisite record is revalidated after lock acquisition and before every package mutation or package rollback. A replaced or removed executable, or a new earlier `pnpm` PATH shadow, blocks the command. The verified pnpm command directory is placed first in the child PATH so DSH's literal `pnpm` lookup resolves to the probed command. Install, update, and uninstall verify the profile manifest, package trees, preset identity, and unrelated dependencies before and after each external package-manager command. Rollback restores the immutable pre-operation target. It does not reinterpret concurrent bytes as owned data.
|
|
12184
12215
|
|
|
12185
12216
|
Each DSH plugin add, update, remove, or rollback command has a 300-second process bound, separate from the short prerequisite probe. This bound accommodates cold package resolution without promising registry or network latency. Every mutation starts DSH in a dedicated POSIX session and process group. A timeout or interruption signals the complete group, escalates from `SIGTERM` to `SIGKILL` when needed, and waits for confirmed group exit before rollback. If exit cannot be confirmed, package rollback is blocked and deterministic inspection steps are reported. Child stdout and stderr remain suppressed from user-facing errors.
|
|
@@ -12213,8 +12244,17 @@ The first native target also excludes DSH hook bridging, MCP bridging, arbitrary
|
|
|
12213
12244
|
|
|
12214
12245
|
`ai-toolkit dsh doctor` is read-only. It reports the DSH runtime version, pnpm availability and version, package pins, package-tree and preset ownership, state consistency, lifecycle lock recovery artifacts, staging paths, and recovery markers. A recovery marker keeps `Recovery needed: yes` visible until the operator resolves the named paths.
|
|
12215
12246
|
|
|
12247
|
+
Doctor also checks the required SDK override and installed SDK version. It
|
|
12248
|
+
queries pnpm directly only when the profile directory exists. It never uses
|
|
12249
|
+
`dsh plugin` for inspection, because that command initializes missing profiles.
|
|
12250
|
+
|
|
12216
12251
|
`ai-toolkit dsh uninstall --yes` removes only the recorded SoftSpark packages, preset, and profile state. Drift or ownership ambiguity stops removal. Unrelated profile dependencies, patch files, presets, and state keys remain unchanged.
|
|
12217
12252
|
|
|
12253
|
+
Successful uninstall retains the scoped SDK compatibility setting and the
|
|
12254
|
+
profile's pnpm layout. They are runtime prerequisites for a later reinstall,
|
|
12255
|
+
not ownership of the user's entire profile. Failed operations restore their
|
|
12256
|
+
pre-operation configuration unless concurrent edits make that unsafe.
|
|
12257
|
+
|
|
12218
12258
|
## Verification
|
|
12219
12259
|
|
|
12220
12260
|
Run the static and isolated checks without modifying a regular DSH profile:
|
|
@@ -12232,11 +12272,45 @@ ai-toolkit dsh doctor --profile web
|
|
|
12232
12272
|
ai-toolkit dsh uninstall --profile web --dry-run --yes
|
|
12233
12273
|
```
|
|
12234
12274
|
|
|
12235
|
-
|
|
12275
|
+
### Historical qualification, 2026-09-01
|
|
12276
|
+
|
|
12277
|
+
The earlier DSH `0.1.1-rc.2` package pair completed real-profile qualification
|
|
12278
|
+
with a task-specific `DSH_HOME`, exact published package artifacts, and native
|
|
12279
|
+
vendor logins. The pre-tag candidate and registry package produced successful
|
|
12280
|
+
child and parent markers through `subagent_claude_code` and
|
|
12281
|
+
`subagent_gemini_copilot`. No provider API key was supplied or handled; the
|
|
12282
|
+
isolated processes stopped and the unrelated profile fixture remained intact.
|
|
12283
|
+
|
|
12284
|
+
### DSH 0.1.2-rc.1 qualification
|
|
12285
|
+
|
|
12286
|
+
On 2026-09-06, the installed 4.33.0 candidate completed install, doctor,
|
|
12287
|
+
update, doctor, a controlled second-package failure with real pnpm rollback,
|
|
12288
|
+
doctor and uninstall against the published Codex 1.5.0/orchestrator 2.0.0
|
|
12289
|
+
pair. Rollback preserved the manifest, pnpm settings, ownership state and
|
|
12290
|
+
unrelated preset byte for byte. Doctor reported the exact package versions,
|
|
12291
|
+
Claude SDK 0.3.263 and no recovery requirement. Uninstall removed the managed
|
|
12292
|
+
packages, preset and profile ownership while retaining the unrelated preset
|
|
12293
|
+
and runtime SDK prerequisite. Both state roots were disposable; HOME stayed
|
|
12294
|
+
unchanged.
|
|
12295
|
+
|
|
12296
|
+
The composed web host returned the Claude and Gemini child markers through
|
|
12297
|
+
the Codex parent. Browser checks covered cancellation, restart, the native
|
|
12298
|
+
child transcript and preservation of the parent session. The DSH package
|
|
12299
|
+
verification records retain those runtime results and their separate exact
|
|
12300
|
+
registry signature/provenance checks.
|
|
12301
|
+
|
|
12302
|
+
The toolkit candidate also passed 1,989 Bats and 354 Python tests. An
|
|
12303
|
+
unmounted disposable container passed global install, status, doctor, local
|
|
12304
|
+
installation for all editors, repeated installation, eject and the official
|
|
12305
|
+
Claude 2.1.263 plugin validator. Exact published toolkit artifact results are
|
|
12306
|
+
recorded on the 4.33.0 release page after publication.
|
|
12236
12307
|
|
|
12237
12308
|
## Preview and Upstream Drift
|
|
12238
12309
|
|
|
12239
|
-
DeepSeek Harness
|
|
12310
|
+
DeepSeek Harness is a developer preview with compatibility-breaking changes.
|
|
12311
|
+
On 2026-09-06, npm `latest` pointed to `0.1.2-rc.1`. GitHub also listed
|
|
12312
|
+
`0.1.3-alpha.1`, but that exact CLI version was absent from npm. It is outside
|
|
12313
|
+
this lifecycle contract.
|
|
12240
12314
|
|
|
12241
12315
|
Use the registry doctor to detect documentation, capability-marker, and local version changes. A new upstream version requires source review, focused fixture updates, isolated real-profile qualification, and explicit pin changes before support moves.
|
|
12242
12316
|
|
|
@@ -12244,10 +12318,10 @@ Use the registry doctor to detect documentation, capability-marker, and local ve
|
|
|
12244
12318
|
|
|
12245
12319
|
- [DeepSeek Harness documentation](https://deepseek-harness.github.io/deepseek-harness/)
|
|
12246
12320
|
- [DeepSeek Harness releases](https://github.com/deepseek-ai/deepseek-harness/releases)
|
|
12247
|
-
- [Reviewed DSH 0.1.
|
|
12248
|
-
- [Reviewed DSH package-manager declaration](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.
|
|
12249
|
-
- [Reviewed DSH CLI profile and plugin contract](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.
|
|
12250
|
-
- [Reviewed DSH skill discovery contract](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.
|
|
12321
|
+
- [Reviewed DSH 0.1.2-rc.1 release](https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.1.2-rc.1)
|
|
12322
|
+
- [Reviewed DSH package-manager declaration](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.2-rc.1/package.json)
|
|
12323
|
+
- [Reviewed DSH CLI profile and plugin contract](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.2-rc.1/apps/cli/reference/README.md)
|
|
12324
|
+
- [Reviewed DSH skill discovery contract](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.2-rc.1/docs/subsystems/skills.md)
|
|
12251
12325
|
- [PATH: kb/reference/manifest-install.md]
|
|
12252
12326
|
- [PATH: kb/history/completed/dsh-native-install-target-plan.md]
|
|
12253
12327
|
|
package/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softspark/ai-toolkit",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.33.0",
|
|
4
4
|
"description": "AI coding toolkit: 114 skills, 44 agents, 14 developer-tool integrations, Claude Chat/Cowork export, safety constitution, SARIF audit, and signed npm provenance.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude",
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
"kind": "harness",
|
|
137
137
|
"status": "developer-preview",
|
|
138
138
|
"selection_policy": "explicit-only",
|
|
139
|
-
"reviewed_version": "0.1.
|
|
139
|
+
"reviewed_version": "0.1.2-rc.1",
|
|
140
140
|
"excluded_from": [
|
|
141
141
|
"editors-all",
|
|
142
142
|
"auto-detect",
|
|
@@ -145,9 +145,9 @@
|
|
|
145
145
|
"urls": {
|
|
146
146
|
"docs": "https://deepseek-harness.github.io/deepseek-harness/",
|
|
147
147
|
"release_notes": "https://github.com/deepseek-ai/deepseek-harness/releases",
|
|
148
|
-
"reviewed_release": "https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.1.
|
|
149
|
-
"reviewed_cli_docs": "https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.
|
|
150
|
-
"reviewed_skill_docs": "https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.
|
|
148
|
+
"reviewed_release": "https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.1.2-rc.1",
|
|
149
|
+
"reviewed_cli_docs": "https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.2-rc.1/apps/cli/reference/README.md",
|
|
150
|
+
"reviewed_skill_docs": "https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.2-rc.1/docs/subsystems/skills.md"
|
|
151
151
|
},
|
|
152
152
|
"config_paths": [
|
|
153
153
|
".agents/skills/*/SKILL.md",
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
"ai-toolkit dsh doctor --profile web",
|
|
168
168
|
"ai-toolkit dsh uninstall --profile web"
|
|
169
169
|
],
|
|
170
|
-
"status_note": "Community compatibility target maintained by SoftSpark. DeepSeek AI has not endorsed this integration. ai-toolkit reuses its native skill generator for project .agents/skills output and manages exact @softspark/dsh-codex@1.
|
|
170
|
+
"status_note": "Community compatibility target maintained by SoftSpark. DeepSeek AI has not endorsed this integration. ai-toolkit reuses its native skill generator for project .agents/skills output and manages exact @softspark/dsh-codex@1.5.0 and @softspark/dsh-orchestrator@2.0.0 packages only through explicit profile lifecycle commands. The lifecycle targets DSH 0.1.2-rc.1. Other prereleases require separate qualification before these pins change.",
|
|
171
171
|
"capability_markers": [
|
|
172
172
|
"Developer preview",
|
|
173
173
|
"profiles",
|