docks-kit 0.16.12 → 0.16.13
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/AGENTS.md +1 -1
- package/cli/docs/install.md +22 -11
- package/cli/src/generated/sotPayload.ts +1 -1
- package/package.json +3 -1
package/AGENTS.md
CHANGED
|
@@ -101,7 +101,7 @@ For per-tool SoT layouts (`SoT/.claude/`, `SoT/.codex/`, `SoT/.omp/`), see the m
|
|
|
101
101
|
|
|
102
102
|
- No secrets in SoT. The kit's SoT directories are committed; treat them as declarative config only.
|
|
103
103
|
- Treat external plugin marketplaces and installer downloads as untrusted input. Prefer download-then-run over `curl … | bash` so a truncated stream cannot execute a partial script.
|
|
104
|
-
- **Pin, never float.** Every kit-driven install of third-party software is pinned to a `SoT/toolchain.json` `verified` version — no `@latest` npm/bun installs (Shai-Hulud-class worm surface), no mutable action tags in workflows (commit SHAs only), installer scripts fetched from version tags where upstream supports it. New third-party install surface ⇒ manifest pin first. Details: the `toolchain-context` skill and `cli/docs/toolchain.md`.
|
|
104
|
+
- **Pin, never float.** Every kit-driven install of third-party software is pinned to a `SoT/toolchain.json` `verified` version — no `@latest` npm/bun installs (Shai-Hulud-class worm surface), no mutable action tags in workflows (commit SHAs only), installer scripts fetched from version tags where upstream supports it. New third-party install surface ⇒ manifest pin first. The rule also covers a transitive dependency whose declared range is a caret or tilde over a prerelease: `^4.0.0-rc.109` admits every later prerelease of the same version tuple, and a published install resolves that range fresh because `bun.lock` is not packaged, so a runtime pinned in `package.json` meets a newer sibling and the process fails at startup. The fix is an exact root pin plus both guards: the offline `cli/test/unit/dependencyPins.test.ts` and the clean-room `bun run smoke:package`. Details: the `toolchain-context` skill and `cli/docs/toolchain.md`.
|
|
105
105
|
- **One exemption: the kit's own package.** `install.sh` and `install.ps1` end with `bun add -g docks-kit@latest`, because a global installer that pinned itself would install a fixed old kit forever, and pinning it to `package.json` would request an unpublished version between the release-prep commit and the npm publish. The exemption covers `docks-kit` alone. Both installers still pin the Bun installer they download to the manifest's verified version, and `cli/test/unit/install.test.ts` asserts that pin in all four launcher and installer scripts.
|
|
106
106
|
## Testing
|
|
107
107
|
|
package/cli/docs/install.md
CHANGED
|
@@ -39,17 +39,13 @@ untrusted` reports zero untrusted dependencies with scripts. Neither
|
|
|
39
39
|
one package with an `install` script, `msgpackr-extract` by way of
|
|
40
40
|
`effect > msgpackr`, and Bun raises no trust prompt for it.
|
|
41
41
|
|
|
42
|
-
The install
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
range, which installs rc.111, and that release declares a peer requirement of
|
|
50
|
-
`effect@^4.0.0-rc.111`. The kit pins `effect@4.0.0-rc.109` deliberately, so this
|
|
51
|
-
newer transitive peer range cannot be satisfied. `docks-kit --version`, model
|
|
52
|
-
catalogs, toolchain checks, and real sync are unaffected.
|
|
42
|
+
The install prints no peer dependency warning. The root pins
|
|
43
|
+
`@effect/platform-node-shared` at `4.0.0-rc.109`, the same release as the
|
|
44
|
+
pinned `effect`, so a fresh registry resolution installs exactly one copy of
|
|
45
|
+
each and the transitive peer range `effect@^4.0.0-rc.109` is satisfied. Without
|
|
46
|
+
that root pin, `@effect/platform-bun` requests the shared package through a
|
|
47
|
+
caret range over a prerelease and a fresh install can pair a newer shared
|
|
48
|
+
package with the pinned `effect`.
|
|
53
49
|
|
|
54
50
|
## 3. curl installer (POSIX)
|
|
55
51
|
|
|
@@ -113,6 +109,21 @@ the launcher bypasses that now-stale binary and uses updated source until rebuil
|
|
|
113
109
|
Every `docks-kit sync` also does a best-effort behind-upstream check and
|
|
114
110
|
nudges when the checkout is stale (silent offline / detached / no git).
|
|
115
111
|
|
|
112
|
+
## Recovering a broken global install
|
|
113
|
+
|
|
114
|
+
A global install made before the `@effect/platform-node-shared` pin can fail at
|
|
115
|
+
startup with `Cannot find module 'effect/ByteSize'` or another missing
|
|
116
|
+
`effect/...` module. Repair it with a remove followed by a fresh add:
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
bun rm -g docks-kit && bun add -g docks-kit@latest
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
A plain reinstall over the broken tree is not enough. Bun keeps the previously
|
|
123
|
+
resolved copy nested under
|
|
124
|
+
`node_modules/@effect/platform-bun/node_modules/@effect/platform-node-shared`,
|
|
125
|
+
and that stale copy still loads. Verified on Bun 1.4.2.
|
|
126
|
+
|
|
116
127
|
## No-Bun recovery
|
|
117
128
|
|
|
118
129
|
No Bun or constrained sandbox: download the platform release binary from GitHub
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Generated by cli/scripts/generate-sot-payload.ts. DO NOT EDIT.
|
|
2
2
|
// Edit SoT/, notification.mp3, or package.json, then run: bun cli/scripts/generate-sot-payload.ts
|
|
3
3
|
|
|
4
|
-
export const GENERATED_PACKAGE_VERSION = "0.16.
|
|
4
|
+
export const GENERATED_PACKAGE_VERSION = "0.16.13"
|
|
5
5
|
|
|
6
6
|
export const GENERATED_PAYLOAD_TEXT = {
|
|
7
7
|
"SoT/.agents/skills.txt": "# Universal AI-agent skill manifest intentionally empty.\n# Global skill discovery is opt-in: add one <owner>/<repo> slug per line.\n# EngineNative ignores comments and blank lines.\n",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docks-kit",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.13",
|
|
4
4
|
"description": "Portable AI coding agent config kit — SoT sync engine + typed CLI for Claude Code, Codex, and universal agent skills",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"typecheck": "tsc --noEmit -p cli",
|
|
30
30
|
"build:binaries": "bash cli/build-binaries.sh",
|
|
31
31
|
"smoke:native": "bun cli/scripts/native-smoke.ts",
|
|
32
|
+
"smoke:package": "bun cli/scripts/package-smoke.ts",
|
|
32
33
|
"check:generated": "bun cli/scripts/generate-sot-payload.ts --check",
|
|
33
34
|
"prepack": "bun run check:generated",
|
|
34
35
|
"golden:dryrun": "bun cli/test/golden-dryrun.ts",
|
|
@@ -40,6 +41,7 @@
|
|
|
40
41
|
},
|
|
41
42
|
"dependencies": {
|
|
42
43
|
"@effect/platform-bun": "4.0.0-rc.109",
|
|
44
|
+
"@effect/platform-node-shared": "4.0.0-rc.109",
|
|
43
45
|
"effect": "4.0.0-rc.109",
|
|
44
46
|
"yaml": "2.9.0"
|
|
45
47
|
},
|