deadbyte-mcp 0.15.71 → 0.15.72

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
- 3b71a4370d8c886c7ff25818a58b19c6022a3f8a621a98b1b0d519c61a5b5496 bridge/package.json
33
+ bfc07cd0c43c61563b01ee7312ea70210f843a389560991551c9af290459edc6 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
@@ -46,7 +46,7 @@ b963f3256f407b4216343815d310f9dce06ac61633c3b45071be6712ebb357d2 bridge/src/rem
46
46
  331d168750a18d2b8e351796ddbf8f9619374c707c3cea18b8b166934f8af0d3 controller/deadbyte-desktop-policy.json
47
47
  5e8ef223b0dbc52173aaf044a075837eef8964ff0e7e16f83a595e0d17695625 controller/deadbyte-host-policy.json.example
48
48
  6f0cc469f51444dd18211fa3346c826abeea4d2ec7a8945f0200dc5c622031ef controller/DEADBYTE-MCP.cmd
49
- 242388f64c823c766b92c42d397afec0cddfbd98e27608be2fb06d249ede962b controller/deadbyte-process-policy.json
49
+ a46b67c0306e4a8c40b27509539d4ffcfe0b04b9960f217e1c014d70dfc9b6cc controller/deadbyte-process-policy.json
50
50
  d274b099a298c1033fea8f1e8849751693bbc0448778d619400acb82d4f53a3b controller/deadbyte-semantic-lsp-config.json
51
51
  3023d2985f5b6e5cc7c0d08cb8b342b362c93dce7ebd4224635362194be40cf2 controller/README.TXT
52
52
  101e613518c73c6aa31c725fe1b5f9a24c995dc9876b7b28e1f3e97ac9f8d362 DEADBYTE-MCP-R27-FINAL/R27-ADMIN-CLOSURE.json
@@ -108,8 +108,9 @@ d6e3b755b0483eb9468c7dca55b005e5a7f8b041f2dc7f9de800c13692151e82 docs/R168-NATI
108
108
  89105d5a90ee91fbb032004648c2b5661f95a48b62b1a4190d4c7361ef3bcd14 docs/R168-READONLY-AUDIT-AND-RESUME-20261026.md
109
109
  640a232aa5210014a372d625e2d63c3c26f55a386411d68f6ce2ad79bd5d0104 docs/R168-SIGNED-RECONCILIATION-PRECOMMIT-20261026.md
110
110
  eb985acaa740a6f4189d202f7c1f153c4586b6b1c5c17f825c61f57d583c143c docs/R169-NPX-ACTIVE-CONTROLLER-DELEGATION-20261026.md
111
- bbb690aeff0a2043bb151245487cb307ca4637eee64096c8623a904af8c0a2f5 docs/R184-package-lock.json
111
+ f403c2aca1d5438667f0bac1dd289cadf91d14f8a06cb5897eac852c25701e7c docs/R184-package-lock.json
112
112
  720abe9ae4a132b4b8e9d6f1456b6bc1c5b19c7a61990d53fdbabb131b75c196 docs/R186-OWNER-CONSENT-HANDOFF.txt
113
+ 67abaa3e25608ff37f0b032904dc1629b693f70192d248a8a31be2c98b8d5e9a docs/R192-LIVE-LOG-HARDENING.txt
113
114
  68b7e636d8e3091d4f571d7a0c79f81738f7bf1b89cd497a8681e0dd1f362f58 docs/R221-STRICT-OUTPUT-CONTRACT.md
114
115
  d9b68959fa7382e2a6c3dae703ac62767bba72ba21680d304048723f1671b5a0 docs/R36-CAPABILITY-EVIDENCE.md
115
116
  3c715faadfb568f094c262906c6bb8bc0caa77c6af6053c8b84aed74df3a43ef docs/R44-ARCHITECTURE.md
@@ -1428,8 +1429,8 @@ db605a698f917c4006462596e6526fe6a9c6eff9b8409e8472fe545d4b70027c node_modules/z
1428
1429
  f67a25ded944912bd4621b68df17c7c70a52aae117278c076c0aabbc32a3abba node_modules/zod/v4/mini/schemas.d.ts
1429
1430
  51b3a7869df2d3a1bd98acb9d5b6a61bbccc7653d7a3d8fca7f0e0db7e84e284 node_modules/zod/v4/mini/schemas.js
1430
1431
  3e3125b5a537a24c3632c1c5c09640ce7bcb3935901b127ad8ae3c37a27f133f node_modules/zod/v4/package.json
1431
- ef8c72bc449da826bf34c13ffd1e8aa1f753f926709934caebe5e5921ae376a0 package.json
1432
- 7935c23db2ddeaecf6cc264615300bd1c0459916f9c033bc2285c6bb962f2791 PROVENANCE.json
1432
+ aaa3d680c0efc031399f31db86d13737a86f3847263e2b091b8bcbe9f6a95d3c package.json
1433
+ d7be74cd25fd0eccc8ecad0de004dd37f1df8d094465a1bd338afbe5c8b21e84 PROVENANCE.json
1433
1434
  27ca0f3c9ee3a1b6374a9c8dd98008decdd0c7659c7a569c70ad7b9734c74655 R34-BASELINE.json
1434
1435
  0b7ec5ee347ddfa6cca59740fc7a8fe3fc5d51406265bb12189e82fa106319d2 R41-PARENT.json
1435
1436
  bd2a789b0aab5663f0d208af2ca8e4ec98179bc8c7b57e70a962d4e06a3dcfc4 R42-PARENT.json
@@ -1438,9 +1439,9 @@ f932ef78b7a72b1bb0d7aedb5fe42fbb9951c2492eb528b72442f46ddff81a6c R44-DONORS.jso
1438
1439
  731b4c559fc0d25dea701e4474f02400b27e8e3f4cac9f230d5214497d4490a9 R44-PARENT.json
1439
1440
  d33ec5d167dd44800ba4e68372b08db43deb8d01df2ef71dd435ff004ac66c8b R45-PARENT.json
1440
1441
  3dc607603fea511e2f428e9546a875ab7e38b6a0bbd5e803e4510de082f30804 R49-PARENT.json
1441
- 670bb6ebc242fc227b1618f75427ab2a6deba6a78e725636c56dbaebeae17c22 README.txt
1442
- c808e56b2a6cb83ea266c779e20f50e4630de45add13bf516f0ae7581c2d3b2a RELEASE.json
1443
- 78c2e530f4a19f76b80eb15bd58c03e6b7357b9218bb186107c3251fb0a1b567 SBOM.cdx.json
1442
+ 1cd4f7a087f3c7a801bd01209d073e3fbdae0762f26a763d7df53bff1f026a97 README.txt
1443
+ 4233ee6bbb72b05a1993b14cbe97ce3e8cf16594f2704a14d149bfa1f3df200e RELEASE.json
1444
+ e0bb738faefb12f472fb6bc0aa007b3cbb8fe89fbbebed1e5e2c4839165c0aec SBOM.cdx.json
1444
1445
  7c86062c4f69db3179a129d65945ccfab1b1c1c5bcc29b91383eac097d50f2aa scripts/activate-skill-creator-1.1.1.mjs
1445
1446
  bd138fe5a64088e8e1a7a5bf6104c5b17317bdc8cf3ad8191ea00ed82ace7d9b scripts/agent-eval-r42.mjs
1446
1447
  8d90256a6863f3bbbff02e95cb12389fc6f9e8dbcb77bf1c20c902de371425e8 scripts/archive-source-zips.mjs
@@ -1646,6 +1647,8 @@ fda8078f94a874b1f4cf0fc84ffed0e567d3f433f949d99686863ad4d4962fc4 scripts/r191-p
1646
1647
  fd66906380af8d6f1671a74c84e58e5442489ebaaeb3294d727e07d0e7028476 scripts/r191-protected-failure-gate.mjs
1647
1648
  21faa80e676fd50448b3b7201d84aa219389dc5132e1b813a4d8fb8e34e2af5a scripts/r191-release-contract-runner.mjs
1648
1649
  9815f66c3966721016e2328776b3757e4dc802d689fb59cbe0c3946e4a0ad76f scripts/r191-unreached-focused.mjs
1650
+ fcf691339a6f81594ecf063806240ff0818d59273829efbcaff8d0541eed986a scripts/r192-focused.mjs
1651
+ ad48fbf914698e2d6d29f7716f72e020cc9a666ebf33bc02e3b6bc439d13cdbb scripts/r192-release-tests.mjs
1649
1652
  e19a1d591ccd07af2e87d930ce23b0cc9b814bc2a395408045543847154097d7 scripts/r40-compact-ledger-probe.mjs
1650
1653
  68b9a60aca3f3e3e9ec239710f8368594ef3c8a98fff0816d2e9a7950df48287 scripts/r47-core-failures.mjs
1651
1654
  75f821cc44f8c31f67de0b28b64021d9fb160984a597e704b29c33f9f3a41dde scripts/r47-syntax-check.mjs
@@ -1841,7 +1844,7 @@ dcd4c9784e88e253e91ddad3c24b38cb0b36906ed737f6d7bee7712360f66f7a src/containmen
1841
1844
  fe1761b98738e1aea1d25ddf3a0ba56ccad95a43d45104a89b8665197c7c9e18 src/containment-result.mjs
1842
1845
  705a89cb12fedb993d55dfed32a5870d33e10db26422c944d1e52223566c096c src/containment-smoke.mjs
1843
1846
  63a1d4d6a53f9eb7e02197b4e42158b867da8c042c2e61848d8a36cd398b8bd8 src/context-provenance.mjs
1844
- 386d1b13e354f57dacfb8a6a3a91f1a57e299cd82c3337c708041a3253315363 src/deadbyte-cli.mjs
1847
+ 72b63189fb8bc0270f41ce1320d2fe54cf48d66ec9a0d40df3ccc952d3a48651 src/deadbyte-cli.mjs
1845
1848
  9e9766d64dcc9e2c8d23c2c0a5e9dcb87b7213e8de668f79f593ad48daf15acd src/deadline-cancellation.mjs
1846
1849
  fe7a8f8611c33552b3da466a9b866ce79a737bfd5b9a78a953269b30cce16274 src/desktop-contract.mjs
1847
1850
  f97352e510c659910c2d4a874d15be028e1291d685c6c1a7be53bdf1a335c2d8 src/desktop-input-r40.mjs
@@ -1952,7 +1955,7 @@ a8a0d32f261e570802eae6358b0fde47f5b86bc3565e64020905373bb84d6ab2 src/release-ge
1952
1955
  3f41fa32ddeed403b5431a338821b62e0c1946a9d808f06d0edb2d9341ca0121 src/remote-console.mjs
1953
1956
  e4289e7a073e5de51fd6180130ba47fbf361f231cd074dc6069552474de7a100 src/remote-device-r44.mjs
1954
1957
  9f6383c95b5339ab93fa17906248ad3a29de52339a6755ee78613e16d5e1ae96 src/remote-enforcement-probe-r60.mjs
1955
- ae0ac7be232a3b16b64a2a11e62685778a25194a3c54bf578ab84860adcb43f2 src/remote-live-log.mjs
1958
+ f702d32247a969a2dbe3876ed8f22b9b3212313775ef430e7a835b369902b28d src/remote-live-log.mjs
1956
1959
  192172611b350febcb37cf08aa1b519a08e766923f9da99d017a239a7ad9ec0b src/remote-log-decode-r60.mjs
1957
1960
  6131fda046bf7a751ffc99d922e8f14bdbc3accff9ee81b4f5ebef5b7b2f9b98 src/remote-mcp-autonomous-smoke-client.mjs
