deadbyte-mcp 0.9.0 → 0.11.0

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.
Files changed (136) hide show
  1. package/MANIFEST.SHA256 +134 -92
  2. package/README.txt +19 -15
  3. package/bench/fixtures/corpus.json +32 -13
  4. package/bench/fixtures/r36/case-map.json +8 -0
  5. package/bin/WORKER-REGISTRY.txt +3 -3
  6. package/bin/appcontainer-stage.exe +0 -0
  7. package/bin/appcontainer-stage.obj +0 -0
  8. package/bin/bootstrap-advapi32.exe +0 -0
  9. package/bin/bootstrap-advapi32.obj +0 -0
  10. package/bin/bootstrap-exitcode.exe +0 -0
  11. package/bin/bootstrap-exitcode.obj +0 -0
  12. package/bin/bootstrap-kernel32.exe +0 -0
  13. package/bin/bootstrap-kernel32.obj +0 -0
  14. package/bin/child-control-probe.exe +0 -0
  15. package/bin/child-control-probe.obj +0 -0
  16. package/bin/child-control-stage.exe +0 -0
  17. package/bin/child-control-stage.obj +0 -0
  18. package/bin/contained-reverse-worker.exe +0 -0
  19. package/bin/contained-reverse-worker.obj +0 -0
  20. package/bin/contained-transform-worker.exe +0 -0
  21. package/bin/contained-transform-worker.obj +0 -0
  22. package/bin/containment-probe.exe +0 -0
  23. package/bin/containment-probe.obj +0 -0
  24. package/bin/deadbyte-contain.exe +0 -0
  25. package/bin/deadbyte-contain.obj +0 -0
  26. package/bin/deadbyte-exec.exe +0 -0
  27. package/bin/deadbyte-exec.obj +0 -0
  28. package/bin/deadbyte-process-host.exe +0 -0
  29. package/bin/deadbyte-process-host.obj +0 -0
  30. package/bin/deadbyte-tunnel-host.exe +0 -0
  31. package/bin/deadbyte-tunnel-host.obj +0 -0
  32. package/controller/README.TXT +8 -6
  33. package/controller/deadbyte-controller.ps1 +48 -2
  34. package/controller/deadbyte-process-policy.json +5 -5
  35. package/docs/ARCHITECTURE.md +1 -1
  36. package/docs/R36-CAPABILITY-EVIDENCE.md +43 -0
  37. package/docs/superpowers/plans/2026-09-18-r36-zero-loss-autonomy.md +739 -0
  38. package/docs/superpowers/specs/2026-09-18-r36-zero-loss-autonomy-design.md +640 -0
  39. package/package.json +1 -1
  40. package/proof/CONTAINMENT-BUILD.txt +6 -6
  41. package/scripts/deferred-slot-operation.mjs +53 -15
  42. package/scripts/final-closure-r36.mjs +113 -0
  43. package/scripts/final-closure-verify-r36.mjs +208 -0
  44. package/scripts/final-closure-verify.mjs +88 -39
  45. package/scripts/final-closure.mjs +63 -56
  46. package/scripts/gate-windows-r36.ps1 +42 -0
  47. package/scripts/gate-windows.ps1 +3 -3
  48. package/scripts/release-parity-r36.mjs +200 -0
  49. package/scripts/release-parity-tests.ps1 +9 -0
  50. package/scripts/release-parity.mjs +149 -139
  51. package/scripts/windows-gate-evidence-r36.mjs +52 -0
  52. package/scripts/windows-gate-evidence.mjs +5 -5
  53. package/src/agent-memory-plane.mjs +98 -0
  54. package/src/autonomous-context-engine.mjs +2 -1
  55. package/src/autonomous-mcp-tools.mjs +5 -1
  56. package/src/autonomous-output-contracts.mjs +9 -6
  57. package/src/autonomous-planner-contracts.mjs +36 -1
  58. package/src/autonomous-planner.mjs +25 -3
  59. package/src/autonomous-runtime.mjs +337 -43
  60. package/src/autonomous-timeout-recovery.mjs +27 -0
  61. package/src/capability-benchmark-runner.mjs +86 -1
  62. package/src/capability-benchmark.mjs +45 -0
  63. package/src/capability-ledger.mjs +158 -0
  64. package/src/coding-mcp-tools.mjs +31 -17
  65. package/src/coding-output-contracts.mjs +48 -10
  66. package/src/coding-plane.mjs +45 -9
  67. package/src/coding-search.mjs +130 -47
  68. package/src/compact-gateway-mcp-tools.mjs +128 -0
  69. package/src/compact-gateway-output-contracts.mjs +16 -0
  70. package/src/deadbyte-cli.mjs +62 -78
  71. package/src/effect-ledger.mjs +47 -0
  72. package/src/machine-fs-smoke-client.mjs +1 -1
  73. package/src/machine-fs.mjs +51 -8
  74. package/src/mcp-server.mjs +32 -9
  75. package/src/native-diff-v2.mjs +337 -0
  76. package/src/native-diff.mjs +50 -2
  77. package/src/observation-lease.mjs +32 -0
  78. package/src/observation-smoke-client.mjs +1 -1
  79. package/src/operator-surface.mjs +7 -1
  80. package/src/process-runtime.mjs +98 -11
  81. package/src/process-smoke-client.mjs +11 -3
  82. package/src/r36-compact-disarmed-probe.mjs +50 -0
  83. package/src/r36-full-surface-probe.mjs +56 -0
  84. package/src/remote-live-log.mjs +135 -0
  85. package/src/remote-mcp-autonomous-smoke-client.mjs +22 -12
  86. package/src/remote-mcp-coding-smoke-client.mjs +1 -1
  87. package/src/remote-mcp-r36-parity-client.mjs +175 -0
  88. package/src/remote-mcp-smoke-client.mjs +112 -56
  89. package/src/runtime-update.mjs +51 -1
  90. package/src/search-cursor.mjs +45 -0
  91. package/src/semantic-code.mjs +72 -5
  92. package/src/semantic-lsp-backend.mjs +39 -3
  93. package/src/version.mjs +1 -1
  94. package/src/worker-scheduler.mjs +53 -0
  95. package/test/autonomous-capability-r36.test.mjs +151 -0
  96. package/test/autonomous-output-contract.test.mjs +1 -1
  97. package/test/autonomous-runtime.test.mjs +2 -2
  98. package/test/capability-benchmark-r36.test.mjs +107 -0
  99. package/test/capability-benchmark-semantic-r36.test.mjs +52 -0
  100. package/test/capability-claims-r36.test.mjs +23 -0
  101. package/test/capability-ledger-r36.test.mjs +102 -0
  102. package/test/coding-catalog-consistency.test.mjs +2 -2
  103. package/test/coding-plane.test.mjs +2 -2
  104. package/test/coding-runtime.test.mjs +16 -0
  105. package/test/coding-search-r36.test.mjs +90 -0
  106. package/test/compact-catalog-r36.test.mjs +37 -0
  107. package/test/compact-gateway-r36.test.mjs +66 -0
  108. package/test/contained.test.mjs +1 -1
  109. package/test/core.test.mjs +1 -1
  110. package/test/deferred-slot-operation.test.mjs +9 -0
  111. package/test/fixtures/lsp-framed-server.mjs +2 -0
  112. package/test/helpers/autonomous-r34-fixture.mjs +5 -3
  113. package/test/multi-file-read.test.mjs +3 -0
  114. package/test/native-diff-topology-r36.test.mjs +105 -0
  115. package/test/package-boundary.test.mjs +6 -0
  116. package/test/process-longrun-r36.test.mjs +82 -0
  117. package/test/process-release-gate.test.mjs +9 -0
  118. package/test/production-docs.test.mjs +5 -5
  119. package/test/prompts-resources.test.mjs +7 -1
  120. package/test/r33-closeout-regression.test.mjs +4 -3
  121. package/test/r33-finalization.test.mjs +14 -9
  122. package/test/r36-finalization.test.mjs +104 -0
  123. package/test/r36-release-identity.test.mjs +45 -0
  124. package/test/r37-agent-fabric.test.mjs +92 -0
  125. package/test/r37-autonomous-timeout-recovery.test.mjs +60 -0
  126. package/test/r37-finalization.test.mjs +74 -0
  127. package/test/release-version.test.mjs +42 -33
  128. package/test/remote-live-log-r36.test.mjs +37 -0
  129. package/test/remote-live-log-r37.test.mjs +47 -0
  130. package/test/remote-live-log-recovery-r36.test.mjs +41 -0
  131. package/test/remote-r24-catalog.test.mjs +13 -0
  132. package/test/remote-session-cli.test.mjs +53 -66
  133. package/test/runtime-self-update.test.mjs +58 -1
  134. package/test/semantic-lsp-backend.test.mjs +9 -0
  135. package/test/semantic-r36-rename.test.mjs +82 -0
  136. package/deadbyte-mcp-0.8.9.tgz +0 -0
