skill-family-harness-node 0.15.0 → 0.16.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 CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.16.0 locale=en baseline=sha256:27fd0f5623d5c93b3076af93231101956233f179dd0cab3d1c74dae891668ea8 -->
4
+ ## [0.16.0] - 2026-08-31
5
+
6
+ Harness 0.16.0 clarifies the existing rawSink boundary and keeps output redaction outside Foundation.
7
+
8
+ ### Changed
9
+
10
+ - Documents rawSink as a protected 0600 raw stdout/stderr sink in a fresh canonical temporary root, not a redaction API.
11
+ - Explicitly rejects rawStreamSink, transform sinks, generic sanitizers, second runners, and new stdout callbacks for a single-consumer redaction request.
12
+
13
+ ### Upgrade Notes
14
+
15
+ Consumers that require zero plaintext on the filesystem must own the threat model and implementation; this release adds no redaction or zero-plaintext guarantee.
16
+ <!-- release-skill:changelog:end version=0.16.0 locale=en -->
17
+
18
+
3
19
  <!-- release-skill:changelog:start version=0.15.0 locale=en baseline=sha256:8c81395a147ed1e995e21ae0074f66d434b87070ea33350fa3e97cbcb5f2fa8e -->
4
20
  ## [0.15.0] - 2026-08-29
5
21
 
@@ -1,5 +1,21 @@
1
1
  # 变更日志
2
2
 
3
+ <!-- release-skill:changelog:start version=0.16.0 locale=zh-CN baseline=sha256:31d28348db231171b1ea5754c514d7fe3cc336c1063026af8763d92553d225de -->
4
+ ## [0.16.0] - 2026-08-31
5
+
6
+ Harness 0.16.0 澄清现有 rawSink 边界,将输出脱敏留在 Foundation 之外。
7
+
8
+ ### 变更
9
+
10
+ - 明确 rawSink 只适用于在 fresh canonical 临时根中以 0600 保存 stdout/stderr 原始文件的场景,不是脱敏接口。
11
+ - 明确拒绝为单一消费者脱敏需求新增 rawStreamSink、transform sink、通用 sanitizer、第二个 runner 或新的 stdout 回调。
12
+
13
+ ### 升级说明
14
+
15
+ 需要硬性保证文件系统中不出现明文的消费者,应自行定义威胁模型并实现;本版本不增加脱敏或零明文保证。
16
+ <!-- release-skill:changelog:end version=0.16.0 locale=zh-CN -->
17
+
18
+
3
19
  <!-- release-skill:changelog:start version=0.15.0 locale=zh-CN baseline=sha256:945e9d06ed1cc8178ac13f3ec27ee753ec129d2f54ae59b59c6d8f4ec137d821 -->
4
20
  ## [0.15.0] - 2026-08-29
5
21
 
package/README.md CHANGED
@@ -4,27 +4,23 @@
4
4
 
5
5
  # skill-family-harness-node
6
6
 
7
- <!-- release-skill:release-version: 0.15.0 -->
7
+ <!-- release-skill:release-version: 0.16.0 -->
8
8
 
9
9
  The **single default Node implementation** of the Contracts mechanism protocol. This is a thin runtime: it only implements the mechanism protocol, introduces no business semantics, and does not provide a second-language implementation.
10
10
 
11
11
  <!-- release-skill:managed:start id=latest-release -->
12
- **0.15.0** (2026-08-29)
12
+ **0.16.0** (2026-08-31)
13
13
 
14
- Harness 0.15.0 adds executable identity observation and a best-effort Node tree record mode.
15
-
16
- **Added**
17
-
18
- - Records symlink target bytes without following links on a stable isolated tree.
19
- - Rechecks the original script after observing its interpreter and orders paths by Unicode code point.
14
+ Harness 0.16.0 clarifies the existing rawSink boundary and keeps output redaction outside Foundation.
20
15
 
21
16
  **Changed**
22
17
 
23
- - Keeps omitted and reject symlink policy on the 0.14 native path.
18
+ - Documents rawSink as a protected 0600 raw stdout/stderr sink in a fresh canonical temporary root, not a redaction API.
19
+ - Explicitly rejects rawStreamSink, transform sinks, generic sanitizers, second runners, and new stdout callbacks for a single-consumer redaction request.
24
20
 
25
21
  **Upgrade Notes**
26
22
 
27
- Record mode is candidate best effort; it does not provide a transaction snapshot or hostile concurrent-writer safety.
23
+ Consumers that require zero plaintext on the filesystem must own the threat model and implementation; this release adds no redaction or zero-plaintext guarantee.
28
24
  <!-- release-skill:managed:end id=latest-release -->
29
25
 
30
26
  ## Problem It Solves
@@ -37,7 +33,7 @@ The Harness consumes `skill-family-contracts` (a workspace dependency), reusing
37
33
 
38
34
  ## Installation and Minimal Example
39
35
 
40
- Version 0.15.0 is a local candidate. Build all three tarballs into one temporary directory and install those exact files for a candidate check:
36
+ Version 0.16.0 is a local candidate. Build all three tarballs into one temporary directory and install those exact files for a candidate check:
41
37
 