1958
1961
  ebff2982142263632a40b9f144e802b9cb0c86c798bb6c591de7f175ba50b660 src/remote-mcp-coding-smoke-client.mjs
@@ -2001,13 +2004,13 @@ aa765e9a28c69ff58a5b5a0d29b49ea181af4db9076633b102dbca25861e708e src/tunnel-std
2001
2004
  34719b7d54336b2abbc152ff0c5fb2f0052d4f77753f9b7538adfdd20c804b5b src/uac-approval-contract-r153.mjs
2002
2005
  642cb67d1854850e336ee73fbd71b329056bdcbdab35cea19c1a995a155ff5d9 src/verifier-cli.mjs
2003
2006
  8f818a4852ce3be3a380cd4736c3073a7a3e0e45cd7c7ca90588a6b843d3d022 src/verifier.mjs
2004
- 51d6bad12778c49ff5901f6433a00fba271290b7f38b99be4fc7d89a96fcfe40 src/version.mjs
2007
+ 0b8954350f6fceedfcc7e7fa7a0a6e9ef94832cf24ab57c4b903f7a02f004b93 src/version.mjs
2005
2008
  3706206ecaa560b9579f57ed3df104af543331fb09a3ad0d28b217aea2d0256f src/windows-powershell-environment.mjs
2006
2009
  7e09c57a97289360aabfaf3d531208e54872efbfb3182f3c18203d2cb88c46b5 src/worker-registry.mjs
2007
2010
  76361d5ae9a710273cf64a7525082197b692236bf23689875e5fd1ef4aa96d2b src/worker-scheduler.mjs
2008
2011
  4da1b32f5198bb089bc68b7eb6de21ea296678b5020018a73742bf0df57d62fa src/workload-substrate.mjs
2009
2012
  1bd637e7634ca0259791c5108fcf324554f70b1db49e5eac3505287c04bbc3be STABILIZATION-PROGRESS.md
2010
- 94330645ac9ecd5bfb119a39d3737d5cd68abc77a021ecd58d307cb9deefabd3 TEST-MATRIX.json
2013
+ 793abdb4e543612b3368e6c7c3a4a8756ebbce90857e49075e3d0c4b2964a7c4 TEST-MATRIX.json
2011
2014
  e4f1fb97545f23772ddff28ad3f9954a4714f9854062fca62e0e12c1cb2ec4ae test/agent-backend-r44.test.mjs
2012
2015
  2a78c818058b25efdc143a3a97c832da231ccd6ff9d90c7796d681a0251b85c4 test/agent-crash-child.mjs
2013
2016
  d9461ab7c118ee75d37a2d6f5e637d7e43505af6a9ad8c7ddafffc8ace185a5b test/agent-crash-worker.mjs
@@ -2226,7 +2229,7 @@ b1ad3bc391b2f897223fe4e71bb23d4a4a8e21f8bec0915756c2606b9294e164 test/output-sc
2226
2229
  d81cbf3e6579d3f283387e5050f170fa4c84e1ef1418e46fbd1a67436264fbe7 test/process-longrun-r36.test.mjs
2227
2230
  ddac61c12ab29be1736885c01c999ca0346ba44c712cc2c8a48a7eea1ed62a53 test/process-mcp-tools.test.mjs
2228
2231
  b84622d07d2ecfe27b55e45f7e89949f29a2d14184d8c6f6f82ed7f1e5fa59be test/process-native.test.mjs
2229
- bec02800a58933b1929fd961ec5c2be1eb842696e0bb32c95d7142e1125790fb test/process-policy-refresh.test.mjs
2232
+ b91861b316ab512b6968842f9ceb88c9a66adae2d69b468b49340d9d9950e0e6 test/process-policy-refresh.test.mjs
2230
2233
  a42147db7f8aa7dc5cb8c29598c3b2ba5f5f3498bddf84f4ada09c74665bc710 test/process-policy.test.mjs
2231
2234
  e13275898e892ca70455cb53bb0a8c936c0f1a0a1c82ece671a314aefe106367 test/process-readiness.test.mjs
2232
2235
  510f51a6288a1030387cf372951499aea6dba2a35362ad89510bf7480e2f8004 test/process-release-gate.test.mjs
@@ -2263,9 +2266,9 @@ ce163ee9f288e30a213636e2267b8630016ef8a170f12286e8cdd44219bdab32 test/r124-live
2263
2266
  17475b51e416ae678f959f8975fab8497eb7c57d13e36cac8656c0e1f7424c0c test/r126-restore-policy-envelope.test.mjs
2264
2267
  1721d4bd3bb58c10ad9d86b69ad1d993ec5a1e6315c95b28fa50ab67d4ca302a test/r127-restore-append-policy-boundary.test.mjs
2265
2268
  07a4f6955058d0975e53ba3e4d0ec202a43dac2717cd5aa8e09cde9f3b859544 test/r129-sdk-security-baseline.test.mjs
2266
- 68f323b071625a32426021d1f1917b1caaa6046282f68dccac1591bc4a478977 test/r130-release-security-contract.test.mjs
2269
+ 2425b9217d9c3b1628a40052c11e8671e7f98935fbff06f610ad7b2be21022ca test/r130-release-security-contract.test.mjs
2267
2270
  bb7963baf412ec0f5aca183f6dd98eda9026fe763017f9af595581b521ae6cb7 test/r131-installed-manifest-boundary.test.mjs
2268
- b409224e2d49bdfdb7f30c8a8bb3e36f1f5b3a1f8d49a692295fd1d455b952cb test/r132-release-identity.test.mjs
2271
+ 1705cab8e63c75a0ea60cf4c1d2feea628c851c37863e06db1ef5c7d6735435d test/r132-release-identity.test.mjs
2269
2272
  acd236a4d8ba035007bde4166a521b8d4e6044f58c52c0bae9cb42fa75338533 test/r135-autonomous-scope.test.mjs
2270
2273
  3fcf657aae1f8466abc5ab82bb5a619966ea9b8a33d4a95a5a5246df5bf3afa1 test/r136-scoped-command-rights.test.mjs
2271
2274
  e0c466f25b35eb894166df792b71b23924610d32363756c75ff437dfdaa12a4c test/r136-scoped-observer.test.mjs
@@ -2289,7 +2292,7 @@ b92f914455cac010b1468cd37a31651e7d423571d0edfeb29829d2281073e1e3 test/r146-lega
2289
2292
  32f40b649033172384267bbe8f6009dededcba81afff1e3ca51331407197fe3b test/r146-livelog-backpressure.test.mjs
2290
2293
  77b3bfcd6fa04e21c7a04206181f7b4cbd5321f799a145859d8e84d0b984d174 test/r147-remote-request-hash.test.mjs
2291
2294
  ad184a83ee098eac21d523adbebfd379dcf8b87d4878c2d8dcca95cb22fdc9ee test/r153-clean-activation-recovery.test.mjs
2292
- f5812de8f01f3948386409afd73aa4f005af1d3dbfab7a822e537a11c9cbefd9 test/r153-prepublish-identity.test.mjs
2295
+ 59c99c087dd10507a37cb466a8e14e126c6c91c90115e08e4c2fcb1c8c8a3959 test/r153-prepublish-identity.test.mjs
2293
2296
  377b03dbb1d82ed0ddeee261a060b8173d5591dfc20a60d9ea991390a03039b4 test/r153-r60-host-repin-e2e-contract.test.mjs
2294
2297
  e2bc7995f2ca85ce5d4a15e647c209d273d8f3871d25bd353046af66ee71bb34 test/r153-r65-signed-precondition-recovery.test.mjs
2295
2298
  ce37fc59761ceddf43fd3844b34d57f64f1c8d191ca1d6cba13b643a5e2c02ce test/r153-restricted-reused-pid.test.mjs
@@ -2310,17 +2313,17 @@ efc195b10b5cb706c23f3a35ba8bf07e7ee23daffcb072704e5c14ffd6db26d5 test/r158-epoc
2310
2313
  ff0fc541ef9b9b1565be647d2861c29afc8827504122c1df88a94d67fd2c20bd test/r159-legacy-marker-evidence.test.mjs.before-assertion-fix-20261025-120246.bak
2311
2314
  d5d0eddc5c33ae9ea2f31d57381bf595bd85adf8048d2886f67554141f086bde test/r160-marker-proof.test.mjs
2312
2315
  3f7ebe55c45c6c5e28145700179f6ad75e01fcaa9fd5e49be143098c314f1a9a test/r160-package-decision-manifest.test.mjs
2313
- 139082e59214999076b6d385619bcbe152bca7286e7d9cb4ab626dc3613f31de test/r160-release-contract.test.mjs
2316
+ f8e16dde5639bdc9cf00140c286b69b4cc7a36f70f71d908d711a5dd53e368f9 test/r160-release-contract.test.mjs
2314
2317
  8ddebf4e81e5ccb66533694e7b04775ea9ce063ead75a17c54ce28580a55a0b4 test/r160-stable-launcher.test.mjs
2315
2318
  c0635205da565e3643059abe65365740ba46bebe4591b8a9199cfba4ce525e3f test/r163-isolated-slot-rollback-restore.test.mjs
2316
2319
  842222cce8d50ba214a4dc97d5965d711e83a29f6660e784ccaf000f50a4213d test/r163-publish-fence.test.mjs
2317
2320
  3473a513db884f2ab40a9e3e875ca6ef2c9e5202fc0bf4df56e388b0d55e5e84 test/r164-remote-history-skew.test.mjs
2318
- c1d100f1de0d003efc1ee086513aa912a042e404056618b6aef63c767799117c test/r165-live-cli-skew.test.mjs
2321
+ 261bf7201878c2ebeb0beb5febce637fcd66d0fa9e2b767cc2241fe54a9ea8f2 test/r165-live-cli-skew.test.mjs
2319
2322
  e9c493435956201439479b05d301e81673457abe5c456d8a50153f3d9922daf9 test/r165-publish-fence.test.mjs
2320
2323
  425e6756afe323d358287a4d00ab6460e8398a8ee39c4a64e4be7ae191c4676f test/r166-hotfix-contract.test.mjs
2321
2324
  13c4c7792152466b6967627b44eb4aaf815e9c20b4bd67a50323420c937d532c test/r166-release-readiness.test.mjs
2322
2325
  52e6f015329fecf570ac6211ca9904b929119b66dbf72c6776be5cefcc63b282 test/r167-activation-path.test.mjs
2323
- 73c190bc0157167540d2215d8ead5d2b2632a69e2c7daa5cea781ff8a30afd7e test/r167-release-contract.test.mjs
2326
+ 00fbe8b81dcd3c753de2369a6f82c9bf4c3d44a5e5fbfad12a4468dbf9e8b7d6 test/r167-release-contract.test.mjs
2324
2327
  471102e7b4e1655423efa80688c786306df62d6b76e23d41c8ebe596b8f63749 test/r167-release-readiness.test.mjs
2325
2328
  eb5a5e73fd0284297959f4e6ca1631ebf0f23749c56ec1b4cc75cad5f8f1ca6b test/r168-combined-targeted-runner.mjs
2326
2329
  44818657894db72a0ead65e96e734f30c11f10f5914e2c4e2961ee3a3e5b2c70 test/r168-crash-journal.test.mjs
@@ -2334,14 +2337,14 @@ eb5a5e73fd0284297959f4e6ca1631ebf0f23749c56ec1b4cc75cad5f8f1ca6b test/r168-comb
2334
2337
  191b6db0f79e23b48fd64be5d788dc651ef1af5ab165cff3cbe99f18139872aa test/r168-owner-reconciliation-contract.test.mjs