@@ -0,0 +1,8 @@
1
+ {
2
+ "schema": "deadbyte.r36-benchmark-case-map.v1",
3
+ "suite_id": "r36-production-coding-v1",
4
+ "source_spec": "docs/superpowers/specs/2026-09-18-r36-zero-loss-autonomy-design.md#r36-h-capability-benchmark-and-competitor-evidence",
5
+ "case_count": 30,
6
+ "evidence_model": "Each case is a hermetic repository test/fixture mapping. A passing process alone is insufficient when a pass_witness is declared. Production rollback/restore is separately required by Task 10.",
7
+ "competitor_evidence_classes": ["documented", "direct_observation"]
8
+ }
@@ -2,11 +2,11 @@ schema=deadbyte.worker-registry.v1
2
2
  version=0.6.0
3
3
  policy=compile-time-operation-to-executable
4
4
  launcher.executable=deadbyte-exec.exe
5
- launcher.sha256=1fe14b8f312f33f9cc90cb3ad1b3e7657e93235465bda62307ed837bdcee985b
5
+ launcher.sha256=a84168020dee3bb5d63d97b1076523232872bf142859c07bfcb77a45428a1ce5
6
6
  operation.lowercase_ascii=contained-transform-v1
7
7
  operation.reverse_bytes=contained-reverse-v1
