deadbyte-mcp 0.15.42 → 0.15.43
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/MANIFEST.SHA256 +15 -13
- package/PROVENANCE.json +26 -13
- package/README.txt +18 -18
- package/RELEASE.json +26 -14
- package/SBOM.cdx.json +2 -2
- package/TEST-MATRIX.json +19 -8
- package/bridge/package.json +1 -1
- package/controller/deadbyte-process-policy.json +4 -4
- package/package.json +4 -3
- package/scripts/gate-windows-r66-prepublish.ps1 +65 -0
- package/src/doctor-runtime-r58.mjs +3 -1
- package/src/version.mjs +1 -1
- package/test/r58-doctor-runtime.test.mjs +18 -0
- package/test/r59-tool-surface-compat.test.mjs +1 -1
- package/test/r65-release-contract.test.mjs +2 -1
- package/test/r66-release-contract.test.mjs +56 -0
package/MANIFEST.SHA256
CHANGED
|
@@ -42,7 +42,7 @@ daf9cfb371bee88cafbf5597eaa507fec504dbe0b0ddd40d0c3c2e02817f49e4 bin/deadbyte-p
|
|
|
42
42
|
b55d2c4490dfb875d40f29a69df2addc5d579991cb7d094674c04d369dfcfac3 bin/deadbyte-tunnel-host.exe
|
|
43
43
|
aca8efed09fc351898ec52d45e7cda778a99eb3e188316548e64037c2d586620 bin/deadbyte-tunnel-host.obj
|
|
44
44
|
f0ce7acb1e41325cef8b6789f95bd78b6a6107423773eace57a12b49faa55095 bin/WORKER-REGISTRY.txt
|
|
45
|
-
|
|
45
|
+
09dae02cbca0ebdd1c7288d8ad895d6fc0336994595ff29a9561c11a7bf72232 bridge/package.json
|
|
46
46
|
f99413d82f84c808f52d5b8696c190a9142dd08f517f5ec3e442f0769402d189 bridge/src/bridge-health-r59.mjs
|
|
47
47
|
fa0dcc4cde9c03e978c9f9dd24b62afa83f49bdada1f42ead544a9a17edd332f bridge/src/bridge.mjs
|
|
48
48
|
471f41c84c5b339cd81a708a4f36d4470e614946817ad2f9fca295dde2c83fb6 bridge/src/canonical-json-r60.mjs
|
|
@@ -59,7 +59,7 @@ e74d45bd9facf03c9a2a0ff52600252924deb804a87e4b5503f48662a2b45a3b conpty-input-o
|
|
|
59
59
|
8c70a873fd77e5b1579512ec218220182c2bddba63dc50c56ec70a7b449c52d9 controller/deadbyte-desktop-policy.json
|
|
60
60
|
5e8ef223b0dbc52173aaf044a075837eef8964ff0e7e16f83a595e0d17695625 controller/deadbyte-host-policy.json.example
|
|
61
61
|
6f0cc469f51444dd18211fa3346c826abeea4d2ec7a8945f0200dc5c622031ef controller/DEADBYTE-MCP.cmd
|
|
62
|
-
|
|
62
|
+
8184a1ad1d8ee5edb3c17286ba7eb59be7c7f536e4044ed09a022b6a19043933 controller/deadbyte-process-policy.json
|
|
63
63
|
d274b099a298c1033fea8f1e8849751693bbc0448778d619400acb82d4f53a3b controller/deadbyte-semantic-lsp-config.json
|
|
64
64
|
3023d2985f5b6e5cc7c0d08cb8b342b362c93dce7ebd4224635362194be40cf2 controller/README.TXT
|
|
65
65
|
101e613518c73c6aa31c725fe1b5f9a24c995dc9876b7b28e1f3e97ac9f8d362 DEADBYTE-MCP-R27-FINAL/R27-ADMIN-CLOSURE.json
|
|
@@ -1370,7 +1370,7 @@ db605a698f917c4006462596e6526fe6a9c6eff9b8409e8472fe545d4b70027c node_modules/z
|
|
|
1370
1370
|
f67a25ded944912bd4621b68df17c7c70a52aae117278c076c0aabbc32a3abba node_modules/zod/v4/mini/schemas.d.ts
|
|
1371
1371
|
51b3a7869df2d3a1bd98acb9d5b6a61bbccc7653d7a3d8fca7f0e0db7e84e284 node_modules/zod/v4/mini/schemas.js
|
|
1372
1372
|
3e3125b5a537a24c3632c1c5c09640ce7bcb3935901b127ad8ae3c37a27f133f node_modules/zod/v4/package.json
|
|
1373
|
-
|
|
1373
|
+
6240ab29446f876976d04f1d85f8af293dcf5092868531d04c3f2e783d250516 package.json
|
|
1374
1374
|
872947dffd89755b03558b217129f009dc9f4fd1ce55e93c602fc6ea97ba8b48 proof/commander-closure-20260927/CONTINUATION.json
|
|
1375
1375
|
2959980d295814aaa0df71fdb358d2cbfd01c1357ee36ef6b10c149875bdb262 proof/commander-closure-20260927/RESULT.json
|
|
1376
1376
|
2c2866309ca3a6fc8de5b03d445f1dcf0778474fa25cefb822b2ab729bc91c62 proof/commander-closure-20260927/SEARCH-CONTINUATION.json
|
|
@@ -1438,7 +1438,7 @@ d433aaea5cccd1e184775ac4d915f34e0b39c6c99916dddd009731ad5fd6443f proof/V073-WIN
|
|
|
1438
1438
|
bd0773a9e02e8ab11475c9cc5a7db29a8313233b7eab7f837922737e75ec5938 proof/VERIFY.txt
|
|
1439
1439
|
2c821808d4596965c577f40191daee224d3aea81989778c4af97f53a83b487db proof/WINDOWS-CONTAINED-STATUS.txt
|
|
1440
1440
|
f8bc839c7b4fcb0ea7b7e7ad9448847c3beae6f95f2eb4d407d1b284aaa4ff68 proof/WINDOWS-CONTAINMENT-STATUS.txt
|
|
1441
|
-
|
|
1441
|
+
89a37e7aa5b9531f67526bdfd291517235d15b32f0060de38bbdf4bf340f2181 PROVENANCE.json
|
|
1442
1442
|
27ca0f3c9ee3a1b6374a9c8dd98008decdd0c7659c7a569c70ad7b9734c74655 R34-BASELINE.json
|
|
1443
1443
|
0b7ec5ee347ddfa6cca59740fc7a8fe3fc5d51406265bb12189e82fa106319d2 R41-PARENT.json
|
|
1444
1444
|
bd2a789b0aab5663f0d208af2ca8e4ec98179bc8c7b57e70a962d4e06a3dcfc4 R42-PARENT.json
|
|
@@ -1447,9 +1447,9 @@ f932ef78b7a72b1bb0d7aedb5fe42fbb9951c2492eb528b72442f46ddff81a6c R44-DONORS.jso
|
|
|
1447
1447
|
731b4c559fc0d25dea701e4474f02400b27e8e3f4cac9f230d5214497d4490a9 R44-PARENT.json
|
|
1448
1448
|
d33ec5d167dd44800ba4e68372b08db43deb8d01df2ef71dd435ff004ac66c8b R45-PARENT.json
|
|
1449
1449
|
3dc607603fea511e2f428e9546a875ab7e38b6a0bbd5e803e4510de082f30804 R49-PARENT.json
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1450
|
+
c86992014d3a8278c44fb157a8c12d6b3f2189d5e105dd72ed8c08bab84e3da3 README.txt
|
|
1451
|
+
4071676f3192fc976fe3f3b56c0e5c4caefb35519eccda8e89166e6e39e0b8c5 RELEASE.json
|
|
1452
|
+
1dcde6cae73039767cc29fae2de17b7f31d33befd580fc1f027af62c6a19be25 SBOM.cdx.json
|
|
1453
1453
|
7c86062c4f69db3179a129d65945ccfab1b1c1c5bcc29b91383eac097d50f2aa scripts/activate-skill-creator-1.1.1.mjs
|
|
1454
1454
|
bd138fe5a64088e8e1a7a5bf6104c5b17317bdc8cf3ad8191ea00ed82ace7d9b scripts/agent-eval-r42.mjs
|
|
1455
1455
|
8d90256a6863f3bbbff02e95cb12389fc6f9e8dbcb77bf1c20c902de371425e8 scripts/archive-source-zips.mjs
|
|
@@ -1559,6 +1559,7 @@ ab45a76d4faa6e33d6c4b68e0d4ebe3b7b30bb8f03f8f9d71ed7b62e9412f8b7 scripts/gate-w
|
|
|
1559
1559
|
1099b6fbc27dbf5c20b33ee661aa365d2a0377c5220dae8579af5cd96b7fd2fa scripts/gate-windows-r63-prepublish.ps1
|
|
1560
1560
|
a09c4b206d8f21906baec0d6198a1c030174fc0abf724e0ecfa2741d4d91df78 scripts/gate-windows-r64-prepublish.ps1
|
|
1561
1561
|
940209aeb71d9cc8f4bc8c02fce4041cfd0dbe8ff546842ad818ba8793240341 scripts/gate-windows-r65-prepublish.ps1
|
|
1562
|
+
6cdb1b0d116ddeec2bb98a28bd9c3bbe74ae808dd04d8705017486324881cc8e scripts/gate-windows-r66-prepublish.ps1
|
|
1562
1563
|
9a085b34b9e54023eb0efadcea1e74a1bef44b984105d064768d66910999173e scripts/gate-windows.ps1
|
|
1563
1564
|
9e625bdc701298c05eb2a63c208d023a487a1baf306c05940eb29c19fb1d6544 scripts/init-desktop-policy-r40.ps1
|
|
1564
1565
|
01451045bff624a157e7eea79afd7edfa8cb8212ea0256c8ec744fe1e1b269ff scripts/init-host-policy.ps1
|
|
@@ -1761,7 +1762,7 @@ ec660879c7fa20bdee8fbb0f8dab373625691cb18c4f5362d022476e506d22c2 src/desktop-ui
|
|
|
1761
1762
|
b8889f410658e110b05ea408da5dd145df76071c8fd980a380d846f081742bad src/doctor-foreground-r58.mjs
|
|
1762
1763
|
b2e0e4d875e55fe1d2ee772eb9201d7a37225f739261638439a5860a0b89dd8f src/doctor-installation-r58.mjs
|
|
1763
1764
|
e9685ca31ddc94a1acbdffca80d20aec608f6328834c2d980872641e49201d39 src/doctor-r45.mjs
|
|
1764
|
-
|
|
1765
|
+
ae1c2322474c0ebf3836411cbd09c66816265afa2ae1385bb40b33b7ca4f607a src/doctor-runtime-r58.mjs
|
|
1765
1766
|
9759d93f8b41f361146bd75aa6004cbc1f6b26210250f89496c5e352b38841da src/doctor-transactions-r58.mjs
|
|
1766
1767
|
f57fe200ad916a03480c804ca57ab12b603822cbfb8d45ba7bce4376ec3d712a src/document-adapter.mjs
|
|
1767
1768
|
9df74c752c1fc8289eb4ab6716b16cd7d1f25ff8df611b04fbf61297b0df2943 src/durable-job-r44.mjs
|
|
@@ -1875,12 +1876,12 @@ c99c2402fb0df4f68634fa906eb198c551c55dad9f0921a7b8ed6e33d503884e src/tunnel-std
|
|
|
1875
1876
|
aa765e9a28c69ff58a5b5a0d29b49ea181af4db9076633b102dbca25861e708e src/tunnel-stdio-compat.mjs
|
|
1876
1877
|
642cb67d1854850e336ee73fbd71b329056bdcbdab35cea19c1a995a155ff5d9 src/verifier-cli.mjs
|
|
1877
1878
|
8f818a4852ce3be3a380cd4736c3073a7a3e0e45cd7c7ca90588a6b843d3d022 src/verifier.mjs
|
|
1878
|
-
|
|
1879
|
+
963073dae5f9723a1659f0b3962b93766d514304ebe468ad841553a48cc16d7a src/version.mjs
|
|
1879
1880
|
7e09c57a97289360aabfaf3d531208e54872efbfb3182f3c18203d2cb88c46b5 src/worker-registry.mjs
|
|
1880
1881
|
76361d5ae9a710273cf64a7525082197b692236bf23689875e5fd1ef4aa96d2b src/worker-scheduler.mjs
|
|
1881
1882
|
4da1b32f5198bb089bc68b7eb6de21ea296678b5020018a73742bf0df57d62fa src/workload-substrate.mjs
|
|
1882
1883
|
1bd637e7634ca0259791c5108fcf324554f70b1db49e5eac3505287c04bbc3be STABILIZATION-PROGRESS.md
|
|
1883
|
-
|
|
1884
|
+
2b98c8da77c7a6d0cd67155c099c3136a75fd77ad46c659ec2730af0d3e6cdff TEST-MATRIX.json
|
|
1884
1885
|
e4f1fb97545f23772ddff28ad3f9954a4714f9854062fca62e0e12c1cb2ec4ae test/agent-backend-r44.test.mjs
|
|
1885
1886
|
2a78c818058b25efdc143a3a97c832da231ccd6ff9d90c7796d681a0251b85c4 test/agent-crash-child.mjs
|
|
1886
1887
|
d9461ab7c118ee75d37a2d6f5e637d7e43505af6a9ad8c7ddafffc8ace185a5b test/agent-crash-worker.mjs
|
|
@@ -2161,7 +2162,7 @@ be971b64b9ae77686992ed066dd01c61572289e02a118a4f1f5da44f0d89984c test/r58-docto
|
|
|
2161
2162
|
6e21c34a16229a680f64df4cc5d7bc2d59ba33321b041d2790ce2cf009f7b1fe test/r58-doctor-foreground.test.mjs
|
|
2162
2163
|
3875048f9a7abba61714e19a3ae6cee96f4f888f045d85dbb3cd3ea20ab45006 test/r58-doctor-installation.test.mjs
|
|
2163
2164
|
2903051aee16fb51302c72f32079de069cb385cac0b10fee9019dc466be8bca4 test/r58-doctor-pointer.test.mjs
|
|
2164
|
-
|
|
2165
|
+
3e8e773ff2b679ac0fc967762e318d1050d68da2bd5778e37cfe836c31323c3c test/r58-doctor-runtime.test.mjs
|
|
2165
2166
|
a298a15672d266a44be23a899f0efa95bbf13e2ae268e21f33b9f79a7bb56ce0 test/r58-doctor-transactions.test.mjs
|
|
2166
2167
|
158859e2c00d2d2d1f5e02eec6d0a059fe052acbcbc6d991b8278c4b6b15d8e9 test/r58-guardian-channel.test.mjs
|
|
2167
2168
|
794efbfdab50016ecd00b54ce88c60d71564d5cc9e97df19ded34ff31f697e08 test/r58-launcher-shell.test.mjs
|
|
@@ -2171,7 +2172,7 @@ daaa036baac34e6041a7df53a241bd4abe5b7a97b3c4868a40d5c33e7f4cb1af test/r58-relea
|
|
|
2171
2172
|
b49c5832df5d9276e96709705c6037db9a7e36492454d6e105ddec28c911d8b8 test/r58-stale-owner.test.mjs
|
|
2172
2173
|
adaa3cee10a8030fdf0adb656bb2d86550d47cd201bf2f3df20fad96f5510160 test/r58-windows-gate.test.mjs
|
|
2173
2174
|
76db2a4009d76b86e1da57b91a96b0d6bfeb4063bec3301ede736e2fd5832f39 test/r59-release-contract.test.mjs
|
|
2174
|
-
|
|
2175
|
+
5ad602fd845238b6db74fcc59826ce5524dd9e709a3509d4489254ac42e158aa test/r59-tool-surface-compat.test.mjs
|
|
2175
2176
|
026a88d0e2acaca37c8260670ff3217c071cd6546f7e91318af528f8478d1241 test/r60-authority-coherence.test.mjs
|
|
2176
2177
|
60577e231c7d164f57a3960c574d3e369ca140d9dbc477b2444fa62dbf224e51 test/r60-authority-enforcement.test.mjs
|
|
2177
2178
|
a1fa0b1e529da05f3659a33be6d36dab02f93808638cf0f458d057e9c6d1e35b test/r60-bridge-dispatch.test.mjs
|
|
@@ -2224,8 +2225,9 @@ ba05b8141b97aef0eb981bd78f5b9e0855250eba8b450b86eab203eade274a9a test/r65-epoch
|
|
|
2224
2225
|
a68fa15b85585f295df997564a55ff43c7886e767414d717ba63b7ad2fc640f2 test/r65-legacy-auto-restore-rejection.test.mjs
|
|
2225
2226
|
0a59288af17063fb59ee8a6ebc14907751eb826acfe69254cf279401160fe1f5 test/r65-npm-publication.test.mjs
|
|
2226
2227
|
88b5d6eb1bd5d9f64ff09d76c3d59e1198fabb27c627932de7f51f2b553bd364 test/r65-parent-source-verifier.test.mjs
|
|
2227
|
-
|
|
2228
|
+
facc51bb370d342fb71d06c47db27ac4ae50a3f171801b08cec0939065f8099c test/r65-release-contract.test.mjs
|
|
2228
2229
|
54e9ed23e41e14db129dac63471c277e08aac03a08e1c172c2e10a775ef4cded test/r65-transaction-precondition.test.mjs
|
|
2230
|
+
608f9e679eeacba1f00895af489bb330449a33291da7d34680678f70bd456736 test/r66-release-contract.test.mjs
|
|
2229
2231
|
e45a6cd299d8d65bdeb9bc0117ce1eb2b47fdebad89a02413ee979c9d0ae3a5c test/release-activation-gate.test.mjs
|
|
2230
2232
|
eedc78733d3e4a85d1c7ab053b2994cbe7804492021c07ec5d97046d7536fc46 test/release-generation.test.mjs
|
|
2231
2233
|
bb58887a2c393cd5aac3fa3bb3a04de2704bd2a30dd2083ea638543485fa7e60 test/release-manifest-windows.test.mjs
|
package/PROVENANCE.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "deadbyte.provenance.v1",
|
|
3
|
-
"version": "0.15.
|
|
4
|
-
"source_model": "sealed production
|
|
3
|
+
"version": "0.15.43",
|
|
4
|
+
"source_model": "sealed production R65 0.15.42 -> isolated R66 doctor epoch-observation compatibility hotfix; no production mutation or publication",
|
|
5
5
|
"signing": "ed25519",
|
|
6
|
-
"parent_tarball_sha256": "
|
|
6
|
+
"parent_tarball_sha256": "3b03d075967106ff354db2a96d0385d158ca92495a59d40f3f65c907eaa043b1",
|
|
7
7
|
"parent_activation_status": "PRODUCTION_ACTIVE",
|
|
8
8
|
"parent_rollback_receipt_sha256": null,
|
|
9
9
|
"runtime_predecessor": {
|
|
10
|
-
"release_id": "v0.15.
|
|
11
|
-
"manifest_sha256": "
|
|
12
|
-
"generation_manifest_sha256": "
|
|
10
|
+
"release_id": "v0.15.42-1b4754103dd4ca43",
|
|
11
|
+
"manifest_sha256": "1b4754103dd4ca43eb81f8e33cf188b36eee3051cb182396ccc6abe2a6e6c250",
|
|
12
|
+
"generation_manifest_sha256": "62dc68be55ad627f8d872b8be8c1369ecca0edf08fdedc8336c9ccee2d2809fb"
|
|
13
13
|
},
|
|
14
|
-
"source_predecessor_manifest_file_sha256": "
|
|
15
|
-
"reproducibility": "
|
|
14
|
+
"source_predecessor_manifest_file_sha256": "1b4754103dd4ca43eb81f8e33cf188b36eee3051cb182396ccc6abe2a6e6c250",
|
|
15
|
+
"reproducibility": "R66 is developed only in D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.43-r66 from sealed R65 production. R65 source and live production remain immutable during this prepublish hotfix.",
|
|
16
16
|
"public_surface_evidence": {
|
|
17
17
|
"status": "PASS",
|
|
18
18
|
"baseline_release": "v0.15.35-1b5715b276facbc0",
|
|
@@ -76,11 +76,11 @@
|
|
|
76
76
|
"stdio_aggregate_p95_delta_pct": 1.984392678457768,
|
|
77
77
|
"limitations_preserved": true
|
|
78
78
|
},
|
|
79
|
-
"builder": "deadbyte-
|
|
80
|
-
"parent_release_id": "v0.15.
|
|
81
|
-
"parent_manifest_sha256": "
|
|
82
|
-
"parent_generation_manifest_sha256": "
|
|
83
|
-
"source_predecessor_version": "0.15.
|
|
79
|
+
"builder": "deadbyte-r66-doctor-epoch-observation-hotfix",
|
|
80
|
+
"parent_release_id": "v0.15.42-1b4754103dd4ca43",
|
|
81
|
+
"parent_manifest_sha256": "1b4754103dd4ca43eb81f8e33cf188b36eee3051cb182396ccc6abe2a6e6c250",
|
|
82
|
+
"parent_generation_manifest_sha256": "62dc68be55ad627f8d872b8be8c1369ecca0edf08fdedc8336c9ccee2d2809fb",
|
|
83
|
+
"source_predecessor_version": "0.15.42",
|
|
84
84
|
"operator_override": {
|
|
85
85
|
"four_hour_soak": "WAIVED_BY_OPERATOR",
|
|
86
86
|
"clean_machine": "WAIVED_BY_OPERATOR",
|
|
@@ -215,5 +215,18 @@
|
|
|
215
215
|
},
|
|
216
216
|
"final_gate_evidence_location": "D:\\Projects\\deadbyte-mcp\\testing\\0.15.42-r65",
|
|
217
217
|
"final_gate_receipts_external_to_candidate": true
|
|
218
|
+
},
|
|
219
|
+
"r66": {
|
|
220
|
+
"candidate_path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.43-r66",
|
|
221
|
+
"parent_release_id": "v0.15.42-1b4754103dd4ca43",
|
|
222
|
+
"parent_manifest_sha256": "1b4754103dd4ca43eb81f8e33cf188b36eee3051cb182396ccc6abe2a6e6c250",
|
|
223
|
+
"parent_generation_manifest_sha256": "62dc68be55ad627f8d872b8be8c1369ecca0edf08fdedc8336c9ccee2d2809fb",
|
|
224
|
+
"doctor_epoch_observation_compatibility": true,
|
|
225
|
+
"public_surface_tool_count": 43,
|
|
226
|
+
"new_public_tools": 0,
|
|
227
|
+
"new_authority_scopes": 0,
|
|
228
|
+
"production_mutations": 0,
|
|
229
|
+
"npm_publications": 0,
|
|
230
|
+
"prepublish_only": true
|
|
218
231
|
}
|
|
219
232
|
}
|
package/README.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
DEADBYTE MCP V0.15.
|
|
1
|
+
DEADBYTE MCP V0.15.43 / R66 DOCTOR EPOCH OBSERVATION HOTFIX
|
|
2
2
|
=========================
|
|
3
3
|
|
|
4
4
|
AUTHENTICATED MACHINE TRUTH + DURABLE AGENT + CODING + AUTONOMOUS PRODUCTION ENGINE
|
|
@@ -16,12 +16,12 @@ check `--version` before issuing a stateful command. The compatibility CMD
|
|
|
16
16
|
fails with an explanation when npm is detected rather than forwarding the
|
|
17
17
|
wrong command to the controller.
|
|
18
18
|
|
|
19
|
-
npx -y deadbyte-mcp@0.15.
|
|
20
|
-
npx -y deadbyte-mcp@0.15.
|
|
21
|
-
npx -y deadbyte-mcp@0.15.
|
|
22
|
-
npx -y deadbyte-mcp@0.15.
|
|
23
|
-
npx -y deadbyte-mcp@0.15.
|
|
24
|
-
npx -y deadbyte-mcp@0.15.
|
|
19
|
+
npx -y deadbyte-mcp@0.15.43 mcp
|
|
20
|
+
npx -y deadbyte-mcp@0.15.43 remote
|
|
21
|
+
npx -y deadbyte-mcp@0.15.43 remote status
|
|
22
|
+
npx -y deadbyte-mcp@0.15.43 remote restart
|
|
23
|
+
npx -y deadbyte-mcp@0.15.43 audit status
|
|
24
|
+
npx -y deadbyte-mcp@0.15.43 audit verify
|
|
25
25
|
|
|
26
26
|
MAJOR MCP CLIENT STDIO CONFIGS
|
|
27
27
|
-------------------------------
|
|
@@ -32,7 +32,7 @@ CLAUDE DESKTOP
|
|
|
32
32
|
"mcpServers": {
|
|
33
33
|
"deadbyte": {
|
|
34
34
|
"command": "npx",
|
|
35
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
35
|
+
"args": ["-y", "deadbyte-mcp@0.15.43", "mcp"]
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -44,7 +44,7 @@ Save as .cursor/mcp.json:
|
|
|
44
44
|
"mcpServers": {
|
|
45
45
|
"deadbyte": {
|
|
46
46
|
"command": "npx",
|
|
47
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
47
|
+
"args": ["-y", "deadbyte-mcp@0.15.43", "mcp"]
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -57,7 +57,7 @@ Save as .vscode/mcp.json:
|
|
|
57
57
|
"deadbyte": {
|
|
58
58
|
"type": "stdio",
|
|
59
59
|
"command": "npx",
|
|
60
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
60
|
+
"args": ["-y", "deadbyte-mcp@0.15.43", "mcp"]
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
}
|
|
@@ -67,7 +67,7 @@ Add to the Codex MCP configuration:
|
|
|
67
67
|
|
|
68
68
|
[mcp_servers.deadbyte]
|
|
69
69
|
command = "npx"
|
|
70
|
-
args = ["-y", "deadbyte-mcp@0.15.
|
|
70
|
+
args = ["-y", "deadbyte-mcp@0.15.43", "mcp"]
|
|
71
71
|
|
|
72
72
|
The `mcp` command is the quiet stdio server entry for local MCP clients; stdout is reserved for MCP.
|
|
73
73
|
The remote CLI invokes the stable active-release PowerShell launcher directly with shell=false.
|
|
@@ -355,7 +355,7 @@ CONTROLLER
|
|
|
355
355
|
----------
|
|
356
356
|
Primary operator entry point:
|
|
357
357
|
|
|
358
|
-
npx -y deadbyte-mcp@0.15.
|
|
358
|
+
npx -y deadbyte-mcp@0.15.43 remote
|
|
359
359
|
|
|
360
360
|
The legacy CMD entry remains compatibility-only for R33 rollback safety.
|
|
361
361
|
|
|
@@ -416,7 +416,7 @@ MCP CLIENT CONFIGURATION
|
|
|
416
416
|
------------------------
|
|
417
417
|
The local stdio entry point is quiet and suitable for MCP hosts:
|
|
418
418
|
|
|
419
|
-
npx -y deadbyte-mcp@0.15.
|
|
419
|
+
npx -y deadbyte-mcp@0.15.43 mcp
|
|
420
420
|
|
|
421
421
|
CLAUDE DESKTOP
|
|
422
422
|
Use the standard local-server entry in claude_desktop_config.json:
|
|
@@ -425,7 +425,7 @@ Use the standard local-server entry in claude_desktop_config.json:
|
|
|
425
425
|
"mcpServers": {
|
|
426
426
|
"deadbyte": {
|
|
427
427
|
"command": "npx",
|
|
428
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
428
|
+
"args": ["-y", "deadbyte-mcp@0.15.43", "mcp"]
|
|
429
429
|
}
|
|
430
430
|
}
|
|
431
431
|
}
|
|
@@ -438,7 +438,7 @@ Create .cursor/mcp.json:
|
|
|
438
438
|
"deadbyte": {
|
|
439
439
|
"type": "stdio",
|
|
440
440
|
"command": "npx",
|
|
441
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
441
|
+
"args": ["-y", "deadbyte-mcp@0.15.43", "mcp"]
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
444
|
}
|
|
@@ -451,7 +451,7 @@ Create .vscode/mcp.json:
|
|
|
451
451
|
"deadbyte": {
|
|
452
452
|
"type": "stdio",
|
|
453
453
|
"command": "npx",
|
|
454
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
454
|
+
"args": ["-y", "deadbyte-mcp@0.15.43", "mcp"]
|
|
455
455
|
}
|
|
456
456
|
}
|
|
457
457
|
}
|
|
@@ -461,9 +461,9 @@ Add this to ~/.codex/config.toml:
|
|
|
461
461
|
|
|
462
462
|
[mcp_servers.deadbyte]
|
|
463
463
|
command = "npx"
|
|
464
|
-
args = ["-y", "deadbyte-mcp@0.15.
|
|
464
|
+
args = ["-y", "deadbyte-mcp@0.15.43", "mcp"]
|
|
465
465
|
|
|
466
|
-
The remote device path remains `npx -y deadbyte-mcp@0.15.
|
|
466
|
+
The remote device path remains `npx -y deadbyte-mcp@0.15.43 remote`. Remote public MCP uses the
|
|
467
467
|
verified HTTPS named-tunnel URL selected by the active generation; do not commit a private device
|
|
468
468
|
URL or tunnel token into a repository.
|
|
469
469
|
|
package/RELEASE.json
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "deadbyte.release.v1",
|
|
3
3
|
"name": "deadbyte-mcp",
|
|
4
|
-
"version": "0.15.
|
|
5
|
-
"train": "
|
|
6
|
-
"label": "
|
|
4
|
+
"version": "0.15.43",
|
|
5
|
+
"train": "R66",
|
|
6
|
+
"label": "DOCTOR EPOCH OBSERVATION COMPATIBILITY HOTFIX",
|
|
7
7
|
"protocol_revision": "2026-07-28",
|
|
8
8
|
"parent": {
|
|
9
|
-
"version": "0.15.
|
|
10
|
-
"release_id": "v0.15.
|
|
11
|
-
"manifest_sha256": "
|
|
12
|
-
"generation_manifest_sha256": "
|
|
9
|
+
"version": "0.15.42",
|
|
10
|
+
"release_id": "v0.15.42-1b4754103dd4ca43",
|
|
11
|
+
"manifest_sha256": "1b4754103dd4ca43eb81f8e33cf188b36eee3051cb182396ccc6abe2a6e6c250",
|
|
12
|
+
"generation_manifest_sha256": "62dc68be55ad627f8d872b8be8c1369ecca0edf08fdedc8336c9ccee2d2809fb",
|
|
13
13
|
"activation_status": "PRODUCTION_ACTIVE"
|
|
14
14
|
},
|
|
15
15
|
"runtime_predecessor": {
|
|
16
|
-
"release_id": "v0.15.
|
|
17
|
-
"manifest_sha256": "
|
|
18
|
-
"generation_manifest_sha256": "
|
|
16
|
+
"release_id": "v0.15.42-1b4754103dd4ca43",
|
|
17
|
+
"manifest_sha256": "1b4754103dd4ca43eb81f8e33cf188b36eee3051cb182396ccc6abe2a6e6c250",
|
|
18
|
+
"generation_manifest_sha256": "62dc68be55ad627f8d872b8be8c1369ecca0edf08fdedc8336c9ccee2d2809fb"
|
|
19
19
|
},
|
|
20
20
|
"source_predecessor": {
|
|
21
|
-
"version": "0.15.
|
|
22
|
-
"source_path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.
|
|
23
|
-
"manifest_file_sha256": "
|
|
24
|
-
"manifest_file_count":
|
|
21
|
+
"version": "0.15.42",
|
|
22
|
+
"source_path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.42-r65",
|
|
23
|
+
"manifest_file_sha256": "1b4754103dd4ca43eb81f8e33cf188b36eee3051cb182396ccc6abe2a6e6c250",
|
|
24
|
+
"manifest_file_count": 2277,
|
|
25
25
|
"release_status": "PRODUCTION_RELEASED"
|
|
26
26
|
},
|
|
27
27
|
"consolidation": {
|
|
@@ -304,5 +304,17 @@
|
|
|
304
304
|
"restored_safe_green_receipt_sha256": "d859409d33f9f1a165889c5ce4360f2f83b8f4bb66f5b6ab63980b8464678a72",
|
|
305
305
|
"final_gate_evidence_location": "D:\\Projects\\deadbyte-mcp\\testing\\0.15.42-r65",
|
|
306
306
|
"final_gate_receipts_external_to_candidate": true
|
|
307
|
+
},
|
|
308
|
+
"r66_doctor_epoch_hotfix": {
|
|
309
|
+
"parent_release_id": "v0.15.42-1b4754103dd4ca43",
|
|
310
|
+
"doctor_epoch_observation_compatibility": true,
|
|
311
|
+
"legacy_observation_compatibility": true,
|
|
312
|
+
"strict_epoch_pair_and_armed_only": true,
|
|
313
|
+
"public_surface_tool_count": 43,
|
|
314
|
+
"new_public_tools": 0,
|
|
315
|
+
"new_authority_scopes": 0,
|
|
316
|
+
"production_r65_mutations": 0,
|
|
317
|
+
"npm_publications": 0,
|
|
318
|
+
"prepublish_only": true
|
|
307
319
|
}
|
|
308
320
|
}
|
package/SBOM.cdx.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bomFormat": "CycloneDX",
|
|
3
3
|
"specVersion": "1.6",
|
|
4
|
-
"serialNumber": "urn:cdx:deadbyte-mcp:
|
|
4
|
+
"serialNumber": "urn:cdx:deadbyte-mcp:r66:0.15.43",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
7
|
"component": {
|
|
8
8
|
"type": "application",
|
|
9
9
|
"name": "deadbyte-mcp",
|
|
10
|
-
"version": "0.15.
|
|
10
|
+
"version": "0.15.43"
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"components": [
|
package/TEST-MATRIX.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "deadbyte.test-matrix.v1",
|
|
3
|
-
"version": "0.15.
|
|
4
|
-
"train": "
|
|
3
|
+
"version": "0.15.43",
|
|
4
|
+
"train": "R66",
|
|
5
5
|
"primary_platform": "win32-x64",
|
|
6
6
|
"reference": {
|
|
7
7
|
"package": "@wonderwhy-er/desktop-commander",
|
|
@@ -11,19 +11,19 @@
|
|
|
11
11
|
},
|
|
12
12
|
"required": [
|
|
13
13
|
{
|
|
14
|
-
"id": "
|
|
15
|
-
"command": "npm run
|
|
16
|
-
"expected": "PASS
|
|
14
|
+
"id": "r66-focused",
|
|
15
|
+
"command": "npm run r66:focused:test",
|
|
16
|
+
"expected": "PASS strict doctor epoch-observation compatibility and connected controller/authority regressions"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
|
-
"id": "
|
|
19
|
+
"id": "r66-full-regression",
|
|
20
20
|
"command": "npm test",
|
|
21
|
-
"expected": "PASS complete
|
|
21
|
+
"expected": "PASS complete R66 regression with only documented historical/platform skips"
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"id": "windows-gate",
|
|
25
25
|
"command": "npm run gate:windows",
|
|
26
|
-
"expected": "PASS exact sealed
|
|
26
|
+
"expected": "PASS exact sealed R65 parent identity, R66 focused/full regression, manifest verify and isolated doctor"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"id": "package-verify",
|
|
@@ -445,5 +445,16 @@
|
|
|
445
445
|
"skipped": 41,
|
|
446
446
|
"status": "PASS"
|
|
447
447
|
}
|
|
448
|
+
},
|
|
449
|
+
"r66": {
|
|
450
|
+
"parent_version": "0.15.42",
|
|
451
|
+
"parent_release_id": "v0.15.42-1b4754103dd4ca43",
|
|
452
|
+
"parent_manifest_sha256": "1b4754103dd4ca43eb81f8e33cf188b36eee3051cb182396ccc6abe2a6e6c250",
|
|
453
|
+
"parent_generation_manifest_sha256": "62dc68be55ad627f8d872b8be8c1369ecca0edf08fdedc8336c9ccee2d2809fb",
|
|
454
|
+
"doctor_epoch_observation_compatibility": true,
|
|
455
|
+
"public_surface_tool_count": 43,
|
|
456
|
+
"new_public_tools": 0,
|
|
457
|
+
"new_authority_scopes": 0,
|
|
458
|
+
"prepublish_only": true
|
|
448
459
|
}
|
|
449
460
|
}
|
package/bridge/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "deadbyte.process-policy.v1",
|
|
3
3
|
"enabled": true,
|
|
4
|
-
"grant_file": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.
|
|
5
|
-
"state_dir": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.
|
|
4
|
+
"grant_file": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.43-r66\\controller\\runtime\\process-grant.json",
|
|
5
|
+
"state_dir": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.43-r66\\controller\\runtime\\process-state",
|
|
6
6
|
"native_host": {
|
|
7
|
-
"path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.
|
|
7
|
+
"path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.43-r66\\bin\\deadbyte-process-host.exe",
|
|
8
8
|
"sha256": "daf9cfb371bee88cafbf5597eaa507fec504dbe0b0ddd40d0c3c2e02817f49e4"
|
|
9
9
|
},
|
|
10
10
|
"roots": {
|
|
11
11
|
"core": {
|
|
12
|
-
"path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.
|
|
12
|
+
"path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.43-r66",
|
|
13
13
|
"deny_paths": [
|
|
14
14
|
"node_modules",
|
|
15
15
|
"controller/runtime",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deadbyte-mcp",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.43",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Authenticated MCP agentic runtime with signed skills, persistent model backends, identity-bound remote devices, durable job supervision, immutable release slots, and separately revocable machine authority.",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"contained:run": "node src/contained-cli.mjs workspaces/demo input.txt",
|
|
43
43
|
"contained:smoke": "node src/contained-smoke.mjs",
|
|
44
44
|
"mcp:contained:smoke": "node src/mcp-contained-smoke-client.mjs",
|
|
45
|
-
"gate:windows": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/gate-windows-
|
|
45
|
+
"gate:windows": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/gate-windows-r66-prepublish.ps1",
|
|
46
46
|
"authority:smoke": "node src/authority-smoke.mjs",
|
|
47
47
|
"mcp:remote:smoke": "node src/remote-mcp-smoke-client.mjs",
|
|
48
48
|
"mcp:host:smoke": "node src/mcp-host-smoke-client.mjs",
|
|
@@ -90,7 +90,8 @@
|
|
|
90
90
|
"r62:focused:test": "node --test --test-concurrency=1 test/r62-release-contract.test.mjs test/r62-doctor-transactions-reconcile.test.mjs test/r62-doctor-receipt-semantics.test.mjs test/r62-rollback-failure-receipt.test.mjs test/r58-doctor-transactions.test.mjs test/r58-completed-update-receipt.test.mjs test/runtime-self-update.test.mjs test/r56-rollback-launcher-restore.test.mjs",
|
|
91
91
|
"r63:focused:test": "node --test --test-concurrency=1 test/r63-release-contract.test.mjs test/r63-one-shot-coherence.test.mjs test/r51-runtime-coherence.test.mjs test/remote-session-cli.test.mjs",
|
|
92
92
|
"r64:focused:test": "node --test --test-concurrency=1 test/r64-release-contract.test.mjs test/r64-machine-fs-large-read.test.mjs test/machine-fs-runtime.test.mjs test/compact-gateway-r36.test.mjs test/r61-control-lane.test.mjs test/r60-bridge-dispatch.test.mjs",
|
|
93
|
-
"r65:focused:test": "node scripts/r65-focused.mjs"
|
|
93
|
+
"r65:focused:test": "node scripts/r65-focused.mjs",
|
|
94
|
+
"r66:focused:test": "node --test --test-concurrency=1 test/r66-release-contract.test.mjs test/r58-doctor-runtime.test.mjs test/r58-doctor-foreground.test.mjs test/r58-doctor-installation.test.mjs test/r65-controller-authority-epoch.test.mjs test/r65-authority-observation-epoch.test.mjs"
|
|
94
95
|
},
|
|
95
96
|
"bundleDependencies": [
|
|
96
97
|
"@modelcontextprotocol/server",
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
param(
|
|
2
|
+
[ValidateSet('all','preflight','focused','full','manifest','doctor')]
|
|
3
|
+
[string]$Stage='all'
|
|
4
|
+
)
|
|
5
|
+
|
|
6
|
+
$ErrorActionPreference='Stop'
|
|
7
|
+
Set-StrictMode -Version 3.0
|
|
8
|
+
$root=Split-Path $PSScriptRoot -Parent
|
|
9
|
+
Set-Location -LiteralPath $root
|
|
10
|
+
|
|
11
|
+
function Invoke-Npm([string]$Name,[string[]]$NpmArgs){
|
|
12
|
+
Write-Host "==== $Name ===="
|
|
13
|
+
& npm.cmd @NpmArgs
|
|
14
|
+
if($LASTEXITCODE -ne 0){ throw "R66 prepublish gate failed at $Name exit=$LASTEXITCODE" }
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function Get-FileSha256([string]$File){
|
|
18
|
+
$hasher=[Security.Cryptography.SHA256]::Create()
|
|
19
|
+
try{
|
|
20
|
+
$bytes=[IO.File]::ReadAllBytes($File)
|
|
21
|
+
return (($hasher.ComputeHash($bytes) | ForEach-Object { $_.ToString('x2') }) -join '')
|
|
22
|
+
}finally{ $hasher.Dispose() }
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
$sourceRoot='D:\Projects\deadbyte-mcp\development\deadbyte-mcp-0.15.42-r65'
|
|
26
|
+
$sourceManifest='1b4754103dd4ca43eb81f8e33cf188b36eee3051cb182396ccc6abe2a6e6c250'
|
|
27
|
+
if(-not (Test-Path -LiteralPath $sourceRoot -PathType Container)){ throw 'R66 source predecessor missing' }
|
|
28
|
+
$observedSourceManifest=Get-FileSha256 (Join-Path $sourceRoot 'MANIFEST.SHA256')
|
|
29
|
+
if($observedSourceManifest -ne $sourceManifest){ throw 'R66 source predecessor manifest identity mismatch' }
|
|
30
|
+
& node (Join-Path $root 'scripts\verify-r65-parent-source.mjs') --root $sourceRoot --expected-manifest-sha256 $sourceManifest
|
|
31
|
+
if($LASTEXITCODE -ne 0){ throw 'R66 source predecessor declared-manifest verification failed' }
|
|
32
|
+
|
|
33
|
+
$stateRoot=Join-Path $env:USERPROFILE '.deadbyte-mcp'
|
|
34
|
+
$pointer=Join-Path $stateRoot 'active-release.json'
|
|
35
|
+
if(-not (Test-Path -LiteralPath $pointer -PathType Leaf)){ throw "R66 runtime predecessor pointer missing: $pointer" }
|
|
36
|
+
$active=Get-Content -LiteralPath $pointer -Raw | ConvertFrom-Json
|
|
37
|
+
if($active.release_id -ne 'v0.15.42-1b4754103dd4ca43'){ throw "R66 runtime predecessor release mismatch: $($active.release_id)" }
|
|
38
|
+
if($active.manifest_sha256 -ne $sourceManifest){ throw 'R66 runtime predecessor manifest mismatch' }
|
|
39
|
+
if($active.generation_manifest_sha256 -ne '62dc68be55ad627f8d872b8be8c1369ecca0edf08fdedc8336c9ccee2d2809fb'){ throw 'R66 runtime predecessor generation mismatch' }
|
|
40
|
+
if($Stage -eq 'preflight'){Write-Host '==== R66 WINDOWS GATE: PASS preflight ====';return}
|
|
41
|
+
|
|
42
|
+
if($Stage -eq 'all' -or $Stage -eq 'focused'){
|
|
43
|
+
Invoke-Npm 'r66-focused' @('run','r66:focused:test')
|
|
44
|
+
if($Stage -eq 'focused'){Write-Host '==== R66 WINDOWS GATE: PASS focused ====';return}
|
|
45
|
+
}
|
|
46
|
+
if($Stage -eq 'all' -or $Stage -eq 'full'){
|
|
47
|
+
Invoke-Npm 'full-regression' @('test')
|
|
48
|
+
if($Stage -eq 'full'){Write-Host '==== R66 WINDOWS GATE: PASS full ====';return}
|
|
49
|
+
}
|
|
50
|
+
if($Stage -eq 'all' -or $Stage -eq 'manifest'){
|
|
51
|
+
Invoke-Npm 'manifest-write' @('run','manifest:write')
|
|
52
|
+
Invoke-Npm 'manifest-verify' @('run','manifest:verify')
|
|
53
|
+
if($Stage -eq 'manifest'){Write-Host '==== R66 WINDOWS GATE: PASS manifest ====';return}
|
|
54
|
+
}
|
|
55
|
+
if($Stage -eq 'all' -or $Stage -eq 'doctor'){
|
|
56
|
+
$doctorRoot='D:\Projects\deadbyte-mcp\testing\0.15.43-r66\doctor-isolated-empty'
|
|
57
|
+
if(Test-Path -LiteralPath (Join-Path $doctorRoot 'active-release.json')){ throw 'R66 isolated doctor root unexpectedly contains a release pointer' }
|
|
58
|
+
$priorStateRoot=$env:DEADBYTE_STATE_ROOT
|
|
59
|
+
try{
|
|
60
|
+
$env:DEADBYTE_STATE_ROOT=$doctorRoot
|
|
61
|
+
Invoke-Npm 'doctor-isolated-empty-state' @('run','doctor')
|
|
62
|
+
}finally{ $env:DEADBYTE_STATE_ROOT=$priorStateRoot }
|
|
63
|
+
if($Stage -eq 'doctor'){Write-Host '==== R66 WINDOWS GATE: PASS doctor ====';return}
|
|
64
|
+
}
|
|
65
|
+
Write-Host '==== R66 PREPUBLISH WINDOWS GATE: PASS ===='
|
|
@@ -28,8 +28,10 @@ export function validateDoctorControllerObservation(value,expectedCoreRoot){
|
|
|
28
28
|
if(typeof value.supervisor.configured!=='boolean'||typeof value.supervisor.running!=='boolean'||!reason(value.supervisor.reason)||(!value.supervisor.configured&&value.supervisor.running))throw new Error('supervisor observation invalid');
|
|
29
29
|
object(value.authority,['process','coding','autonomous','desktop','host']);
|
|
30
30
|
for(const item of Object.values(value.authority)){
|
|
31
|
-
|
|
31
|
+
const hasEpoch=Object.hasOwn(item,'epoch_seq')||Object.hasOwn(item,'epoch_sha256');
|
|
32
|
+
object(item,hasEpoch?['configured','armed','reason','epoch_seq','epoch_sha256']:['configured','armed','reason']);
|
|
32
33
|
if(typeof item.configured!=='boolean'||typeof item.armed!=='boolean'||!reason(item.reason)||(!item.configured&&item.armed)||(item.armed&&item.reason!=='standing-grant'))throw new Error('authority observation invalid');
|
|
34
|
+
if(hasEpoch&&(!item.armed||!Number.isSafeInteger(item.epoch_seq)||item.epoch_seq<1||typeof item.epoch_sha256!=='string'||!/^[0-9a-f]{64}$/.test(item.epoch_sha256)))throw new Error('authority epoch observation invalid');
|
|
33
35
|
}
|
|
34
36
|
return value;
|
|
35
37
|
}
|
package/src/version.mjs
CHANGED
|
@@ -43,3 +43,21 @@ test('R58 doctor surfaces corrupt grants and authority dependency loss without s
|
|
|
43
43
|
const report=classifyDoctorControllerObservation(host,coreRoot);assert.equal(report.status,'WARN');assert.equal(host.authority.host.armed,true);
|
|
44
44
|
for(const finding of report.findings.filter(f=>f.level!=='PASS'))assert.ok(finding.what&&finding.evidence&&finding.next_action);
|
|
45
45
|
});
|
|
46
|
+
|
|
47
|
+
test('R66 doctor accepts strict epoch metadata on armed authority observations',()=>{
|
|
48
|
+
const snapshot=online();
|
|
49
|
+
snapshot.authority.process={configured:true,armed:true,reason:'standing-grant',epoch_seq:1,epoch_sha256:'a'.repeat(64)};
|
|
50
|
+
const validated=validateDoctorControllerObservation(snapshot,coreRoot);
|
|
51
|
+
assert.equal(validated.authority.process.epoch_seq,1);
|
|
52
|
+
assert.equal(validated.authority.process.epoch_sha256,'a'.repeat(64));
|
|
53
|
+
for(const process of [
|
|
54
|
+
{configured:true,armed:true,reason:'standing-grant',epoch_seq:1},
|
|
55
|
+
{configured:true,armed:true,reason:'standing-grant',epoch_sha256:'a'.repeat(64)},
|
|
56
|
+
{configured:true,armed:true,reason:'standing-grant',epoch_seq:0,epoch_sha256:'a'.repeat(64)},
|
|
57
|
+
{configured:true,armed:true,reason:'standing-grant',epoch_seq:1,epoch_sha256:'not-a-sha'},
|
|
58
|
+
{configured:true,armed:false,reason:'disarmed',epoch_seq:1,epoch_sha256:'a'.repeat(64)},
|
|
59
|
+
{configured:true,armed:true,reason:'standing-grant',epoch_seq:1,epoch_sha256:'a'.repeat(64),injected:true}
|
|
60
|
+
]){
|
|
61
|
+
assert.throws(()=>validateDoctorControllerObservation({...online(),authority:{...authority(),process}},coreRoot));
|
|
62
|
+
}
|
|
63
|
+
});
|
|
@@ -83,7 +83,7 @@ test('R59 compact baseline changes only at the explicitly authorized R64 read-of
|
|
|
83
83
|
assert.deepEqual(diff.added,[]);
|
|
84
84
|
assert.deepEqual(diff.removed,[]);
|
|
85
85
|
const packageVersion=JSON.parse(await readFile(path.join(repoRoot,'package.json'),'utf8')).version;
|
|
86
|
-
if(
|
|
86
|
+
if(['0.15.41','0.15.42','0.15.43'].includes(packageVersion)){
|
|
87
87
|
assert.deepEqual(diff.schema_changed,['machine_fs']);
|
|
88
88
|
assert.equal(diff.unchanged.length,42);
|
|
89
89
|
const prior=baseline.tools.find(tool=>tool.name==='machine_fs');
|
|
@@ -4,6 +4,7 @@ import {readFile} from 'node:fs/promises';
|
|
|
4
4
|
|
|
5
5
|
const read=rel=>readFile(new URL('../'+rel,import.meta.url),'utf8');
|
|
6
6
|
const json=async rel=>JSON.parse((await read(rel)).replace(/^\uFEFF/,''));
|
|
7
|
+
const currentPackage=await json('package.json');
|
|
7
8
|
const PARENT={
|
|
8
9
|
version:'0.15.41',
|
|
9
10
|
release_id:'v0.15.41-63a78ad159ad3003',
|
|
@@ -11,7 +12,7 @@ const PARENT={
|
|
|
11
12
|
generation_manifest_sha256:'19ae2efcdcde9f80c474f0e55851d4ada51c22813d3e05af03b11acb28c3fca5'
|
|
12
13
|
};
|
|
13
14
|
|
|
14
|
-
test('R65 release identity binds exact production R64 parent and durable authority-continuity train',async()=>{
|
|
15
|
+
test('R65 release identity binds exact production R64 parent and durable authority-continuity train',{skip:currentPackage.version!=='0.15.42'},async()=>{
|
|
15
16
|
const [pkg,lock,bridge,release,provenance,matrix,sbom,version,gate,gaps,design]=await Promise.all([
|
|
16
17
|
json('package.json'),json('package-lock.json'),json('bridge/package.json'),json('RELEASE.json'),
|
|
17
18
|
json('PROVENANCE.json'),json('TEST-MATRIX.json'),json('SBOM.cdx.json'),read('src/version.mjs'),
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import {readFile} from 'node:fs/promises';
|
|
4
|
+
|
|
5
|
+
const read=rel=>readFile(new URL('../'+rel,import.meta.url),'utf8');
|
|
6
|
+
const json=async rel=>JSON.parse((await read(rel)).replace(/^\uFEFF/,''));
|
|
7
|
+
const PARENT={
|
|
8
|
+
version:'0.15.42',
|
|
9
|
+
release_id:'v0.15.42-1b4754103dd4ca43',
|
|
10
|
+
manifest_sha256:'1b4754103dd4ca43eb81f8e33cf188b36eee3051cb182396ccc6abe2a6e6c250',
|
|
11
|
+
generation_manifest_sha256:'62dc68be55ad627f8d872b8be8c1369ecca0edf08fdedc8336c9ccee2d2809fb'
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
test('R66 identity is an exact prepublish doctor hotfix of sealed R65',async()=>{
|
|
15
|
+
const [pkg,lock,bridge,release,provenance,matrix,sbom,version,gate]=await Promise.all([
|
|
16
|
+
json('package.json'),json('package-lock.json'),json('bridge/package.json'),json('RELEASE.json'),
|
|
17
|
+
json('PROVENANCE.json'),json('TEST-MATRIX.json'),json('SBOM.cdx.json'),read('src/version.mjs'),
|
|
18
|
+
read('scripts/gate-windows-r66-prepublish.ps1')
|
|
19
|
+
]);
|
|
20
|
+
assert.equal(pkg.version,'0.15.43');
|
|
21
|
+
assert.equal(lock.version,pkg.version);
|
|
22
|
+
assert.equal(lock.packages[''].version,pkg.version);
|
|
23
|
+
assert.equal(bridge.version,pkg.version);
|
|
24
|
+
assert.match(version,/DEADBYTE_VERSION = '0\.15\.43'/);
|
|
25
|
+
assert.equal(pkg.scripts['gate:windows'],'powershell -NoProfile -ExecutionPolicy Bypass -File scripts/gate-windows-r66-prepublish.ps1');
|
|
26
|
+
assert.match(pkg.scripts['r66:focused:test'],/test\/r58-doctor-runtime\.test\.mjs/);
|
|
27
|
+
assert.equal(release.version,pkg.version);
|
|
28
|
+
assert.equal(release.train,'R66');
|
|
29
|
+
for(const [key,value] of Object.entries(PARENT))assert.equal(release.parent[key],value);
|
|
30
|
+
assert.deepEqual(release.runtime_predecessor,{
|
|
31
|
+
release_id:PARENT.release_id,
|
|
32
|
+
manifest_sha256:PARENT.manifest_sha256,
|
|
33
|
+
generation_manifest_sha256:PARENT.generation_manifest_sha256
|
|
34
|
+
});
|
|
35
|
+
assert.equal(release.source_predecessor.version,PARENT.version);
|
|
36
|
+
assert.equal(release.source_predecessor.manifest_file_sha256,PARENT.manifest_sha256);
|
|
37
|
+
assert.equal(release.r66_doctor_epoch_hotfix.doctor_epoch_observation_compatibility,true);
|
|
38
|
+
assert.equal(release.r66_doctor_epoch_hotfix.new_public_tools,0);
|
|
39
|
+
assert.equal(release.r66_doctor_epoch_hotfix.new_authority_scopes,0);
|
|
40
|
+
assert.equal(release.r66_doctor_epoch_hotfix.prepublish_only,true);
|
|
41
|
+
assert.equal(provenance.version,pkg.version);
|
|
42
|
+
assert.equal(provenance.parent_release_id,PARENT.release_id);
|
|
43
|
+
assert.equal(provenance.parent_manifest_sha256,PARENT.manifest_sha256);
|
|
44
|
+
assert.equal(provenance.parent_generation_manifest_sha256,PARENT.generation_manifest_sha256);
|
|
45
|
+
assert.equal(provenance.r66.new_public_tools,0);
|
|
46
|
+
assert.equal(provenance.r66.new_authority_scopes,0);
|
|
47
|
+
assert.equal(matrix.version,pkg.version);
|
|
48
|
+
assert.equal(matrix.train,'R66');
|
|
49
|
+
assert.ok(matrix.required.some(row=>row.id==='r66-focused'));
|
|
50
|
+
assert.equal(sbom.metadata.component.version,pkg.version);
|
|
51
|
+
assert.equal(sbom.serialNumber,'urn:cdx:deadbyte-mcp:r66:0.15.43');
|
|
52
|
+
assert.match(gate,/v0\.15\.42-1b4754103dd4ca43/);
|
|
53
|
+
assert.match(gate,/62dc68be55ad627f8d872b8be8c1369ecca0edf08fdedc8336c9ccee2d2809fb/);
|
|
54
|
+
assert.match(gate,/r66:focused:test/);
|
|
55
|
+
assert.doesNotMatch(gate,/npm\.cmd publish|--publish-only/);
|
|
56
|
+
});
|