2335
2338
  a648691c29341984996f57d55b0871ab98dc6c96ca4d927f41912bef9d15f320 test/r168-protected-entrypoint.test.mjs
2336
2339
  c40ee4e3c6f22ace3da133fee953a88545c773def2fe1ef84d5b552b6c9f649a test/r168-reconciliation-audit.test.mjs
2337
- 93cdf993aa80f657a0a6e707cc144388eeb348d7db02eef56d1dff9804c05de4 test/r168-release-contract.test.mjs
2340
+ 2c9d8bbc7e002b8e6c274dd8023c825440aaff5620f452e59d5297c6e437d75c test/r168-release-contract.test.mjs
2338
2341
  aec64c26a92400784ad3693d594e28e7aa258a6330e2ba56f47bca1f57e568c7 test/r168-remote-one-shot-coherence.test.mjs
2339
2342
  ccd8b5b287808f5165f5e7fd7ade8278ae84c33463e4f9753059806da503fd3c test/r169-delegate-active.test.mjs
2340
2343
  2866649338191383446edb60d11d558736a4e6d58cb0cdebd94cd8e162fae6bc test/r169-delegate-cli-integration.test.mjs
2341
2344
  5d2725223b48c2d44dab2eade455f9008a36f91522dcdcc3c0594d762c282b2b test/r169-targeted-runner.mjs
2342
2345
  bf015b6b85a40f9f81a7627d71217b2994c2161943368bde46be94852ec7eb77 test/r172-activation-recovery.test.mjs
2343
- 3a75e0433254566e97f3df2fd3b364fd15af165462541be2bd04106544f83c39 test/r172-release-contract.test.mjs
2344
- 7773272cdd8d21ee03df6be681f9e9493648ef30ac04aee141bd7d678768bc3d test/r173-release-contract.test.mjs
2346
+ ca1992779332006b235d493511d7d287b81dac9d1bb8cf62868c5ae955487a8d test/r172-release-contract.test.mjs
2347
+ 56cfa94238cbd709daa43970cbb2583f6434902e411202f3e78d2f2cf792df0a test/r173-release-contract.test.mjs
2345
2348
  41c7ae176274fb263b49a376a0f9d6ea92fe6c34015417584614a208146c33fb test/r174-owner-webauthn.test.mjs
2346
2349
  1f39c010f8afa08d974f7741cbff09a3b75e38d2ee347a434bed0dfbdfd00c90 test/r175-cli-flags.test.mjs
2347
2350
  d592c975ab4c53c5a88c9cc62eb07efef5c129ed27fdb9a55f97682bdd3ec56f test/r175-foreground-boundary.test.mjs
@@ -2349,7 +2352,7 @@ d592c975ab4c53c5a88c9cc62eb07efef5c129ed27fdb9a55f97682bdd3ec56f test/r175-fore
2349
2352
  04a9f980a77496b66b33855afea30c020529261deefcee3e842bd16a787fbeac test/r176-pretty-live-log.test.mjs
2350
2353
  f3e4319f862fe945690119eecbb7def921bbe81dc9b0b3e8e1964f4b693738f9 test/r177-windows-absolute-live-path.test.mjs
2351
2354
  e8eaf25f5d0dd591c8dd486a53d2bf9c3d70d8d7a120cf4d820a02dba9b8d30e test/r179-absolute-path-live-log.test.mjs
2352
- bfa42ab4857a07dfc4a776f02ec19d42cc13c0f0b223a0b6dacc2e6a47c602c1 test/r179-release-contract.test.mjs
2355
+ 2a938e1cdf0f07e37d8b26a169ddaa6b45531b610c47219ddb033ba9bfcab5b4 test/r179-release-contract.test.mjs
2353
2356
  eff6de983ea907a6720d176d96065548163f0ec4070a8ff0a3ec8310b174136b test/r186-controller-owner-grant.test.mjs
2354
2357
  9aac064b28b30bcdb99554561b43193fcf4e5bfed18e659e55aa69a30e010560 test/r186-owner-consent-preflight.test.mjs
2355
2358
  6afcbea206aecfdd9e960b7a6f4bcfd2a073e1e9043d936177ab5c38d7d2f90c test/r186-owner-enrollment.test.mjs
@@ -2359,11 +2362,13 @@ c13ecbef48a524e13180e275e1d59db840d3c687457c1ecb39bd76383b6f2852 test/r186-owne
2359
2362
  0ea5b5374234d74bfa82f2e32a3638cd2afcc6c604397b9dd2f88ec84f695467 test/r186-owner-review-export.test.mjs
2360
2363
  e1aabf722066a7b747ef309411f1563869703211af8852c538268d6fd7485cf9 test/r190-foreground-cli.test.mjs
2361
2364
  1dea1341cd9cb4a97adb8c55fdaa0abd57e46e6cef5a6454c5b13e5ab4fa2937 test/r190-foreground-owner-recovery.test.mjs
2362
- 7fc92aa7edc4e4deb5f7b9d0c37f3d9e7a2e38ac33f09009599322678aea8fcf test/r190-release-contract.test.mjs
2365
+ 6285c9a9fd71db13f2e910621ccfef62a42fe7fe923398ba9aa46efaad9b428a test/r190-release-contract.test.mjs
2363
2366
  c3689536a740de5f09ca1cb61e5cfe124b326a384cfe89f1b070bae0f4d3ff72 test/r191-epoch-root-selection.test.mjs
2364
2367
  f1d544f8fe71f530995f1af5659c23a7783beba822b5db12d8fe2da63f8d7703 test/r191-epoch-source-claim.test.mjs
2365
2368
  3cc7193029ff2935fd0997384216c324e3cdf7e750d6e42a96d41362a47bf6be test/r191-inherited-epoch-preflight.test.mjs
2366
- dc669530605bb8a030a0378a6b3d940c2a3d149c803c2c154a5993c2cab3ab3b test/r191-release-contract.test.mjs
2369
+ 7f9ba5ef26d2561a1fc07f19ddaf02d3f12445141ce7d77fc3ab9ce2fab5be92 test/r191-release-contract.test.mjs
2370
+ 43324a47621dbbf32383c6924d11762dfa5c4d59773c1eaaab8969e6e778b29b test/r192-live-log-hardening.test.mjs
2371
+ 3ad304df1827fdd0234c0cc86dda459aee348f14249ca00c2f3ff5447a8de373 test/r192-release-identity.test.mjs
2367
2372
  3c5c3724bce89aa1fa59fe97cc346c40a5674bb5cd6dc3e2f31b86f2d62e75e4 test/r33-closeout-regression.test.mjs
2368
2373
  5e3700ee610442dfd7b7ae5e380263f231438be0e32790597142c41362a53c9a test/r33-finalization.test.mjs
2369
2374
  7e419d3c1caf79bfc7407207f50e5645298f9b19d91a7d6f595af185b92cd55e test/r36-finalization.test.mjs
@@ -2429,7 +2434,7 @@ ca8e23abc89f3eadeceb4b6fdad2cb4db5a7933029ece8e8beae2c6a158876b7 test/r58-owner
2429
2434
  9a42827782a3c476e545e954fe38b99c96e925462ad9d4f7ea159493f7736bcc test/r58-stale-owner.test.mjs
2430
2435
  84be7ee7d167eb06c9f9fc178930daaa81e53a91de40bad6d7df2060bd3dd165 test/r58-windows-gate.test.mjs
2431
2436
  76db2a4009d76b86e1da57b91a96b0d6bfeb4063bec3301ede736e2fd5832f39 test/r59-release-contract.test.mjs
2432
- 7862d1cb7fb95eef62e45c08e4c43ba8cd531306f5f8dc59cafbbcbb76841d84 test/r59-tool-surface-compat.test.mjs
2437
+ df38cbdbc2afb6de622be5780513dda56fce820ea0d25701739ccfaf415d32b5 test/r59-tool-surface-compat.test.mjs
2433
2438
  3befd5d4dc4d8ca9e1f6cbeb9c430671e676c5696d6ee5931c2cbe3244c558a4 test/r60-authority-coherence.test.mjs
2434
2439
  60577e231c7d164f57a3960c574d3e369ca140d9dbc477b2444fa62dbf224e51 test/r60-authority-enforcement.test.mjs
2435
2440
  a1fa0b1e529da05f3659a33be6d36dab02f93808638cf0f458d057e9c6d1e35b test/r60-bridge-dispatch.test.mjs
package/PROVENANCE.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "schema": "deadbyte.provenance.v1",
3
- "version": "0.15.71",
3
+ "version": "0.15.72",
4
4
  "source_model": "npm deadbyte-mcp@0.15.70 exact registry artifact -> isolated R191 protected activation successor; active production 0.15.68 unchanged",
5
5
  "signing": "ed25519",
6
- "parent_tarball_sha256": "1a5f5f30bf4781ed951d6d201b8a972d088b2091555d7f4cc2e2bb899ed5707e",
7
- "parent_activation_status": "PUBLISHED_PREVIEW_NOT_ACTIVE",
6
+ "parent_tarball_sha256": "20ed3b20e72b4e4226736a1e432b05b851e9fa265e9bc2966b74f266477b7e27",
7
+ "parent_activation_status": "PRODUCTION_ACTIVE",
8
8
  "parent_rollback_receipt_sha256": null,
9
9
  "runtime_predecessor": {
10
- "release_id": "v0.15.68-ff29dbb2fbb89862",
11
- "manifest_sha256": "ff29dbb2fbb898625592afb47835a4a62ef289429f1e0a89a83242398cd98885",
12
- "generation_manifest_sha256": "2887d4a8d54ea6fc6b28869072f72491c892dfe28178b3537936dce958147bd2"
10
+ "release_id": "v0.15.71-1818abc327478a96",
11
+ "manifest_sha256": "1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c",
12
+ "generation_manifest_sha256": "aef437280102171a9b68da754fca16a03202104db7d5c420751624580ad6fadc"
13
13
  },
14
- "source_predecessor_manifest_file_sha256": "df15db35c7ddddd769650f5c86557159d10d99e9eef4dd232cae67faeb8ad6e3",
15
- "source_predecessor_tarball_sha256": "1a5f5f30bf4781ed951d6d201b8a972d088b2091555d7f4cc2e2bb899ed5707e",
14
+ "source_predecessor_manifest_file_sha256": "1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c",
15
+ "source_predecessor_tarball_sha256": "20ed3b20e72b4e4226736a1e432b05b851e9fa265e9bc2966b74f266477b7e27",
16
16
  "reproducibility": "R190 source extracted from registry-verified npm 0.15.69 SHA256 578c1630608f9df816524c78abc9e1a55357fdc3cd25e142122f1a823e1d69e3; protected full gate pending",
17
17
  "public_surface_evidence": {
18
18
  "status": "PASS",
@@ -78,10 +78,10 @@
78
78
  "limitations_preserved": true
79
79
  },
80
80
  "builder": "deadbyte-r190-foreground-recovery-isolated",
81
- "parent_release_id": "v0.15.68-ff29dbb2fbb89862",
82
- "parent_manifest_sha256": "ff29dbb2fbb898625592afb47835a4a62ef289429f1e0a89a83242398cd98885",
83
- "parent_generation_manifest_sha256": "2887d4a8d54ea6fc6b28869072f72491c892dfe28178b3537936dce958147bd2",
84
- "source_predecessor_version": "0.15.70",
81
+ "parent_release_id": "v0.15.71-1818abc327478a96",
82
+ "parent_manifest_sha256": "1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c",
83
+ "parent_generation_manifest_sha256": "aef437280102171a9b68da754fca16a03202104db7d5c420751624580ad6fadc",
84
+ "source_predecessor_version": "0.15.71",
85
85
  "operator_override": {
86
86
  "four_hour_soak": "WAIVED_BY_OPERATOR",
87
87
  "clean_machine": "WAIVED_BY_OPERATOR",
@@ -111,7 +111,7 @@
111
111
  },