8
8
  operation.uppercase_ascii=contained-transform-v1
9
9
  worker.contained-reverse-v1.executable=contained-reverse-worker.exe
10
- worker.contained-reverse-v1.sha256=e4989357ba06f24e049845290ba01c35c442dcebe2b048bfea52a04fc6b96f19
10
+ worker.contained-reverse-v1.sha256=9f3754c3c6fe71d6fe0e04889e33b39cdc64b633e0b713d5979faec748dec69d
11
11
  worker.contained-transform-v1.executable=contained-transform-worker.exe
12
- worker.contained-transform-v1.sha256=158c34b6c9e6d8476a31cdb34f354ace5a3c1071f2af54607e701baecc674405
12
+ worker.contained-transform-v1.sha256=01528ffe61736cdb5010396f4b1c52203c7e1848b3aeb4181a0c04a508e1da30
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- DEADBYTE MCP V0.9.0 / R35 CONTROLLER
1
+ DEADBYTE MCP V0.11.0 / R37 CONTROLLER
2
2
  ====================================
3
3
 
4
4
  ENTRY POINT
@@ -8,10 +8,12 @@ Primary operator entry point:
8
8
  npx deadbyte-mcp@latest remote
9
9
 
10
10
  Bare `remote` is a foreground device session. It starts the verified runtime, arms process,
