deadbyte-mcp 0.15.61 → 0.15.63

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 (83) hide show
  1. package/MANIFEST.SHA256 +81 -32
  2. package/PROVENANCE.json +38 -11
  3. package/README.txt +18 -18
  4. package/RELEASE.json +59 -15
  5. package/SBOM.cdx.json +2 -2
  6. package/TEST-MATRIX.json +31 -2
  7. package/bridge/package.json +1 -1
  8. package/controller/deadbyte-controller.ps1 +78 -1
  9. package/controller/deadbyte-process-policy.json +4 -4
  10. package/docs/R156-LOOP-AND-EPOCH-ROUTING.md +86 -0
  11. package/docs/R157-ARCHITECTURE-DEPENDENCIES.md +58 -0
  12. package/docs/R157-ARCHITECTURE-GRAPH.json +2874 -0
  13. package/docs/R157-ENGINEERING-HANDOFF.md +71 -0
  14. package/docs/R157-FILE-DELTA.json +80 -0
  15. package/docs/R157-FOCUSED-VERIFICATION.log +0 -0
  16. package/docs/R157-REFERENCE-CAPABILITY-MATRIX.md +207 -0
  17. package/docs/R157-REFERENCE-DECISIONS.md +46 -0
  18. package/docs/R157-REFERENCE-INVENTORY.json +2849 -0
  19. package/docs/R158-COMBINED-REGRESSION.log +0 -0
  20. package/docs/R158-DELTA.json +80 -0
  21. package/docs/R158-EPOCH-BOOTSTRAP-GREEN.log +0 -0
  22. package/docs/R158-EPOCH-BOOTSTRAP-RED.log +0 -0
  23. package/docs/R158-EPOCH-IDENTITY-RED.log +0 -0
  24. package/docs/R158-FOCUSED-GREEN.log +0 -0
  25. package/docs/R158-PROTECTED-EPOCH-VERIFIED.md +43 -0
  26. package/docs/R158-PROTECTED-EXACT-SOURCE-LIVE.log +0 -0
  27. package/docs/R158-UPDATER-REGRESSION.log +0 -0
  28. package/docs/R159-COMPLETED-HISTORY-BACKUP/deadbyte-cli.mjs.before +965 -0
  29. package/docs/R159-COMPLETED-HISTORY-BACKUP/legacy-marker-evidence-r159.mjs.before +102 -0
  30. package/docs/R159-COMPLETED-HISTORY-BACKUP/r159-legacy-marker-evidence.test.mjs.before +79 -0
  31. package/docs/R159-COMPLETED-HISTORY-PATCH.json +26 -0
  32. package/docs/R159-MARKER-LOCATOR-CHECKPOINT.md +46 -0
  33. package/docs/R160-ENGINEERING-HANDOFF.md +32 -0
  34. package/docs/R160-REFERENCE-CAPABILITY-MATRIX.json +165 -0
  35. package/package.json +2 -2
  36. package/scripts/gate-windows-r160.ps1 +57 -0
  37. package/scripts/npm-release-r48.mjs +10 -0
  38. package/scripts/npm-release-readiness-r163.mjs +67 -0
  39. package/scripts/npm-release-readiness-r165.mjs +68 -0
  40. package/src/autonomous-supervisor.mjs +21 -4
  41. package/src/deadbyte-cli.mjs +90 -50
  42. package/src/legacy-marker-evidence-r159.mjs +128 -0
  43. package/src/package-identity-r160.mjs +61 -0
  44. package/src/release-generation.mjs +13 -0
  45. package/src/release-slot.mjs +2 -1
  46. package/src/remote-live-log.mjs +30 -2
  47. package/src/runtime-update.mjs +18 -6
  48. package/src/trusted-epoch-bootstrap-r158.mjs +42 -0
  49. package/src/version.mjs +1 -1
  50. package/src/windows-powershell-environment.mjs +5 -2
  51. package/test/r106-trusted-powershell-spawn.test.mjs +1 -0
  52. package/test/r130-release-security-contract.test.mjs +9 -9
  53. package/test/r132-release-identity.test.mjs +12 -10
  54. package/test/r153-prepublish-identity.test.mjs +25 -4
  55. package/test/r153-staging-leaf-acl.test.mjs +5 -2
  56. package/test/r155-commander-live-log.test.mjs +44 -0
  57. package/test/r155-default-live-log.test.mjs +89 -0
  58. package/test/r156-epoch-route-smoke.ps1 +48 -0
  59. package/test/r156-supervisor-pacing.test.mjs +59 -0
  60. package/test/r157-architecture-map.mjs +61 -0
  61. package/test/r157-reference-survey.mjs +91 -0
  62. package/test/r157-supervisor-singleflight.test.mjs +32 -0
  63. package/test/r158-epoch-bootstrap.test.mjs +34 -0
  64. package/test/r159-legacy-marker-evidence.test.mjs +103 -0
  65. package/test/r159-legacy-marker-evidence.test.mjs.before-assertion-fix-20261025-120246.bak +100 -0
  66. package/test/r160-marker-proof.test.mjs +87 -0
  67. package/test/r160-package-decision-manifest.test.mjs +67 -0
  68. package/test/r160-release-contract.test.mjs +30 -0
  69. package/test/r160-stable-launcher.test.mjs +10 -0
  70. package/test/r163-isolated-slot-rollback-restore.test.mjs +58 -0
  71. package/test/r163-publish-fence.test.mjs +13 -0
  72. package/test/r164-remote-history-skew.test.mjs +13 -0
  73. package/test/r165-live-cli-skew.test.mjs +90 -0
  74. package/test/r165-publish-fence.test.mjs +13 -0
  75. package/test/r48-release-contract.test.mjs +7 -1
  76. package/test/r58-launcher-shell.test.mjs +4 -1
  77. package/test/r59-tool-surface-compat.test.mjs +1 -1
  78. package/test/r65-cli-invocation.test.mjs +27 -7
  79. package/test/release-generation.test.mjs +16 -0
  80. package/test/remote-live-log-r37.test.mjs +5 -3
  81. package/test/remote-session-cli.test.mjs +11 -11
  82. package/test/stabilization-state-root.test.mjs +2 -1
  83. package/node_modules/which/CHANGELOG.md +0 -166