112
112
  "doctor": "WARN_INHERITED_TRANSACTION_RESIDUE_EXIT_0"
113
113
  },
114
- "source_predecessor_tarball_status": "VERIFIED_NPM_SHA1_AND_SHA256",
114
+ "source_predecessor_tarball_status": "PUBLISHED_EXACT_REGISTRY_VERIFIED",
115
115
  "r61": {
116
116
  "reference_corpus_roots": 7,
117
117
  "source_copying": false,
@@ -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": "6f3921c639d52a0d5dc5882c7e0cf7e9d439871d",
128
+ "parent_registry_tarball_sha1": "4c8dc9b82185d5fa13eaee42a6209c3f499831de",
129
129
  "r62": {
130
130
  "transaction_inventory_default_max_entries": 1024,
131
131
  "parent_state_records_observed": 341,
@@ -434,5 +434,17 @@
434
434
  "preflight_acl_behavior": "ASSERT_TRUSTED_AND_UNTRUSTED_PATHS_BY_ACTUAL_R89",
435
435
  "release_contract_changes": "R132_R59_README_EXACT_01571",
436
436
  "full_protected_regression": "PENDING_FRESH_PROTECTED_CANDIDATE_D"
437
+ },
438
+ "r192": {
439
+ "status": "INTEGRATED_SOURCE_FOCUSED_TESTED",
440
+ "source_manifest_sha256": "PENDING_FINAL_SOURCE_MANIFEST",
441
+ "parent_tarball_sha256": "20ed3b20e72b4e4226736a1e432b05b851e9fa265e9bc2966b74f266477b7e27",
442
+ "secret_scrubbing": "R192_VERBOSE_RUNTIME_REASON_SCREENED",
443
+ "stale_cursor_pruning": "WIRED_TO_REMOTE_CLI_DISCOVERY",
444
+ "public_tool_delta": 0,
445
+ "authority_policy_delta": 0,
446
+ "protected_full": "NOT_RUN",
447
+ "npm_published": false,
448
+ "production_activated": false
437
449
  }
438
450
  }
package/README.txt CHANGED
@@ -31,12 +31,12 @@ check `--version` before issuing a stateful command. The compatibility CMD
31
31
  fails with an explanation when npm is detected rather than forwarding the
32
32
  wrong command to the controller.
33
33
 
34
- npx -y deadbyte-mcp@0.15.71 mcp
35
- npx -y deadbyte-mcp@0.15.71 remote
36
- npx -y deadbyte-mcp@0.15.71 remote status
37
- npx -y deadbyte-mcp@0.15.71 remote restart
38
- npx -y deadbyte-mcp@0.15.71 audit status
39
- npx -y deadbyte-mcp@0.15.71 audit verify
34
+ npx -y deadbyte-mcp@0.15.72 mcp
35
+ npx -y deadbyte-mcp@0.15.72 remote
36
+ npx -y deadbyte-mcp@0.15.72 remote status
37
+ npx -y deadbyte-mcp@0.15.72 remote restart
38
+ npx -y deadbyte-mcp@0.15.72 audit status
39
+ npx -y deadbyte-mcp@0.15.72 audit verify
40
40
 
41
41
 
42
42
  R173 EPOCH-REVOKED AUTHORITY PROOF HOTFIX
@@ -60,7 +60,7 @@ CLAUDE DESKTOP
60
60
  "mcpServers": {
61
61
  "deadbyte": {
62
62
  "command": "npx",
63
- "args": ["-y", "deadbyte-mcp@0.15.71", "mcp"]
63
+ "args": ["-y", "deadbyte-mcp@0.15.72", "mcp"]
64
64
  }
65
65
  }
66
66
  }
@@ -72,7 +72,7 @@ Save as .cursor/mcp.json:
72
72
  "mcpServers": {
73
73
  "deadbyte": {
74
74
  "command": "npx",
75
- "args": ["-y", "deadbyte-mcp@0.15.71", "mcp"]
75
+ "args": ["-y", "deadbyte-mcp@0.15.72", "mcp"]
76
76
  }
77
77
  }
78
78
  }
@@ -85,7 +85,7 @@ Save as .vscode/mcp.json:
85
85
  "deadbyte": {
86
86
  "type": "stdio",
87
87
  "command": "npx",
88
- "args": ["-y", "deadbyte-mcp@0.15.71", "mcp"]
88
+ "args": ["-y", "deadbyte-mcp@0.15.72", "mcp"]
89
89
  }
90
90
  }
91
91
  }
@@ -95,7 +95,7 @@ Add to the Codex MCP configuration:
95
95
 
96
96
  [mcp_servers.deadbyte]
97
97
  command = "npx"
98
- args = ["-y", "deadbyte-mcp@0.15.71", "mcp"]
98
+ args = ["-y", "deadbyte-mcp@0.15.72", "mcp"]
99
99
 
100
100
  The `mcp` command is the quiet stdio server entry for local MCP clients; stdout is reserved for MCP.
101
101
  The remote CLI invokes the stable active-release PowerShell launcher directly with shell=false.
package/RELEASE.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "schema": "deadbyte.release.v1",
3
3
  "name": "deadbyte-mcp",
4
- "version": "0.15.71",
5
- "train": "R191",
6
- "label": "R191 protected activation precondition and signed claim recovery successor",
4
+ "version": "0.15.72",
5
+ "train": "R192",
6
+ "label": "R192 live log hardening and foreground integration",
7
7
  "protocol_revision": "2026-07-28",
8
8
  "parent": {
9
- "version": "0.15.68",
10
- "release_id": "v0.15.68-ff29dbb2fbb89862",
11
- "manifest_sha256": "ff29dbb2fbb898625592afb47835a4a62ef289429f1e0a89a83242398cd98885",
12
- "generation_manifest_sha256": "2887d4a8d54ea6fc6b28869072f72491c892dfe28178b3537936dce958147bd2",
9
+ "version": "0.15.71",
10
+ "release_id": "v0.15.71-1818abc327478a96",
11
+ "manifest_sha256": "1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c",
12
+ "generation_manifest_sha256": "aef437280102171a9b68da754fca16a03202104db7d5c420751624580ad6fadc",
13
13
  "activation_status": "PRODUCTION_ACTIVE"
14
14
  },
15
15
  "runtime_predecessor": {
16
- "version": "0.15.68",
17
- "release_id": "v0.15.68-ff29dbb2fbb89862",
18
- "manifest_sha256": "ff29dbb2fbb898625592afb47835a4a62ef289429f1e0a89a83242398cd98885",
19
- "generation_manifest_sha256": "2887d4a8d54ea6fc6b28869072f72491c892dfe28178b3537936dce958147bd2"
16
+ "version": "0.15.71",
17
+ "release_id": "v0.15.71-1818abc327478a96",
18
+ "manifest_sha256": "1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c",
19
+ "generation_manifest_sha256": "aef437280102171a9b68da754fca16a03202104db7d5c420751624580ad6fadc"
20
20
  },
21
21
  "r190_foreground_recovery": {
22
22
  "status": "PREPUBLISH_VERIFIED",
@@ -36,13 +36,13 @@
36
36
  "authority_scope_delta": 0
37
37
  },
38
38
  "source_predecessor": {
39
- "version": "0.15.70",
40
- "train": "R190",
41
- "source_path": "https://registry.npmjs.org/deadbyte-mcp/-/deadbyte-mcp-0.15.70.tgz",
39
+ "version": "0.15.71",
40
+ "train": "R191",
41
+ "source_path": "https://registry.npmjs.org/deadbyte-mcp/-/deadbyte-mcp-0.15.71.tgz",
42
42
  "release_status": "PUBLISHED_REGISTRY_VERIFIED",
43
- "manifest_status": "PUBLISHED_EXACT_MANIFEST_VERIFIED_NOT_ACTIVE",
44
- "manifest_sha256": "df15db35c7ddddd769650f5c86557159d10d99e9eef4dd232cae67faeb8ad6e3",
45
- "tarball_sha256": "1a5f5f30bf4781ed951d6d201b8a972d088b2091555d7f4cc2e2bb899ed5707e"
43
+ "manifest_status": "PUBLISHED_EXACT_MANIFEST_VERIFIED_ACTIVE_PRODUCTION",
44
+ "manifest_sha256": "1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c",
45
+ "tarball_sha256": "20ed3b20e72b4e4226736a1e432b05b851e9fa265e9bc2966b74f266477b7e27"
46
46
  },
47
47
  "consolidation": {
48
48
  "frontend_status_vocabulary": true,
@@ -622,5 +622,20 @@
622
622
  "r43_historical_signed_public_key": "2_PASS_0_FAIL_READ_ONLY",
623
623
  "preflight_acl_behavior": "ASSERT_TRUSTED_AND_UNTRUSTED_PATHS_BY_ACTUAL_R89",
624
624
  "release_contract_changes": "R132_R59_README_EXACT_01571"
625
+ },
626
+ "r192": {
627
+ "status": "CANDIDATE_TESTING",
628
+ "scope": "LIVE_LOG_SECRET_REDACTION_BOUNDED_DIAGNOSTICS_AND_ROTATION_CURSOR_PRUNING",
629
+ "production": "v0.15.71-1818abc327478a96_UNTOUCHED",
630
+ "production_activation": "NOT_RUN",
631
+ "publication": "NOT_RUN",
632
+ "source_predecessor_version": "0.15.71",
633
+ "focused_tests": "PASS_31_FAIL_0",
634
+ "development_policy_root": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-r192-live-log-hardening-dev",
635
+ "public_tool_schema_changed": false,
636
+ "authority_grants_changed": false,
637
+ "integration": "FOREGROND_CLI_SOURCE_INTEGRATION_NOT_MONOLITHIC_REWRITE",
638
+ "verified_artifact": "PENDING_PACK_GATE",
639
+ "references_used": "D:/Projects/deadbyte-mcp/references (read-only conceptual comparisons)"
625
640
  }
626
641
  }
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:r191:0.15.71",
4
+ "serialNumber": "urn:cdx:deadbyte-mcp:r192:0.15.72",
5
5
  "version": 1,
