deadbyte-mcp 0.15.54 → 0.15.55
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 +14 -14
- package/PROVENANCE.json +10 -10
- package/README.txt +22 -18
- package/RELEASE.json +8 -8
- package/SBOM.cdx.json +2 -2
- package/TEST-MATRIX.json +1 -1
- package/package.json +1 -1
- package/src/activation-preflight-r65.mjs +6 -1
- package/src/version.mjs +1 -1
- package/test/r121-signed-transition-invariant.test.mjs +7 -8
- package/test/r130-release-security-contract.test.mjs +6 -6
- package/test/r132-release-identity.test.mjs +7 -7
- package/test/r59-tool-surface-compat.test.mjs +1 -1
- package/test/r65-activation-preflight.test.mjs +35 -0
- package/test/r74-prepublish-contract.test.mjs +1 -1
package/MANIFEST.SHA256
CHANGED
|
@@ -1394,8 +1394,8 @@ db605a698f917c4006462596e6526fe6a9c6eff9b8409e8472fe545d4b70027c node_modules/z
|
|
|
1394
1394
|
f67a25ded944912bd4621b68df17c7c70a52aae117278c076c0aabbc32a3abba node_modules/zod/v4/mini/schemas.d.ts
|
|
1395
1395
|
51b3a7869df2d3a1bd98acb9d5b6a61bbccc7653d7a3d8fca7f0e0db7e84e284 node_modules/zod/v4/mini/schemas.js
|
|
1396
1396
|
3e3125b5a537a24c3632c1c5c09640ce7bcb3935901b127ad8ae3c37a27f133f node_modules/zod/v4/package.json
|
|
1397
|
-
|
|
1398
|
-
|
|
1397
|
+
6359d653adad04e0af16cb9def361ca0512f8585bd8bdc54e58e16aa5211cafd package.json
|
|
1398
|
+
6fed2e0982f3a24aae3b10af7279993813b70d83855c3b9df2963d755618fb2e PROVENANCE.json
|
|
1399
1399
|
27ca0f3c9ee3a1b6374a9c8dd98008decdd0c7659c7a569c70ad7b9734c74655 R34-BASELINE.json
|
|
1400
1400
|
0b7ec5ee347ddfa6cca59740fc7a8fe3fc5d51406265bb12189e82fa106319d2 R41-PARENT.json
|
|
1401
1401
|
bd2a789b0aab5663f0d208af2ca8e4ec98179bc8c7b57e70a962d4e06a3dcfc4 R42-PARENT.json
|
|
@@ -1404,9 +1404,9 @@ f932ef78b7a72b1bb0d7aedb5fe42fbb9951c2492eb528b72442f46ddff81a6c R44-DONORS.jso
|
|
|
1404
1404
|
731b4c559fc0d25dea701e4474f02400b27e8e3f4cac9f230d5214497d4490a9 R44-PARENT.json
|
|
1405
1405
|
d33ec5d167dd44800ba4e68372b08db43deb8d01df2ef71dd435ff004ac66c8b R45-PARENT.json
|
|
1406
1406
|
3dc607603fea511e2f428e9546a875ab7e38b6a0bbd5e803e4510de082f30804 R49-PARENT.json
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1407
|
+
a3a0461ae876b0e9270116223d95e963f648b63a4b2bef68ea14e6260b087d24 README.txt
|
|
1408
|
+
6f7eda6536d483fd83e2bacd1306f09bd7300bc5b62417ba87819fcfac414004 RELEASE.json
|
|
1409
|
+
f8bb41a1abe7954b2bced0b8b99d9cca35b1364e10bddd4c60d60cf0982a29b5 SBOM.cdx.json
|
|
1410
1410
|
7c86062c4f69db3179a129d65945ccfab1b1c1c5bcc29b91383eac097d50f2aa scripts/activate-skill-creator-1.1.1.mjs
|
|
1411
1411
|
bd138fe5a64088e8e1a7a5bf6104c5b17317bdc8cf3ad8191ea00ed82ace7d9b scripts/agent-eval-r42.mjs
|
|
1412
1412
|
8d90256a6863f3bbbff02e95cb12389fc6f9e8dbcb77bf1c20c902de371425e8 scripts/archive-source-zips.mjs
|
|
@@ -1672,7 +1672,7 @@ c32cb9054a1b9641ae071c00622c0054272bdb0b519ea22c4ff926a1600a2b46 scripts/worklo
|
|
|
1672
1672
|
546947775fac8075f48c689ea0f7bed5ea14424efd12587daead4a7df6e796df src/activation-authority-proof-r75.mjs
|
|
1673
1673
|
0fca861bfb959b6d84c4767b2f60a4e0ec2403291a6050ee7598f75d2c4c18e0 src/activation-continuity-engine-r65.mjs
|
|
1674
1674
|
ef15933f6d77fdbbddafef4e46352a12ecd4ed8e2d4c6dd515059ad5fa547e65 src/activation-lock-r65.mjs
|
|
1675
|
-
|
|
1675
|
+
44ee9d10415eb9fcbbcf744d863b3ae9a78fd79df5a933892b51346c5027bf65 src/activation-preflight-r65.mjs
|
|
1676
1676
|
9dc1154b3857446d0412002e1f0b0031c23d1768350dc9395749a7f82be337e5 src/agent-backend-r44.mjs
|
|
1677
1677
|
4e8e442497a15bce43b7d02ade497403d80b86e307473d26c172a0fba3a6d4ea src/agent-eval-r42.mjs
|
|
1678
1678
|
42858a99d43ecd1b165576890c237ad413dca25f9e6a17ec84c0e47b759913e8 src/agent-eval-runner-r42.mjs
|
|
@@ -1887,13 +1887,13 @@ c99c2402fb0df4f68634fa906eb198c551c55dad9f0921a7b8ed6e33d503884e src/tunnel-std
|
|
|
1887
1887
|
aa765e9a28c69ff58a5b5a0d29b49ea181af4db9076633b102dbca25861e708e src/tunnel-stdio-compat.mjs
|
|
1888
1888
|
642cb67d1854850e336ee73fbd71b329056bdcbdab35cea19c1a995a155ff5d9 src/verifier-cli.mjs
|
|
1889
1889
|
8f818a4852ce3be3a380cd4736c3073a7a3e0e45cd7c7ca90588a6b843d3d022 src/verifier.mjs
|
|
1890
|
-
|
|
1890
|
+
e058bc640b24164d4a5ca985875508cae57547c3e6b53f2123da3a8cf7036b46 src/version.mjs
|
|
1891
1891
|
acf5f5a57779bc0529f9db3d821f0ef1b53d22063aa237041348c1ca444ea677 src/windows-powershell-environment.mjs
|
|
1892
1892
|
7e09c57a97289360aabfaf3d531208e54872efbfb3182f3c18203d2cb88c46b5 src/worker-registry.mjs
|
|
1893
1893
|
76361d5ae9a710273cf64a7525082197b692236bf23689875e5fd1ef4aa96d2b src/worker-scheduler.mjs
|
|
1894
1894
|
4da1b32f5198bb089bc68b7eb6de21ea296678b5020018a73742bf0df57d62fa src/workload-substrate.mjs
|
|
1895
1895
|
1bd637e7634ca0259791c5108fcf324554f70b1db49e5eac3505287c04bbc3be STABILIZATION-PROGRESS.md
|
|
1896
|
-
|
|
1896
|
+
f41e82b3bd745f612b7331a804ab69e6057571dec1d8b0ee1c97aaab2073865d TEST-MATRIX.json
|
|
1897
1897
|
e4f1fb97545f23772ddff28ad3f9954a4714f9854062fca62e0e12c1cb2ec4ae test/agent-backend-r44.test.mjs
|
|
1898
1898
|
2a78c818058b25efdc143a3a97c832da231ccd6ff9d90c7796d681a0251b85c4 test/agent-crash-child.mjs
|
|
1899
1899
|
d9461ab7c118ee75d37a2d6f5e637d7e43505af6a9ad8c7ddafffc8ace185a5b test/agent-crash-worker.mjs
|
|
@@ -2137,7 +2137,7 @@ a4394f3a11a0e6b3019bf819a82b40709354b45dd64f614f077dfb4bda357849 test/r117-conc
|
|
|
2137
2137
|
1e4830ddde45e2cad773b00e998d31bc622633be9354668cac035dd495f0a527 test/r118-cross-process-orphan-recovery.test.mjs
|
|
2138
2138
|
f25f30262042ff0826161426d3d2e5d3536380324272537d012d3afd358fc4d5 test/r119-recovery-crash-after-commit.test.mjs
|
|
2139
2139
|
f32d6e495af58dcfbff75561097c7ea8e04193a1fa53b16b734a234a0670cfb0 test/r120-authority-history-audit.test.mjs
|
|
2140
|
-
|
|
2140
|
+
d7fdeb14cc078e1fb40de52aa446731beb25b88b60d3891eb0547d287fc8d24a test/r121-signed-transition-invariant.test.mjs
|
|
2141
2141
|
0a5b7904e8ff10fb5992c6f273b3f2c7f92163448f9278bb87e68aebc1d6d991 test/r122-epoch-bounded-read.test.mjs
|
|
2142
2142
|
78afe29736672e0ff5b86ba1fa7a6a81a75993290e3a2e84a9ef439078681726 test/r123-recovery-bounded-read.test.mjs
|
|
2143
2143
|
f5c59fcc44585fec5e60be922463f56f31ecf2a8dd0c78bfcf856fbe08b043d7 test/r124-live-log-integrity.test.mjs
|
|
@@ -2147,9 +2147,9 @@ ce163ee9f288e30a213636e2267b8630016ef8a170f12286e8cdd44219bdab32 test/r124-live
|
|
|
2147
2147
|
17475b51e416ae678f959f8975fab8497eb7c57d13e36cac8656c0e1f7424c0c test/r126-restore-policy-envelope.test.mjs
|
|
2148
2148
|
1721d4bd3bb58c10ad9d86b69ad1d993ec5a1e6315c95b28fa50ab67d4ca302a test/r127-restore-append-policy-boundary.test.mjs
|
|
2149
2149
|
b3d3dda398c94d18e2e156bde65d1338000233407b435134ba0c16175d96620b test/r129-sdk-security-baseline.test.mjs
|
|
2150
|
-
|
|
2150
|
+
10d482a2d2e3874f9e8b72af388c2adad5c17e8f958fd47396cb2496df1147c5 test/r130-release-security-contract.test.mjs
|
|
2151
2151
|
bb7963baf412ec0f5aca183f6dd98eda9026fe763017f9af595581b521ae6cb7 test/r131-installed-manifest-boundary.test.mjs
|
|
2152
|
-
|
|
2152
|
+
564551f406e552bbee2e7ce2905e59d36b4bdf04e758985b1bce28fc567c066d test/r132-release-identity.test.mjs
|
|
2153
2153
|
acd236a4d8ba035007bde4166a521b8d4e6044f58c52c0bae9cb42fa75338533 test/r135-autonomous-scope.test.mjs
|
|
2154
2154
|
3fcf657aae1f8466abc5ab82bb5a619966ea9b8a33d4a95a5a5246df5bf3afa1 test/r136-scoped-command-rights.test.mjs
|
|
2155
2155
|
e0c466f25b35eb894166df792b71b23924610d32363756c75ff437dfdaa12a4c test/r136-scoped-observer.test.mjs
|
|
@@ -2237,7 +2237,7 @@ ca8e23abc89f3eadeceb4b6fdad2cb4db5a7933029ece8e8beae2c6a158876b7 test/r58-owner
|
|
|
2237
2237
|
8fc5ed1d3088facf45f9578d9ff8514c3a633f7f342d15eec316e129e7a916c0 test/r58-stale-owner.test.mjs
|
|
2238
2238
|
84be7ee7d167eb06c9f9fc178930daaa81e53a91de40bad6d7df2060bd3dd165 test/r58-windows-gate.test.mjs
|
|
2239
2239
|
76db2a4009d76b86e1da57b91a96b0d6bfeb4063bec3301ede736e2fd5832f39 test/r59-release-contract.test.mjs
|
|
2240
|
-
|
|
2240
|
+
fccd74bf2f4004cec7ecab0e65c8f11673c3d0f3491d956c6957d848168d1395 test/r59-tool-surface-compat.test.mjs
|
|
2241
2241
|
3befd5d4dc4d8ca9e1f6cbeb9c430671e676c5696d6ee5931c2cbe3244c558a4 test/r60-authority-coherence.test.mjs
|
|
2242
2242
|
60577e231c7d164f57a3960c574d3e369ca140d9dbc477b2444fa62dbf224e51 test/r60-authority-enforcement.test.mjs
|
|
2243
2243
|
a1fa0b1e529da05f3659a33be6d36dab02f93808638cf0f458d057e9c6d1e35b test/r60-bridge-dispatch.test.mjs
|
|
@@ -2264,7 +2264,7 @@ a6ec5cbc279083ace108bac15ea313deb4dfc895d55d73c3a047d4b409ec0b70 test/r64-machi
|
|
|
2264
2264
|
32de441147f2dfd5020f2f4c1aa18187d90453a795eb957a316aff4aa8cf8ac0 test/r65-activation-lock-recovery.test.mjs
|
|
2265
2265
|
cf20daadb0145b9c21e168d4e6e5dc510dfe66f9589e20133d1b9ab2ea22cf6d test/r65-activation-lock.test.mjs
|
|
2266
2266
|
81819c033df72963965b83ac217d25afc1c8595a6005722bd657554982cb9153 test/r65-activation-orchestration.test.mjs
|
|
2267
|
-
|
|
2267
|
+
37876ebc889935dcdee048ba07a00bd53bbbb99a31565189a00a425c78d5926c test/r65-activation-preflight.test.mjs
|
|
2268
2268
|
570e909208aeafb363c433f1379ad3a842885c6de927766b45a0edb1e8905007 test/r65-authority-continuity-decision.test.mjs
|
|
2269
2269
|
4c661a8b13d190e419c84bb0f92164c79956742462ec461fb0859fe121902251 test/r65-authority-durable-policy-binding.test.mjs
|
|
2270
2270
|
978cd30100d9379a4b6ca7eed7476d8d0493608a2a84c7e09654896198e1a4ba test/r65-authority-epoch-cli.test.mjs
|
|
@@ -2335,7 +2335,7 @@ a4f4e675703d6208d2ca51151273f97e547927d6f44d8b95c88309b3ee002008 test/r72-stagi
|
|
|
2335
2335
|
c26ac29f6e47e21cc3d20331391295c4f57c20bc1a9094f27079ee60c11ab75b test/r72-staging-workspace-isolation.test.mjs
|
|
2336
2336
|
20cc37b85fd61870fc51b01aeba7e7bb4e31fd6529dc38ad42e52b1549c412f8 test/r73-package-boundary.test.mjs
|
|
2337
2337
|
ff8d6c7998053a20a0d6a855d4a0013f0f19e649b91731d970e647242bb66e86 test/r74-kernel-lock.test.mjs
|
|
2338
|
-
|
|
2338
|
+
7cb5edf625e965c0e6a6938bd822522777880bd41ad51e73e1daaec6556e2bc2 test/r74-prepublish-contract.test.mjs
|
|
2339
2339
|
d283a882b9d7bb38b8d6a0db97882fcaf9b6dfa717aca79dd0351012cc00ba23 test/r75-activation-authority-proof.test.mjs
|
|
2340
2340
|
38b66147b550c1d1e068ebaa9f8de93a070c08a8a99e0ddee7970b0374c4bfc5 test/r75-authority-evidence.test.mjs
|
|
2341
2341
|
993186133dc7620bcd3057efda9a0ba1435c938656e4b24a32ace4ce57ea9735 test/r76-pinned-marker-cas.test.mjs
|
package/PROVENANCE.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "deadbyte.provenance.v1",
|
|
3
|
-
"version": "0.15.
|
|
4
|
-
"source_model": "published 0.15.
|
|
3
|
+
"version": "0.15.55",
|
|
4
|
+
"source_model": "published 0.15.54 -> R152 stable activation preflight subject without clock-time rebinding",
|
|
5
5
|
"signing": "ed25519",
|
|
6
|
-
"parent_tarball_sha256": "
|
|
6
|
+
"parent_tarball_sha256": "bedb4be86f4c22d4c98d661a08738d5ef51027a87240a1770c8cc0b0a4885081",
|
|
7
7
|
"parent_activation_status": "PRODUCTION_ACTIVE",
|
|
8
8
|
"parent_rollback_receipt_sha256": null,
|
|
9
9
|
"runtime_predecessor": {
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"manifest_sha256": "34aa8d1241cfb8bf0b5ba303bf3c06e0e9e1bf01f64457bca659d6dd4d634fdc",
|
|
12
12
|
"generation_manifest_sha256": "ff2b73410062688651abd7bc2dd7b2b8c87810a28e3808bfe1f4352a25b0e6e4"
|
|
13
13
|
},
|
|
14
|
-
"source_predecessor_manifest_file_sha256": "
|
|
15
|
-
"reproducibility": "
|
|
14
|
+
"source_predecessor_manifest_file_sha256": "e87712aee4fdad8f450cce2351b87675aa1c112811f2aa8e363cbe808cd49b9f",
|
|
15
|
+
"reproducibility": "R152 isolated successor of published 0.15.54, exact upstream tarball SHA-256 bedb4be86f4c22d4c98d661a08738d5ef51027a87240a1770c8cc0b0a4885081; production runtime 0.15.45 unchanged; new preflight subject excludes observed_at_utc only; owner Ed25519 approval required",
|
|
16
16
|
"public_surface_evidence": {
|
|
17
17
|
"status": "PASS",
|
|
18
18
|
"baseline_release": "v0.15.35-1b5715b276facbc0",
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
"evidence_receipt_sha256": "2d3adcc33d010c4977974971222e6b13d613ff268097fff0eec0113e4f82f281"
|
|
26
26
|
},
|
|
27
27
|
"fresh_full_regression": {
|
|
28
|
-
"status": "
|
|
28
|
+
"status": "PENDING_R152_PROTECTED_FULL",
|
|
29
29
|
"tests": null,
|
|
30
30
|
"passed": null,
|
|
31
31
|
"skipped": null,
|
|
32
32
|
"failed": null,
|
|
33
|
-
"evidence_scope": "
|
|
33
|
+
"evidence_scope": "R152 focused unit and live read-only preflight PASS; protected full not yet observed"
|
|
34
34
|
},
|
|
35
35
|
"inherited_r58_consolidation": {
|
|
36
36
|
"frontend_status_vocabulary": true,
|
|
@@ -76,12 +76,12 @@
|
|
|
76
76
|
"stdio_aggregate_p95_delta_pct": 1.984392678457768,
|
|
77
77
|
"limitations_preserved": true
|
|
78
78
|
},
|
|
79
|
-
"builder": "deadbyte-
|
|
79
|
+
"builder": "deadbyte-r152-activation-subject-development",
|
|
80
80
|
"parent_release_id": "v0.15.45-34aa8d1241cfb8bf",
|
|
81
81
|
"parent_manifest_sha256": "34aa8d1241cfb8bf0b5ba303bf3c06e0e9e1bf01f64457bca659d6dd4d634fdc",
|
|
82
82
|
"parent_generation_manifest_sha256": "ff2b73410062688651abd7bc2dd7b2b8c87810a28e3808bfe1f4352a25b0e6e4",
|
|
83
|
-
"source_predecessor_version": "0.15.
|
|
84
|
-
"source_predecessor_tarball_sha256": "
|
|
83
|
+
"source_predecessor_version": "0.15.54",
|
|
84
|
+
"source_predecessor_tarball_sha256": "bedb4be86f4c22d4c98d661a08738d5ef51027a87240a1770c8cc0b0a4885081",
|
|
85
85
|
"operator_override": {
|
|
86
86
|
"four_hour_soak": "WAIVED_BY_OPERATOR",
|
|
87
87
|
"clean_machine": "WAIVED_BY_OPERATOR",
|
package/README.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
DEADBYTE MCP V0.15.
|
|
1
|
+
DEADBYTE MCP V0.15.55 / R152 ACTIVATION SUBJECT STABILITY
|
|
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.55 mcp
|
|
20
|
+
npx -y deadbyte-mcp@0.15.55 remote
|
|
21
|
+
npx -y deadbyte-mcp@0.15.55 remote status
|
|
22
|
+
npx -y deadbyte-mcp@0.15.55 remote restart
|
|
23
|
+
npx -y deadbyte-mcp@0.15.55 audit status
|
|
24
|
+
npx -y deadbyte-mcp@0.15.55 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.55", "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.55", "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.55", "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.55", "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.
|
|
@@ -356,7 +356,7 @@ CONTROLLER
|
|
|
356
356
|
----------
|
|
357
357
|
Primary operator entry point:
|
|
358
358
|
|
|
359
|
-
npx -y deadbyte-mcp@0.15.
|
|
359
|
+
npx -y deadbyte-mcp@0.15.55 remote
|
|
360
360
|
|
|
361
361
|
The legacy CMD entry remains compatibility-only for R33 rollback safety.
|
|
362
362
|
|
|
@@ -417,7 +417,7 @@ MCP CLIENT CONFIGURATION
|
|
|
417
417
|
------------------------
|
|
418
418
|
The local stdio entry point is quiet and suitable for MCP hosts:
|
|
419
419
|
|
|
420
|
-
npx -y deadbyte-mcp@0.15.
|
|
420
|
+
npx -y deadbyte-mcp@0.15.55 mcp
|
|
421
421
|
|
|
422
422
|
CLAUDE DESKTOP
|
|
423
423
|
Use the standard local-server entry in claude_desktop_config.json:
|
|
@@ -426,7 +426,7 @@ Use the standard local-server entry in claude_desktop_config.json:
|
|
|
426
426
|
"mcpServers": {
|
|
427
427
|
"deadbyte": {
|
|
428
428
|
"command": "npx",
|
|
429
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
429
|
+
"args": ["-y", "deadbyte-mcp@0.15.55", "mcp"]
|
|
430
430
|
}
|
|
431
431
|
}
|
|
432
432
|
}
|
|
@@ -439,7 +439,7 @@ Create .cursor/mcp.json:
|
|
|
439
439
|
"deadbyte": {
|
|
440
440
|
"type": "stdio",
|
|
441
441
|
"command": "npx",
|
|
442
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
442
|
+
"args": ["-y", "deadbyte-mcp@0.15.55", "mcp"]
|
|
443
443
|
}
|
|
444
444
|
}
|
|
445
445
|
}
|
|
@@ -452,7 +452,7 @@ Create .vscode/mcp.json:
|
|
|
452
452
|
"deadbyte": {
|
|
453
453
|
"type": "stdio",
|
|
454
454
|
"command": "npx",
|
|
455
|
-
"args": ["-y", "deadbyte-mcp@0.15.
|
|
455
|
+
"args": ["-y", "deadbyte-mcp@0.15.55", "mcp"]
|
|
456
456
|
}
|
|
457
457
|
}
|
|
458
458
|
}
|
|
@@ -462,9 +462,9 @@ Add this to ~/.codex/config.toml:
|
|
|
462
462
|
|
|
463
463
|
[mcp_servers.deadbyte]
|
|
464
464
|
command = "npx"
|
|
465
|
-
args = ["-y", "deadbyte-mcp@0.15.
|
|
465
|
+
args = ["-y", "deadbyte-mcp@0.15.55", "mcp"]
|
|
466
466
|
|
|
467
|
-
The remote device path remains `npx -y deadbyte-mcp@0.15.
|
|
467
|
+
The remote device path remains `npx -y deadbyte-mcp@0.15.55 remote`. Remote public MCP uses the
|
|
468
468
|
verified HTTPS named-tunnel URL selected by the active generation; do not commit a private device
|
|
469
469
|
URL or tunnel token into a repository.
|
|
470
470
|
|
|
@@ -562,3 +562,7 @@ replacement between calls may request hash_file and compare file_sha256 values,
|
|
|
562
562
|
restart or report drift if they differ; unchanged hashes do not make concurrent in-place
|
|
563
563
|
modification during a read an atomic snapshot. The coding root's local read policy remains
|
|
564
564
|
the final authority, including the established read-only behavior when coding is disarmed.
|
|
565
|
+
|
|
566
|
+
R152 note: repeated read-only activation preflights now bind stable authority and runtime identity, not observed_at_utc.
|
|
567
|
+
An owner-signed Ed25519 offline scope repair approval is still required before production activation from 0.15.45.
|
|
568
|
+
Do not use remote on production until this approval and an independently observed activation/rollback gate succeed.
|
package/RELEASE.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
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.55",
|
|
5
|
+
"train": "R152",
|
|
6
|
+
"label": "R152 ACTIVATION SUBJECT STABILITY / OWNER APPROVAL REQUIRED",
|
|
7
7
|
"protocol_revision": "2026-07-28",
|
|
8
8
|
"parent": {
|
|
9
9
|
"version": "0.15.45",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"generation_manifest_sha256": "ff2b73410062688651abd7bc2dd7b2b8c87810a28e3808bfe1f4352a25b0e6e4"
|
|
20
20
|
},
|
|
21
21
|
"source_predecessor": {
|
|
22
|
-
"version": "0.15.
|
|
23
|
-
"source_path": "D:\\Projects\\deadbyte-mcp\\testing\\r144-remote-recovery\\
|
|
22
|
+
"version": "0.15.54",
|
|
23
|
+
"source_path": "D:\\Projects\\deadbyte-mcp\\testing\\r144-remote-recovery\\r150-registry-artifact\\deadbyte-mcp-0.15.54.tgz",
|
|
24
24
|
"release_status": "REGISTRY_PUBLISHED",
|
|
25
|
-
"tarball_sha256": "
|
|
25
|
+
"tarball_sha256": "bedb4be86f4c22d4c98d661a08738d5ef51027a87240a1770c8cc0b0a4885081"
|
|
26
26
|
},
|
|
27
27
|
"consolidation": {
|
|
28
28
|
"frontend_status_vocabulary": true,
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"performance_acceptance": "PASS_BOUNDED_PREPUBLISH",
|
|
38
38
|
"fresh_full_regression": "PASS_R64_PREPACKAGE",
|
|
39
39
|
"package_acceptance": "PENDING_R71",
|
|
40
|
-
"registry_round_trip": "
|
|
41
|
-
"production_activation_rollback_restore": "
|
|
40
|
+
"registry_round_trip": "PENDING_R152",
|
|
41
|
+
"production_activation_rollback_restore": "PENDING_OWNER_SIGNED_APPROVAL",
|
|
42
42
|
"stable_final_claim": false,
|
|
43
43
|
"cross_plane_acceptance": "PASS",
|
|
44
44
|
"public_surface_compatibility": "R71_43_TOOLS_TWO_REVIEWED_SCHEMA_DELTAS",
|
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:r152:0.15.55",
|
|
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.55"
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"components": [
|
package/TEST-MATRIX.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deadbyte-mcp",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.55",
|
|
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.",
|
|
@@ -45,7 +45,12 @@ export function classifyActivationPreflight({pointer,expectedParent,candidate,ex
|
|
|
45
45
|
if(!expectedParent||!expectedCandidate||!candidate||!pointer)throw new Error('activation preflight subject missing');
|
|
46
46
|
const authority=vector(observation);
|
|
47
47
|
if(PLANES.some(plane=>typeof authority[plane]!=='boolean'))return Object.freeze({state:'UNKNOWN',safe_to_activate:false,reason:'authority observation incomplete'});
|
|
48
|
-
|
|
48
|
+
// Observed time is freshness metadata, not a runtime or authority identity.
|
|
49
|
+
// Rebinding to it makes a second read reject an otherwise identical signed approval.
|
|
50
|
+
// Keep every other observed field pinned, including runtime IDs and grant proofs.
|
|
51
|
+
const stableObservation={...observation};
|
|
52
|
+
delete stableObservation.observed_at_utc;
|
|
53
|
+
const subject={pointer,expectedParent,candidate,expectedCandidate,observation:stableObservation};
|
|
49
54
|
const bound={subject_sha256:digest(subject),authority:Object.freeze(authority)};
|
|
50
55
|
for(const plane of PLANES){
|
|
51
56
|
const entry=observation?.authority?.[plane],proof=observation?.authority_proof?.[plane];
|
package/src/version.mjs
CHANGED
|
@@ -76,18 +76,17 @@ test('R121 correctly signed restore after user revoke is still an invalid author
|
|
|
76
76
|
await assert.rejects(candidate.auditHistory({plane:'process'}), /authority epoch transition invalid/);
|
|
77
77
|
assert.equal((await readFile(path.join(dir, 'events', eventFile))).equals(eventBytes), true);
|
|
78
78
|
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
// hot path checks the newest pair, while explicit audit must detect the
|
|
82
|
-
// invalid transition that is now deeper in history.
|
|
79
|
+
// Current protected writers must reject the already-forged transition
|
|
80
|
+
// rather than extending it and making the corrupted head appear trusted.
|
|
83
81
|
const finalNonce = randomBytes(32).toString('hex');
|
|
84
82
|
const finalGrant = Buffer.from(JSON.stringify({instance_nonce:finalNonce, fixture:'R121 final'}));
|
|
85
|
-
|
|
86
|
-
grantBytes:finalGrant, grantInstanceNonce:finalNonce});
|
|
87
|
-
assert.
|
|
83
|
+
await assert.rejects(writer.append({plane:'process', action:'grant',
|
|
84
|
+
grantBytes:finalGrant, grantInstanceNonce:finalNonce}), /authority epoch transition invalid/);
|
|
85
|
+
await assert.rejects(candidate.readHead({plane:'process'}), /authority epoch transition invalid/);
|
|
88
86
|
assert.equal((await candidate.verifyGrant({plane:'process', grantBytes:finalGrant,
|
|
89
|
-
grantInstanceNonce:finalNonce})).trusted,
|
|
87
|
+
grantInstanceNonce:finalNonce})).trusted, false);
|
|
90
88
|
await assert.rejects(candidate.auditHistory({plane:'process'}), /authority epoch transition invalid/);
|
|
89
|
+
assert.equal((await readFile(path.join(dir, 'events', eventFile))).equals(eventBytes), true);
|
|
91
90
|
} finally {
|
|
92
91
|
await rm(root, {recursive:true, force:true, maxRetries:8, retryDelay:100});
|
|
93
92
|
}
|
|
@@ -13,14 +13,14 @@ test('R130 security patch has a new immutable package identity and truthful sour
|
|
|
13
13
|
read('SBOM.cdx.json'),read('package-lock.json'),read('TEST-MATRIX.json')]);
|
|
14
14
|
assert.equal(pkg.name,'deadbyte-mcp');
|
|
15
15
|
for(const actual of [pkg.version,release.version,provenance.version,matrix.version,bom.metadata.component.version,lock.version,lock.packages[''].version,DEADBYTE_VERSION])
|
|
16
|
-
assert.equal(actual,'0.15.
|
|
17
|
-
assert.equal(release.train,'
|
|
16
|
+
assert.equal(actual,'0.15.55');
|
|
17
|
+
assert.equal(release.train,'R152');
|
|
18
18
|
assert.equal(matrix.train,'R146');
|
|
19
|
-
assert.equal(release.source_predecessor.version,'0.15.
|
|
20
|
-
assert.match(release.source_predecessor.source_path,/0\.15\.
|
|
19
|
+
assert.equal(release.source_predecessor.version,'0.15.54');
|
|
20
|
+
assert.match(release.source_predecessor.source_path,/0\.15\.54/);
|
|
21
21
|
assert.equal(release.runtime_predecessor.version,'0.15.45');
|
|
22
|
-
assert.equal(provenance.source_predecessor_version,'0.15.
|
|
23
|
-
assert.equal(provenance.source_predecessor_manifest_file_sha256,'
|
|
22
|
+
assert.equal(provenance.source_predecessor_version,'0.15.54');
|
|
23
|
+
assert.equal(provenance.source_predecessor_manifest_file_sha256,'e87712aee4fdad8f450cce2351b87675aa1c112811f2aa8e363cbe808cd49b9f');
|
|
24
24
|
assert.equal(pkg.dependencies['@modelcontextprotocol/client'],'2.3.1');
|
|
25
25
|
assert.equal(pkg.dependencies['@modelcontextprotocol/server'],'2.3.1');
|
|
26
26
|
for(const dep of ['@modelcontextprotocol/client','@modelcontextprotocol/server'])
|
|
@@ -13,15 +13,15 @@ test('R144 package identities, R132 historic evidence and published predecessor
|
|
|
13
13
|
read('package.json'),read('package-lock.json'),read('RELEASE.json'),
|
|
14
14
|
read('PROVENANCE.json'),read('SBOM.cdx.json'),read('TEST-MATRIX.json')]);
|
|
15
15
|
for(const value of [pkg.version,lock.version,lock.packages[''].version,release.version,prov.version,bom.metadata.component.version,matrix.version,DEADBYTE_VERSION]){
|
|
16
|
-
assert.equal(value,
|
|
16
|
+
assert.equal(value,pkg.version);
|
|
17
17
|
}
|
|
18
|
-
assert.equal(release.train,'
|
|
18
|
+
assert.equal(release.train,'R152');
|
|
19
19
|
assert.equal(matrix.train,'R146');
|
|
20
|
-
assert.equal(release.source_predecessor.version,'0.15.
|
|
21
|
-
assert.match(release.source_predecessor.source_path,/0\.15\.
|
|
22
|
-
assert.equal(prov.source_predecessor_version,'0.15.
|
|
23
|
-
assert.equal(prov.source_predecessor_manifest_file_sha256,'
|
|
24
|
-
assert.equal(prov.parent_tarball_sha256,'
|
|
20
|
+
assert.equal(release.source_predecessor.version,'0.15.54');
|
|
21
|
+
assert.match(release.source_predecessor.source_path,/0\.15\.54/);
|
|
22
|
+
assert.equal(prov.source_predecessor_version,'0.15.54');
|
|
23
|
+
assert.equal(prov.source_predecessor_manifest_file_sha256,'e87712aee4fdad8f450cce2351b87675aa1c112811f2aa8e363cbe808cd49b9f');
|
|
24
|
+
assert.equal(prov.parent_tarball_sha256,'bedb4be86f4c22d4c98d661a08738d5ef51027a87240a1770c8cc0b0a4885081');
|
|
25
25
|
assert.equal(release.runtime_predecessor.version,'0.15.45');
|
|
26
26
|
assert.equal(prov.runtime_predecessor.release_id,release.runtime_predecessor.release_id);
|
|
27
27
|
assert.equal(prov.runtime_predecessor.manifest_sha256,release.runtime_predecessor.manifest_sha256);
|
|
@@ -83,7 +83,7 @@ test('R72 compact baseline permits only R64 read offset and authorized coding-on
|
|
|
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(['0.15.41','0.15.42','0.15.43','0.15.44','0.15.45','0.15.46','0.15.47','0.15.48','0.15.49','0.15.50','0.15.51','0.15.52','0.15.53','0.15.54'].includes(packageVersion)){
|
|
86
|
+
if(['0.15.41','0.15.42','0.15.43','0.15.44','0.15.45','0.15.46','0.15.47','0.15.48','0.15.49','0.15.50','0.15.51','0.15.52','0.15.53','0.15.54','0.15.55'].includes(packageVersion)){
|
|
87
87
|
assert.deepEqual([...diff.schema_changed].sort(),['machine_fs','native_diff_preview']);
|
|
88
88
|
assert.equal(diff.unchanged.length,41);
|
|
89
89
|
const prior=baseline.tools.find(tool=>tool.name==='machine_fs');
|
|
@@ -34,3 +34,38 @@ test('parked dirty, generation drift and identity loss fail closed without an ac
|
|
|
34
34
|
assert.equal(classifyActivationPreflight({...input,observation:withAuthorityProof({...online,policy_sha256:{...policies,host:null}})}).state,'UNKNOWN');
|
|
35
35
|
assert.equal(classifyActivationPreflight({...input,observation:withAuthorityProof({...online,cloud:{alive:false,reason:'missing'}})}).state,'RUNTIME_DRIFT');
|
|
36
36
|
});
|
|
37
|
+
|
|
38
|
+
test('R152 preflight subject ignores observation timestamp but binds runtime, policy, and authority identity',()=>{
|
|
39
|
+
const a=withAuthorityProof({...online,observed_at_utc:'2026-10-23T07:00:00.000Z'});
|
|
40
|
+
const b=withAuthorityProof({...online,observed_at_utc:'2026-10-23T07:00:04.000Z'});
|
|
41
|
+
const baseline=classifyActivationPreflight({...input,observation:a});
|
|
42
|
+
const repeated=classifyActivationPreflight({...input,observation:b});
|
|
43
|
+
assert.equal(baseline.state,'ONLINE_READY');
|
|
44
|
+
assert.equal(repeated.state,'ONLINE_READY');
|
|
45
|
+
assert.equal(baseline.subject_sha256,repeated.subject_sha256);
|
|
46
|
+
for(const changed of [
|
|
47
|
+
{...b,bridge:{...b.bridge,pid:13304}},
|
|
48
|
+
{...b,policy_sha256:{...b.policy_sha256,coding:'a'.repeat(64)}},
|
|
49
|
+
{...b,active_release_id:'substituted-release'},
|
|
50
|
+
{...b,authority:{...b.authority,host:true}},
|
|
51
|
+
{...b,authority_proof:{...b.authority_proof,coding:{...b.authority_proof.coding,grant_absent:true}}}
|
|
52
|
+
]){
|
|
53
|
+
const got=classifyActivationPreflight({...input,observation:changed});
|
|
54
|
+
assert.notEqual(got.subject_sha256,baseline.subject_sha256);
|
|
55
|
+
assert.notEqual(got.subject_sha256,undefined);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
test('R152 offline legacy scope repair subject is stable across fresh read timestamps',()=>{
|
|
60
|
+
const down={...online,state:'OFFLINE',local_ready:false,
|
|
61
|
+
bridge:{alive:false,reason:'no-ledger',pid:null},core:{alive:false,reason:'bridge-unavailable',pid:null},
|
|
62
|
+
cloud:{alive:false,reason:'no-ledger',pid:null},supervisor:{running:false,reason:'no-ledger'},
|
|
63
|
+
authority:Object.fromEntries(Object.keys(authority).map(plane=>[plane,{configured:true,armed:false,
|
|
64
|
+
reason:plane==='autonomous'?'unverified':'disarmed'}]))};
|
|
65
|
+
const a=classifyActivationPreflight({...input,observation:withAuthorityProof({...down,observed_at_utc:'2026-10-23T07:00:00.000Z'})});
|
|
66
|
+
const b=classifyActivationPreflight({...input,observation:withAuthorityProof({...down,observed_at_utc:'2026-10-23T07:00:10.000Z'})});
|
|
67
|
+
assert.equal(a.state,'AUTHORITY_UNVERIFIED');
|
|
68
|
+
assert.equal(b.state,'AUTHORITY_UNVERIFIED');
|
|
69
|
+
assert.equal(a.subject_sha256,b.subject_sha256);
|
|
70
|
+
assert.equal(a.safe_to_activate,false);
|
|
71
|
+
});
|
|
@@ -22,7 +22,7 @@ test('R74 prepublish contract: positive path succeeds and verifies identities',
|
|
|
22
22
|
assert.equal(result.identities.package_name, 'deadbyte-mcp');
|
|
23
23
|
// R74 component contract retains its train-specific source and predecessor assertions;
|
|
24
24
|
// the containing R144 package must report its actual immutable package version.
|
|
25
|
-
assert.equal(result.identities.package_version,
|
|
25
|
+
assert.equal(result.identities.package_version, JSON.parse(await readFile(path.join(repoRoot,'package.json'),'utf8')).version);
|
|
26
26
|
assert.equal(result.identities.target_train, 'R74');
|
|
27
27
|
assert.equal(result.identities.published_source_predecessor, '0.15.46');
|
|
28
28
|
assert.notEqual(result.identities.published_source_predecessor, result.identities.runtime_predecessor);
|