package/TEST-MATRIX.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema": "deadbyte.test-matrix.v1",
3
- "version": "0.15.61",
4
- "train": "R154",
3
+ "version": "0.15.63",
4
+ "train": "R165",
5
5
  "primary_platform": "win32-x64",
6
6
  "reference": {
7
7
  "package": "@wonderwhy-er/desktop-commander",
@@ -10,6 +10,21 @@
10
10
  "schemas_sha256": "f342345e34e48769dabaefe1b932f09d41e2e207b422f7794a15ee50ffa8f140"
11
11
  },
12
12
  "required": [
13
+ {
14
+ "id": "r160-receipt-startup-identity",
15
+ "command": "node --test test/r153-marker-reconcile-receipt.test.mjs test/r159-legacy-marker-evidence.test.mjs test/r160-marker-proof.test.mjs test/r160-package-decision-manifest.test.mjs",
16
+ "expected": "Located receipts require R153 proof binding and exact startup decision bytes before foreground claim"
17
+ },
18
+ {
19
+ "id": "r160-protected-r89",
20
+ "command": "Run R158 live preflight with distinct protected epoch root and writable exact release view",
21
+ "expected": "Protected exact source accepted; untrusted source remains denied"
22
+ },
23
+ {
24
+ "id": "r160-protected-full",
25
+ "command": "node --test --test-concurrency=4 test/*.test.mjs from exact protected final candidate",
26
+ "expected": "Zero failures; every skip classified"
27
+ },
13
28
  {
14
29
  "id": "r146-scoped-policy-generation",
15
30
  "command": "node --test test/r146-generation-scope-narrowing.test.mjs test/r146-legacy-offline-policy-proof.test.mjs test/r65-activation-orchestration.test.mjs",
@@ -557,5 +572,19 @@
557
572
  "rollback": "PENDING",
558
573
  "windows_gate": "PENDING",
559
574
  "publisher": "BLOCKED_UNTIL_RELEASE_VERIFIED"
575
+ },
576
+ "r163": {
577
+ "windows_final": "PENDING_NEW_PROTECTED_FIXTURE",
578
+ "isolated_rollback_restore": "PENDING_CURRENT_VERSION_TEST",
579
+ "npm_verify_only": "PENDING_FINAL_BYTES",
580
+ "classified_skips": "R162_43_HISTORICAL_3_POSIX_3_R35_OPTIONAL",
581
+ "publish_guard": "REQUIRES_EXTERNAL_EVIDENCE"
582
+ },
583
+ "r165": {
584
+ "real_cli_version_skew": "4_PASS_0_FAIL_WITH_CONTROLLED_PREDEPLOY_STOP",
585
+ "full_protected_regression": "PENDING",
586
+ "isolated_activation_rollback_restore": "PENDING",
587
+ "npm_artifact_verify_only": "PENDING",
588
+ "publish_readiness": "PENDING"
560
589
  }
561
590
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deadbyte-chatgpt-bridge",
3
- "version": "0.15.61",
3
+ "version": "0.15.63",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "engines": {
@@ -952,8 +952,85 @@ function Get-AuthorityEpochStatus($Cfg, [string]$Plane, [string]$GrantFile, [str
952
952
  }
953
953
  }
954
954
 
955
+ function Assert-ProtectedEpochSourceAcl([string[]]$Files) {
956
+ # Check the OS path and its ancestors BEFORE executing any JS from it.
957
+ # The native R89 loader still performs its more complete independent check.
958
+ $trustedSids = @('S-1-5-18','S-1-5-32-544','S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464')
959
+ $visited = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase)
960
+ $commonMutation = [long]0x000d0150
961
+ $genericMutation = [long]0x52000000
962
+ foreach ($file in $Files) {
963
+ $node = [System.IO.Path]::GetFullPath($file)
964
+ while ($true) {
965
+ if ($visited.Add($node)) {
966
+ $item = Get-Item -LiteralPath $node -Force -ErrorAction Stop
967
+ if ([bool]($item.Attributes -band [System.IO.FileAttributes]::ReparsePoint)) {
968
+ Fail "authority epoch protected path reparse denied: $node"
969
+ }
970
+ $acl = Get-Acl -LiteralPath $node -ErrorAction Stop
971
+ $owner = $acl.GetOwner([System.Security.Principal.SecurityIdentifier]).Value
972
+ if ($owner -cnotin $trustedSids) { Fail "authority epoch protected path owner denied: $node" }
973
+ $mutation = $commonMutation -bor $genericMutation
974
+ if (-not $item.PSIsContainer) { $mutation = $mutation -bor 6 }
975
+ foreach ($rule in $acl.GetAccessRules($true,$true,[System.Security.Principal.SecurityIdentifier])) {
976
+ $mask = [long]$rule.FileSystemRights -band [long]4294967295
977
+ if ($rule.AccessControlType -eq [System.Security.AccessControl.AccessControlType]::Allow -and
978
+ $rule.IdentityReference.Value -cnotin $trustedSids -and
979
+ -not ($rule.PropagationFlags -band [System.Security.AccessControl.PropagationFlags]::InheritOnly) -and
980
+ (($mask -band $mutation) -ne 0)) {
981
+ Fail "authority epoch protected path writable by an untrusted principal: $node"
982
+ }
983
+ }
984
+ }
985
+ $parent = [System.IO.Directory]::GetParent($node)
986
+ if ($null -eq $parent) { break }
987
+ $node = $parent.FullName
988
+ }
989
+ }
990
+ }
991
+
955
992
  function Invoke-AuthorityEpochCommand($Cfg, [string]$Plane, [string]$Action, [string]$GrantFile, [string]$UpdateId = '', [string]$ExpectedHead = '') {
956
- $cli = Join-Path ([string]$Cfg.CoreRoot) 'src\authority-epoch-cli-r65.mjs'
993
+ # R156: a privileged native Epoch Lock must execute from an OS-protected
994
+ # package, not from the writable npm release in the user's profile.
995
+ # This root is supplied by the pinned generation config, never by a CLI
996
+ # argument, caller environment, or a fallback search under Program Files.
997
+ $epochRoot = [string]$Cfg.CoreRoot
998
+ if ($Cfg.ContainsKey('AuthorityEpochRoot') -and -not [string]::IsNullOrWhiteSpace([string]$Cfg.AuthorityEpochRoot)) {
999
+ $epochRoot = [System.IO.Path]::GetFullPath([string]$Cfg.AuthorityEpochRoot)
1000
+ $release = [System.IO.Path]::GetFullPath([string]$Cfg.CoreRoot)
1001
+ # Fail closed if the protected source does not match this exact release.
1002
+ $releaseManifest = Join-Path $release 'MANIFEST.SHA256'
1003
+ $epochManifest = Join-Path $epochRoot 'MANIFEST.SHA256'
1004
+ if (-not (Test-Path -LiteralPath $releaseManifest -PathType Leaf) -or -not (Test-Path -LiteralPath $epochManifest -PathType Leaf) -or
1005
+ (Get-ExecutableHash $releaseManifest) -cne (Get-ExecutableHash $epochManifest)) {
1006
+ Fail 'authority epoch trusted root release manifest mismatch'
1007
+ }
1008
+ $critical = @(
1009
+ 'src\authority-epoch-cli-r65.mjs',
1010
+ 'src\authority-continuity-r65.mjs',
1011
+ 'src\privileged-install-trust-r89.mjs',
1012
+ 'src\epoch-lock-r85.mjs',
1013
+ 'src\canonical-json.mjs',
1014
+ 'src\text-policy.mjs',
1015
+ 'src\foreground-marker-cas-win32.mjs',
1016
+ 'src\foreground-process-identity.mjs',
1017
+ 'src\windows-powershell-environment.mjs',
1018
+ 'bin\deadbyte-epoch-lock-r85.node',
1019
+ 'docs\R85-EPOCH-LOCK-BINARY.json',
1020
+ 'native\deadbyte-epoch-lock-r85.cpp'
1021
+ )
1022
+ foreach ($relative in $critical) {
1023
+ $source = Join-Path $release $relative
1024
+ $protected = Join-Path $epochRoot $relative
1025
+ if (-not (Test-Path -LiteralPath $source -PathType Leaf) -or
1026
+ -not (Test-Path -LiteralPath $protected -PathType Leaf) -or
1027
+ (Get-ExecutableHash $source) -cne (Get-ExecutableHash $protected)) {
1028
+ Fail "authority epoch trusted root source mismatch: $relative"
1029
+ }
1030
+ }
1031
+ Assert-ProtectedEpochSourceAcl -Files @($critical | ForEach-Object { Join-Path $epochRoot $_ })
1032
+ }
1033
+ $cli = Join-Path $epochRoot 'src\authority-epoch-cli-r65.mjs'
957
1034
  if (-not (Test-Path -LiteralPath $cli -PathType Leaf)) { Fail "authority epoch CLI missing: $cli" }
958
1035
  $node = [string]$Cfg.Bridge.FilePath
959
1036
  if ([string]::IsNullOrWhiteSpace($node) -or -not (Test-Path -LiteralPath $node -PathType Leaf)) { Fail 'authority epoch Node executable unavailable' }
@@ -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-r146-scoped-policy-dev\\controller\\runtime\\process-grant.json",
5
- "state_dir": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-r146-scoped-policy-dev\\controller\\runtime\\process-state",
4
+ "grant_file": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.62-r160-marker-proof\\controller\\runtime\\process-grant.json",
5
+ "state_dir": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.62-r160-marker-proof\\controller\\runtime\\process-state",
6
6
  "native_host": {
7
- "path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-r146-scoped-policy-dev\\bin\\deadbyte-process-host.exe",
7
+ "path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.62-r160-marker-proof\\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-r146-scoped-policy-dev",
12
+ "path": "D:\\Projects\\deadbyte-mcp\\development\\deadbyte-mcp-0.15.62-r160-marker-proof",
13
13
  "deny_paths": [
14
14
  "node_modules",
15
15
  "controller/runtime",
@@ -0,0 +1,86 @@
1
+ # R156 — loop pacing and privileged Epoch routing
2
+
3
+ Status: DEVELOPMENT / TESTED FOCUSED / NOT PUBLISHED. Predecessor is the
4
+ R155 isolated candidate. The live 0.15.61 release, configured grants,
5
+ foreground session, R89 ACL rules, R70 owner admission, registry, and
6
+ production pointers are intentionally unchanged.
7
+
8
+ ## What was wrong
9
+
10
+ 1. The outer autonomous supervisor counted backoff-blocked goals as
11
+ runnable. Its 25 ms hot-scan path could therefore run when no provider
12
+ dispatch was eligible, wasting cycles on status scans and filesystem work.
13
+ 2. The supervisor host provisions a trusted `codex_app_server` planner, and
14
+ the R24 runtime supports it, but the scheduler excluded the backend from
15
+ its provider-backed dispatch list. A running supervisor was not proof a
16
+ Codex goal would actually advance.
17
+ 3. The normal npm release is installed under the owner's writable
18
+ `.deadbyte-mcp\releases` directory. Its controller launches
19
+ `authority-epoch-cli-r65.mjs` from that path. R89 correctly refuses
20
+ loading the native epoch lock with `UNTRUSTED_WRITE_ACE`. It is *not*
21
+ appropriate to weaken R89 or chmod the user release.
22
+
23
+ ## Change: same engine, better outer loop
24
+
25
+ - Count only dispatched goals as runnable. A backoff-blocked goal now
26
+ permits the idle interval instead of triggering the 25 ms hot path.
27
+ - Include `codex_app_server` among the supervisor's provider-backed
28
+ planners. Leave `client_sampling` excluded: it requires a live model
29
+ through a client and must never be mistaken for unattended planning.
30
+ - Keep standing authority, task policy, Native Diff, approvals,
31
+ cancellation, journal replay and per-goal stop conditions unchanged.
32
+ - Add four isolated behavioral tests for provider backoff, Codex dispatch,
33
+ client sampling and paused owner-approval goals.
34
+
35
+ ## Change: R89 exact protected root selection
36
+
37
+ The controller accepts an *optional generation-config-only*
38
+ `AuthorityEpochRoot`. When set, before invoking the epoch CLI it checks:
39
+ - `MANIFEST.SHA256` matches the active release
40
+ - exact SHA-256 equivalence for the Epoch CLI and its 11 supporting native/
41
+ JS trust files
42
+ - Windows R89 OS ACL verification still executes inside the selected native
43
+ Epoch Lock, denying untrusted write access to any checked ancestor
44
+
45
+ There is no CLI/env override and no automatic selection of an unverified
46
+ Program Files directory. The generation renderer preserves an existing
47
+ `AuthorityEpochRoot` only when supplied by the trusted deployment process.
48
+ If missing, the old fail-closed path remains and npm arm commands still
49
+ cannot work from a writable package alone.
50
+
51
+ **Important:** shipping the R156 source is not sufficient to fix new
52
+ installations. The release/activation workflow must provision an exact
53
+ manifest-matched, OS-owned native installation via owner-authorized Windows
54
+ privilege escalation, bind that absolute path to the generation config,
55
+ and verify the byte identity and ACL before issuing any grant.
56
+ R70 independent Autonomous owner enrollment is still required.
57
+
58
+ ## Observed evidence
59
+
60
+ - R156 supervisor pacing TDD: first 1 RED / 1 PASS, then 2/2 PASS
61
+ - R156 Codex dispatch TDD: first 1 RED / 3 PASS, then 4/4 PASS
62
+ - R156 autonomous focused suite: 32 PASS / 0 FAIL
63
+ - R156 generation and native ACL guard suite: 16 PASS / 0 FAIL
64
+ - R156 PowerShell verifier:
65
+ - identical trusted stage accepted before a deliberately invalid plane
66
+ - unrelated root rejected with manifest mismatch
67
+ - protected Epoch module source SHA-256 equality PASS
68
+ - NO lease issued / process started / grant altered
69
+ - Two earlier Windows native integration tests remain RED when executed
70
+ directly under the user-writable development tree. This is expected
71
+ under R89 and is **not** counted as release readiness.
72
+
73
+ ## Release gate
74
+
75
+ Must still be proven for the exact repackaged 0.15.62 candidate:
76
+ 1. UAC-owned protected Epoch installation, exact artifact/manifest and
77
+ recovery proof, and generation-config path binding
78
+ 2. protected Windows full regression (not user-writable dev tree)
79
+ 3. clean install and `remote armprocess`, `armcoding`, `armdesktop`,
80
+ `armhost` with explicit local authorization, and successful revoke
81
+ 4. Autonomous R70 owner enrollment and independent project-scope isolation
82
+ 5. LiveLogs default START/DONE/FAIL plus audit continuity regression
83
+ 6. npm tarball verification, release metadata, rollback, registry identity
84
+
85
+ No npm publish or production activation has been attempted by this R156
86
+ development pass.
@@ -0,0 +1,58 @@
1
+ # DEADBYTE MCP R157 static dependency map
2
+
3
+ Not a runtime reachability guarantee. Graph parses literal top-level relative ESM imports only.
4
+
5
+ | Boundary | Runtime entry / related source | Security / compatibility rule |
6
+ |---|---|---|
7
+ | Public MCP and remote | mcp-server.mjs / deadbyte-cli.mjs / remote-live-log.mjs | machine identity and live request/result pairing |
8
+ | Session ownership | foreground-marker-cas-win32.mjs / remote-session-guardian.mjs | file identity, PID+creation identity, explicit revoke |
9
+ | Privileged epoch | authority-continuity-r65.mjs / privileged-install-trust-r89.mjs | owner-approved OS-owned root, deny untrusted ACL writes |
10
+ | Coding and native diffs | coding-plane.mjs / native-diff.mjs / atomic-mutation.mjs | bounded roots and exact SHA-256 preconditions |
11
+ | Autonomous engine | autonomous-supervisor.mjs / autonomous-runtime.mjs / autonomous-progress.mjs | bounded retries, receipts, owner approval and durable goals |
12
+ | Release generation | runtime-update.mjs / release-generation.mjs | signed exact promotion, rollback, manifest match |
13
+
14
+ ## Entrypoint reachability from literal imports
15
+ - mcp-server.mjs: present=true, static reachable files=134
16
+ - deadbyte-cli.mjs: present=true, static reachable files=151
17
+ - remote-live-log.mjs: present=true, static reachable files=7
18
+ - autonomous-supervisor-host.mjs: present=true, static reachable files=50
19
+ - autonomous-runtime.mjs: present=true, static reachable files=33
20
+ - autonomous-supervisor.mjs: present=true, static reachable files=1
21
+
22
+ ## Most referenced modules within src/
23
+ - canonical-json.mjs <- 50 static imports
24
+ - trust.mjs <- 38 static imports
25
+ - path-policy.mjs <- 16 static imports
26
+ - coding-plane.mjs <- 12 static imports
27
+ - text-policy.mjs <- 12 static imports
28
+ - version.mjs <- 11 static imports
29
+ - hash.mjs <- 10 static imports
30
+ - desktop-policy-r40.mjs <- 9 static imports
31
+ - desktop-runtime-r40.mjs <- 9 static imports
32
+ - observation-runtime.mjs <- 9 static imports
33
+ - state-root.mjs <- 9 static imports
34
+ - authority-continuity-r65.mjs <- 8 static imports
35
+ - machine-fs.mjs <- 8 static imports
36
+ - release-slot.mjs <- 8 static imports
37
+ - output-contracts.mjs <- 7 static imports
38
+ - runtime-update.mjs <- 7 static imports
39
+ - contained-executor.mjs <- 6 static imports
40
+ - runtime-catalog-expectation.mjs <- 6 static imports
41
+ - autonomous-policy.mjs <- 5 static imports
42
+ - foreground-marker-cas-win32.mjs <- 5 static imports
43
+ - process-policy.mjs <- 5 static imports
44
+ - remote-mcp-r34-parity-client.mjs <- 5 static imports
45
+ - deadline-cancellation.mjs <- 4 static imports
46
+ - verifier.mjs <- 4 static imports
47
+ - windows-powershell-environment.mjs <- 4 static imports
48
+
49
+ ## Explicit integration work
50
+
51
+ - R89 protected source routing is candidate-only. Actual install provision / owner consent / revoke remains unverified.
52
+ - R155 default LiveLogs focused checks pass, but full Windows regression and startup reconciliation are not closed.
53
+ - R156/R157 autonomous supervisor is test-backed; release identity has not changed.
54
+ - A code source import does not prove an IPC, host process, or cloud boundary. Prove via isolated end-to-end test.
55
+
56
+ ## Rebuild
57
+
58
+ node test/r157-architecture-map.mjs