11
- coding, autonomous, and host authority, verifies all four planes are ARMED, then prints compact
12
- human tool results only. It never dumps SHA text, request IDs, payload JSON, or duplicate Bridge
13
- stdout by default; use `remote --verbose` for the detailed audit/runtime stream. Ctrl+C/SIGTERM or
14
- foreground input closure revokes all four planes and parks
11
+ coding, and autonomous authority, verifies those three planes are ARMED, and requires Host to stay
12
+ DISARMED. The production Bridge uses the R37 compact capability profile (<=42 tools) while local
13
+ stdio MCP keeps the exact full 76-tool profile. The compact console shows request-before-result
14
+ Live Activity without raw SHA text, request IDs, payload JSON, or duplicate Bridge stdout by
15
+ default; use `remote --verbose` for the detailed audit/runtime stream. Ctrl+C/SIGTERM or foreground
16
+ input closure revokes process/coding/autonomous authority, applies fail-safe Host disarm, and parks
15
17
  the Bridge. A detached nonce-bound guardian performs the same fixed revoke+park cleanup if the
16
18
  foreground owner is hard-killed. The v2 session marker records owner PID, guardian PID, and random
17
19
  256-bit nonce so a guardian cannot remove a replacement session marker; a later start recovers only
@@ -94,7 +96,7 @@ policy digests and profile hashes to the explicit mutable development root; the
94
96
  armautonomous require coding authority, then enable a standing autonomous grant
95
97
  disarmautonomous revoke autonomous authority immediately
96
98
  autonomousstatus report configured/standing-grant/coding-disarmed state
97
- autonomoustest run the 73-tool public catalog sampling MRTR production gate
99
+ autonomoustest run the R37 compact public capability-closure MRTR production gate
98
100
 
99
101
  disarmcoding also revokes autonomous authority. No MCP tool creates or widens either
100
102
  grant. With an openai_compatible planner the MCP server starts a background supervisor;
@@ -19,6 +19,33 @@ function Fail([string]$Message) { throw "DEADBYTE controller: $Message" }
19
19
  function Ensure-Directory([string]$Path) { if (-not (Test-Path -LiteralPath $Path -PathType Container)) { New-Item -ItemType Directory -Path $Path -Force | Out-Null } }
20
20
  function Ledger-Path([string]$Name) { Join-Path $RuntimeDir ("{0}.instance.json" -f $Name.ToLowerInvariant()) }
21
21
  function Log-Path([string]$Name, [string]$Kind) { Join-Path $LogDir ("{0}.{1}.log" -f $Name.ToLowerInvariant(), $Kind) }
22
+ function Controller-StartFailurePath { Join-Path $RuntimeDir 'controller-start-failure.json' }
23
+ function Read-LogTailBounded([string]$Path, [int]$MaxChars = 8192) {
24
+ if (-not (Test-Path -LiteralPath $Path -PathType Leaf)) { return '' }
25
+ try {
26
+ $text = (@(Get-Content -LiteralPath $Path -Encoding UTF8 -Tail 80 -ErrorAction Stop) -join [Environment]::NewLine)
27
+ if ($text.Length -gt $MaxChars) { return $text.Substring($text.Length - $MaxChars) }
28
+ return $text
29
+ } catch { return '' }
30
+ }
31
+ function Write-ControllerStartFailure([string]$Name, [System.Exception]$Exception) {
32
+ Ensure-Directory $RuntimeDir; Ensure-Directory $LogDir
33
+ $body = [ordered]@{
34
+ schema = 'deadbyte.controller-start-failure.v1'
35
+ command = $Name
36
+ failed_at_utc = [DateTime]::UtcNow.ToString('o')
37
+ message = [string]$Exception.Message
38
+ bridge_stdout_tail = Read-LogTailBounded (Log-Path 'Bridge' 'stdout')
39
+ bridge_stderr_tail = Read-LogTailBounded (Log-Path 'Bridge' 'stderr')
40
+ cloud_stdout_tail = Read-LogTailBounded (Log-Path 'Cloud' 'stdout')
41
+ cloud_stderr_tail = Read-LogTailBounded (Log-Path 'Cloud' 'stderr')
42
+ }
43
+ $path = Controller-StartFailurePath
44
+ $tmp = $path + '.tmp'
45
+ $json = $body | ConvertTo-Json -Depth 4
46
+ [System.IO.File]::WriteAllText($tmp, $json, (New-Object System.Text.UTF8Encoding($false)))
47
+ Move-Item -LiteralPath $tmp -Destination $path -Force
48
+ }
22
49
 
