deadbyte-mcp 0.15.58 → 0.15.59

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 CHANGED
@@ -30,7 +30,7 @@ c814771dddac8bfb184250b868ddb6ab9f5e0e43613c04c3ed8abe09324ec4db bin/deadbyte-n
30
30
  daf9cfb371bee88cafbf5597eaa507fec504dbe0b0ddd40d0c3c2e02817f49e4 bin/deadbyte-process-host.exe
31
31
  b55d2c4490dfb875d40f29a69df2addc5d579991cb7d094674c04d369dfcfac3 bin/deadbyte-tunnel-host.exe
32
32
  f0ce7acb1e41325cef8b6789f95bd78b6a6107423773eace57a12b49faa55095 bin/WORKER-REGISTRY.txt
33
- b9c0d2f856a61060cfa7353f7421c8635c567ba1cf3362592d947dbf261c1261 bridge/package.json
33
+ 8ea4e87d8cea0dba53c13dd30077936155d437e45cf593f71cd4f3610f9b8516 bridge/package.json
34
34
  f99413d82f84c808f52d5b8696c190a9142dd08f517f5ec3e442f0769402d189 bridge/src/bridge-health-r59.mjs
35
35
  fa0dcc4cde9c03e978c9f9dd24b62afa83f49bdada1f42ead544a9a17edd332f bridge/src/bridge.mjs
36
36
  471f41c84c5b339cd81a708a4f36d4470e614946817ad2f9fca295dde2c83fb6 bridge/src/canonical-json-r60.mjs
@@ -1393,8 +1393,8 @@ db605a698f917c4006462596e6526fe6a9c6eff9b8409e8472fe545d4b70027c node_modules/z
1393
1393
  f67a25ded944912bd4621b68df17c7c70a52aae117278c076c0aabbc32a3abba node_modules/zod/v4/mini/schemas.d.ts
1394
1394
  51b3a7869df2d3a1bd98acb9d5b6a61bbccc7653d7a3d8fca7f0e0db7e84e284 node_modules/zod/v4/mini/schemas.js
1395
1395
  3e3125b5a537a24c3632c1c5c09640ce7bcb3935901b127ad8ae3c37a27f133f node_modules/zod/v4/package.json
1396
- c0fae04895112612f30d7b73ca23eb799589dfd0c5a75e6fe0699322ab6825f4 package.json
1397
- 120664572ba2a95dd4d0c9e608507c7683bd80130bf2500f59289dee96020edc PROVENANCE.json
1396
+ ece225d6a1c9a60ab260762428a5d06c77e38b431dad95c90e5fb0aa349a9699 package.json
1397
+ 08ad6734ec8cbcda2c1d98957201553f6252902f454f0b5b577bb4ce8dbff8ec PROVENANCE.json
1398
1398
  27ca0f3c9ee3a1b6374a9c8dd98008decdd0c7659c7a569c70ad7b9734c74655 R34-BASELINE.json
1399
1399
  0b7ec5ee347ddfa6cca59740fc7a8fe3fc5d51406265bb12189e82fa106319d2 R41-PARENT.json
1400
1400
  bd2a789b0aab5663f0d208af2ca8e4ec98179bc8c7b57e70a962d4e06a3dcfc4 R42-PARENT.json
@@ -1403,9 +1403,9 @@ f932ef78b7a72b1bb0d7aedb5fe42fbb9951c2492eb528b72442f46ddff81a6c R44-DONORS.jso
1403
1403
  731b4c559fc0d25dea701e4474f02400b27e8e3f4cac9f230d5214497d4490a9 R44-PARENT.json
1404
1404
  d33ec5d167dd44800ba4e68372b08db43deb8d01df2ef71dd435ff004ac66c8b R45-PARENT.json
1405
1405
  3dc607603fea511e2f428e9546a875ab7e38b6a0bbd5e803e4510de082f30804 R49-PARENT.json
1406
- 43d0301f4139db8f1d6b60e09bc747fd309ea77ba65f5f60d9876f5d6ba561bf README.txt
1407
- 3de667d48b6056e84bfa046170c80371ae1c9ff81bef969cad21af5292078052 RELEASE.json
1408
- a5bf1a4cc26610ac6b98e34c8a05cecda72614d2d784615d09ef7e86766ed690 SBOM.cdx.json
1406
+ 2f5d490e1c17b2c2cd1cd3d2ab7842e772c145ea570cf640af728ee4f269d7c9 README.txt
1407
+ f54e1bd692def7c884ca276dc2a954ca7a7acc752f64b9bbb2c99ed1ca00580b RELEASE.json
1408
+ bb45b4a1b2e2784388be32b334c519c535902312c2a13b3856254e6632652208 SBOM.cdx.json
1409
1409
  7c86062c4f69db3179a129d65945ccfab1b1c1c5bcc29b91383eac097d50f2aa scripts/activate-skill-creator-1.1.1.mjs
1410
1410
  bd138fe5a64088e8e1a7a5bf6104c5b17317bdc8cf3ad8191ea00ed82ace7d9b scripts/agent-eval-r42.mjs
1411
1411
  8d90256a6863f3bbbff02e95cb12389fc6f9e8dbcb77bf1c20c902de371425e8 scripts/archive-source-zips.mjs
@@ -1413,7 +1413,7 @@ bd138fe5a64088e8e1a7a5bf6104c5b17317bdc8cf3ad8191ea00ed82ace7d9b scripts/agent-
1413
1413
  34f9318b6f4afb29948fdc5ab973edca4dfc4fbd63c9a5105478b5e95812dabf scripts/autonomous-build.ps1
1414
1414
  075acd7616740135973497d676dcd0431f0437bdba87e4eedba4751cb148ff02 scripts/autonomous-tests.ps1
1415
1415
  f43c5e5064fb5863ce51aca156434d8b7c493ee954b8846f41625cd7130936d8 scripts/benchmark-l0-r71.mjs
1416
- a5da0c4bf9063b4e091b44b5b88020c2199594e12da22001350837746ddb19ea scripts/bootstrap-uac-migration-r153.ps1
1416
+ deb0a47edfa72a17036c1a0a45b88f63405e009452120d673bfe008dc1b6d835 scripts/bootstrap-uac-migration-r153.ps1
1417
1417
  5d8ce87ffbe55f4737ba1ee2fa6772a8157bfa92afec9101909c0f9bead27fcb scripts/bridge-benchmark-r58.mjs