6
6
  "metadata": {
7
7
  "component": {
8
8
  "type": "application",
9
9
  "name": "deadbyte-mcp",
10
- "version": "0.15.71"
10
+ "version": "0.15.72"
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.71",
4
- "train": "R191",
3
+ "version": "0.15.72",
4
+ "train": "R192",
5
5
  "primary_platform": "win32-x64",
6
6
  "reference": {
7
7
  "package": "@wonderwhy-er/desktop-commander",
@@ -154,6 +154,11 @@
154
154
  "id": "r179-live-log-and-foreground",
155
155
  "command": "Run Ctrl+C, restart, crash and concurrent sessions with pre-existing standing grants and confirm no implicit revocation",
156
156
  "expected": "Owner standing grants unchanged; observation-only marker CAS; signed audit remains verifiable"
157
+ },
158
+ {
159
+ "id": "r192-live-log-hardening",
160
+ "gate": "R192 regression preserves clean default live logs, sanitization and bounded log rotation",
161
+ "status": "PASS_FOCUSED_31_0"
157
162
  }
158
163
  ],
159
164
  "observed_pre_release_evidence": {
@@ -729,5 +734,14 @@
729
734
  "preflight_acl_behavior": "ASSERT_TRUSTED_AND_UNTRUSTED_PATHS_BY_ACTUAL_R89",
730
735
  "release_contract_changes": "R132_R59_README_EXACT_01571",
731
736
  "full_protected_regression": "PENDING_FRESH_PROTECTED_CANDIDATE_D"
737
+ },
738
+ "r192": {
739
+ "focused": "PASS_31_FAIL_0",
740
+ "integration": "PENDING_FULL_REGRESSION",
741
+ "protected_full": "NOT_RUN",
742
+ "npm_pack": "PENDING",
743
+ "npm_publish": "NOT_RUN",
744
+ "public_tool_delta": 0,
745
+ "authority_policy_delta": 0
732
746
  }
733
747
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deadbyte-chatgpt-bridge",
3
- "version": "0.15.71",
3
+ "version": "0.15.72",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "engines": {
@@ -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.71-r191-activation-precondition-repair\\controller\\runtime\\process-grant.json",
5
- "state_dir": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.71-r191-activation-precondition-repair\\controller\\runtime\\process-state",
4
+ "grant_file": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-r192-live-log-hardening-dev\\controller\\runtime\\process-grant.json",
5
+ "state_dir": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-r192-live-log-hardening-dev\\controller\\runtime\\process-state",
6
6
  "native_host": {
7
- "path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.71-r191-activation-precondition-repair\\bin\\deadbyte-process-host.exe",
7
+ "path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-r192-live-log-hardening-dev\\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.71-r191-activation-precondition-repair",
12
+ "path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-r192-live-log-hardening-dev",
13
13
  "deny_paths": [
14
14
  "node_modules",
15
15
  "controller/runtime",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "deadbyte-mcp",
3
- "version": "0.15.71",
3
+ "version": "0.15.72",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "deadbyte-mcp",
9
- "version": "0.15.71",
9
+ "version": "0.15.72",
10
10
  "bundleDependencies": [
11
11
  "@modelcontextprotocol/server",
12
12
  "@modelcontextprotocol/client",
@@ -0,0 +1,39 @@
1
+ R192 live log hardening
2
+ target 0.15.72
3
+
4
+ the default npx remote console stays compact
5
+ signed tool audit is the authority for execution results
6
+ console output never grants or restores machine authority
7
+
8
+ changes
9
+ - extra screening and byte bounds for verbose runtime diagnostics
10
+ - keep tool name status and duration while reducing noisy reason text
11
+ - remove old log cursors and partial-line fragments after discovery drops files
12
+ - preserve independent START and terminal result lines for mutations
13
+ - keep heartbeat folding timeline filters and trace formatting
14
+ - no change to the public MCP tool catalog or authority policy
15
+
16
+ integration
17
+ src/deadbyte-cli.mjs reads and tracks foreground streams
18
+ src/remote-live-log.mjs formats audit-safe progress and prunes old readers
19
+ src/remote-log-decode-r60.mjs handles bounded append and file identity
20
+ src/tool-audit.mjs remains the signed and sanitized audit source
21
+
22
+ reference study
23
+ D:\Projects\deadbyte-mcp\references
24
+ read-only comparison of remote MCP/Commander implementations
25
+ no donor code imported or copied into R192
26
+
27
+ verification
28
+ R192 focused 31 pass 0 fail
29
+ R192 extended release identity 60 pass 0 fail
30
+ full workspace regression not yet verified
31
+ protected Windows package test not yet verified
32
+ npm publication not yet verified
33
+ production activation not run
34
+
35
+ release constraints
36
+ 0.15.71 remains the active rollback predecessor
37
+ no writes to installed production files or owner authority
38
+ do not publish before exact package verification
39
+ do not use npm success messages as proof of registry bytes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deadbyte-mcp",
3
- "version": "0.15.71",
3
+ "version": "0.15.72",
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.",
@@ -0,0 +1,10 @@
1
+ import {spawnSync} from 'node:child_process';
2
+ import {fileURLToPath} from 'node:url';
3
+ import path from 'node:path';
4
+ const root=path.resolve(fileURLToPath(new URL('..',import.meta.url)));
5
+ const files=['test/r192-live-log-hardening.test.mjs',
6
+ 'test/remote-live-log-r37.test.mjs','test/r51-live-log-polling.test.mjs',
7
+ 'test/remote-log-decode-r60.test.mjs'];
8
+ const r=spawnSync(process.execPath,['--test','--test-concurrency=1',...files],{cwd:root,encoding:'utf8',windowsHide:true,shell:false,timeout:130000,maxBuffer:700000});
9
+ console.log(JSON.stringify({state:r.status===0?'PASS':'FAIL',exit:r.status,error:r.error?.message??null,stdout:r.stdout?.slice(-16000),stderr:r.stderr?.slice(-4000)}));
10
+ if(r.error||r.status!==0)process.exitCode=1;
@@ -0,0 +1,8 @@
1
+ import {spawnSync} from 'node:child_process';import path from 'node:path';import {fileURLToPath} from 'node:url';
2
+ const root=path.resolve(fileURLToPath(new URL('..',import.meta.url)));
3
+ const tests=['r192-release-identity','r192-live-log-hardening','r130-release-security-contract','r132-release-identity','r153-prepublish-identity','r167-release-contract','r172-release-contract','r173-release-contract','r179-release-contract','r190-release-contract','r191-release-contract','process-policy-refresh','remote-live-log-r37','r51-live-log-polling'];
4
+ const r=spawnSync(process.execPath,['--test','--test-concurrency=1',...tests.map(t=>'test/'+t+'.test.mjs')],{
5
+ cwd:root,encoding:'utf8',windowsHide:true,shell:false,timeout:220000,maxBuffer:1400000});
6
+ console.log(JSON.stringify({status:r.status===0?'PASS':'FAIL',exit:r.status,error:r.error?.message??null,
7
+ stdout:r.stdout?.slice(-18000),stderr:r.stderr?.slice(-2200)}));
8
+ if(r.error||r.status!==0)process.exitCode=1;
@@ -16,7 +16,7 @@ import { exportOfflineDiagnostics } from './r67-diagnostic-export.mjs';
16
16
  import { verifyOfflineDiagnosticsZip } from './r67-diagnostics-verify.mjs';
17
17
  import { parseActivePointer } from './release-slot.mjs';
18
18
  import { printDoctor } from './doctor-r45.mjs';
19
- import { classifyRemoteAuditOutcome, createLiveTimelineFilter, createLiveTimelineTracker, createLiveTimelineWriter, defaultForegroundTimelineOptions, formatRemoteLogResetNotice, formatCompactAuditEvent, formatRemoteLifecycle, formatRemoteToolCall, formatRuntimeDiagnosticLine, selectLiveLogNames } from './remote-live-log.mjs';
19
+ import { classifyRemoteAuditOutcome, createLiveTimelineFilter, createLiveTimelineTracker, createLiveTimelineWriter, defaultForegroundTimelineOptions, formatRemoteLogResetNotice, formatCompactAuditEvent, formatRemoteLifecycle, formatRemoteToolCall, formatRuntimeDiagnosticLine, selectLiveLogNames, pruneLiveLogReaders } from './remote-live-log.mjs';
20
20
  import { prepareRemoteConsole, remoteDisplayText } from './remote-console.mjs';
21
21
  import { ensureRuntimeCoherence } from './runtime-coherence.mjs';
22
22
  import {selectR168OneShotRemotePath} from './remote-one-shot-coherence-r168.mjs';
@@ -414,6 +414,7 @@ async function tailRemoteLogs(root,signal,{journal=null,offsets=null,activityTra
414
414
  const now=Date.now();
415
415
  if(now>=nextDiscoveryAt){
416
416
  liveFiles=await listLogFiles(root);
417
+ pruneLiveLogReaders(activeOffsets,partialLines,liveFiles);
417
418
  nextDiscoveryAt=now+LIVE_LOG_DISCOVERY_INTERVAL_MS;
418
419
  }
419
420
  for(const file of liveFiles){
@@ -62,6 +62,19 @@ export function formatRemoteLogResetNotice(file,reason){
62
62
  return '[LIVELOG] RUNTIME_LOG_REOPENED '+name+' — '+detail+'; console diagnostic continuity may have gaps; audit verification is separate';
63
63
  }
64
64
 
65
+ // Bound the foreground reader state to the current discovery snapshot.
66
+ // Audit continuity is still enforced by the signed journal, not this cache.
67
+ export function pruneLiveLogReaders(offsets,partialLines,liveFiles){
68
+ if(!(offsets instanceof Map)||!(partialLines instanceof Map)||
69
+ !Array.isArray(liveFiles)||liveFiles.some(file=>typeof file!=='string'||!file))
70
+ throw new Error('live log reader state invalid');
71
+ const keep=new Set(liveFiles);
72
+ let cursorsRemoved=0,fragmentsRemoved=0;
73
+ for(const file of offsets.keys())if(!keep.has(file)){offsets.delete(file);cursorsRemoved++;}
74
+ for(const file of partialLines.keys())if(!keep.has(file)){partialLines.delete(file);fragmentsRemoved++;}
75
+ return {cursors_removed:cursorsRemoved,fragments_removed:fragmentsRemoved};
76
+ }
77
+
65
78
  export function selectLiveLogNames({auditNames=[],runtimeNames=[]}={}){
66
79
  if(!Array.isArray(auditNames)||!Array.isArray(runtimeNames)) throw new Error('live log names must be arrays');
67
80
  const audit=[...new Set(auditNames.filter(name=>typeof name==='string'&&/^segment-\d{8}\.jsonl$/.test(name)))].sort().slice(-2);
@@ -713,6 +726,14 @@ export function formatRuntimeDiagnosticLine(file,line,{verbose=false,displayMode
713
726
  return remoteDisplayText('['+label+'.DEBUG] OUT '+output[1],displayMode);
714
727
  }
715
728
  const compact=line.match(/^\[TOOL\]\s+(\S+)\s+#(\d+)\s+(✓|✗|OK|ERR)\s+([A-Za-z0-9_.-]+)\s+([^\s]+)(?:\s+—\s+(.+))?$/u);
716
- if(compact) return verbose?remoteDisplayText('['+label+'.DEBUG] #'+compact[2]+' '+compact[3]+' '+compact[4]+' '+compact[5]+(compact[6]?' — '+compact[6]:''),displayMode):null;
729
+ if(compact){
730
+ if(!verbose)return null;
731
+ // Runtime logs are lower-trust diagnostics than signed audit records.
732
+ // Never echo a donor/transport error reason before screening and bounding it.
733
+ const screened=compact[6]?sanitizeAuditArgs(compact[6]):null;
734
+ const reason=typeof screened==='string'?clipped(screened,180):screened?'[REDACTED]':'';
735
+ return remoteDisplayText('['+label+'.DEBUG] #'+compact[2]+' '+compact[3]+' '+compact[4]+' '+compact[5]+
736
+ (reason?' — '+reason:''),displayMode);
737
+ }
717
738
  return null;
718
739
  }
package/src/version.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export const DEADBYTE_VERSION = '0.15.71';
1
+ export const DEADBYTE_VERSION = '0.15.72';
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';
@@ -70,7 +70,7 @@ test('R167 process policy binds coherently to the explicit development root', as
70
70
  // The distributed policy is pinned to its explicit development provenance,
71
71
  // not to the physical extraction path of the exact immutable npm tarball.
72
72
  const release = JSON.parse(await readFile(path.join(repoRoot, 'RELEASE.json'), 'utf8'));
73
- const approvedRoot = release.r191_activation_repair?.development_policy_root;
73
+ const approvedRoot = release.r192?.development_policy_root;
74
74
  assert.equal(typeof approvedRoot, 'string', 'R191 development policy root must be explicit in release metadata');
75
75
  assert.ok(path.isAbsolute(approvedRoot), 'R191 development policy root must be absolute');
76
76
  const expectedRoot = path.resolve(approvedRoot);
@@ -14,14 +14,14 @@ test('current successor retains the R130 security baseline with truthful R190 id
14
14
  read('SBOM.cdx.json'),readReleaseLock(root),read('TEST-MATRIX.json')]);
15
15
  assert.equal(pkg.name,'deadbyte-mcp');
16
16
  for(const actual of [pkg.version,release.version,provenance.version,matrix.version,bom.metadata.component.version,lock.version,lock.packages[''].version,DEADBYTE_VERSION])
17
- assert.equal(actual,'0.15.71');
18
- assert.equal(release.train,'R191');
19
- assert.equal(matrix.train,'R191');
20
- assert.equal(release.source_predecessor.version,'0.15.70');
21
- assert.equal(release.source_predecessor.train,'R190');
22
- assert.match(release.source_predecessor.source_path,/deadbyte-mcp-0\.15\.70\.tgz/i);
23
- assert.equal(release.source_predecessor.manifest_status,'PUBLISHED_EXACT_MANIFEST_VERIFIED_NOT_ACTIVE');
24
- assert.equal(release.runtime_predecessor.version,'0.15.68');
17
+ assert.equal(actual,'0.15.72');
18
+ assert.equal(release.train,'R192');
19
+ assert.equal(matrix.train,'R192');
20
+ assert.equal(release.source_predecessor.version,'0.15.71');
21
+ assert.equal(release.source_predecessor.train,'R191');
22
+ assert.match(release.source_predecessor.source_path,/deadbyte-mcp-0\.15\.71\.tgz/i);
23
+ assert.equal(release.source_predecessor.manifest_status,'PUBLISHED_EXACT_MANIFEST_VERIFIED_ACTIVE_PRODUCTION');
24
+ assert.equal(release.runtime_predecessor.version,'0.15.71');
25
25
  assert.equal(provenance.r160.source_predecessor_manifest_status,'STALE_REJECTED');
26
26
  assert.equal(pkg.dependencies['@modelcontextprotocol/client'],'2.3.1');
27
27
  assert.equal(pkg.dependencies['@modelcontextprotocol/server'],'2.3.1');
@@ -16,17 +16,17 @@ test('R190 package identity preserves R132 evidence and published R179 source pr
16
16
  for(const value of [pkg.version,lock.version,lock.packages[''].version,release.version,prov.version,bom.metadata.component.version,matrix.version,DEADBYTE_VERSION]){
17
17
  assert.equal(value,pkg.version);
18
18
  }
19
- assert.equal(release.train,'R191');
20
- assert.equal(matrix.train,'R191');
21
- assert.equal(release.source_predecessor.version,'0.15.70');
22
- assert.equal(release.source_predecessor.train,'R190');
23
- assert.match(release.source_predecessor.source_path,/deadbyte-mcp-0\.15\.70\.tgz/i);
19
+ assert.equal(release.train,'R192');
20
+ assert.equal(matrix.train,'R192');
21
+ assert.equal(release.source_predecessor.version,'0.15.71');
22
+ assert.equal(release.source_predecessor.train,'R191');
23
+ assert.match(release.source_predecessor.source_path,/deadbyte-mcp-0\.15\.71\.tgz/i);
24
24
  assert.equal(prov.r160.source_predecessor_manifest_status,'STALE_REJECTED');
25
25
  assert.equal(release.r165.published_source_manifest_sha256,'4adf7d94682fbb71c4a91eb3147ecc48076bbc5d79cb67fcb875cde6a1bb4805');
26
26
  assert.equal(release.r165.published_source_tarball_sha256,'812e97609b7c51353ed25f2202129737e43bb4fbe0778c3adec43ec065352641');
27
- assert.equal(release.source_predecessor.tarball_sha256,'1a5f5f30bf4781ed951d6d201b8a972d088b2091555d7f4cc2e2bb899ed5707e');
27
+ assert.equal(release.source_predecessor.tarball_sha256,'20ed3b20e72b4e4226736a1e432b05b851e9fa265e9bc2966b74f266477b7e27');
28
28
  assert.notEqual(release.r179.source_predecessor_tarball_sha256,release.source_predecessor.tarball_sha256);
29
- assert.equal(release.runtime_predecessor.version,'0.15.68');
29
+ assert.equal(release.runtime_predecessor.version,'0.15.71');
30
30
  assert.equal(prov.runtime_predecessor.release_id,release.runtime_predecessor.release_id);
31
31
  assert.equal(prov.runtime_predecessor.manifest_sha256,release.runtime_predecessor.manifest_sha256);
32
32
  assert.equal(prov.runtime_predecessor.generation_manifest_sha256,release.runtime_predecessor.generation_manifest_sha256);
@@ -26,7 +26,7 @@ test('R153 historical verifier refuses current successor package identity',async
26
26
  const state={pkg:JSON.parse(await readFile(path.join(root,'package.json'),'utf8')),
27
27
  release:JSON.parse(await readFile(path.join(root,'RELEASE.json'),'utf8')),
28
28
  bridge:JSON.parse(await readFile(path.join(root,'bridge/package.json'),'utf8'))};
29
- assert.equal(state.pkg.version,'0.15.71');
29
+ assert.equal(state.pkg.version,'0.15.72');
30
30
  assert.throws(()=>verifyR153Lineage(state),/package version/);
31
31
  await assert.rejects(verifyR153IdentityTree(root),/package version/);
32
32
  });
@@ -8,9 +8,9 @@ const read=async rel=>JSON.parse(await readFile(path.join(root,rel),'utf8'));
8
8
 
9
9
  test('R160 historical contract remains distinct from the current package identity',async()=>{
10
10
  const [release,provenance]=await Promise.all([read('RELEASE.json'),read('PROVENANCE.json')]);
11
- assert.equal(release.runtime_predecessor.version,'0.15.68');
12
- assert.equal(release.runtime_predecessor.release_id,'v0.15.68-ff29dbb2fbb89862');
13
- assert.equal(release.runtime_predecessor.manifest_sha256,'ff29dbb2fbb898625592afb47835a4a62ef289429f1e0a89a83242398cd98885');
11
+ assert.equal(release.runtime_predecessor.version,'0.15.71');
12
+ assert.equal(release.runtime_predecessor.release_id,'v0.15.71-1818abc327478a96');
13
+ assert.equal(release.runtime_predecessor.manifest_sha256,'1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c');
14
14
  assert.equal(release.r160.runtime_predecessor_version,'0.15.61');
15
15
  assert.equal(release.r160.source_predecessor_train,'R159');
16
16
  assert.equal(release.r160.public_tool_delta,0);
@@ -17,7 +17,7 @@ const hashMarker=c=>c.repeat(64);
17
17
  async function fixture(t,kind){
18
18
  assert.equal(typeof envRoot,'string'); assert.ok(path.isAbsolute(envRoot));
19
19
  assert.match(sha(await readFile(path.join(envRoot,'MANIFEST.SHA256'))),/^[0-9a-f]{64}$/);
20
- assert.equal(JSON.parse(await readFile(path.join(envRoot,'package.json'),'utf8')).version,'0.15.71');
20
+ assert.equal(JSON.parse(await readFile(path.join(envRoot,'package.json'),'utf8')).version,'0.15.72');
21
21
  const dir=await mkdtemp(path.join(os.tmpdir(),'deadbyte-r164-skew-e2e-'));
22
22
  t.after(async()=>{await rm(dir,{recursive:true,force:true,maxRetries:10,retryDelay:150});});
23
23
  const state=path.join(dir,'state'),bin=path.join(state,'bin');
@@ -8,7 +8,7 @@ import {DEADBYTE_VERSION} from '../src/version.mjs';
8
8
  const root=path.resolve(fileURLToPath(new URL('..',import.meta.url)));
9
9
  const read=async rel=>JSON.parse(await readFile(path.join(root,rel),'utf8'));
10
10
  const readOptional=async rel=>{try{return await read(rel);}catch(error){if(error?.code==='ENOENT')return null;throw error;}};
11
- const VERSION='0.15.71';
11
+ const VERSION='0.15.72';
12
12
  const R166_MANIFEST='ad3c091fbbe2bac6d234548724008b67305fd483ad6542f92d5aeb1aa84f5849';
13
13
  const R166_TARBALL='3d22412c3cebabd66bfa92ca4dbaaf3ef49acba7f92436a16485d7e4cb18c653';
14
14
 
@@ -20,20 +20,20 @@ test('current package identity retains the immutable R167/R173 activation lineag
20
20
  provenance.version,matrix.version,bom.metadata.component.version,DEADBYTE_VERSION];
21
21
  if(lock)versions.push(lock.version,lock.packages[''].version);
22
22
  for(const version of versions)assert.equal(version,VERSION);
23
- assert.equal(release.train,'R191');
24
- assert.equal(matrix.train,'R191');
25
- assert.equal(bom.serialNumber,'urn:cdx:deadbyte-mcp:r191:0.15.71');
23
+ assert.equal(release.train,'R192');
24
+ assert.equal(matrix.train,'R192');
25
+ assert.equal(bom.serialNumber,'urn:cdx:deadbyte-mcp:r192:0.15.72');
26
26
  assert.deepEqual(release.runtime_predecessor,{
27
- version:'0.15.68',release_id:'v0.15.68-ff29dbb2fbb89862',
28
- manifest_sha256:'ff29dbb2fbb898625592afb47835a4a62ef289429f1e0a89a83242398cd98885',
29
- generation_manifest_sha256:'2887d4a8d54ea6fc6b28869072f72491c892dfe28178b3537936dce958147bd2'
27
+ version:'0.15.71',release_id:'v0.15.71-1818abc327478a96',
28
+ manifest_sha256:'1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c',
29
+ generation_manifest_sha256:'aef437280102171a9b68da754fca16a03202104db7d5c420751624580ad6fadc'
30
30
  });
31
- assert.equal(release.source_predecessor.version,'0.15.70');
32
- assert.equal(release.source_predecessor.train,'R190');
33
- assert.equal(release.source_predecessor.tarball_sha256,'1a5f5f30bf4781ed951d6d201b8a972d088b2091555d7f4cc2e2bb899ed5707e');
31
+ assert.equal(release.source_predecessor.version,'0.15.71');
32
+ assert.equal(release.source_predecessor.train,'R191');
33
+ assert.equal(release.source_predecessor.tarball_sha256,'20ed3b20e72b4e4226736a1e432b05b851e9fa265e9bc2966b74f266477b7e27');
34
34
  assert.equal(release.r173.source_predecessor_version,'0.15.67');
35
35
  assert.equal(release.r167.source_predecessor_manifest_sha256,R166_MANIFEST);
36
- assert.equal(provenance.source_predecessor_manifest_file_sha256,'df15db35c7ddddd769650f5c86557159d10d99e9eef4dd232cae67faeb8ad6e3');
36
+ assert.equal(provenance.source_predecessor_manifest_file_sha256,'1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c');
37
37
  assert.equal(provenance.r173.source_predecessor_manifest_sha256,'4fd7bfc76b1de6401c142b607cc84e847434b28c888bc99ceb09c9e8e5adc8f8');
38
38
  assert.equal(release.r172.source_predecessor_manifest_sha256,'962e227dace247d59aa860211388fbde461c5f9c8a7e8a878e34a14a27d355f8');
39
39
  assert.equal(release.r172.source_predecessor_tarball_sha256,'31b194a4fbff7dbdb9f4f275b4ea49c5115f7b0bb2241c0c72d72ef690311a5d');
@@ -13,8 +13,10 @@ const predecessorTarball='fc3ae5b1505e316bc9dfedf8d063cb00641754c8f5f1306a31f8cc
13
13
 
14
14
  test('R172 preserves the immutable R168 publication lineage separately from current identity',async()=>{
15
15
  const release=await read('RELEASE.json');
16
- assert.equal(release.runtime_predecessor.version,'0.15.68');
17
- assert.equal(release.parent.version,'0.15.68');
16
+ assert.equal(release.runtime_predecessor.version,'0.15.71');
17
+ assert.equal(release.parent.version,'0.15.71');
18
+ assert.equal(release.runtime_predecessor.release_id,'v0.15.71-1818abc327478a96');
19
+ assert.equal(release.parent.release_id,'v0.15.71-1818abc327478a96');
18
20
  assert.notEqual(release.runtime_predecessor.release_id,parent);
19
21
  assert.notEqual(release.parent.release_id,parent);
20
22
  assert.equal(release.r168.scope,'REMOTE_VERSION_SKEW_FAIL_CLOSED_AND_READONLY_RECONCILIATION');
@@ -16,12 +16,12 @@ test('R190 binds the published source predecessor separately from the active run
16
16
  const versions=[pkg.version,bridge.version,release.version,provenance.version,matrix.version,
17
17
  bom.metadata.component.version,DEADBYTE_VERSION];
18
18
  if(lock)versions.push(lock.version,lock.packages[''].version);
19
- for(const value of versions)assert.equal(value,'0.15.71');
20
- assert.equal(release.train,'R191'); assert.equal(matrix.train,'R191');
21
- assert.equal(release.source_predecessor.version,'0.15.70');
22
- assert.equal(release.source_predecessor.manifest_sha256,'df15db35c7ddddd769650f5c86557159d10d99e9eef4dd232cae67faeb8ad6e3');
23
- assert.equal(release.source_predecessor.tarball_sha256,'1a5f5f30bf4781ed951d6d201b8a972d088b2091555d7f4cc2e2bb899ed5707e');
24
- assert.equal(release.runtime_predecessor.release_id,'v0.15.68-ff29dbb2fbb89862');
19
+ for(const value of versions)assert.equal(value,'0.15.72');
20
+ assert.equal(release.train,'R192'); assert.equal(matrix.train,'R192');
21
+ assert.equal(release.source_predecessor.version,'0.15.71');
22
+ assert.equal(release.source_predecessor.manifest_sha256,'1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c');
23
+ assert.equal(release.source_predecessor.tarball_sha256,'20ed3b20e72b4e4226736a1e432b05b851e9fa265e9bc2966b74f266477b7e27');
24
+ assert.equal(release.runtime_predecessor.release_id,'v0.15.71-1818abc327478a96');
25
25
  assert.equal(release.r173.public_tool_delta,0); assert.equal(release.r173.authority_scope_delta,0);
26
26
  });
27
27
 
@@ -13,21 +13,21 @@ test('R190 package identity binds the exact published R179 source and live runti
13
13
  json('package.json'),readReleaseLock(root),json('bridge/package.json'),json('RELEASE.json'),
14
14
  json('PROVENANCE.json'),json('TEST-MATRIX.json'),json('SBOM.cdx.json')
15
15
  ]);
16
- assert.equal(pkg.version,'0.15.71');
17
- assert.equal(lock.version,'0.15.71');
18
- assert.equal(lock.packages[''].version,'0.15.71');
19
- assert.equal(bridge.version,'0.15.71');
20
- assert.equal(release.version,'0.15.71');
21
- assert.equal(release.train,'R191');
22
- assert.equal(matrix.version,'0.15.71');
23
- assert.equal(matrix.train,'R191');
24
- assert.equal(sbom.metadata.component.version,'0.15.71');
25
- assert.equal(release.source_predecessor.version,'0.15.70');
26
- assert.equal(release.source_predecessor.train,'R190');
27
- assert.equal(release.source_predecessor.manifest_sha256,'df15db35c7ddddd769650f5c86557159d10d99e9eef4dd232cae67faeb8ad6e3');
28
- assert.equal(release.source_predecessor.tarball_sha256,'1a5f5f30bf4781ed951d6d201b8a972d088b2091555d7f4cc2e2bb899ed5707e');
29
- assert.equal(release.runtime_predecessor.version,'0.15.68');
30
- assert.equal(provenance.version,'0.15.71');
16
+ assert.equal(pkg.version,'0.15.72');
17
+ assert.equal(lock.version,'0.15.72');
18
+ assert.equal(lock.packages[''].version,'0.15.72');
19
+ assert.equal(bridge.version,'0.15.72');
20
+ assert.equal(release.version,'0.15.72');
21
+ assert.equal(release.train,'R192');
22
+ assert.equal(matrix.version,'0.15.72');
23
+ assert.equal(matrix.train,'R192');
24
+ assert.equal(sbom.metadata.component.version,'0.15.72');
25
+ assert.equal(release.source_predecessor.version,'0.15.71');
26
+ assert.equal(release.source_predecessor.train,'R191');
27
+ assert.equal(release.source_predecessor.manifest_sha256,'1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c');
28
+ assert.equal(release.source_predecessor.tarball_sha256,'20ed3b20e72b4e4226736a1e432b05b851e9fa265e9bc2966b74f266477b7e27');
29
+ assert.equal(release.runtime_predecessor.version,'0.15.71');
30
+ assert.equal(provenance.version,'0.15.72');
31
31
  assert.equal(provenance.parent_tarball_sha256,release.source_predecessor.tarball_sha256);
32
32
  assert.equal(provenance.source_predecessor_manifest_file_sha256,release.source_predecessor.manifest_sha256);
33
33
  });
@@ -7,23 +7,23 @@ import {DEADBYTE_VERSION} from '../src/version.mjs';
7
7
  import {readReleaseLock} from './helpers/release-lock.mjs';
8
8
  const root=path.resolve(fileURLToPath(new URL('..',import.meta.url)));
9
9
  const read=async file=>JSON.parse(await readFile(path.join(root,file),'utf8'));
10
- const parent='v0.15.68-ff29dbb2fbb89862';
11
- const manifest='ff29dbb2fbb898625592afb47835a4a62ef289429f1e0a89a83242398cd98885';
12
- const generation='2887d4a8d54ea6fc6b28869072f72491c892dfe28178b3537936dce958147bd2';
10
+ const parent='v0.15.71-1818abc327478a96';
11
+ const manifest='1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c';
12
+ const generation='aef437280102171a9b68da754fca16a03202104db7d5c420751624580ad6fadc';
13
13
  const tarball='1a7f1fe05a06178b8d772a140be6e0470790b743cef690c3f8f8165cc61075bf';
14
14
  test('R190 version, lock snapshot, bridge, matrix, SBOM and provenance identify exact 0.15.70 successor',async()=>{
15
15
  const [pkg,lock,bridge,release,provenance,matrix,sbom]=await Promise.all([
16
16
  read('package.json'),readReleaseLock(root),read('bridge/package.json'),read('RELEASE.json'),
17
17
  read('PROVENANCE.json'),read('TEST-MATRIX.json'),read('SBOM.cdx.json')]);
18
18
  for(const version of [pkg.version,lock.version,lock.packages[''].version,bridge.version,release.version,provenance.version,
19
- matrix.version,sbom.metadata.component.version,DEADBYTE_VERSION])assert.equal(version,'0.15.71');
20
- assert.equal(release.train,'R191');assert.equal(matrix.train,'R191');
21
- assert.equal(sbom.serialNumber,'urn:cdx:deadbyte-mcp:r191:0.15.71');
19
+ matrix.version,sbom.metadata.component.version,DEADBYTE_VERSION])assert.equal(version,'0.15.72');
20
+ assert.equal(release.train,'R192');assert.equal(matrix.train,'R192');
21
+ assert.equal(sbom.serialNumber,'urn:cdx:deadbyte-mcp:r192:0.15.72');
22
22
  assert.equal(release.parent.release_id,parent);assert.equal(release.parent.manifest_sha256,manifest);
23
23
  assert.equal(release.parent.generation_manifest_sha256,generation);
24
- assert.equal(release.source_predecessor.version,'0.15.70');
25
- assert.equal(release.source_predecessor.manifest_sha256,'df15db35c7ddddd769650f5c86557159d10d99e9eef4dd232cae67faeb8ad6e3');
26
- assert.equal(release.source_predecessor.tarball_sha256,'1a5f5f30bf4781ed951d6d201b8a972d088b2091555d7f4cc2e2bb899ed5707e');
24
+ assert.equal(release.source_predecessor.version,'0.15.71');
25
+ assert.equal(release.source_predecessor.manifest_sha256,'1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c');
26
+ assert.equal(release.source_predecessor.tarball_sha256,'20ed3b20e72b4e4226736a1e432b05b851e9fa265e9bc2966b74f266477b7e27');
27
27
  assert.equal(release.runtime_predecessor.release_id,parent);
28
28
  assert.equal(provenance.runtime_predecessor.release_id,parent);
29
29
  assert.equal(provenance.parent_tarball_sha256,release.source_predecessor.tarball_sha256);
@@ -48,7 +48,7 @@ test('R190 retains historical R179 and R173 source evidence without promoting it
48
48
  assert.equal(release.r173.source_predecessor_version,'0.15.67');
49
49
  assert.equal(release.r173.source_predecessor_manifest_sha256,'4fd7bfc76b1de6401c142b607cc84e847434b28c888bc99ceb09c9e8e5adc8f8');
50
50
  assert.equal(prov.r173.source_predecessor_version,'0.15.67');
51
- assert.equal(release.source_predecessor.version,'0.15.70');
51
+ assert.equal(release.source_predecessor.version,'0.15.71');
52
52
  assert.notEqual(release.source_predecessor.tarball_sha256,release.r173.source_predecessor_tarball_sha256);
53
53
  });
54
54
  test('R184 ships a semantic lock snapshot matching installed package identity and dependencies',async()=>{
@@ -8,17 +8,17 @@ test('R190 candidate identity separates published source 0.15.69 from active run
8
8
  json('package.json'),json('bridge/package.json'),json('RELEASE.json'),json('PROVENANCE.json'),
9
9
  json('TEST-MATRIX.json'),json('SBOM.cdx.json'),readFile(new URL('../src/version.mjs',import.meta.url),'utf8')]);
10
10
  for(const value of [pkg.version,bridge.version,release.version,provenance.version,matrix.version,
11
- sbom.metadata.component.version])assert.equal(value,'0.15.71');
12
- assert.match(versionSource,/DEADBYTE_VERSION = '0\.15\.71'/);
13
- assert.equal(release.train,'R191');assert.equal(matrix.train,'R191');
14
- assert.equal(release.source_predecessor.version,'0.15.70');
15
- assert.equal(release.source_predecessor.tarball_sha256,'1a5f5f30bf4781ed951d6d201b8a972d088b2091555d7f4cc2e2bb899ed5707e');
16
- assert.equal(release.source_predecessor.manifest_sha256,'df15db35c7ddddd769650f5c86557159d10d99e9eef4dd232cae67faeb8ad6e3');
17
- assert.equal(release.runtime_predecessor.version,'0.15.68');
18
- assert.equal(release.runtime_predecessor.release_id,'v0.15.68-ff29dbb2fbb89862');
19
- assert.equal(provenance.source_predecessor_version,'0.15.70');
11
+ sbom.metadata.component.version])assert.equal(value,'0.15.72');
12
+ assert.match(versionSource,/DEADBYTE_VERSION = '0\.15\.72'/);
13
+ assert.equal(release.train,'R192');assert.equal(matrix.train,'R192');
14
+ assert.equal(release.source_predecessor.version,'0.15.71');
15
+ assert.equal(release.source_predecessor.tarball_sha256,'20ed3b20e72b4e4226736a1e432b05b851e9fa265e9bc2966b74f266477b7e27');
16
+ assert.equal(release.source_predecessor.manifest_sha256,'1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c');
17
+ assert.equal(release.runtime_predecessor.version,'0.15.71');
18
+ assert.equal(release.runtime_predecessor.release_id,'v0.15.71-1818abc327478a96');
19
+ assert.equal(provenance.source_predecessor_version,'0.15.71');
20
20
  assert.equal(provenance.source_predecessor_tarball_sha256,release.source_predecessor.tarball_sha256);
21
- assert.match(sbom.serialNumber,/r191:0\.15\.71$/);
21
+ assert.match(sbom.serialNumber,/r192:0\.15\.72$/);
22
22
  });
23
23
 
24
24
  test('R190 release metadata records verified recovery without claiming publication or activation',async()=>{
@@ -6,20 +6,20 @@ import path from 'node:path';
6
6
  import {DEADBYTE_VERSION} from '../src/version.mjs';
7
7
  const root=path.resolve(fileURLToPath(new URL('..',import.meta.url)));
8
8
  const json=async f=>JSON.parse(await readFile(path.join(root,f),'utf8'));
9
- const predecessor='v0.15.68-ff29dbb2fbb89862';
10
- const publishedManifest='df15db35c7ddddd769650f5c86557159d10d99e9eef4dd232cae67faeb8ad6e3';
11
- const publishedTarball='1a5f5f30bf4781ed951d6d201b8a972d088b2091555d7f4cc2e2bb899ed5707e';
9
+ const predecessor='v0.15.71-1818abc327478a96';
10
+ const publishedManifest='1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c';
11
+ const publishedTarball='20ed3b20e72b4e4226736a1e432b05b851e9fa265e9bc2966b74f266477b7e27';
12
12
  test('R191 exact version identity includes bundled bridge, lock snapshot, SBOM, provenance and matrix',async()=>{
13
13
  const [pkg,bridge,lock,release,provenance,matrix,bom]=await Promise.all(['package.json','bridge/package.json','docs/R184-package-lock.json','RELEASE.json','PROVENANCE.json','TEST-MATRIX.json','SBOM.cdx.json'].map(json));
14
- for(const ver of [pkg.version,bridge.version,lock.version,lock.packages[''].version,release.version,provenance.version,matrix.version,bom.metadata.component.version,DEADBYTE_VERSION])assert.equal(ver,'0.15.71');
15
- for(const train of [release.train,matrix.train])assert.equal(train,'R191');
16
- assert.equal(bom.serialNumber,'urn:cdx:deadbyte-mcp:r191:0.15.71');
14
+ for(const ver of [pkg.version,bridge.version,lock.version,lock.packages[''].version,release.version,provenance.version,matrix.version,bom.metadata.component.version,DEADBYTE_VERSION])assert.equal(ver,'0.15.72');
15
+ for(const train of [release.train,matrix.train])assert.equal(train,'R192');
16
+ assert.equal(bom.serialNumber,'urn:cdx:deadbyte-mcp:r192:0.15.72');
17
17
  assert.equal(release.parent.release_id,predecessor);
18
18
  assert.equal(provenance.parent_release_id,predecessor);
19
- assert.equal(release.source_predecessor.version,'0.15.70');
19
+ assert.equal(release.source_predecessor.version,'0.15.71');
20
20
  assert.equal(release.source_predecessor.manifest_sha256,publishedManifest);
21
21
  assert.equal(release.source_predecessor.tarball_sha256,publishedTarball);
22
- assert.equal(provenance.source_predecessor_version,'0.15.70');
22
+ assert.equal(provenance.source_predecessor_version,'0.15.71');
23
23
  assert.equal(provenance.parent_tarball_sha256,publishedTarball);
24
24
  assert.equal(provenance.source_predecessor_tarball_sha256,publishedTarball);
25
25
  assert.equal(provenance.source_predecessor_manifest_file_sha256,publishedManifest);
@@ -0,0 +1,50 @@
1
+ import test from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import {formatRuntimeDiagnosticLine,createLiveTimelineTracker,
4
+ pruneLiveLogReaders} from '../src/remote-live-log.mjs';
5
+
6
+ const compact=(reason)=>'[TOOL] 2026-10-28T14:00:00.000Z #12 ✗ coding_command_run 10ms — '+reason;
7
+
8
+ test('R192 runtime verbose diagnostics never disclose secret-bearing reasons',()=>{
9
+ const raw=compact('password=canaryNotForConsole123');
10
+ const out=formatRuntimeDiagnosticLine('bridge.stdout.log',raw,{verbose:true,displayMode:'ascii'});
11
+ assert.equal(typeof out,'string');
12
+ assert.match(out,/coding_command_run/);
13
+ assert.match(out,/REDACTED/);
14
+ assert.doesNotMatch(out,/canaryNotForConsole123/);
15
+ assert.equal(formatRuntimeDiagnosticLine('bridge.stdout.log',raw,{verbose:false}),null);
16
+ });
17
+
18
+ test('R192 runtime diagnostic detail is short, single-line and status-preserving',()=>{
19
+ const out=formatRuntimeDiagnosticLine('bridge.stdout.log',compact('slow write rejected '+('x'.repeat(800))),{verbose:true,displayMode:'ascii'});
20
+ assert.match(out,/\[BRIDGE.STDOUT.DEBUG\].*coding_command_run 10ms/);
21
+ assert.ok(out.length<350,'a single runtime diagnostic cannot flood the foreground');
22
+ assert.equal(out.split(/\r?\n/).length,1);
23
+ });
24
+
25
+ test('R192 audit result redacts secrets without hiding outcome classification',()=>{
26
+ const tracker=createLiveTimelineTracker({clock:()=>1000,displayMode:'ascii'});
27
+ tracker.observe({event_type:'tool.request',request_id:'123456789012',tool:'host_exec',args:{root_id:'core',mode:'native'}});
28
+ const out=tracker.observe({event_type:'tool.result',request_id:'123456789012',tool:'host_exec',
29
+ outcome:{status:'denied',is_error:true,duration_ms:24,reason:'authorization: Bearer supersensitive123456'}});
30
+ assert.match(out,/ERR/);
31
+ assert.doesNotMatch(out,/supersensitive123456/);
32
+ assert.match(out,/REDACTED/);
33
+ });
34
+
35
+ test('R192 rotation prunes stale cursors and partial line fragments without touching current streams',()=>{
36
+ const live=new Map([['current.log',{offset:12}],['gone.log',{offset:77}]]);
37
+ const fragments=new Map([['current.log','half'],['gone.log','secret']]);
38
+ const result=pruneLiveLogReaders(live,fragments,['current.log','other.log']);
39
+ assert.deepEqual(result,{cursors_removed:1,fragments_removed:1});
40
+ assert.deepEqual([...live.keys()],['current.log']);
41
+ assert.deepEqual([...fragments], [['current.log','half']]);
42
+ });
43
+
44
+ test('R192 reject malformed discovery before mutating any reader state',()=>{
45
+ const live=new Map([['current.log',{offset:12}]]);
46
+ const fragments=new Map([['current.log','half']]);
47
+ assert.throws(()=>pruneLiveLogReaders(live,fragments,[123]),/invalid/i);
48
+ assert.equal(live.has('current.log'),true);
49
+ assert.equal(fragments.get('current.log'),'half');
50
+ });
@@ -0,0 +1,40 @@
1
+ import test from 'node:test';import assert from 'node:assert/strict';
2
+ import {readFile} from 'node:fs/promises';import {createHash} from 'node:crypto';import path from 'node:path';import {fileURLToPath} from 'node:url';
3
+ import {DEADBYTE_VERSION} from '../src/version.mjs';
4
+ const root=path.resolve(fileURLToPath(new URL('..',import.meta.url)));
5
+ const read=async name=>JSON.parse(await readFile(path.join(root,name),'utf8'));
6
+ const prevHash='1818abc327478a96d935c200e25aad8515f15edc1842845b73bd0de57606da8c';
7
+ const prevTar='20ed3b20e72b4e4226736a1e432b05b851e9fa265e9bc2966b74f266477b7e27';
8
+ test('R192 exact package, bridge, lock, metadata and runtime version are 0.15.72',async()=>{
9
+ const [pkg,bridge,lock,release,prov,matrix,bom]=await Promise.all([
10
+ read('package.json'),read('bridge/package.json'),read('docs/R184-package-lock.json'),
11
+ read('RELEASE.json'),read('PROVENANCE.json'),read('TEST-MATRIX.json'),read('SBOM.cdx.json')]);
12
+ for(const actual of [pkg.version,bridge.version,lock.version,lock.packages[''].version,
13
+ release.version,prov.version,matrix.version,bom.metadata.component.version,DEADBYTE_VERSION])
14
+ assert.equal(actual,'0.15.72');
15
+ assert.equal(release.train,'R192');assert.equal(matrix.train,'R192');
16
+ assert.equal(bom.serialNumber,'urn:cdx:deadbyte-mcp:r192:0.15.72');
17
+ assert.equal(release.parent.release_id,'v0.15.71-1818abc327478a96');
18
+ assert.equal(release.parent.manifest_sha256,prevHash);
19
+ assert.equal(release.source_predecessor.tarball_sha256,prevTar);
20
+ assert.equal(release.source_predecessor.manifest_sha256,prevHash);
21
+ assert.equal(prov.parent_tarball_sha256,prevTar);
22
+ assert.equal(prov.parent_manifest_sha256,prevHash);
23
+ assert.equal(release.r192.production_activation,'NOT_RUN');
24
+ assert.equal(release.r192.public_tool_schema_changed,false);
25
+ assert.equal(release.r192.authority_grants_changed,false);
26
+ });
27
+ test('R192 foreground reader enforces caller-safe telemetry rather than changing authority',async()=>{
28
+ const [cli,log]=await Promise.all([
29
+ readFile(path.join(root,'src','deadbyte-cli.mjs'),'utf8'),
30
+ readFile(path.join(root,'src','remote-live-log.mjs'),'utf8')]);
31
+ assert.match(cli,/pruneLiveLogReaders\(activeOffsets,partialLines,liveFiles\)/);
32
+ assert.match(log,/export function pruneLiveLogReaders/);
33
+ assert.match(log,/sanitizeAuditArgs\(compact\[6\]\)/);
34
+ const [policy,release]=await Promise.all([
35
+ read('controller/deadbyte-process-policy.json'),read('RELEASE.json')]);
36
+ const approved=release.r192.development_policy_root;
37
+ assert.equal(typeof approved,'string');
38
+ assert.ok(path.isAbsolute(approved));
39
+ assert.equal(path.resolve(policy.roots.core.path),path.resolve(approved));
40
+ });
@@ -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','0.15.59','0.15.60','0.15.61','0.15.62','0.15.63','0.15.64','0.15.65','0.15.66','0.15.67','0.15.68','0.15.69','0.15.70','0.15.71'].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','0.15.60','0.15.61','0.15.62','0.15.63','0.15.64','0.15.65','0.15.66','0.15.67','0.15.68','0.15.69','0.15.70','0.15.71','0.15.72'].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');