23
50
 
24
51
  function Read-TextFileSafe([string]$Path) {
@@ -409,8 +436,11 @@ function Start-OwnedComponent([string]$Name, $Spec, $Cfg = $null) {
409
436
  $previousSupervisorMarkerEnv = $env:DEADBYTE_SUPERVISOR_MARKER
410
437
  $hadAutonomousSupervisorModeEnv = Test-Path Env:DEADBYTE_AUTONOMOUS_SUPERVISOR_MODE
411
438
  $previousAutonomousSupervisorModeEnv = $env:DEADBYTE_AUTONOMOUS_SUPERVISOR_MODE
439
+ $hadCapabilityProfileEnv = Test-Path Env:DEADBYTE_CAPABILITY_PROFILE
440
+ $previousCapabilityProfileEnv = $env:DEADBYTE_CAPABILITY_PROFILE
412
441
  try {
413
442
  if ($Name -eq 'Bridge' -and $Cfg) {
443
+ $env:DEADBYTE_CAPABILITY_PROFILE = 'compact'
414
444
  $env:DEADBYTE_AUDIT_RUNTIME = '1'
415
445
  $env:DEADBYTE_CORE_ROOT = [string]$Cfg.CoreRoot
416
446
  $env:DEADBYTE_WORKSPACE_ROOT = [string]$Cfg.WorkspaceRoot
@@ -442,6 +472,7 @@ function Start-OwnedComponent([string]$Name, $Spec, $Cfg = $null) {
442
472
  $env:DEADBYTE_PRIVILEGED_POLICY = [string]$Cfg.HostPolicyFile
443
473
  }
444
474
  } elseif ($Name -eq 'Supervisor' -and $Cfg) {
475
+ Remove-Item Env:DEADBYTE_CAPABILITY_PROFILE -ErrorAction SilentlyContinue
445
476
  Remove-Item Env:DEADBYTE_AUDIT_RUNTIME -ErrorAction SilentlyContinue
446
477
  Remove-Item Env:DEADBYTE_PRIVILEGED_POLICY -ErrorAction SilentlyContinue
447
478
  Remove-Item Env:DEADBYTE_MACHINE_RUNTIME -ErrorAction SilentlyContinue
@@ -460,6 +491,7 @@ function Start-OwnedComponent([string]$Name, $Spec, $Cfg = $null) {
460
491
  $env:DEADBYTE_SUPERVISOR_ONCE = '0'
461
492
  $env:DEADBYTE_SUPERVISOR_MARKER = Join-Path $RuntimeDir 'autonomous-supervisor-owner.json'
462
493
  } else {
494
+ Remove-Item Env:DEADBYTE_CAPABILITY_PROFILE -ErrorAction SilentlyContinue
463
495
  Remove-Item Env:DEADBYTE_AUDIT_RUNTIME -ErrorAction SilentlyContinue
464
496
  }
465
497
  $proc = Start-Process @start
@@ -502,6 +534,8 @@ function Start-OwnedComponent([string]$Name, $Spec, $Cfg = $null) {
502
534
  else { Remove-Item Env:DEADBYTE_SUPERVISOR_MARKER -ErrorAction SilentlyContinue }
503
535
  if ($hadAutonomousSupervisorModeEnv) { $env:DEADBYTE_AUTONOMOUS_SUPERVISOR_MODE = $previousAutonomousSupervisorModeEnv }
504
536
  else { Remove-Item Env:DEADBYTE_AUTONOMOUS_SUPERVISOR_MODE -ErrorAction SilentlyContinue }
537
+ if ($hadCapabilityProfileEnv) { $env:DEADBYTE_CAPABILITY_PROFILE = $previousCapabilityProfileEnv }
538
+ else { Remove-Item Env:DEADBYTE_CAPABILITY_PROFILE -ErrorAction SilentlyContinue }
505
539
  }
506
540
  Start-Sleep -Milliseconds 150
507
541
  $obs = Get-ProcessObservation ([int]$proc.Id)
@@ -1145,13 +1179,25 @@ function Run-Command([string]$Name) {
1145
1179
  }
1146
1180
  }
1147
1181
 
1148
- if ($Command -ne 'menu') { Run-Command $Command; exit 0 }
1182
+ if ($Command -ne 'menu') {
1183
+ $recordsStartFailure = $Command -in @('start','resume','restart')
1184
+ if ($recordsStartFailure) { Remove-Item -LiteralPath (Controller-StartFailurePath) -Force -ErrorAction SilentlyContinue }
1185
+ try {
1186
+ Run-Command $Command
1187
+ exit 0
1188
+ } catch {
1189
+ if ($recordsStartFailure) {
1190
+ try { Write-ControllerStartFailure $Command $_.Exception } catch {}
1191
+ }
1192
+ throw
1193
+ }
1194
+ }
1149
1195
 
1150
1196
  while ($true) {
1151
1197
  Clear-Host
1152
1198
  $cfg = Get-Config
1153
1199
  Assert-ControllerRootBound $cfg
1154
- Write-Host 'DEADBYTE MCP ON-DEMAND CONTROLLER V0.9.0 / R35'
1200
+ Write-Host 'DEADBYTE MCP ON-DEMAND CONTROLLER V0.11.0 / R37'
1155
1201
  Write-Host '======================================'
1156
1202
  Show-State $cfg | Out-Null
1157
1203
  Write-Host ''
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "schema": "deadbyte.process-policy.v1",
3
3
  "enabled": true,
4
- "grant_file": "D:\\Projects\\deadbyte-mcp-r35-release-v0.9.0-r2\\controller\\runtime\\process-grant.json",
5
- "state_dir": "D:\\Projects\\deadbyte-mcp-r35-release-v0.9.0-r2\\controller\\runtime\\process-state",
4
+ "grant_file": "D:\\Projects\\deadbyte-mcp-r36-dev\\controller\\runtime\\process-grant.json",
5
+ "state_dir": "D:\\Projects\\deadbyte-mcp-r36-dev\\controller\\runtime\\process-state",
6
6
  "native_host": {
7
- "path": "D:\\Projects\\deadbyte-mcp-r35-release-v0.9.0-r2\\bin\\deadbyte-process-host.exe",
8
- "sha256": "9fa67a2aa66a40b67828dd537ca24b1feb118d386955b81b2df2e1bf5b7b57d7"
7
+ "path": "D:\\Projects\\deadbyte-mcp-r36-dev\\bin\\deadbyte-process-host.exe",
8
+ "sha256": "8c79f30e834daf2f0a916928bc719abf27ba111f446056bf2993c84d0432747a"
9
9
  },
10
10
  "roots": {
11
11
  "core": {
12
- "path": "D:\\Projects\\deadbyte-mcp-r35-release-v0.9.0-r2",
12
+ "path": "D:\\Projects\\deadbyte-mcp-r36-dev",
13
13
  "deny_paths": [
14
14
  "node_modules",
15
15
  "controller/runtime",
@@ -1,4 +1,4 @@
1
- # DEADBYTE MCP V0.9.0 / R35 ARCHITECTURE
1
+ # DEADBYTE MCP V0.11.0 / R37 ARCHITECTURE
2
2
 
3
3
  ```mermaid
4
4
  flowchart TD
@@ -0,0 +1,43 @@
1
+ # R36 Capability Evidence
2
+
3
+ Status: development evidence for R36 / planned package version 0.10.0. This document is not a release or Final claim. Release authority remains the R36 freeze, Windows gate, activation/rollback/restore, independent final closure, and npm byte-identity gates.
4
+
5
+ ## Reproducible DEADBYTE observation
6
+
7
+ The approved R36 production-coding corpus contains 30 required cases. The latest hermetic run completed with:
8
+
9
+ - cases: 30
10
+ - correct: 30
11
+ - capability_reachable: 30
12
+ - evidence_verified: 30
13
+ - stable verdict identity SHA-256: `3a1d668fcc0c3c38362d0c642c5247357ed7ec6063d89b544c7a1c090521c66e`
14
+ - fixture identity SHA-256: `4a12567e285a4b7b59d9285e08f918357e7b560d2cb9b65f017367188839ef7e`
15
+ - two consecutive passing observation SHA-256 values: `710d0f3ef7bbe1fa3a6b782ba6442a8161d0d5556622e3ca95f2f3baf97cbae3` and `44b52d9507dc04baeeebb5617c63d7d59dbe9b29878fc9420bc5bac3ff7fee0b` (timing-sensitive by design)
16
+
17
+ The corpus covers repository exploration, literal/regex/path search, deterministic paging, bounded multi-read, stat/reparse handling, stale-edit rejection, Native Diff file and topology transactions, semantic navigation/diagnostics/implementations/rename, process lifecycle/actions/recovery, autonomous repair, release-gate refusal, provider interruption recovery, remote replay/deduplication, compact capability closure, Live Logs ordering/redaction, receipt rejection, and hermetic rollback/restore mechanism proof.
18
+
19
+ The benchmark runner requires both test success and a named pass witness. A zero exit caused only by a skipped or unmatched test is not accepted as evidence. Correctness, reachability, and evidence verification are recorded as separate dimensions rather than collapsed into a marketing score.
20
+
21
+ ## External reference baseline
22
+
23
+ The comparison references are public upstream projects:
24
+
25
+ - Desktop Commander local MCP: https://github.com/wonderwhy-er/DesktopCommanderMCP
26
+ - Remote Desktop Commander: https://github.com/desktop-commander/remote-desktop-commander
27
+ - Serena: https://github.com/oraios/serena
28
+
29
+ `documented` means a capability is described by the upstream public project documentation/source used as a behavioral reference. `direct_observation` means we executed the referenced implementation or service ourselves and retained reproducible local evidence. These evidence classes are not interchangeable.
30
+
31
+ For this R36 development checkpoint, the DEADBYTE 30-case result above is `direct_observation`. Competitor capability descriptions used for design comparison are `documented` unless an explicit retained direct run is attached to a later release evidence record. Unavailable service state, quota, account requirements, or missing local authority must never be converted into a passing direct observation.
32
+
33
+ ## Comparison discipline
34
+
35
+ R36 is evaluated for production software-engineering autonomy, not unrelated document-editing or generic desktop-administration breadth. Tool count is not a quality metric and is not used as a release verdict.
36
+
37
+ The mechanisms tested directly in DEADBYTE include SHA-256 mutation preconditions, Native Diff rollback and independent verification, separately revocable process/coding/autonomous/host authority, typed capability routing, signed journals/receipts, bounded long-process observation, semantic rename through Native Diff, capability-aware autonomous execution, resumable Live Logs, compact-surface closure, and immutable release rollback/restore machinery.
38
+
39
+ Desktop Commander, Remote Desktop Commander, and Serena remain useful comparison references for different strengths and breadth. Any public comparison made from R36 must name the supporting DEADBYTE benchmark case/evidence identity and identify the competitor side as `documented` or `direct_observation`. A difference in mechanism is not by itself a general product ranking.
40
+
41
+ ## Release boundary
42
+
43
+ Case 30 is a hermetic rollback/restore mechanism test. It does not replace the production release proof. Before R36 can become Final, one exact frozen 0.10.0 candidate must still pass the full source regression and Windows gate, activate as an immutable slot, roll back to the exact sealed R35 predecessor, restore the exact same R36 candidate, pass independent final-closure verification, and then be packed and published from that verified candidate with registry tarball byte identity proved.