1418
1418
  7c3f2a157f64aef9e605b5fe84d75fbdd88312f09d0ad89effb33de82aa39ab8 scripts/build-advanced-pcb-skill.mjs
1419
1419
  70bccc3572de7e26ac91154b9d87185feab0c2dbfc4cbd40f89660e5769f53b0 scripts/build-combined-skill.mjs
@@ -1530,7 +1530,7 @@ a9d10a04324cceafafa7edc1501e8e1f8a1ae4a094d0985c8309472512529d30 scripts/gate-w
1530
1530
  1a771b5b8a62d57f26762d53472ed68a3e733674b1c91e08becf0dc2e4325039 scripts/inspect-active-release-r45.mjs
1531
1531
  de6142bd5693cf4edb8725c9c43fc77e9bdc12f5b398a757006d778d3ee3f8ed scripts/inspect-r46-active.mjs
1532
1532
  06425d2a4004cb0ad66383c10c30aaa91bb020be2926bc76f9681a8f0827ddfc scripts/inventory-reference-dist.mjs
1533
- c4061b8ef68c9c842b9314640eeb41afa2313ae106687a36c3e4b99620f5b574 scripts/issue-uac-migration-r153.mjs
1533
+ 4b1ce879a1c3076629d2d13cd0d30764f58b9701c57104020d7a52aa99a1481d scripts/issue-uac-migration-r153.mjs
1534
1534
  7ea8cf6bf094a1612603bc716228a3753e5f06fca8a0684d2da15a04d0710c64 scripts/list-source-zips.mjs
1535
1535
  4326526cbff265bb8ec2d38af1825b0bac227e3506437fff6e13f9cdb20dab33 scripts/npm-artifact-identity-r61.mjs
1536
1536
  2598a67b08caaef2ff75fc52eca1e268c83b79c50048202e318904952379aa4a scripts/npm-prepublish-contract-r74.mjs
@@ -1561,7 +1561,7 @@ f682cb041e9dec3e4e99c87e9650e35c9f10d51cba458ec7040bbedc8b22f987 scripts/perfor
1561
1561
  6767992de09ed6f95f74a14b743bb5e5660fa63cbd2d5a6cdc2a14be3531c8cc scripts/promote-local-d-generation.ps1
1562
1562
  c4e081f95bc82e45a06993c34d47f10083640e794e2e3ccc26933fcf597b0c50 scripts/public-baseline-r58.mjs
1563
1563
  615c670581ee3e8a30095c0af63c24edbec01db74c7370069e1a486c53989968 scripts/public-surface-r58.mjs
1564
- 74e5162331f1d971a9604241eb64e84ffdf2187636c7ea14341c5e2c4f9fd5bc scripts/r153-prepublish-identity.mjs
1564
+ 1f1bf8d98f7ab270cf390e21b2fce199fcb157ceb436755273241d436de0596e scripts/r153-prepublish-identity.mjs
1565
1565
  e19a1d591ccd07af2e87d930ce23b0cc9b814bc2a395408045543847154097d7 scripts/r40-compact-ledger-probe.mjs
1566
1566
  68b9a60aca3f3e3e9ec239710f8368594ef3c8a98fff0816d2e9a7950df48287 scripts/r47-core-failures.mjs
1567
1567
  75f821cc44f8c31f67de0b28b64021d9fb160984a597e704b29c33f9f3a41dde scripts/r47-syntax-check.mjs
@@ -1713,7 +1713,7 @@ da5181cec30034ddf089baa5358becb5651da238a2e7cf0888007a4c60b4ea6b src/capability
1713
1713
  8348e01ec8dcd3171dab02399a2aa48cf09db2d283da25bfdde721a5c3f44b03 src/capability-ledger.mjs
1714
1714
  dd84aab65c73906037390b07f1d9e3e118511b21145e8ba914f98d6f2a153baf src/capability-resolver.mjs
1715
1715
  b3a669da30bf2d99cd5a912bdacb234b66c90215183a2aeeb3c01c91f1a55c64 src/capability-snapshot.mjs
1716
- ad7a77b7179d98f1640cf5edbf5de5029acb20693f0b463f87984f304f655983 src/clean-activation-recovery-r153.mjs
1716
+ 2c065a1d1d6b9e720073250e3e51db4d4b5b43b7e7276de370f04795a1fffb47 src/clean-activation-recovery-r153.mjs
1717
1717
  94e5aeff2453cdc0239aee4d547dbbefee183c71933cb84e5e8a418fa99bc1e8 src/codex-app-server-r44.mjs
1718
1718
  c4e07aa6818cd989c43ce8d027dc7d467e05c8e2fe96b5548eea291285d3bbb1 src/coding-mcp-tools.mjs
1719
1719
  059b4bef2ae6a6c2d7a706c463bea6e49d364faeb619372a429ba36c53004ab7 src/coding-output-contracts.mjs
@@ -1890,16 +1890,16 @@ bac271c6f5218752ac5ff4decf5249e3893ddb35c63c092ce17238c27fc4d35b src/trust-init
1890
1890
  4d934281a72922fabde7d6e988655a6d095eb3a89abf12e9b99fecc3046e3d62 src/trust.mjs
1891
1891
  c99c2402fb0df4f68634fa906eb198c551c55dad9f0921a7b8ed6e33d503884e src/tunnel-stdio-compat-smoke.mjs
1892
1892
  aa765e9a28c69ff58a5b5a0d29b49ea181af4db9076633b102dbca25861e708e src/tunnel-stdio-compat.mjs
1893
- 255ca6a60fef007d727fd22f653e8f917ed52db6a9ff38aea8fd5271446b15b6 src/uac-approval-contract-r153.mjs
1893
+ 866f61da7296f9a97e0cd6361c3d0cd19213ac5e3cd55c450047f35695074f86 src/uac-approval-contract-r153.mjs
1894
1894
  642cb67d1854850e336ee73fbd71b329056bdcbdab35cea19c1a995a155ff5d9 src/verifier-cli.mjs
1895
1895
  8f818a4852ce3be3a380cd4736c3073a7a3e0e45cd7c7ca90588a6b843d3d022 src/verifier.mjs
