skill-family-harness-node 0.8.0 → 0.8.1
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 +21 -0
- package/CHANGELOG.zh-CN.md +21 -0
- package/README.md +13 -7
- package/README.zh-CN.md +13 -7
- package/package.json +2 -2
- package/release-notes/0.8.1.yaml +23 -0
- package/src/report-version.mjs +6 -0
- package/src/report.mjs +2 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
<!-- release-skill:changelog:start version=0.8.1 locale=en baseline=sha256:4cd9f23da3561184cef4ebadb7e758a22d377d069742bbe7c77166d6c1b3bd14 -->
|
|
4
|
+
## [0.8.1] - 2026-08-22
|
|
5
|
+
|
|
6
|
+
Harness now preserves its own report renderer version when a host bundles it into a single-file adapter.
|
|
7
|
+
|
|
8
|
+
### Changed
|
|
9
|
+
|
|
10
|
+
- Moves the package version to 0.8.1 together with Contracts and Engineering Kit.
|
|
11
|
+
- Keeps all 21 Harness capabilities, report contracts, and public exports unchanged.
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Replaces the report renderer's runtime import.meta.url package-manifest lookup with a static JSON import, so esbuild inlines the Harness version instead of resolving the host adapter's package metadata.
|
|
16
|
+
- Adds source and third-party single-file bundle regression tests for REPORT_RENDERER_VERSION.
|
|
17
|
+
|
|
18
|
+
### Upgrade Notes
|
|
19
|
+
|
|
20
|
+
Host adapters that bundle the report renderer must pin Harness 0.8.1. The report API and renderer identity remain unchanged, so no API migration is required from 0.8.0.
|
|
21
|
+
<!-- release-skill:changelog:end version=0.8.1 locale=en -->
|
|
22
|
+
|
|
23
|
+
|
|
3
24
|
<!-- release-skill:changelog:start version=0.8.0 locale=en baseline=sha256:85322b5fb8d4e3a2177fbe9e37427235256d530bf604d0b5cdb95cf2ad11cc50 -->
|
|
4
25
|
## [0.8.0] - 2026-08-21
|
|
5
26
|
|
package/CHANGELOG.zh-CN.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# 变更日志
|
|
2
2
|
|
|
3
|
+
<!-- release-skill:changelog:start version=0.8.1 locale=zh-CN baseline=sha256:904de77446dbc69ef7e70cdda0020fd98632a6e704754f6ed57e136764e3112e -->
|
|
4
|
+
## [0.8.1] - 2026-08-22
|
|
5
|
+
|
|
6
|
+
宿主把 Harness 打包进单文件适配器后,报告渲染器仍能保留 Harness 自身的包版本。
|
|
7
|
+
|
|
8
|
+
### 变更
|
|
9
|
+
|
|
10
|
+
- 包版本与 Contracts、Engineering Kit 一同升至 0.8.1。
|
|
11
|
+
- Harness 的 21 项能力、报告合同和公共导出均保持不变。
|
|
12
|
+
|
|
13
|
+
### 修复
|
|
14
|
+
|
|
15
|
+
- 用静态 JSON import 替换报告渲染器运行时基于 import.meta.url 的包清单查找,使 esbuild 内联 Harness 版本,不再读取宿主适配器的包元数据。
|
|
16
|
+
- 为 REPORT_RENDERER_VERSION 新增源码运行与第三方单文件 bundle 回归测试。
|
|
17
|
+
|
|
18
|
+
### 升级说明
|
|
19
|
+
|
|
20
|
+
把报告渲染器打包进宿主适配器的消费者必须精确锁定 Harness 0.8.1;报告 API 与渲染器身份保持不变,从 0.8.0 升级不需要迁移 API。
|
|
21
|
+
<!-- release-skill:changelog:end version=0.8.1 locale=zh-CN -->
|
|
22
|
+
|
|
23
|
+
|
|
3
24
|
<!-- release-skill:changelog:start version=0.8.0 locale=zh-CN baseline=sha256:83f13f0b9f624ee26865c5d1bb0295ecd8cbaa64c581f066b53012eadf1dc040 -->
|
|
4
25
|
## [0.8.0] - 2026-08-21
|
|
5
26
|
|
package/README.md
CHANGED
|
@@ -4,22 +4,28 @@
|
|
|
4
4
|
|
|
5
5
|
# skill-family-harness-node
|
|
6
6
|
|
|
7
|
-
<!-- release-skill:release-version: 0.8.
|
|
7
|
+
<!-- release-skill:release-version: 0.8.1 -->
|
|
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.8.
|
|
12
|
+
**0.8.1** (2026-08-22)
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Harness now preserves its own report renderer version when a host bundles it into a single-file adapter.
|
|
15
15
|
|
|
16
16
|
**Changed**
|
|
17
17
|
|
|
18
|
-
-
|
|
18
|
+
- Moves the package version to 0.8.1 together with Contracts and Engineering Kit.
|
|
19
|
+
- Keeps all 21 Harness capabilities, report contracts, and public exports unchanged.
|
|
20
|
+
|
|
21
|
+
**Fixed**
|
|
22
|
+
|
|
23
|
+
- Replaces the report renderer's runtime import.meta.url package-manifest lookup with a static JSON import, so esbuild inlines the Harness version instead of resolving the host adapter's package metadata.
|
|
24
|
+
- Adds source and third-party single-file bundle regression tests for REPORT_RENDERER_VERSION.
|
|
19
25
|
|
|
20
26
|
**Upgrade Notes**
|
|
21
27
|
|
|
22
|
-
|
|
28
|
+
Host adapters that bundle the report renderer must pin Harness 0.8.1. The report API and renderer identity remain unchanged, so no API migration is required from 0.8.0.
|
|
23
29
|
<!-- release-skill:managed:end id=latest-release -->
|
|
24
30
|
|
|
25
31
|
## Problem It Solves
|
|
@@ -33,14 +39,14 @@ The Harness consumes `skill-family-contracts` (a workspace dependency), reusing
|
|
|
33
39
|
## Installation and Minimal Example
|
|
34
40
|
|
|
35
41
|
```sh
|
|
36
|
-
npm install skill-family-harness-node@0.8.
|
|
42
|
+
npm install skill-family-harness-node@0.8.1
|
|
37
43
|
npm info skill-family-harness-node --help
|
|
38
44
|
```
|
|
39
45
|
|
|
40
46
|
The minimal example shows validating a contract document inside Node:
|
|
41
47
|
|
|
42
48
|
```js
|
|
43
|
-
// Run from an empty directory: npm install skill-family-harness-node@0.8.
|
|
49
|
+
// Run from an empty directory: npm install skill-family-harness-node@0.8.1
|
|
44
50
|
import { validateContractDocument } from "skill-family-harness-node";
|
|
45
51
|
|
|
46
52
|
const document = {
|
package/README.zh-CN.md
CHANGED
|
@@ -5,22 +5,28 @@
|
|
|
5
5
|
|
|
6
6
|
# skill-family-harness-node
|
|
7
7
|
|
|
8
|
-
<!-- release-skill:release-version: 0.8.
|
|
8
|
+
<!-- release-skill:release-version: 0.8.1 -->
|
|
9
9
|
|
|
10
10
|
Contracts 机制协议的**唯一默认 Node 实现**。这是一个薄运行时(thin runtime):只实现机制协议,不引入业务语义,不做第二语言实现。
|
|
11
11
|
|
|
12
12
|
<!-- release-skill:managed:start id=latest-release -->
|
|
13
|
-
**0.8.
|
|
13
|
+
**0.8.1** (2026-08-22)
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
宿主把 Harness 打包进单文件适配器后,报告渲染器仍能保留 Harness 自身的包版本。
|
|
16
16
|
|
|
17
17
|
**变更**
|
|
18
18
|
|
|
19
|
-
- Contracts
|
|
19
|
+
- 包版本与 Contracts、Engineering Kit 一同升至 0.8.1。
|
|
20
|
+
- Harness 的 21 项能力、报告合同和公共导出均保持不变。
|
|
21
|
+
|
|
22
|
+
**修复**
|
|
23
|
+
|
|
24
|
+
- 用静态 JSON import 替换报告渲染器运行时基于 import.meta.url 的包清单查找,使 esbuild 内联 Harness 版本,不再读取宿主适配器的包元数据。
|
|
25
|
+
- 为 REPORT_RENDERER_VERSION 新增源码运行与第三方单文件 bundle 回归测试。
|
|
20
26
|
|
|
21
27
|
**升级说明**
|
|
22
28
|
|
|
23
|
-
|
|
29
|
+
把报告渲染器打包进宿主适配器的消费者必须精确锁定 Harness 0.8.1;报告 API 与渲染器身份保持不变,从 0.8.0 升级不需要迁移 API。
|
|
24
30
|
<!-- release-skill:managed:end id=latest-release -->
|
|
25
31
|
|
|
26
32
|
## 解决的问题
|
|
@@ -34,14 +40,14 @@ Harness 消费 `skill-family-contracts`(工作区依赖),复用其方言
|
|
|
34
40
|
## 安装和最小示例
|
|
35
41
|
|
|
36
42
|
```sh
|
|
37
|
-
npm install skill-family-harness-node@0.8.
|
|
43
|
+
npm install skill-family-harness-node@0.8.1
|
|
38
44
|
npm info skill-family-harness-node --help
|
|
39
45
|
```
|
|
40
46
|
|
|
41
47
|
最小示例演示在 Node 内校验一份契约文档:
|
|
42
48
|
|
|
43
49
|
```js
|
|
44
|
-
// 从空目录运行:npm install skill-family-harness-node@0.8.
|
|
50
|
+
// 从空目录运行:npm install skill-family-harness-node@0.8.1
|
|
45
51
|
import { validateContractDocument } from "skill-family-harness-node";
|
|
46
52
|
|
|
47
53
|
const document = {
|
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.8.
|
|
13
|
+
"skill-family-contracts": "0.8.1",
|
|
14
14
|
"yaml": "2.9.0"
|
|
15
15
|
},
|
|
16
16
|
"description": "Thin Node.js mechanism runtime for Skill Family engineering contracts.",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"url": "https://github.com/ifoohoo/skill-family-harness-node.git"
|
|
46
46
|
},
|
|
47
47
|
"type": "module",
|
|
48
|
-
"version": "0.8.
|
|
48
|
+
"version": "0.8.1",
|
|
49
49
|
"scripts": {
|
|
50
50
|
"check": "node --test",
|
|
51
51
|
"test": "node --test"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
version: 0.8.1
|
|
2
|
+
date: 2026-08-22
|
|
3
|
+
locales:
|
|
4
|
+
en:
|
|
5
|
+
summary: Harness now preserves its own report renderer version when a host bundles it into a single-file adapter.
|
|
6
|
+
changes:
|
|
7
|
+
fixed:
|
|
8
|
+
- Replaces the report renderer's runtime import.meta.url package-manifest lookup with a static JSON import, so esbuild inlines the Harness version instead of resolving the host adapter's package metadata.
|
|
9
|
+
- Adds source and third-party single-file bundle regression tests for REPORT_RENDERER_VERSION.
|
|
10
|
+
changed:
|
|
11
|
+
- Moves the package version to 0.8.1 together with Contracts and Engineering Kit.
|
|
12
|
+
- Keeps all 21 Harness capabilities, report contracts, and public exports unchanged.
|
|
13
|
+
upgradeNotes: Host adapters that bundle the report renderer must pin Harness 0.8.1. The report API and renderer identity remain unchanged, so no API migration is required from 0.8.0.
|
|
14
|
+
zh-CN:
|
|
15
|
+
summary: 宿主把 Harness 打包进单文件适配器后,报告渲染器仍能保留 Harness 自身的包版本。
|
|
16
|
+
changes:
|
|
17
|
+
fixed:
|
|
18
|
+
- 用静态 JSON import 替换报告渲染器运行时基于 import.meta.url 的包清单查找,使 esbuild 内联 Harness 版本,不再读取宿主适配器的包元数据。
|
|
19
|
+
- 为 REPORT_RENDERER_VERSION 新增源码运行与第三方单文件 bundle 回归测试。
|
|
20
|
+
changed:
|
|
21
|
+
- 包版本与 Contracts、Engineering Kit 一同升至 0.8.1。
|
|
22
|
+
- Harness 的 21 项能力、报告合同和公共导出均保持不变。
|
|
23
|
+
upgradeNotes: 把报告渲染器打包进宿主适配器的消费者必须精确锁定 Harness 0.8.1;报告 API 与渲染器身份保持不变,从 0.8.0 升级不需要迁移 API。
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import harnessPackage from "../package.json" with { type: "json" };
|
|
2
|
+
|
|
3
|
+
// The Harness package manifest is the report renderer version authority.
|
|
4
|
+
// Bundlers inline this static JSON import, so a single-file host adapter keeps
|
|
5
|
+
// the Harness version instead of resolving package.json beside the host file.
|
|
6
|
+
export const REPORT_RENDERER_VERSION = harnessPackage.version;
|
package/src/report.mjs
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { readFileSync } from "node:fs";
|
|
2
1
|
import {
|
|
3
2
|
canonicalJson,
|
|
4
3
|
digestDocument,
|
|
@@ -7,6 +6,7 @@ import {
|
|
|
7
6
|
} from "skill-family-contracts";
|
|
8
7
|
import { digestBytes } from "./closure.mjs";
|
|
9
8
|
import { HARNESS_ERROR_KINDS, mechanismError } from "./errors.mjs";
|
|
9
|
+
import { REPORT_RENDERER_VERSION } from "./report-version.mjs";
|
|
10
10
|
import { validateContractDocument } from "./validation.mjs";
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -18,10 +18,8 @@ import { validateContractDocument } from "./validation.mjs";
|
|
|
18
18
|
* operation's outputs, derives an execution status, or fills missing facts.
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
-
const PACKAGE_META = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8"));
|
|
22
|
-
|
|
23
21
|
export const REPORT_RENDERER_NAME = "skill-family-harness-node/report";
|
|
24
|
-
export
|
|
22
|
+
export { REPORT_RENDERER_VERSION };
|
|
25
23
|
export const SUPPORTED_REPORT_LOCALES = Object.freeze(["zh-CN", "en-US"]);
|
|
26
24
|
export const EXECUTION_STATUSES = Object.freeze([
|
|
27
25
|
"SUCCEEDED",
|