42
38
  ```sh
43
39
  pack_dir="$(mktemp -d)"
@@ -45,13 +41,13 @@ pack_dir="$(mktemp -d)"
45
41
  (cd packages/skill-family-harness-node && pnpm pack --pack-destination "$pack_dir")
46
42
  (cd packages/skill-family-engineering-kit && pnpm pack --pack-destination "$pack_dir")
47
43
  mkdir "$pack_dir/consumer" && (cd "$pack_dir/consumer" && npm init -y)
48
- (cd "$pack_dir/consumer" && npm install "$pack_dir/skill-family-contracts-0.15.0.tgz" "$pack_dir/skill-family-harness-node-0.15.0.tgz" "$pack_dir/skill-family-engineering-kit-0.15.0.tgz")
44
+ (cd "$pack_dir/consumer" && npm install "$pack_dir/skill-family-contracts-0.16.0.tgz" "$pack_dir/skill-family-harness-node-0.16.0.tgz" "$pack_dir/skill-family-engineering-kit-0.16.0.tgz")
49
45
  ```
50
46
 
51
47
  After publication, use the registry coordinate:
52
48
 
53
49
  ```sh
54
- npm install skill-family-harness-node@0.15.0
50
+ npm install skill-family-harness-node@0.16.0
55
51
  npm info skill-family-harness-node --help
56
52
  ```
57
53
 
@@ -253,4 +249,4 @@ When the actual threat includes malicious concurrency, return a minimal upstream
253
249
 
254
250
  The separate candidate `observeExecutableIdentity({ boundRoots, lookup, interpreterPolicy? })` provides a read-only point-in-time observation of only the caller-explicit roots and lookup paths, for an immediate re-observation before launch. When an `/usr/bin/env` shebang resolves an interpreter through explicit `pathEntries`, the observation preserves the interpreter candidate's complete symlink chain rather than collapsing it to the final file. It is not part of `host-adapter` and does not prove wrapper control flow, ambient `PATH`, fd-exec/kernel image, signature trust, cross-call caching, host support/lifecycle, or domain acceptance; the caller owns those semantics. The candidate entry alone does not qualify a host.
255
251
 
256
- Version 0.15.0 is a local source candidate and is not published. Consume the three locally verified tarballs; a version marker, unit test or successful install is not complete contract integration, migration completion, or real-host qualification.
252
+ Version 0.16.0 is a local source candidate and is not published. Consume the three locally verified tarballs; a version marker, unit test or successful install is not complete contract integration, migration completion, or real-host qualification.
package/README.zh-CN.md CHANGED
@@ -5,27 +5,23 @@
5
5
 
6
6
  # skill-family-harness-node
7
7
 
8
- <!-- release-skill:release-version: 0.15.0 -->
8
+ <!-- release-skill:release-version: 0.16.0 -->
9
9
 
10
10
  Contracts 机制协议的**唯一默认 Node 实现**。这是一个薄运行时(thin runtime):只实现机制协议,不引入业务语义,不做第二语言实现。
11
11
 
12
12
  <!-- release-skill:managed:start id=latest-release -->
13
- **0.15.0** (2026-08-29)
13
+ **0.16.0** (2026-08-31)
14
14
 
15
- Harness 0.15.0 增加可执行文件身份观察与 Node best-effort 记录模式。
16
-
17
- **新增**
18
-
19
- - 在稳定隔离树上记录 symlink 自身与原始 target bytes,不跟随链接。
20
- - 观察解释器后重查原脚本,并按 Unicode code point 排序路径。
15
+ Harness 0.16.0 澄清现有 rawSink 边界,将输出脱敏留在 Foundation 之外。
21
16
 
22
17
  **变更**
23
18
 
24
- - 省略或 reject symlinkPolicy 时继续使用 0.14 native 路径。
19
+ - 明确 rawSink 只适用于在 fresh canonical 临时根中以 0600 保存 stdout/stderr 原始文件的场景,不是脱敏接口。
20
+ - 明确拒绝为单一消费者脱敏需求新增 rawStreamSink、transform sink、通用 sanitizer、第二个 runner 或新的 stdout 回调。
25
21
 
26
22
  **升级说明**
27
23
 
28
- record 模式仍为 candidate best-effort,不提供事务快照或恶意并发写者安全保证。
24
+ 需要硬性保证文件系统中不出现明文的消费者,应自行定义威胁模型并实现;本版本不增加脱敏或零明文保证。
29
25
  <!-- release-skill:managed:end id=latest-release -->
30
26
 
31
27
  ## 解决的问题
@@ -38,7 +34,7 @@ Harness 消费 `skill-family-contracts`(工作区依赖),复用其方言
38
34
 
39
35
  ## 安装和最小示例
40
36
 
41
- 0.15.0 是本地候选版本。候选验证先把三个包分别打入同一个临时目录,再安装这三个精确 tarball:
37
+ 0.16.0 是本地候选版本。候选验证先把三个包分别打入同一个临时目录,再安装这三个精确 tarball:
42
38
 