1896
- 34506357807eaa868eb29463762f9d6dacdefde1c95bd3e0143a4748d54c34dd src/version.mjs
1896
+ d3a013dc7456463ba443661428c8d09ba099d2a40501b0478fc3f3fbcf905527 src/version.mjs
1897
1897
  acf5f5a57779bc0529f9db3d821f0ef1b53d22063aa237041348c1ca444ea677 src/windows-powershell-environment.mjs
1898
1898
  7e09c57a97289360aabfaf3d531208e54872efbfb3182f3c18203d2cb88c46b5 src/worker-registry.mjs
1899
1899
  76361d5ae9a710273cf64a7525082197b692236bf23689875e5fd1ef4aa96d2b src/worker-scheduler.mjs
1900
1900
  4da1b32f5198bb089bc68b7eb6de21ea296678b5020018a73742bf0df57d62fa src/workload-substrate.mjs
1901
1901
  1bd637e7634ca0259791c5108fcf324554f70b1db49e5eac3505287c04bbc3be STABILIZATION-PROGRESS.md
1902
- 1eb98859f9b9c06197c29ca31bcc088f60bed69adb8f46115b081230f2716a7f TEST-MATRIX.json
1902
+ b5449638038a56ca4e34963ca526439a6308cc6e4f2834ef016a2de2116ec422 TEST-MATRIX.json
1903
1903
  e4f1fb97545f23772ddff28ad3f9954a4714f9854062fca62e0e12c1cb2ec4ae test/agent-backend-r44.test.mjs
1904
1904
  2a78c818058b25efdc143a3a97c832da231ccd6ff9d90c7796d681a0251b85c4 test/agent-crash-child.mjs
1905
1905
  d9461ab7c118ee75d37a2d6f5e637d7e43505af6a9ad8c7ddafffc8ace185a5b test/agent-crash-worker.mjs
@@ -2153,9 +2153,9 @@ ce163ee9f288e30a213636e2267b8630016ef8a170f12286e8cdd44219bdab32 test/r124-live
2153
2153
  17475b51e416ae678f959f8975fab8497eb7c57d13e36cac8656c0e1f7424c0c test/r126-restore-policy-envelope.test.mjs
2154
2154
  1721d4bd3bb58c10ad9d86b69ad1d993ec5a1e6315c95b28fa50ab67d4ca302a test/r127-restore-append-policy-boundary.test.mjs
2155
2155
  b3d3dda398c94d18e2e156bde65d1338000233407b435134ba0c16175d96620b test/r129-sdk-security-baseline.test.mjs
2156
- c219428ae92bf75d0a5101ada579bfaedfca16da91ff86f5621802056a10e684 test/r130-release-security-contract.test.mjs
2156
+ 772b9c88cd1d2bbcdbbe3e4f671526315edbeb889f67981d9ec158ce9162124d test/r130-release-security-contract.test.mjs
2157
2157
  bb7963baf412ec0f5aca183f6dd98eda9026fe763017f9af595581b521ae6cb7 test/r131-installed-manifest-boundary.test.mjs
2158
- 6e0bdb24f8f704822ca5767bf344386560adcc09c9fc4ce778b04b5edf0f7835 test/r132-release-identity.test.mjs
2158
+ fed899734017d1ff871c43b4ece957422bbfb94b4aeabbebc6548cf6f17e1345 test/r132-release-identity.test.mjs
2159
2159
  acd236a4d8ba035007bde4166a521b8d4e6044f58c52c0bae9cb42fa75338533 test/r135-autonomous-scope.test.mjs
2160
2160
  3fcf657aae1f8466abc5ab82bb5a619966ea9b8a33d4a95a5a5246df5bf3afa1 test/r136-scoped-command-rights.test.mjs
2161
2161
  e0c466f25b35eb894166df792b71b23924610d32363756c75ff437dfdaa12a4c test/r136-scoped-observer.test.mjs
@@ -2178,12 +2178,13 @@ ef0665adaab2a2b2d6ca8611a6335ded96b8e65a9661840acd139d3c86710e62 test/r144-cont
2178
2178
  b92f914455cac010b1468cd37a31651e7d423571d0edfeb29829d2281073e1e3 test/r146-legacy-offline-policy-proof.test.mjs
2179
2179
  32f40b649033172384267bbe8f6009dededcba81afff1e3ca51331407197fe3b test/r146-livelog-backpressure.test.mjs
2180
2180
  77b3bfcd6fa04e21c7a04206181f7b4cbd5321f799a145859d8e84d0b984d174 test/r147-remote-request-hash.test.mjs
2181
- 1a51c946190de4a9ed2adee709f26063e3e769081211a61d3547c0805056cffc test/r153-clean-activation-recovery.test.mjs
2181
+ ef36f10e2da43b720b8681550f95f5f1af4f1059d233122ed04861ecb3194d1a test/r153-clean-activation-recovery.test.mjs
2182
2182
  b1c9d788a607e579d18a1be36e0837dcc34b343bb53d55f9fb51c202af13bacd test/r153-prepublish-identity.test.mjs
2183
2183
  ce37fc59761ceddf43fd3844b34d57f64f1c8d191ca1d6cba13b643a5e2c02ce test/r153-restricted-reused-pid.test.mjs
2184
- 7d5c668aa9eecd944247b389851ab7a107e70cb3b40a8766bf4a093daf5ab517 test/r153-uac-approval-contract.test.mjs
2184
+ 3c8d2110e869d4a6f125c9a4978c049f54424893f2317312448813ba0f19860f test/r153-staging-leaf-acl.test.mjs
2185
+ 4a77ad57c5f06f9740fe42dcceda49047c39466d040dc1965cc311996e4c54d3 test/r153-uac-approval-contract.test.mjs
2185
2186
  3d6a76df732eaa52b7409aa26c933f9e4d8316b64ded5cfad4202fea51b74fcd test/r153-uac-installed-manifest-contract.test.mjs
2186
- 7ca4dd229e86d5882c0143d6bbc711367fc5230e490b77c400b679acb8bdccf6 test/r153-uac-launch-parameter-contract.test.mjs
2187
+ f75d97eaa6c7b83550eab4f1278958942b53ae25706156fe4f3cc67c242bf77b test/r153-uac-launch-parameter-contract.test.mjs
2187
2188
  3c5c3724bce89aa1fa59fe97cc346c40a5674bb5cd6dc3e2f31b86f2d62e75e4 test/r33-closeout-regression.test.mjs
