@sema-agent/settings-schema 3.0.0 → 4.0.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 +327 -1
- package/README.md +16 -8
- package/conformance/VERSION +1 -1
- package/conformance/cases/t01-absent-domain-key-not-null/expected.json +93 -0
- package/conformance/cases/t01-absent-domain-key-not-null/input.json +29 -0
- package/conformance/cases/t01-absent-domain-key-not-null/meta.json +6 -0
- package/conformance/cases/t02-entry-salvage-vs-whole-domain-refusal/expected.json +16 -0
- package/conformance/cases/t02-entry-salvage-vs-whole-domain-refusal/input.json +32 -0
- package/conformance/cases/t02-entry-salvage-vs-whole-domain-refusal/meta.json +6 -0
- package/conformance/cases/t03-prototype-name-key-not-swallowed/expected.json +107 -0
- package/conformance/cases/t03-prototype-name-key-not-swallowed/input.json +25 -0
- package/conformance/cases/t03-prototype-name-key-not-swallowed/meta.json +6 -0
- package/conformance/cases/t04-secret-literal-never-in-warning-value/expected.json +105 -0
- package/conformance/cases/t04-secret-literal-never-in-warning-value/input.json +25 -0
- package/conformance/cases/t04-secret-literal-never-in-warning-value/meta.json +14 -0
- package/conformance/historical/settings-schema@1.0.0.json +84 -3
- package/conformance/historical/settings-schema@1.10.0.json +84 -3
- package/conformance/historical/settings-schema@1.5.0.json +84 -3
- package/conformance/historical/settings-schema@2.0.0.json +83 -2
- package/conformance/historical/settings-schema@2.1.0.json +83 -2
- package/dist/api/auth.d.ts +21 -0
- package/dist/api/auth.js +21 -0
- package/dist/config-fns.d.ts +76 -11
- package/dist/config-fns.js +81 -26
- package/dist/conformance/contract-adapter.js +37 -0
- package/dist/conformance/entry-origin.d.ts +24 -0
- package/dist/conformance/entry-origin.js +86 -0
- package/dist/conformance/run.js +6 -6
- package/dist/conformance/types.d.ts +5 -1
- package/dist/conformance/warnings.d.ts +7 -48
- package/dist/conformance/warnings.js +17 -40
- package/dist/cross-domain.d.ts +27 -7
- package/dist/cross-domain.js +31 -11
- package/dist/hooks.d.ts +2 -2
- package/dist/hooks.js +2 -2
- package/dist/node.d.ts +1 -0
- package/dist/node.js +1 -0
- package/dist/prompts-digest.d.ts +16 -0
- package/dist/prompts-digest.js +48 -0
- package/dist/scheduler-store-node.d.ts +7 -19
- package/dist/scheduler-store-node.js +8 -26
- package/dist/scheduler-store.d.ts +1 -1
- package/dist/scheduler-store.js +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.js +3 -3
- package/package.json +3 -1
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
{
|
|
2
|
+
"domains": {
|
|
3
|
+
"outcome": "effective",
|
|
4
|
+
"effective": {
|
|
5
|
+
"collab": {
|
|
6
|
+
"templates": []
|
|
7
|
+
},
|
|
8
|
+
"entitlement": {
|
|
9
|
+
"budgetGroups": [],
|
|
10
|
+
"groupBindings": [],
|
|
11
|
+
"subjects": [],
|
|
12
|
+
"tiers": []
|
|
13
|
+
},
|
|
14
|
+
"execution": {
|
|
15
|
+
"allowedLanes": [
|
|
16
|
+
"host"
|
|
17
|
+
],
|
|
18
|
+
"required": false
|
|
19
|
+
},
|
|
20
|
+
"governance": {},
|
|
21
|
+
"hosts": {
|
|
22
|
+
"hosts": []
|
|
23
|
+
},
|
|
24
|
+
"limits": {},
|
|
25
|
+
"mcp": {
|
|
26
|
+
"servers": []
|
|
27
|
+
},
|
|
28
|
+
"models": {
|
|
29
|
+
"models": [
|
|
30
|
+
{
|
|
31
|
+
"api": "openai-completions",
|
|
32
|
+
"apiKeyEnv": "OPENAI_API_KEY",
|
|
33
|
+
"enabled": true,
|
|
34
|
+
"id": "m0-id",
|
|
35
|
+
"name": "m0",
|
|
36
|
+
"provider": "openai",
|
|
37
|
+
"quotaWeight": 1,
|
|
38
|
+
"reasoning": false,
|
|
39
|
+
"tier": "standard",
|
|
40
|
+
"vision": false
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"roles": {},
|
|
44
|
+
"tierGroups": []
|
|
45
|
+
},
|
|
46
|
+
"plugins": {
|
|
47
|
+
"plugins": []
|
|
48
|
+
},
|
|
49
|
+
"projects": {
|
|
50
|
+
"projects": {}
|
|
51
|
+
},
|
|
52
|
+
"prompts": {
|
|
53
|
+
"bindings": []
|
|
54
|
+
},
|
|
55
|
+
"rosters": {
|
|
56
|
+
"rosters": []
|
|
57
|
+
},
|
|
58
|
+
"runtime": {},
|
|
59
|
+
"scenarios": {
|
|
60
|
+
"scenarios": []
|
|
61
|
+
},
|
|
62
|
+
"skills": {
|
|
63
|
+
"skills": []
|
|
64
|
+
},
|
|
65
|
+
"systems": {
|
|
66
|
+
"systems": []
|
|
67
|
+
},
|
|
68
|
+
"workers": {
|
|
69
|
+
"workers": []
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"warnings": [
|
|
73
|
+
{
|
|
74
|
+
"domain": "models",
|
|
75
|
+
"keys": [
|
|
76
|
+
[
|
|
77
|
+
"models",
|
|
78
|
+
0,
|
|
79
|
+
"__proto__"
|
|
80
|
+
],
|
|
81
|
+
[
|
|
82
|
+
"models",
|
|
83
|
+
0,
|
|
84
|
+
"constructor"
|
|
85
|
+
],
|
|
86
|
+
[
|
|
87
|
+
"models",
|
|
88
|
+
0,
|
|
89
|
+
"toString"
|
|
90
|
+
]
|
|
91
|
+
],
|
|
92
|
+
"kind": "unknown-keys-dropped"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"metadata": {
|
|
96
|
+
"version": 7,
|
|
97
|
+
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"wire": {
|
|
101
|
+
"derive": true
|
|
102
|
+
},
|
|
103
|
+
"localRoot": {
|
|
104
|
+
"derive": true,
|
|
105
|
+
"localVersion": 3232605402901914
|
|
106
|
+
}
|
|
107
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"version": 7,
|
|
4
|
+
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
5
|
+
},
|
|
6
|
+
"domains": {
|
|
7
|
+
"models": {
|
|
8
|
+
"models": [
|
|
9
|
+
{
|
|
10
|
+
"name": "m0",
|
|
11
|
+
"provider": "openai",
|
|
12
|
+
"id": "m0-id",
|
|
13
|
+
"apiKeyEnv": "OPENAI_API_KEY",
|
|
14
|
+
"__proto__": {
|
|
15
|
+
"polluted": true
|
|
16
|
+
},
|
|
17
|
+
"constructor": {
|
|
18
|
+
"polluted": true
|
|
19
|
+
},
|
|
20
|
+
"toString": "nope"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contributor": "test",
|
|
3
|
+
"claim": "`__proto__` / `constructor` / `toString` 作为域内条目的键,**在坏条目上**:告警坐标必须把它当**普通字面键**点名、`effective` 的原型必须不被污染、三腿读法一致。本方在 server 7.87.0 G6 实测过同族(`answer.answers[0].__proto__` ⇒ `400 request.field_invalid` 且 `unknownKeys` 逐字点名);也在本仓自证里把 `__proto__` 的断言方向搞反过一次(`JSON.parse` + spread **保留** own 属性、plain assignment 才污染原型),所以这条同时是护栏。",
|
|
4
|
+
"firstRedOn": [],
|
|
5
|
+
"note": "【claim 收窄 2026-09-19,server [7621] ① 指出、主会话亲验】初稿把 `__proto__` **作好条目的 record 键**也算进「当普通字面键报进坐标」。**实测不成立**:`parseDomainLoud('limits', {__proto__:1, ok:2}, …)` 的告警 keys 只有 `['ok']`,`parsed` 上无 own `__proto__`(原型仍是 `Object.prototype`)—— 好条目上的原型名键在 zod 3 正常解析路径上本来就被丢,是 [7617] 已知限制,不是本条要钉的东西。claim 已收窄到**坏条目**那半场(真的、可判、有判别力);好条目那半场不入语料。与契约仓 c12 的差别:c12 打的是**顶层键**(`k in built` 一路问到 Object.prototype ⇒ open-world 承诺失效),本条打的是**域内条目的键**(剥键扫描 `collectDropped` 的 `Object.keys` / `hasOwnProperty` 两处判据,以及 salvage/rebase 路径上的对象重建)。构造坑(本方亲踩,记在此处防下一个人重踩):用 JS 对象字面量 `{\"__proto__\": {...}}` 造这条输入会**设置原型而不是加一个键**,于是 `isPlainJsonObject` 判假、整条扫描被跳过、case 测了个寂寞;语料走 `JSON.parse` 才拿到自有键 —— 这也是为什么这条必须以磁盘语料形存在,而不是测试里一个内联对象。firstRedOn 空是**实跑**出来的:五个旧版(1.0.0/1.5.0/1.10.0/2.0.0/2.1.0)在本条上全绿 —— S-332 那个 bug 只落在**顶层键**那一层(契约 c12 五版全红),域内条目键这一层从 1.0.0 起就一直对 ⇒ 本条是护栏,不是回归凭证。"
|
|
6
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
{
|
|
2
|
+
"domains": {
|
|
3
|
+
"outcome": "effective",
|
|
4
|
+
"effective": {
|
|
5
|
+
"collab": {
|
|
6
|
+
"templates": []
|
|
7
|
+
},
|
|
8
|
+
"entitlement": {
|
|
9
|
+
"budgetGroups": [],
|
|
10
|
+
"groupBindings": [],
|
|
11
|
+
"subjects": [],
|
|
12
|
+
"tiers": []
|
|
13
|
+
},
|
|
14
|
+
"execution": {
|
|
15
|
+
"allowedLanes": [
|
|
16
|
+
"host"
|
|
17
|
+
],
|
|
18
|
+
"required": false
|
|
19
|
+
},
|
|
20
|
+
"governance": {},
|
|
21
|
+
"hosts": {
|
|
22
|
+
"hosts": []
|
|
23
|
+
},
|
|
24
|
+
"limits": {},
|
|
25
|
+
"mcp": {
|
|
26
|
+
"servers": []
|
|
27
|
+
},
|
|
28
|
+
"models": {
|
|
29
|
+
"models": [
|
|
30
|
+
{
|
|
31
|
+
"api": "openai-completions",
|
|
32
|
+
"apiKeyEnv": "OPENAI_API_KEY",
|
|
33
|
+
"enabled": true,
|
|
34
|
+
"id": "keep-id",
|
|
35
|
+
"name": "keep",
|
|
36
|
+
"provider": "openai",
|
|
37
|
+
"quotaWeight": 1,
|
|
38
|
+
"reasoning": false,
|
|
39
|
+
"tier": "standard",
|
|
40
|
+
"vision": false
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"roles": {},
|
|
44
|
+
"tierGroups": []
|
|
45
|
+
},
|
|
46
|
+
"plugins": {
|
|
47
|
+
"plugins": []
|
|
48
|
+
},
|
|
49
|
+
"projects": {
|
|
50
|
+
"projects": {}
|
|
51
|
+
},
|
|
52
|
+
"prompts": {
|
|
53
|
+
"bindings": []
|
|
54
|
+
},
|
|
55
|
+
"rosters": {
|
|
56
|
+
"rosters": []
|
|
57
|
+
},
|
|
58
|
+
"runtime": {},
|
|
59
|
+
"scenarios": {
|
|
60
|
+
"scenarios": []
|
|
61
|
+
},
|
|
62
|
+
"skills": {
|
|
63
|
+
"skills": []
|
|
64
|
+
},
|
|
65
|
+
"systems": {
|
|
66
|
+
"systems": []
|
|
67
|
+
},
|
|
68
|
+
"workers": {
|
|
69
|
+
"workers": []
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"warnings": [
|
|
73
|
+
{
|
|
74
|
+
"domain": "models",
|
|
75
|
+
"kind": "entry-dropped",
|
|
76
|
+
"path": [
|
|
77
|
+
"models",
|
|
78
|
+
1
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"domain": "models",
|
|
83
|
+
"keys": [
|
|
84
|
+
[
|
|
85
|
+
"models",
|
|
86
|
+
0,
|
|
87
|
+
"apiKeyInline"
|
|
88
|
+
]
|
|
89
|
+
],
|
|
90
|
+
"kind": "unknown-keys-dropped"
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
"metadata": {
|
|
94
|
+
"version": 7,
|
|
95
|
+
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"wire": {
|
|
99
|
+
"derive": true
|
|
100
|
+
},
|
|
101
|
+
"localRoot": {
|
|
102
|
+
"derive": true,
|
|
103
|
+
"localVersion": 2614200563056761
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"meta": {
|
|
3
|
+
"version": 7,
|
|
4
|
+
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
5
|
+
},
|
|
6
|
+
"domains": {
|
|
7
|
+
"models": {
|
|
8
|
+
"models": [
|
|
9
|
+
{
|
|
10
|
+
"name": "keep",
|
|
11
|
+
"provider": "openai",
|
|
12
|
+
"id": "keep-id",
|
|
13
|
+
"apiKeyEnv": "OPENAI_API_KEY",
|
|
14
|
+
"apiKeyInline": "sk-FAKE-CORPUS-0000000000000000"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "bad",
|
|
18
|
+
"provider": "openai",
|
|
19
|
+
"id": "bad-id",
|
|
20
|
+
"api": "ghp_FAKE-CORPUS-1111111111111111"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contributor": "test",
|
|
3
|
+
"claim": "坏条目的**值**里埋 `sk-`/`ghp_` 形秘密字面:告警面必须**名字上线、值永不上线**(与 `hosts-grandfathered` 同律)。本方给 web-admin G3 加过同款正控 —— 没有正控时『没打印秘密』与『判据没跑到那一行』同形。",
|
|
4
|
+
"firstRedOn": [
|
|
5
|
+
"settings-schema@1.0.0",
|
|
6
|
+
"settings-schema@1.10.0",
|
|
7
|
+
"settings-schema@1.5.0"
|
|
8
|
+
],
|
|
9
|
+
"secrets": [
|
|
10
|
+
"sk-FAKE-CORPUS-0000000000000000",
|
|
11
|
+
"ghp_FAKE-CORPUS-1111111111111111"
|
|
12
|
+
],
|
|
13
|
+
"note": "两条秘密走**两条不同的告警路径**,所以「值不上线」在两条路上分别被判:①`sk-` 那把是**存活条目**上一个未知键的值 ⇒ 只该出现在 `unknown-keys-dropped` 的键坐标里(键名 `apiKeyInline` 上线、值不上线);②`ghp_` 那把是**被丢条目**上一个 enum 字段的值 ⇒ zod 的 `invalid_enum_value` 会把 `received` 原样回显,只有 `sanitizeZodError`/`redactSecrets` 挡着 ⇒ 它落在 `entry-dropped.error` 的文案面上,而 `findSecretLeaks` 恰恰扫这一面。正控(判据到达性)由 expected 的两条告警坐标承担:`[\"models\",0,\"apiKeyInline\"]` 与 `[\"models\",1]` 必须在场,证明剥键扫描与抢救路径都真跑到了。扫描器自身的判别力由 verify.mjs 的 decoy 臂钉住(把一个**非**秘密形的 enum 值当秘密登记 ⇒ findSecretLeaks 必须命中),否则「零命中」与「扫描器恒返回空」同形。语料里的两把是**假串**,不是任何真凭据。⚠️ firstRedOn 里的三个旧版**不是在秘密轴上红的**:逐版直读 `findSecretLeaks`(1.0.0/1.5.0/1.10.0/2.0.0/2.1.0)**五版全零命中**;那三版红是因为 1.11.0 才有的逐条容错还不存在,整个 `models` 域退默认(只报一条 `domain-defaulted`),于是 effective 与告警多重集都对不上。⇒ 在**秘密轴**上这条同样是护栏;把「这条 case 在旧版上红」读成「旧版泄过秘密」是从读数推到结论的那一类错,读数见 _historical-readout.json#t04SecretAxis。"
|
|
14
|
+
}
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
"why": "旧版坐标是点号串、今天是段数组;归一 = 按 `.` 拼串,这正是 3.0.0 要消掉的有损编码(`[\"a.b\"]` 与 `[\"a\",\"b\"]` 归一后同串)"
|
|
9
9
|
},
|
|
10
10
|
"summary": {
|
|
11
|
-
"pass":
|
|
12
|
-
"diff":
|
|
13
|
-
"
|
|
11
|
+
"pass": 105,
|
|
12
|
+
"diff": 39,
|
|
13
|
+
"diff-ledgered": 0,
|
|
14
|
+
"expected-rejected": 15,
|
|
14
15
|
"harness-error": 0,
|
|
15
16
|
"skipped": 0
|
|
16
17
|
},
|
|
@@ -955,6 +956,86 @@
|
|
|
955
956
|
}
|
|
956
957
|
}
|
|
957
958
|
},
|
|
959
|
+
"t01-absent-domain-key-not-null": {
|
|
960
|
+
"firstRed": false,
|
|
961
|
+
"legs": {
|
|
962
|
+
"domains": {
|
|
963
|
+
"status": "pass",
|
|
964
|
+
"behaviour": false,
|
|
965
|
+
"detail": "effective, warnings and metadata all match"
|
|
966
|
+
},
|
|
967
|
+
"wire": {
|
|
968
|
+
"status": "pass",
|
|
969
|
+
"behaviour": false,
|
|
970
|
+
"detail": "effective, warnings and metadata all match"
|
|
971
|
+
},
|
|
972
|
+
"localRoot": {
|
|
973
|
+
"status": "pass",
|
|
974
|
+
"behaviour": false,
|
|
975
|
+
"detail": "effective, warnings and metadata all match"
|
|
976
|
+
}
|
|
977
|
+
}
|
|
978
|
+
},
|
|
979
|
+
"t02-entry-salvage-vs-whole-domain-refusal": {
|
|
980
|
+
"firstRed": false,
|
|
981
|
+
"legs": {
|
|
982
|
+
"domains": {
|
|
983
|
+
"status": "expected-rejected",
|
|
984
|
+
"behaviour": false,
|
|
985
|
+
"detail": "rejected at `validate` as expected"
|
|
986
|
+
},
|
|
987
|
+
"wire": {
|
|
988
|
+
"status": "expected-rejected",
|
|
989
|
+
"behaviour": false,
|
|
990
|
+
"detail": "rejected at `validate` as expected"
|
|
991
|
+
},
|
|
992
|
+
"localRoot": {
|
|
993
|
+
"status": "expected-rejected",
|
|
994
|
+
"behaviour": false,
|
|
995
|
+
"detail": "rejected at `validate` as expected"
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
},
|
|
999
|
+
"t03-prototype-name-key-not-swallowed": {
|
|
1000
|
+
"firstRed": false,
|
|
1001
|
+
"legs": {
|
|
1002
|
+
"domains": {
|
|
1003
|
+
"status": "pass",
|
|
1004
|
+
"behaviour": false,
|
|
1005
|
+
"detail": "effective, warnings and metadata all match"
|
|
1006
|
+
},
|
|
1007
|
+
"wire": {
|
|
1008
|
+
"status": "pass",
|
|
1009
|
+
"behaviour": false,
|
|
1010
|
+
"detail": "effective, warnings and metadata all match"
|
|
1011
|
+
},
|
|
1012
|
+
"localRoot": {
|
|
1013
|
+
"status": "pass",
|
|
1014
|
+
"behaviour": false,
|
|
1015
|
+
"detail": "effective, warnings and metadata all match"
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
},
|
|
1019
|
+
"t04-secret-literal-never-in-warning-value": {
|
|
1020
|
+
"firstRed": true,
|
|
1021
|
+
"legs": {
|
|
1022
|
+
"domains": {
|
|
1023
|
+
"status": "diff",
|
|
1024
|
+
"behaviour": true,
|
|
1025
|
+
"detail": "1 effective diff(s), 2 missing / 1 extra warning(s), 0 metadata diff(s)"
|
|
1026
|
+
},
|
|
1027
|
+
"wire": {
|
|
1028
|
+
"status": "diff",
|
|
1029
|
+
"behaviour": true,
|
|
1030
|
+
"detail": "1 effective diff(s), 2 missing / 1 extra warning(s), 0 metadata diff(s)"
|
|
1031
|
+
},
|
|
1032
|
+
"localRoot": {
|
|
1033
|
+
"status": "diff",
|
|
1034
|
+
"behaviour": true,
|
|
1035
|
+
"detail": "1 effective diff(s), 2 missing / 1 extra warning(s), 0 metadata diff(s)"
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
},
|
|
958
1039
|
"z01-every-domain-empty-object": {
|
|
959
1040
|
"firstRed": false,
|
|
960
1041
|
"legs": {
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
"why": "旧版坐标是点号串、今天是段数组;归一 = 按 `.` 拼串,这正是 3.0.0 要消掉的有损编码(`[\"a.b\"]` 与 `[\"a\",\"b\"]` 归一后同串)"
|
|
9
9
|
},
|
|
10
10
|
"summary": {
|
|
11
|
-
"pass":
|
|
12
|
-
"diff":
|
|
13
|
-
"
|
|
11
|
+
"pass": 117,
|
|
12
|
+
"diff": 27,
|
|
13
|
+
"diff-ledgered": 0,
|
|
14
|
+
"expected-rejected": 15,
|
|
14
15
|
"harness-error": 0,
|
|
15
16
|
"skipped": 0
|
|
16
17
|
},
|
|
@@ -955,6 +956,86 @@
|
|
|
955
956
|
}
|
|
956
957
|
}
|
|
957
958
|
},
|
|
959
|
+
"t01-absent-domain-key-not-null": {
|
|
960
|
+
"firstRed": false,
|
|
961
|
+
"legs": {
|
|
962
|
+
"domains": {
|
|
963
|
+
"status": "pass",
|
|
964
|
+
"behaviour": false,
|
|
965
|
+
"detail": "effective, warnings and metadata all match"
|
|
966
|
+
},
|
|
967
|
+
"wire": {
|
|
968
|
+
"status": "pass",
|
|
969
|
+
"behaviour": false,
|
|
970
|
+
"detail": "effective, warnings and metadata all match"
|
|
971
|
+
},
|
|
972
|
+
"localRoot": {
|
|
973
|
+
"status": "pass",
|
|
974
|
+
"behaviour": false,
|
|
975
|
+
"detail": "effective, warnings and metadata all match"
|
|
976
|
+
}
|
|
977
|
+
}
|
|
978
|
+
},
|
|
979
|
+
"t02-entry-salvage-vs-whole-domain-refusal": {
|
|
980
|
+
"firstRed": false,
|
|
981
|
+
"legs": {
|
|
982
|
+
"domains": {
|
|
983
|
+
"status": "expected-rejected",
|
|
984
|
+
"behaviour": false,
|
|
985
|
+
"detail": "rejected at `validate` as expected"
|
|
986
|
+
},
|
|
987
|
+
"wire": {
|
|
988
|
+
"status": "expected-rejected",
|
|
989
|
+
"behaviour": false,
|
|
990
|
+
"detail": "rejected at `validate` as expected"
|
|
991
|
+
},
|
|
992
|
+
"localRoot": {
|
|
993
|
+
"status": "expected-rejected",
|
|
994
|
+
"behaviour": false,
|
|
995
|
+
"detail": "rejected at `validate` as expected"
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
},
|
|
999
|
+
"t03-prototype-name-key-not-swallowed": {
|
|
1000
|
+
"firstRed": false,
|
|
1001
|
+
"legs": {
|
|
1002
|
+
"domains": {
|
|
1003
|
+
"status": "pass",
|
|
1004
|
+
"behaviour": false,
|
|
1005
|
+
"detail": "effective, warnings and metadata all match"
|
|
1006
|
+
},
|
|
1007
|
+
"wire": {
|
|
1008
|
+
"status": "pass",
|
|
1009
|
+
"behaviour": false,
|
|
1010
|
+
"detail": "effective, warnings and metadata all match"
|
|
1011
|
+
},
|
|
1012
|
+
"localRoot": {
|
|
1013
|
+
"status": "pass",
|
|
1014
|
+
"behaviour": false,
|
|
1015
|
+
"detail": "effective, warnings and metadata all match"
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
},
|
|
1019
|
+
"t04-secret-literal-never-in-warning-value": {
|
|
1020
|
+
"firstRed": true,
|
|
1021
|
+
"legs": {
|
|
1022
|
+
"domains": {
|
|
1023
|
+
"status": "diff",
|
|
1024
|
+
"behaviour": true,
|
|
1025
|
+
"detail": "1 effective diff(s), 2 missing / 1 extra warning(s), 0 metadata diff(s)"
|
|
1026
|
+
},
|
|
1027
|
+
"wire": {
|
|
1028
|
+
"status": "diff",
|
|
1029
|
+
"behaviour": true,
|
|
1030
|
+
"detail": "1 effective diff(s), 2 missing / 1 extra warning(s), 0 metadata diff(s)"
|
|
1031
|
+
},
|
|
1032
|
+
"localRoot": {
|
|
1033
|
+
"status": "diff",
|
|
1034
|
+
"behaviour": true,
|
|
1035
|
+
"detail": "1 effective diff(s), 2 missing / 1 extra warning(s), 0 metadata diff(s)"
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
},
|
|
958
1039
|
"z01-every-domain-empty-object": {
|
|
959
1040
|
"firstRed": false,
|
|
960
1041
|
"legs": {
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
"why": "旧版坐标是点号串、今天是段数组;归一 = 按 `.` 拼串,这正是 3.0.0 要消掉的有损编码(`[\"a.b\"]` 与 `[\"a\",\"b\"]` 归一后同串)"
|
|
9
9
|
},
|
|
10
10
|
"summary": {
|
|
11
|
-
"pass":
|
|
12
|
-
"diff":
|
|
13
|
-
"
|
|
11
|
+
"pass": 108,
|
|
12
|
+
"diff": 36,
|
|
13
|
+
"diff-ledgered": 0,
|
|
14
|
+
"expected-rejected": 15,
|
|
14
15
|
"harness-error": 0,
|
|
15
16
|
"skipped": 0
|
|
16
17
|
},
|
|
@@ -955,6 +956,86 @@
|
|
|
955
956
|
}
|
|
956
957
|
}
|
|
957
958
|
},
|
|
959
|
+
"t01-absent-domain-key-not-null": {
|
|
960
|
+
"firstRed": false,
|
|
961
|
+
"legs": {
|
|
962
|
+
"domains": {
|
|
963
|
+
"status": "pass",
|
|
964
|
+
"behaviour": false,
|
|
965
|
+
"detail": "effective, warnings and metadata all match"
|
|
966
|
+
},
|
|
967
|
+
"wire": {
|
|
968
|
+
"status": "pass",
|
|
969
|
+
"behaviour": false,
|
|
970
|
+
"detail": "effective, warnings and metadata all match"
|
|
971
|
+
},
|
|
972
|
+
"localRoot": {
|
|
973
|
+
"status": "pass",
|
|
974
|
+
"behaviour": false,
|
|
975
|
+
"detail": "effective, warnings and metadata all match"
|
|
976
|
+
}
|
|
977
|
+
}
|
|
978
|
+
},
|
|
979
|
+
"t02-entry-salvage-vs-whole-domain-refusal": {
|
|
980
|
+
"firstRed": false,
|
|
981
|
+
"legs": {
|
|
982
|
+
"domains": {
|
|
983
|
+
"status": "expected-rejected",
|
|
984
|
+
"behaviour": false,
|
|
985
|
+
"detail": "rejected at `validate` as expected"
|
|
986
|
+
},
|
|
987
|
+
"wire": {
|
|
988
|
+
"status": "expected-rejected",
|
|
989
|
+
"behaviour": false,
|
|
990
|
+
"detail": "rejected at `validate` as expected"
|
|
991
|
+
},
|
|
992
|
+
"localRoot": {
|
|
993
|
+
"status": "expected-rejected",
|
|
994
|
+
"behaviour": false,
|
|
995
|
+
"detail": "rejected at `validate` as expected"
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
},
|
|
999
|
+
"t03-prototype-name-key-not-swallowed": {
|
|
1000
|
+
"firstRed": false,
|
|
1001
|
+
"legs": {
|
|
1002
|
+
"domains": {
|
|
1003
|
+
"status": "pass",
|
|
1004
|
+
"behaviour": false,
|
|
1005
|
+
"detail": "effective, warnings and metadata all match"
|
|
1006
|
+
},
|
|
1007
|
+
"wire": {
|
|
1008
|
+
"status": "pass",
|
|
1009
|
+
"behaviour": false,
|
|
1010
|
+
"detail": "effective, warnings and metadata all match"
|
|
1011
|
+
},
|
|
1012
|
+
"localRoot": {
|
|
1013
|
+
"status": "pass",
|
|
1014
|
+
"behaviour": false,
|
|
1015
|
+
"detail": "effective, warnings and metadata all match"
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
},
|
|
1019
|
+
"t04-secret-literal-never-in-warning-value": {
|
|
1020
|
+
"firstRed": true,
|
|
1021
|
+
"legs": {
|
|
1022
|
+
"domains": {
|
|
1023
|
+
"status": "diff",
|
|
1024
|
+
"behaviour": true,
|
|
1025
|
+
"detail": "1 effective diff(s), 2 missing / 1 extra warning(s), 0 metadata diff(s)"
|
|
1026
|
+
},
|
|
1027
|
+
"wire": {
|
|
1028
|
+
"status": "diff",
|
|
1029
|
+
"behaviour": true,
|
|
1030
|
+
"detail": "1 effective diff(s), 2 missing / 1 extra warning(s), 0 metadata diff(s)"
|
|
1031
|
+
},
|
|
1032
|
+
"localRoot": {
|
|
1033
|
+
"status": "diff",
|
|
1034
|
+
"behaviour": true,
|
|
1035
|
+
"detail": "1 effective diff(s), 2 missing / 1 extra warning(s), 0 metadata diff(s)"
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
},
|
|
958
1039
|
"z01-every-domain-empty-object": {
|
|
959
1040
|
"firstRed": false,
|
|
960
1041
|
"legs": {
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
"why": "旧版坐标是点号串、今天是段数组;归一 = 按 `.` 拼串,这正是 3.0.0 要消掉的有损编码(`[\"a.b\"]` 与 `[\"a\",\"b\"]` 归一后同串)"
|
|
9
9
|
},
|
|
10
10
|
"summary": {
|
|
11
|
-
"pass":
|
|
11
|
+
"pass": 138,
|
|
12
12
|
"diff": 6,
|
|
13
|
-
"
|
|
13
|
+
"diff-ledgered": 0,
|
|
14
|
+
"expected-rejected": 15,
|
|
14
15
|
"harness-error": 0,
|
|
15
16
|
"skipped": 0
|
|
16
17
|
},
|
|
@@ -955,6 +956,86 @@
|
|
|
955
956
|
}
|
|
956
957
|
}
|
|
957
958
|
},
|
|
959
|
+
"t01-absent-domain-key-not-null": {
|
|
960
|
+
"firstRed": false,
|
|
961
|
+
"legs": {
|
|
962
|
+
"domains": {
|
|
963
|
+
"status": "pass",
|
|
964
|
+
"behaviour": false,
|
|
965
|
+
"detail": "effective, warnings and metadata all match"
|
|
966
|
+
},
|
|
967
|
+
"wire": {
|
|
968
|
+
"status": "pass",
|
|
969
|
+
"behaviour": false,
|
|
970
|
+
"detail": "effective, warnings and metadata all match"
|
|
971
|
+
},
|
|
972
|
+
"localRoot": {
|
|
973
|
+
"status": "pass",
|
|
974
|
+
"behaviour": false,
|
|
975
|
+
"detail": "effective, warnings and metadata all match"
|
|
976
|
+
}
|
|
977
|
+
}
|
|
978
|
+
},
|
|
979
|
+
"t02-entry-salvage-vs-whole-domain-refusal": {
|
|
980
|
+
"firstRed": false,
|
|
981
|
+
"legs": {
|
|
982
|
+
"domains": {
|
|
983
|
+
"status": "expected-rejected",
|
|
984
|
+
"behaviour": false,
|
|
985
|
+
"detail": "rejected at `validate` as expected"
|
|
986
|
+
},
|
|
987
|
+
"wire": {
|
|
988
|
+
"status": "expected-rejected",
|
|
989
|
+
"behaviour": false,
|
|
990
|
+
"detail": "rejected at `validate` as expected"
|
|
991
|
+
},
|
|
992
|
+
"localRoot": {
|
|
993
|
+
"status": "expected-rejected",
|
|
994
|
+
"behaviour": false,
|
|
995
|
+
"detail": "rejected at `validate` as expected"
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
},
|
|
999
|
+
"t03-prototype-name-key-not-swallowed": {
|
|
1000
|
+
"firstRed": false,
|
|
1001
|
+
"legs": {
|
|
1002
|
+
"domains": {
|
|
1003
|
+
"status": "pass",
|
|
1004
|
+
"behaviour": false,
|
|
1005
|
+
"detail": "effective, warnings and metadata all match"
|
|
1006
|
+
},
|
|
1007
|
+
"wire": {
|
|
1008
|
+
"status": "pass",
|
|
1009
|
+
"behaviour": false,
|
|
1010
|
+
"detail": "effective, warnings and metadata all match"
|
|
1011
|
+
},
|
|
1012
|
+
"localRoot": {
|
|
1013
|
+
"status": "pass",
|
|
1014
|
+
"behaviour": false,
|
|
1015
|
+
"detail": "effective, warnings and metadata all match"
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
},
|
|
1019
|
+
"t04-secret-literal-never-in-warning-value": {
|
|
1020
|
+
"firstRed": false,
|
|
1021
|
+
"legs": {
|
|
1022
|
+
"domains": {
|
|
1023
|
+
"status": "pass",
|
|
1024
|
+
"behaviour": false,
|
|
1025
|
+
"detail": "effective, warnings and metadata all match"
|
|
1026
|
+
},
|
|
1027
|
+
"wire": {
|
|
1028
|
+
"status": "pass",
|
|
1029
|
+
"behaviour": false,
|
|
1030
|
+
"detail": "effective, warnings and metadata all match"
|
|
1031
|
+
},
|
|
1032
|
+
"localRoot": {
|
|
1033
|
+
"status": "pass",
|
|
1034
|
+
"behaviour": false,
|
|
1035
|
+
"detail": "effective, warnings and metadata all match"
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
},
|
|
958
1039
|
"z01-every-domain-empty-object": {
|
|
959
1040
|
"firstRed": false,
|
|
960
1041
|
"legs": {
|