43
39
  ```sh
44
40
  pack_dir="$(mktemp -d)"
@@ -46,13 +42,13 @@ pack_dir="$(mktemp -d)"
46
42
  (cd packages/skill-family-harness-node && pnpm pack --pack-destination "$pack_dir")
47
43
  (cd packages/skill-family-engineering-kit && pnpm pack --pack-destination "$pack_dir")
48
44
  mkdir "$pack_dir/consumer" && (cd "$pack_dir/consumer" && npm init -y)
49
- (cd "$pack_dir/consumer" && npm install "$pack_dir/skill-family-contracts-0.15.0.tgz" "$pack_dir/skill-family-harness-node-0.15.0.tgz" "$pack_dir/skill-family-engineering-kit-0.15.0.tgz")
45
+ (cd "$pack_dir/consumer" && npm install "$pack_dir/skill-family-contracts-0.16.0.tgz" "$pack_dir/skill-family-harness-node-0.16.0.tgz" "$pack_dir/skill-family-engineering-kit-0.16.0.tgz")
50
46
  ```
51
47
 
52
48
  发布后再使用 registry 坐标:
53
49
 
54
50
  ```sh
55
- npm install skill-family-harness-node@0.15.0
51
+ npm install skill-family-harness-node@0.16.0
56
52
  npm info skill-family-harness-node --help
57
53
  ```
58
54
 
@@ -253,4 +249,4 @@ v2 机制会重算每个 path-backed output 和 evidence Resource 的真实字
253
249
 
254
250
  另一个独立候选 `observeExecutableIdentity({ boundRoots, lookup, interpreterPolicy? })` 只对调用方显式提供的根和查找路径做逐次只读观察,供正式启动前紧邻重观察。`/usr/bin/env` shebang 通过显式 `pathEntries` 找到解释器时,结果保留解释器候选的完整 symlink chain,不折叠成最终文件。它不属于 `host-adapter`,也不证明 wrapper 控制流、ambient `PATH`、fd-exec/内核映像、签名信任、跨调用缓存、宿主支持/生命周期或领域接受;这些语义仍由调用方负责。候选入口存在不等于宿主已获资格。
255
251
 
256
- 0.15.0 为本地源码候选,尚未发布。消费本地已验证的三包 tarball;版本标记、单元测试或安装成功都不等于契约接入完成、迁移完成或真实宿主资格。
252
+ 0.16.0 为本地源码候选,尚未发布。消费本地已验证的三包 tarball;版本标记、单元测试或安装成功都不等于契约接入完成、迁移完成或真实宿主资格。
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "dependencies": {
11
11
  "@pnpm/lockfile.fs": "1001.1.35",
12
12
  "ipaddr.js": "2.5.0",
13
- "skill-family-contracts": "0.15.0",
13
+ "skill-family-contracts": "0.16.0",
14
14
  "yaml": "2.9.0"
15
15
  },
16
16
  "description": "Thin Node.js mechanism runtime for Skill Family engineering contracts.",
@@ -49,7 +49,7 @@
49
49
  "url": "https://github.com/ifoohoo/skill-family-harness-node.git"
50
50
  },
51
51
  "type": "module",
52
- "version": "0.15.0",
52
+ "version": "0.16.0",
53
53
  "scripts": {
54
54
  "check": "node --test",
55
55
  "test": "node --test"
@@ -0,0 +1,17 @@
1
+ version: 0.16.0
2
+ date: 2026-08-31
3
+ locales:
4
+ en:
5
+ summary: Harness 0.16.0 clarifies the existing rawSink boundary and keeps output redaction outside Foundation.
6
+ changes:
7
+ changed:
8
+ - Documents rawSink as a protected 0600 raw stdout/stderr sink in a fresh canonical temporary root, not a redaction API.
9
+ - Explicitly rejects rawStreamSink, transform sinks, generic sanitizers, second runners, and new stdout callbacks for a single-consumer redaction request.
10
+ upgradeNotes: Consumers that require zero plaintext on the filesystem must own the threat model and implementation; this release adds no redaction or zero-plaintext guarantee.
11
+ zh-CN:
12
+ summary: Harness 0.16.0 澄清现有 rawSink 边界,将输出脱敏留在 Foundation 之外。
13
+ changes:
14
+ changed:
15
+ - 明确 rawSink 只适用于在 fresh canonical 临时根中以 0600 保存 stdout/stderr 原始文件的场景,不是脱敏接口。
16
+ - 明确拒绝为单一消费者脱敏需求新增 rawStreamSink、transform sink、通用 sanitizer、第二个 runner 或新的 stdout 回调。
17
+ upgradeNotes: 需要硬性保证文件系统中不出现明文的消费者,应自行定义威胁模型并实现;本版本不增加脱敏或零明文保证。
package/src/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
  /** Exact Foundation release coordinate shared by the public Harness exports. */
2
- export const FOUNDATION_PACKAGE_VERSION = "0.15.0";
2
+ export const FOUNDATION_PACKAGE_VERSION = "0.16.0";