2188
2189
  5e3700ee610442dfd7b7ae5e380263f231438be0e32790597142c41362a53c9a test/r33-finalization.test.mjs
2189
2190
  7e419d3c1caf79bfc7407207f50e5645298f9b19d91a7d6f595af185b92cd55e test/r36-finalization.test.mjs
@@ -2249,7 +2250,7 @@ ca8e23abc89f3eadeceb4b6fdad2cb4db5a7933029ece8e8beae2c6a158876b7 test/r58-owner
2249
2250
  8fc5ed1d3088facf45f9578d9ff8514c3a633f7f342d15eec316e129e7a916c0 test/r58-stale-owner.test.mjs
2250
2251
  84be7ee7d167eb06c9f9fc178930daaa81e53a91de40bad6d7df2060bd3dd165 test/r58-windows-gate.test.mjs
2251
2252
  76db2a4009d76b86e1da57b91a96b0d6bfeb4063bec3301ede736e2fd5832f39 test/r59-release-contract.test.mjs
2252
- c88615a9f41a545515a5fce79fc590e5cffedab378ab5e408d339c50a8ba99fc test/r59-tool-surface-compat.test.mjs
2253
+ 4547f13cc32fa1316fdce26086783e0c91dd48d8170fbe956cb5352a0fd2f3ad test/r59-tool-surface-compat.test.mjs
2253
2254
  3befd5d4dc4d8ca9e1f6cbeb9c430671e676c5696d6ee5931c2cbe3244c558a4 test/r60-authority-coherence.test.mjs
2254
2255
  60577e231c7d164f57a3960c574d3e369ca140d9dbc477b2444fa62dbf224e51 test/r60-authority-enforcement.test.mjs
2255
2256
  a1fa0b1e529da05f3659a33be6d36dab02f93808638cf0f458d057e9c6d1e35b test/r60-bridge-dispatch.test.mjs
package/PROVENANCE.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "schema": "deadbyte.provenance.v1",
3
- "version": "0.15.58",
4
- "source_model": "published 0.15.55 tarball -> isolated R153 clean activation recovery successor",
3
+ "version": "0.15.59",
4
+ "source_model": "published 0.15.58 tarball -> isolated R153 clean activation recovery successor",
5
5
  "signing": "ed25519",
