deadbyte-mcp 0.15.54 → 0.15.55

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