6
- "parent_tarball_sha256": "dae555680b904da0a4d62d418f51b7579278268888bd9e2389d60453d4e10760",
6
+ "parent_tarball_sha256": "4bc53cfa6b3890b5749066cb507e8773b36d6c255192a8973dadb8546a39822e",
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": "96e243c87ac01a6769643179201ac3ca3dc900d1d72f71fbf272a853846a4891",
15
- "reproducibility": "R153 isolated successor of published 0.15.55 tarball SHA-256 dae555680b904da0a4d62d418f51b7579278268888bd9e2389d60453d4e10760; production runtime 0.15.45 remains immutable until exact candidate gates pass; legacy migration is one-time Windows UAC, marker-bound, and may only narrow policy while retaining all authority disarmed",
14
+ "source_predecessor_manifest_file_sha256": "ec621a8a16f264f8824aa4644c914aca8f6ce57cb3578f5bce8acf2ac77fcc18",
15
+ "reproducibility": "R153 isolated successor of published 0.15.58 tarball SHA-256 4bc53cfa6b3890b5749066cb507e8773b36d6c255192a8973dadb8546a39822e; production runtime 0.15.45 remains immutable until exact candidate gates pass; legacy migration is one-time Windows UAC, marker-bound, and may only narrow policy while retaining all authority disarmed",
16
16
  "public_surface_evidence": {
17
17
  "status": "PASS",
18
18
  "baseline_release": "v0.15.35-1b5715b276facbc0",
@@ -80,8 +80,8 @@
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.55",
84
- "source_predecessor_tarball_sha256": "dae555680b904da0a4d62d418f51b7579278268888bd9e2389d60453d4e10760",
83
+ "source_predecessor_version": "0.15.58",
84
+ "source_predecessor_tarball_sha256": "4bc53cfa6b3890b5749066cb507e8773b36d6c255192a8973dadb8546a39822e",
85
85
  "operator_override": {
86
86
  "four_hour_soak": "WAIVED_BY_OPERATOR",
87
87
  "clean_machine": "WAIVED_BY_OPERATOR",
@@ -125,7 +125,7 @@
125
125
  "package_registry_activation_rollback_restore": "PENDING",
126
126
  "stable_final_claim": false
127
127
  },
128
- "parent_registry_tarball_sha1": "6a51d2253b3bf594fda5b7b52a3aafa9ef9d04fb",
128
+ "parent_registry_tarball_sha1": "04cc1a1e80bcb7062ac39eee6b7bab70edd5d8c3",
129
129
  "r62": {
130
130
  "transaction_inventory_default_max_entries": 1024,
131
131
  "parent_state_records_observed": 341,
package/README.txt CHANGED
@@ -1,4 +1,4 @@
1
- DEADBYTE MCP V0.15.58 / R153 CLEAN ACTIVATION RECOVERY
1
+ DEADBYTE MCP V0.15.59 / R153 CLEAN ACTIVATION RECOVERY
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.58 mcp
20
- npx -y deadbyte-mcp@0.15.58 remote
21
- npx -y deadbyte-mcp@0.15.58 remote status
22
- npx -y deadbyte-mcp@0.15.58 remote restart
23
- npx -y deadbyte-mcp@0.15.58 audit status
24
- npx -y deadbyte-mcp@0.15.58 audit verify
19
+ npx -y deadbyte-mcp@0.15.59 mcp
20
+ npx -y deadbyte-mcp@0.15.59 remote
21
+ npx -y deadbyte-mcp@0.15.59 remote status
22
+ npx -y deadbyte-mcp@0.15.59 remote restart
23
+ npx -y deadbyte-mcp@0.15.59 audit status
24
+ npx -y deadbyte-mcp@0.15.59 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.58", "mcp"]
35
+ "args": ["-y", "deadbyte-mcp@0.15.59", "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.58", "mcp"]
47
+ "args": ["-y", "deadbyte-mcp@0.15.59", "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.58", "mcp"]
60
+ "args": ["-y", "deadbyte-mcp@0.15.59", "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.58", "mcp"]
70
+ args = ["-y", "deadbyte-mcp@0.15.59", "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.58 remote
359
+ npx -y deadbyte-mcp@0.15.59 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.58 mcp
420
+ npx -y deadbyte-mcp@0.15.59 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.58", "mcp"]
429
+ "args": ["-y", "deadbyte-mcp@0.15.59", "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.58", "mcp"]
442
+ "args": ["-y", "deadbyte-mcp@0.15.59", "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.58", "mcp"]
455
+ "args": ["-y", "deadbyte-mcp@0.15.59", "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.58", "mcp"]
465
+ args = ["-y", "deadbyte-mcp@0.15.59", "mcp"]
466
466
 
467
- The remote device path remains `npx -y deadbyte-mcp@0.15.58 remote`. Remote public MCP uses the
467
+ The remote device path remains `npx -y deadbyte-mcp@0.15.59 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
 
package/RELEASE.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema": "deadbyte.release.v1",
3
3
  "name": "deadbyte-mcp",
4
- "version": "0.15.58",
4
+ "version": "0.15.59",
5
5
  "train": "R153",
6
6
  "label": "R153 CLEAN ACTIVATION RECOVERY",
7
7
  "protocol_revision": "2026-07-28",
@@ -19,10 +19,10 @@
19
19
  "generation_manifest_sha256": "ff2b73410062688651abd7bc2dd7b2b8c87810a28e3808bfe1f4352a25b0e6e4"
20
20
  },
21
21
  "source_predecessor": {
22
- "version": "0.15.55",
23
- "source_path": "C:\\Users\\DEADBYTE\\.deadbyte-mcp\\evidence\\npm-publication\\0.15.55\\deadbyte-mcp-0.15.55.tgz",
22
+ "version": "0.15.58",
23
+ "source_path": "C:\\Users\\DEADBYTE\\.deadbyte-mcp\\evidence\\npm-publication\\0.15.58\\deadbyte-mcp-0.15.58.tgz",
24
24
  "release_status": "REGISTRY_PUBLISHED",
25
- "tarball_sha256": "dae555680b904da0a4d62d418f51b7579278268888bd9e2389d60453d4e10760"
25
+ "tarball_sha256": "4bc53cfa6b3890b5749066cb507e8773b36d6c255192a8973dadb8546a39822e"
26
26
  },
27
27
  "consolidation": {
28
28
  "frontend_status_vocabulary": true,
@@ -417,9 +417,9 @@
417
417
  "stable_final_claim": false
418
418
  },
419
419
  "r153": {
420
- "release_candidate_version": "0.15.58",
421
- "source_predecessor_version": "0.15.55",
422
- "source_predecessor_tarball_sha256": "dae555680b904da0a4d62d418f51b7579278268888bd9e2389d60453d4e10760",
420
+ "release_candidate_version": "0.15.59",
421
+ "source_predecessor_version": "0.15.58",
422
+ "source_predecessor_tarball_sha256": "4bc53cfa6b3890b5749066cb507e8773b36d6c255192a8973dadb8546a39822e",
423
423
  "production_predecessor_version": "0.15.45",
424
424
  "startup_order": "LOCK_MARKER_RECONCILE_ACTIVATE_CLAIM_START",
425
425
  "stale_marker_reconciliation": "PASS_FOCUSED_CONTENT_CAS",
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:r153:0.15.58",
4
+ "serialNumber": "urn:cdx:deadbyte-mcp:r153:0.15.59",
5
5
  "version": 1,
6
6
  "metadata": {
7
7
  "component": {
8
8
  "type": "application",
9
9
  "name": "deadbyte-mcp",
10
- "version": "0.15.58"
10
+ "version": "0.15.59"
11
11
  }
12
12
  },
13
13
  "components": [
package/TEST-MATRIX.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": "deadbyte.test-matrix.v1",
3
- "version": "0.15.58",
3
+ "version": "0.15.59",
4
4
  "train": "R153",
5
5
  "primary_platform": "win32-x64",
6
6
  "reference": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deadbyte-chatgpt-bridge",
3
- "version": "0.15.58",
3
+ "version": "0.15.59",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "engines": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deadbyte-mcp",
3
- "version": "0.15.58",
3
+ "version": "0.15.59",
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.",
@@ -1,5 +1,5 @@
1
1
  param(
2
- [Parameter(Mandatory=$true)][ValidateSet('0.15.58')][string]$ExpectedVersion,
2
+ [Parameter(Mandatory=$true)][ValidateSet('0.15.59')][string]$ExpectedVersion,
3
3
  [Parameter(Mandatory=$true)][string]$StateRoot,
4
4
  [Parameter(Mandatory=$true)][string]$TarballPath,
5
5
  [Parameter(Mandatory=$true)][ValidatePattern('^[0-9a-f]{64}$')][string]$ExpectedTarballSha256,
@@ -99,7 +99,7 @@ if ($LASTEXITCODE -ne 0) { throw 'R153 protected staging initial ACL normalizati
99
99
  & $icacls $prefix '/setowner' '*S-1-5-32-544' '/T' '/C' | Out-Null
100
100
  if ($LASTEXITCODE -ne 0) { throw 'R153 protected staging initial owner normalization failed' }
101
101
 
102
- $metadataUri = 'https://registry.npmjs.org/deadbyte-mcp/0.15.58'
102
+ $metadataUri = 'https://registry.npmjs.org/deadbyte-mcp/0.15.59'
103
103
  $tagsUri = 'https://registry.npmjs.org/-/package/deadbyte-mcp/dist-tags'
104
104
  [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
105
105
  $metadata = Invoke-RestMethod -UseBasicParsing -Uri $metadataUri -Method Get -TimeoutSec 30
@@ -184,6 +184,12 @@ if ($actual.Count -ne $expected.Count) { throw 'R153 staged package file-count m
184
184
  if ($LASTEXITCODE -ne 0) { throw 'R153 protected staging final ACL normalization failed' }
185
185
  & $icacls $prefix '/setowner' '*S-1-5-32-544' '/T' '/C' | Out-Null
186
186
  if ($LASTEXITCODE -ne 0) { throw 'R153 protected staging final owner normalization failed' }
187
+ # /inheritance:r with /T strips inherited Allow ACEs from leaf files.
188
+ # The directory OI/CI grant above does not become a direct leaf ACE on Windows.
189
+ # Restore direct access for Administrators and SYSTEM on every existing member;
190
+ # never grant Users/Everyone, and independently re-hash all package files below.
191
+ & $icacls $prefix '/grant' '*S-1-5-32-544:(F)' '*S-1-5-18:(F)' '/T' '/C' | Out-Null
192
+ if ($LASTEXITCODE -ne 0) { throw 'R153 protected staging leaf ACL restoration failed' }
187
193
 
188
194
  # Re-read every manifest-bound byte after ACL normalization. The first
189
195
  # candidate JavaScript below cannot run against bytes changed in the ACL gap.
@@ -45,7 +45,7 @@ async function main(){
45
45
  if(trust.trusted!==true)fail('candidate not R89 protected');
46
46
  const pkg=JSON.parse((await read(path.join(root,'package.json'))).toString('utf8'));
47
47
  const rel=JSON.parse((await read(path.join(root,'RELEASE.json'))).toString('utf8'));
48
- if(pkg.version!=='0.15.58'||rel.version!==pkg.version)fail('candidate release identity mismatch');
48
+ if(pkg.version!=='0.15.59'||rel.version!==pkg.version)fail('candidate release identity mismatch');
49
49
  const pointer=parseActivePointer((await read(path.join(state,'active-release.json'))).toString('utf8'));
50
50
  if(pointer.version!=='0.15.45'||rel.parent?.release_id!==pointer.release_id||
51
51
  rel.parent?.manifest_sha256!==pointer.manifest_sha256||
@@ -6,9 +6,9 @@ import {fileURLToPath} from 'node:url';
6
6
  const defaultRoot=path.resolve(path.dirname(fileURLToPath(import.meta.url)),'..');
7
7
  const hex64=/^[0-9a-f]{64}$/;
8
8
  const EXPECTED=Object.freeze({
9
- candidateVersion:'0.15.58', train:'R153',
10
- sourceVersion:'0.15.55',
11
- sourceSha256:'dae555680b904da0a4d62d418f51b7579278268888bd9e2389d60453d4e10760',
9
+ candidateVersion:'0.15.59', train:'R153',
10
+ sourceVersion:'0.15.58',
11
+ sourceSha256:'4bc53cfa6b3890b5749066cb507e8773b36d6c255192a8973dadb8546a39822e',
12
12
  runtimeVersion:'0.15.45',
13
13
  runtimeReleaseId:'v0.15.45-34aa8d1241cfb8bf',
14
14
  runtimeManifest:'34aa8d1241cfb8bf0b5ba303bf3c06e0e9e1bf01f64457bca659d6dd4d634fdc',
@@ -32,7 +32,7 @@ export function classifyLegacyMigration(input){
32
32
  if(!input.pointer||input.pointer.version!=='0.15.45'||
33
33
  !HEX64.test(String(input.pointer.manifest_sha256??''))||!HEX64.test(String(input.pointer.generation_manifest_sha256??'')))
34
34
  return reject('predecessor identity invalid',subject);
35
- if(!input.candidate||input.candidate.version!=='0.15.58'||
35
+ if(!input.candidate||input.candidate.version!=='0.15.59'||
36
36
  !HEX64.test(String(input.candidate.manifest_sha256??''))||!HEX64.test(String(input.candidate.tarball_sha256??'')))
37
37
  return reject('candidate identity invalid',subject);
38
38
  if(PLANES.some(plane=>!HEX64.test(String(input.policySha256?.[plane]??''))))
@@ -58,7 +58,7 @@ export function uacReceiptSubject(input){
58
58
  const candidate=windowsAbsolute(input.candidateRoot,'candidate root');
59
59
  if(!candidate.startsWith('c:\\program files\\')||candidate==='c:\\program files\\')
60
60
  throw new Error('UAC migration requires a protected candidate installation');
61
- if(input.candidateVersion!=='0.15.58')throw new Error('UAC migration candidate identity unsupported');
61
+ if(input.candidateVersion!=='0.15.59')throw new Error('UAC migration candidate identity unsupported');
62
62
  const hashes=['candidateManifestSha256','tarballSha256','markerReceiptSha256','predecessorPointerSha256',
63
63
  'preflightSubjectSha256','nodeSha256','deployScriptSha256','nonce'];
64
64
  for(const key of hashes)if(!HEX64.test(String(input[key]??'')))throw new Error('UAC approval hash/nonce invalid: '+key);
package/src/version.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export const DEADBYTE_VERSION = '0.15.58';
1
+ export const DEADBYTE_VERSION = '0.15.59';
2
2
  export const MCP_PROTOCOL_VERSION = '2026-07-28';
3
3
  export const RECEIPT_SCHEMA_V1 = 'deadbyte.receipt.v1';
4
4
  export const RECEIPT_SCHEMA_V2 = 'deadbyte.receipt.v2';
@@ -13,15 +13,15 @@ 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.58');
16
+ assert.equal(actual,'0.15.59');
17
17
  assert.equal(release.train,'R153');
18
18
  assert.equal(matrix.train,'R153');
19
- assert.equal(release.source_predecessor.version,'0.15.55');
20
- assert.match(release.source_predecessor.source_path,/0\.15\.55/);
19
+ assert.equal(release.source_predecessor.version,'0.15.58');
20
+ assert.match(release.source_predecessor.source_path,/0\.15\.58/);
21
21
  assert.equal(release.runtime_predecessor.version,'0.15.45');
22
- assert.equal(provenance.source_predecessor_tarball_sha256,'dae555680b904da0a4d62d418f51b7579278268888bd9e2389d60453d4e10760');
23
- assert.equal(provenance.source_predecessor_version,'0.15.55');
24
- assert.equal(provenance.source_predecessor_manifest_file_sha256,'96e243c87ac01a6769643179201ac3ca3dc900d1d72f71fbf272a853846a4891');
22
+ assert.equal(provenance.source_predecessor_tarball_sha256,'4bc53cfa6b3890b5749066cb507e8773b36d6c255192a8973dadb8546a39822e');
23
+ assert.equal(provenance.source_predecessor_version,'0.15.58');
24
+ assert.equal(provenance.source_predecessor_manifest_file_sha256,'ec621a8a16f264f8824aa4644c914aca8f6ce57cb3578f5bce8acf2ac77fcc18');
25
25
  assert.equal(pkg.dependencies['@modelcontextprotocol/client'],'2.3.1');
26
26
  assert.equal(pkg.dependencies['@modelcontextprotocol/server'],'2.3.1');
27
27
  for(const dep of ['@modelcontextprotocol/client','@modelcontextprotocol/server'])
@@ -17,12 +17,12 @@ test('R144 package identities, R132 historic evidence and published predecessor
17
17
  }
18
18
  assert.equal(release.train,'R153');
19
19
  assert.equal(matrix.train,'R153');
20
- assert.equal(release.source_predecessor.version,'0.15.55');
21
- assert.match(release.source_predecessor.source_path,/0\.15\.55/);
22
- assert.equal(prov.source_predecessor_version,'0.15.55');
23
- assert.equal(prov.source_predecessor_manifest_file_sha256,'96e243c87ac01a6769643179201ac3ca3dc900d1d72f71fbf272a853846a4891');
24
- assert.equal(prov.parent_tarball_sha256,'dae555680b904da0a4d62d418f51b7579278268888bd9e2389d60453d4e10760');
25
- assert.equal(prov.parent_registry_tarball_sha1,'6a51d2253b3bf594fda5b7b52a3aafa9ef9d04fb');
20
+ assert.equal(release.source_predecessor.version,'0.15.58');
21
+ assert.match(release.source_predecessor.source_path,/0\.15\.58/);
22
+ assert.equal(prov.source_predecessor_version,'0.15.58');
23
+ assert.equal(prov.source_predecessor_manifest_file_sha256,'ec621a8a16f264f8824aa4644c914aca8f6ce57cb3578f5bce8acf2ac77fcc18');
24
+ assert.equal(prov.parent_tarball_sha256,'4bc53cfa6b3890b5749066cb507e8773b36d6c255192a8973dadb8546a39822e');
25
+ assert.equal(prov.parent_registry_tarball_sha1,'04cc1a1e80bcb7062ac39eee6b7bab70edd5d8c3');
26
26
  assert.equal(release.runtime_predecessor.version,'0.15.45');
27
27
  assert.equal(prov.runtime_predecessor.release_id,release.runtime_predecessor.release_id);
28
28
  assert.equal(prov.runtime_predecessor.manifest_sha256,release.runtime_predecessor.manifest_sha256);
@@ -22,7 +22,7 @@ const planes=['process','coding','autonomous','desktop','host'];
22
22
  const base=()=>({
23
23
  stateRoot:'C:\\Users\\owner\\.deadbyte-mcp',
24
24
  pointer:{release_id:'v0.15.45-parent',version:'0.15.45',manifest_sha256:'1'.repeat(64),generation_manifest_sha256:'2'.repeat(64)},
25
- candidate:{version:'0.15.58',manifest_sha256:'3'.repeat(64),tarball_sha256:'4'.repeat(64)},
25
+ candidate:{version:'0.15.59',manifest_sha256:'3'.repeat(64),tarball_sha256:'4'.repeat(64)},
26
26
  observation:{state:'OFFLINE',local_ready:false,bridge:{alive:false},core:{alive:false},cloud:{alive:false},supervisor:{running:false},
27
27
  authority:Object.fromEntries(planes.map(plane=>[plane,{configured:true,armed:false,reason:plane==='autonomous'?'unverified':'disarmed'}]))},
28
28
  policySha256:Object.fromEntries(planes.map((plane,index)=>[plane,String(index+5).repeat(64)])),
@@ -55,7 +55,7 @@ test('R153 RED: UAC subject binds candidate, predecessor, policy, marker, state
55
55
  issuedAt:'2026-10-23T16:00:00.000Z',expiresAt:'2026-10-23T16:10:00.000Z'});
56
56
  assert.equal(subject.action,'narrow_legacy_policy_and_activate');
57
57
  assert.equal(subject.marker_sha256,HEX);
58
- assert.equal(subject.candidate.version,'0.15.58');
58
+ assert.equal(subject.candidate.version,'0.15.59');
59
59
  assert.equal(subject.nonce,'b'.repeat(64));
60
60
  assert.deepEqual(subject.allowed_authority_after,Object.fromEntries(planes.map(plane=>[plane,false])));
61
61
  });
@@ -0,0 +1,47 @@
1
+ import test from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import {readFileSync} from 'node:fs';
4
+ import {fileURLToPath} from 'node:url';
5
+ import {spawnSync} from 'node:child_process';
6
+
7
+ const bootstrap=readFileSync(fileURLToPath(new URL('../scripts/bootstrap-uac-migration-r153.ps1',import.meta.url)),'utf8');
8
+
9
+ test('R153 ACL hotfix grants direct leaf read only to Administrators and SYSTEM before rehash',()=>{
10
+ const start=bootstrap.indexOf("R153 protected staging final ACL normalization failed");
11
+ const repair=bootstrap.indexOf("'*S-1-5-32-544:(F)' '*S-1-5-18:(F)' '/T' '/C'");
12
+ const rehash=bootstrap.indexOf('R153 staged package post-ACL verification failed');
13
+ assert.ok(start>=0&&repair>start&&rehash>repair,'ACL repair must follow recursive inheritance stripping and precede independent rehash');
14
+ assert.match(bootstrap,/R153 protected staging leaf ACL restoration failed/);
15
+ assert.doesNotMatch(bootstrap.slice(start,rehash),/S-1-5-32-545:\(F\)|Everyone:\(F\)/);
16
+ });
17
+
18
+ test('R153 Windows ACL reproduction rejects stripped leaf ACE and restores direct read', {skip:process.platform!=='win32'},()=>{
19
+ const ps=String.raw`$ErrorActionPreference = 'Stop'
20
+ $root = Join-Path $env:TEMP ('r153-native-acl-test-' + [guid]::NewGuid().ToString('N'))
21
+ $sid = [Security.Principal.WindowsIdentity]::GetCurrent().User.Value
22
+ $leaf = Join-Path $root 'child\file.txt'
23
+ try {
24
+ New-Item -ItemType Directory -Path (Split-Path -Parent $leaf) -Force | Out-Null
25
+ [IO.File]::WriteAllText($leaf,'read-only regression fixture')
26
+ & icacls.exe $root '/inheritance:r' '/grant:r' ('*'+$sid+':(OI)(CI)(F)') '/T' '/C' | Out-Null
27
+ if($LASTEXITCODE -ne 0){throw 'REPRO_SETUP_FAILED'}
28
+ $blocked = Get-FileHash -LiteralPath $leaf -Algorithm SHA256 -ErrorAction SilentlyContinue
29
+ if($null -ne $blocked){throw 'REPRO_DID_NOT_STRIP_LEAF_ACE'}
30
+ & icacls.exe $root '/grant' ('*'+$sid+':(F)') '/T' '/C' | Out-Null
31
+ if($LASTEXITCODE -ne 0){throw 'LEAF_REPAIR_FAILED'}
32
+ $restored = Get-FileHash -LiteralPath $leaf -Algorithm SHA256
33
+ if($null -eq $restored -or $restored.Hash.Length -ne 64){throw 'LEAF_NOT_READABLE_AFTER_REPAIR'}
34
+ $acl = Get-Acl -LiteralPath $leaf
35
+ $allow=@($acl.Access | Where-Object {$_.AccessControlType -eq 'Allow'})
36
+ if($allow.Count -ne 1){throw 'LEAF_HAS_UNEXPECTED_ALLOW_ACE_COUNT'}
37
+ if($allow[0].IdentityReference.Translate([Security.Principal.SecurityIdentifier]).Value -ne $sid){throw 'LEAF_HAS_UNEXPECTED_TRUSTEE'}
38
+ Write-Output 'R153_WIN32_LEAF_ACL_REPAIR_PASS'
39
+ } finally {
40
+ if(Test-Path -LiteralPath $root){Remove-Item -LiteralPath $root -Force -Recurse}
41
+ }`;
42
+ const encoded=Buffer.from(ps,'utf16le').toString('base64');
43
+ const result=spawnSync('powershell.exe',['-NoLogo','-NoProfile','-NonInteractive','-EncodedCommand',encoded],
44
+ {encoding:'utf8',timeout:30000,maxBuffer:256*1024});
45
+ assert.equal(result.status,0,result.stderr||result.stdout||String(result.error));
46
+ assert.match(result.stdout,/R153_WIN32_LEAF_ACL_REPAIR_PASS/);
47
+ });
@@ -4,7 +4,7 @@ import {createUacApproval,verifyUacApproval,validateApprovalWindow,requireTruste
4
4
  import {readFileSync} from 'node:fs';
5
5
  import {fileURLToPath} from 'node:url';
6
6
  const h=(n)=>n.repeat(64);
7
- const base=()=>({stateRoot:'C:\\Users\\DEADBYTE\\.deadbyte-mcp',candidateRoot:'C:\\Program Files\\DEADBYTE-R153-TEST',candidateVersion:'0.15.58',candidateManifestSha256:h('a'),tarballSha256:h('b'),markerReceiptSha256:h('c'),predecessorPointerSha256:h('d'),predecessorPolicySha256:{process:h('1'),coding:h('2'),autonomous:h('3'),desktop:h('4'),host:h('5')},preflightSubjectSha256:h('e'),nodeSha256:h('f'),deployScriptSha256:h('0'),nonce:h('6'),issuedAt:'2026-10-24T00:00:00.000Z',expiresAt:'2026-10-24T00:05:00.000Z'});
7
+ const base=()=>({stateRoot:'C:\\Users\\DEADBYTE\\.deadbyte-mcp',candidateRoot:'C:\\Program Files\\DEADBYTE-R153-TEST',candidateVersion:'0.15.59',candidateManifestSha256:h('a'),tarballSha256:h('b'),markerReceiptSha256:h('c'),predecessorPointerSha256:h('d'),predecessorPolicySha256:{process:h('1'),coding:h('2'),autonomous:h('3'),desktop:h('4'),host:h('5')},preflightSubjectSha256:h('e'),nodeSha256:h('f'),deployScriptSha256:h('0'),nonce:h('6'),issuedAt:'2026-10-24T00:00:00.000Z',expiresAt:'2026-10-24T00:05:00.000Z'});
8
8
  test('R153 UAC receipt carries exact no-grants narrow migration subject',()=>{
9
9
  const x=base(),receipt=createUacApproval(x);
10
10
  assert.equal(receipt.schema,'deadbyte.r153-uac-approval.v1');
@@ -31,7 +31,7 @@ test('R153 UAC receipt fails closed on expiration, malformed, replay-like tamper
31
31
  assert.throws(()=>createUacApproval({...x,issuedAt:'not-a-date'}));
32
32
  assert.throws(()=>createUacApproval({...x,nonce:'x'}));
33
33
  });
34
- test('R153 UAC scope only accepts protected root and exact v0.15.58',()=>{
34
+ test('R153 UAC scope only accepts protected root and exact v0.15.59',()=>{
35
35
  assert.throws(()=>createUacApproval({...base(),candidateRoot:'C:\\Users\\DEADBYTE\\npm-cache'}),/protected/i);
36
36
  assert.throws(()=>createUacApproval({...base(),candidateVersion:'0.15.55'}),/candidate/i);
37
37
  assert.throws(()=>validateApprovalWindow('2026-10-24T00:00:00.000Z','2026-10-24T00:00:00.000Z','2026-10-24T00:00:00.000Z'));
@@ -45,7 +45,7 @@ test('R153 RED: mutable npx entrypoint stages exact registry package before priv
45
45
  assert.doesNotMatch(script,/npm-cli\.js|npm install/i);
46
46
  assert.match(script,/Get-FileHash -LiteralPath \$file -Algorithm SHA256/);
47
47
  assert.match(script,/NODE_OPTIONS/);
48
- assert.match(script,/https:\/\/registry\.npmjs\.org\/deadbyte-mcp\/0\.15\.58/);
48
+ assert.match(script,/https:\/\/registry\.npmjs\.org\/deadbyte-mcp\/0\.15\.59/);
49
49
  assert.match(script,/live npm registry tarball SHA-256 mismatch/);
50
50
  assert.match(script,/live npm registry tarball integrity mismatch/);
51
51
  assert.match(script,/DEADBYTE-R153-Stage-/);
@@ -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','0.15.55','0.15.56','0.15.57','0.15.58'].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','0.15.56','0.15.57','0.15.58','0.15.59'].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');