deadbyte-mcp 0.15.35 → 0.15.37
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 +91 -46
- package/PROVENANCE.json +76 -30
- package/README.txt +62 -8
- package/RELEASE.json +78 -23
- package/SBOM.cdx.json +10 -25
- package/TEST-MATRIX.json +109 -44
- package/bridge/package.json +4 -2
- package/bridge/src/bridge-health-r59.mjs +53 -0
- package/bridge/src/bridge.mjs +158 -26
- package/bridge/src/canonical-json-r60.mjs +13 -0
- package/bridge/src/r40-governor.mjs +56 -10
- package/bridge/src/reconnect-delay-r60.mjs +31 -0
- package/bridge/src/remote-call-claims-r60.mjs +157 -0
- package/bridge/src/remote-dispatch-r60.mjs +75 -0
- package/controller/deadbyte-controller.ps1 +76 -13
- package/controller/deadbyte-process-policy.json +4 -4
- package/docs/R59-PROVENANCE.json +87 -0
- package/docs/R59-RELEASE.json +187 -0
- package/docs/R59-SBOM.cdx.json +68 -0
- package/docs/R59-TASK-CONTRACT.md +26 -0
- package/docs/R59-TEST-MATRIX.json +258 -0
- package/docs/R59-bridge-package.json +13 -0
- package/docs/R59-package-lock.json +184 -0
- package/docs/R59-package.json +106 -0
- package/docs/R59-version.mjs +6 -0
- package/docs/R60-TASK-CONTRACT.md +22 -0
- package/package.json +7 -3
- package/proof/r59-full-regression-current.json +13 -0
- package/proof/r59-full-regression-current.stderr.log +0 -0
- package/proof/r59-full-regression-current.stdout.log +1268 -0
- package/scripts/full-regression-r60.mjs +32 -0
- package/scripts/gate-windows-r59-prepublish.ps1 +41 -0
- package/scripts/gate-windows-r60-prepublish.ps1 +74 -0
- package/scripts/r59-full-regression-capture.mjs +35 -0
- package/src/capability-resolver.mjs +25 -7
- package/src/capability-snapshot.mjs +56 -0
- package/src/compact-gateway-mcp-tools.mjs +10 -11
- package/src/deadbyte-cli.mjs +80 -34
- package/src/mcp-server.mjs +179 -118
- package/src/r40-compact-disarmed-probe.mjs +1 -1
- package/src/r44-compact-disarmed-probe.mjs +1 -1
- package/src/r45-compact-disarmed-probe.mjs +1 -1
- package/src/remote-authority.mjs +56 -0
- package/src/remote-enforcement-probe-r60.mjs +17 -0
- package/src/remote-live-log.mjs +19 -2
- package/src/remote-log-decode-r60.mjs +32 -0
- package/src/remote-mcp-machine-smoke-client.mjs +19 -1
- package/src/remote-mcp-r40-parity-client.mjs +1 -1
- package/src/remote-mcp-r44-parity-client.mjs +1 -1
- package/src/remote-mcp-r45-parity-client.mjs +1 -1
- package/src/remote-mcp-smoke-client.mjs +1 -1
- package/src/remote-session-guardian.mjs +20 -3
- package/src/runtime-plane-registry.mjs +74 -0
- package/src/tool-audit.mjs +5 -0
- package/src/version.mjs +1 -1
- package/test/bridge-runtime-r59.test.mjs +60 -0
- package/test/capability-resolver.test.mjs +16 -0
- package/test/capability-snapshot-r59.test.mjs +39 -0
- package/test/compact-gateway-r36.test.mjs +22 -2
- package/test/compact-max-catalog-r44.test.mjs +1 -1
- package/test/compact-max-catalog-r45.test.mjs +1 -1
- package/test/contained.test.mjs +2 -1
- package/test/controller-policy-preflight-r59.test.mjs +39 -0
- package/test/fixtures/r59-compact-surface-v0.15.35.json +222 -0
- package/test/observation-integration.test.mjs +2 -3
- package/test/optional-plane-degraded-r59.test.mjs +44 -0
- package/test/r48-release-contract.test.mjs +1 -1
- package/test/r49-windows-gate.test.mjs +1 -1
- package/test/r51-runtime-coherence.test.mjs +2 -2
- package/test/r58-bundled-bridge.test.mjs +3 -1
- package/test/r58-cleanup-retention.test.mjs +9 -3
- package/test/r58-concurrent-recovery.test.mjs +9 -3
- package/test/r58-controller-live-local.test.mjs +36 -4
- package/test/r58-controller-state-coherence.test.mjs +1 -1
- package/test/r58-release-contract.test.mjs +3 -2
- package/test/r58-stale-owner.test.mjs +2 -2
- package/test/r58-windows-gate.test.mjs +2 -1
- package/test/r59-release-contract.test.mjs +61 -0
- package/test/r59-tool-surface-compat.test.mjs +90 -0
- package/test/r60-authority-coherence.test.mjs +36 -0
- package/test/r60-authority-enforcement.test.mjs +28 -0
- package/test/r60-bridge-dispatch.test.mjs +119 -0
- package/test/r60-clock-discipline.test.mjs +15 -0
- package/test/r60-live-timeline.test.mjs +29 -0
- package/test/r60-reconnect-errors.test.mjs +21 -0
- package/test/r60-reconnect-jitter.test.mjs +18 -0
- package/test/r60-release-contract.test.mjs +81 -0
- package/test/r60-remote-call-recovery.test.mjs +170 -0
- package/test/r60-windows-log-decode.test.mjs +25 -0
- package/test/remote-live-log-r37.test.mjs +1 -1
- package/test/remote-session-cli.test.mjs +200 -43
- package/test/runtime-plane-registry-r59.test.mjs +40 -0
package/RELEASE.json
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "deadbyte.release.v1",
|
|
3
3
|
"name": "deadbyte-mcp",
|
|
4
|
-
"version": "0.15.
|
|
5
|
-
"train": "
|
|
6
|
-
"label": "
|
|
4
|
+
"version": "0.15.37",
|
|
5
|
+
"train": "R60",
|
|
6
|
+
"label": "REMOTE TRUTH + RESILIENCE HARDENING",
|
|
7
7
|
"protocol_revision": "2026-07-28",
|
|
8
8
|
"parent": {
|
|
9
|
-
"version": "0.15.
|
|
10
|
-
"release_id": "v0.15.
|
|
11
|
-
"manifest_sha256": "
|
|
12
|
-
"generation_manifest_sha256": "
|
|
13
|
-
"
|
|
14
|
-
"activation_status": "PRODUCTION_ACCEPTED_WITH_SIGNED_ROLLBACK_AND_RESTORE"
|
|
9
|
+
"version": "0.15.36",
|
|
10
|
+
"release_id": "v0.15.36-090d9db3e0679c0d",
|
|
11
|
+
"manifest_sha256": "090d9db3e0679c0d4943f3229ecab7b9fcccbe4f767348a568c9f3bb60d1b431",
|
|
12
|
+
"generation_manifest_sha256": "6134f9f26b680e13ed545da4ab5f3020f411ea2569062fb9c154c8a7e036c9dc",
|
|
13
|
+
"activation_status": "PRODUCTION_ACCEPTED_ACTIVE"
|
|
15
14
|
},
|
|
16
15
|
"runtime_predecessor": {
|
|
17
|
-
"release_id": "v0.15.
|
|
18
|
-
"manifest_sha256": "
|
|
19
|
-
"generation_manifest_sha256": "
|
|
16
|
+
"release_id": "v0.15.36-090d9db3e0679c0d",
|
|
17
|
+
"manifest_sha256": "090d9db3e0679c0d4943f3229ecab7b9fcccbe4f767348a568c9f3bb60d1b431",
|
|
18
|
+
"generation_manifest_sha256": "6134f9f26b680e13ed545da4ab5f3020f411ea2569062fb9c154c8a7e036c9dc"
|
|
20
19
|
},
|
|
21
20
|
"source_predecessor": {
|
|
22
|
-
"version": "0.15.
|
|
23
|
-
"
|
|
24
|
-
"manifest_file_sha256": "
|
|
21
|
+
"version": "0.15.36",
|
|
22
|
+
"release_id": "v0.15.36-090d9db3e0679c0d",
|
|
23
|
+
"manifest_file_sha256": "090d9db3e0679c0d4943f3229ecab7b9fcccbe4f767348a568c9f3bb60d1b431",
|
|
24
|
+
"registry_tarball_status": "PENDING_INDEPENDENT_REGISTRY_ROUND_TRIP"
|
|
25
25
|
},
|
|
26
26
|
"consolidation": {
|
|
27
27
|
"frontend_status_vocabulary": true,
|
|
@@ -34,13 +34,14 @@
|
|
|
34
34
|
"bridge_path_escape_fail_closed": true,
|
|
35
35
|
"isolated_controller_bridge_core_lifecycle": "PASS",
|
|
36
36
|
"performance_acceptance": "PASS_BOUNDED_PREPUBLISH",
|
|
37
|
-
"fresh_full_regression": "
|
|
38
|
-
"package_acceptance": "
|
|
37
|
+
"fresh_full_regression": "PASS_CURRENT_TREE_1241_TESTS_1210_PASS_31_SKIP_0_FAIL",
|
|
38
|
+
"package_acceptance": "PASS_VERIFY_ONLY_PRE_FINAL_SEAL",
|
|
39
39
|
"registry_round_trip": "PENDING",
|
|
40
40
|
"production_activation_rollback_restore": "PENDING",
|
|
41
41
|
"stable_final_claim": false,
|
|
42
42
|
"cross_plane_acceptance": "PASS",
|
|
43
|
-
"public_surface_compatibility": "PASS_43_TOOLS_NO_SCHEMA_DRIFT"
|
|
43
|
+
"public_surface_compatibility": "PASS_43_TOOLS_NO_SCHEMA_DRIFT",
|
|
44
|
+
"windows_gate": "PASS_STAGED_WINDOWS_DOCTOR_WARN_INHERITED_TRANSACTION_RESIDUE"
|
|
44
45
|
},
|
|
45
46
|
"stabilization": {
|
|
46
47
|
"semver_strict_validation": true,
|
|
@@ -48,10 +49,13 @@
|
|
|
48
49
|
"explicit_state_root_propagation": true,
|
|
49
50
|
"guardian_cleanup_fail_closed": true,
|
|
50
51
|
"local_isolated_state_acceptance": "PASS",
|
|
51
|
-
"full_regression": "
|
|
52
|
-
"four_hour_soak": "
|
|
53
|
-
"clean_machine": "
|
|
54
|
-
"stable_final_claim": false
|
|
52
|
+
"full_regression": "PASS_CURRENT_TREE_1241_TESTS_1210_PASS_31_SKIP_0_FAIL",
|
|
53
|
+
"four_hour_soak": "WAIVED_BY_OPERATOR",
|
|
54
|
+
"clean_machine": "WAIVED_BY_OPERATOR",
|
|
55
|
+
"stable_final_claim": false,
|
|
56
|
+
"windows_gate": "PASS_STAGED_WINDOWS_DOCTOR_WARN_INHERITED_TRANSACTION_RESIDUE",
|
|
57
|
+
"package_verification": "PASS_VERIFY_ONLY_PRE_FINAL_SEAL",
|
|
58
|
+
"production_activation_rollback_restore": "PENDING"
|
|
55
59
|
},
|
|
56
60
|
"platform": {
|
|
57
61
|
"primary": "win32",
|
|
@@ -154,6 +158,57 @@
|
|
|
154
158
|
"bundled_release_bridge": true,
|
|
155
159
|
"bridge_recursive_dependency_binding": true,
|
|
156
160
|
"doctor_read_only_diagnostics": true,
|
|
157
|
-
"coherent_structured_status": true
|
|
161
|
+
"coherent_structured_status": true,
|
|
162
|
+
"optional_plane_degradation": true,
|
|
163
|
+
"capability_manifest_v3": true,
|
|
164
|
+
"bridge_bounded_reconciliation": true,
|
|
165
|
+
"mutation_unknown_outcome_no_replay": true,
|
|
166
|
+
"controller_policy_root_preflight": true
|
|
167
|
+
},
|
|
168
|
+
"r59_runtime_hardening": {
|
|
169
|
+
"optional_plane_degradation": true,
|
|
170
|
+
"stable_tool_registration_on_optional_failure": true,
|
|
171
|
+
"capability_manifest_v3": true,
|
|
172
|
+
"live_overlay_authority_ceiling": true,
|
|
173
|
+
"bridge_bounded_reconciliation": true,
|
|
174
|
+
"bridge_health_requires_fresh_child_catalog_capability_attestation": true,
|
|
175
|
+
"mutation_unknown_outcome_no_replay": true,
|
|
176
|
+
"read_only_retry_only_before_dispatch": true,
|
|
177
|
+
"cancellation_aware_governor": true,
|
|
178
|
+
"controller_policy_root_preflight": true,
|
|
179
|
+
"public_surface_compatibility": "PASS_43_TOOLS_NO_SCHEMA_DRIFT",
|
|
180
|
+
"frontdoor_signed_ping": "PASS",
|
|
181
|
+
"four_hour_soak": "NOT_COMPLETED",
|
|
182
|
+
"clean_machine": "NOT_COMPLETED",
|
|
183
|
+
"stable_final_claim": false
|
|
184
|
+
},
|
|
185
|
+
"operator_override": {
|
|
186
|
+
"four_hour_soak": "WAIVED_BY_OPERATOR",
|
|
187
|
+
"clean_machine": "WAIVED_BY_OPERATOR",
|
|
188
|
+
"reason": "Operator explicitly requested immediate deployment without further testing.",
|
|
189
|
+
"stable_final_claim": false
|
|
190
|
+
},
|
|
191
|
+
"r60_remote_hardening": {
|
|
192
|
+
"authority_truth_coherence": true,
|
|
193
|
+
"execution_backed_readiness": true,
|
|
194
|
+
"keyed_mutation_dedup": true,
|
|
195
|
+
"keyless_ambiguous_mutation_fail_closed": true,
|
|
196
|
+
"read_only_recovery": true,
|
|
197
|
+
"bounded_reconnect_jitter": true,
|
|
198
|
+
"terminal_transient_failure_taxonomy": true,
|
|
199
|
+
"capability_manifest_human_suppression": true,
|
|
200
|
+
"windows_log_bom_decode": true,
|
|
201
|
+
"public_surface_tool_count": 43,
|
|
202
|
+
"behavioral_regression": "PASS_1241_TESTS_1210_PASS_31_HISTORICAL_OR_PLATFORM_SKIP_0_FAIL",
|
|
203
|
+
"windows_gate": "PASS_STAGED_WINDOWS_DOCTOR_WARN_INHERITED_TRANSACTION_RESIDUE",
|
|
204
|
+
"package_verification": "PASS_VERIFY_ONLY_PRE_FINAL_SEAL",
|
|
205
|
+
"registry_round_trip": "PENDING",
|
|
206
|
+
"production_activation_rollback_restore": "PENDING",
|
|
207
|
+
"stable_final_claim": false,
|
|
208
|
+
"doctor_assessment": "WARN_INHERITED_TRANSACTION_RESIDUE",
|
|
209
|
+
"manifest_pre_package": {
|
|
210
|
+
"files": 2204,
|
|
211
|
+
"status": "PASS_BEFORE_FINAL_METADATA_SEAL"
|
|
212
|
+
}
|
|
158
213
|
}
|
|
159
214
|
}
|
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:
|
|
4
|
+
"serialNumber": "urn:cdx:deadbyte-mcp:r60:0.15.37",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
7
|
"component": {
|
|
8
8
|
"type": "application",
|
|
9
9
|
"name": "deadbyte-mcp",
|
|
10
|
-
"version": "0.15.
|
|
10
|
+
"version": "0.15.37"
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"components": [
|
|
@@ -34,35 +34,20 @@
|
|
|
34
34
|
{
|
|
35
35
|
"type": "file",
|
|
36
36
|
"name": "deadbyte-hardware-observer-r45.exe",
|
|
37
|
-
"version": "0.15.
|
|
38
|
-
"
|
|
39
|
-
{
|
|
40
|
-
"alg": "SHA-256",
|
|
41
|
-
"content": "c9b46fc497b55b8f0ad1564c8e15f9c1cdf2a07f206b3c8fa7966c892058e920"
|
|
42
|
-
}
|
|
43
|
-
]
|
|
37
|
+
"version": "0.15.37",
|
|
38
|
+
"hash_status": "PENDING_R60_FREEZE_REGENERATION"
|
|
44
39
|
},
|
|
45
40
|
{
|
|
46
41
|
"type": "file",
|
|
47
|
-
"name": "deadbyte-
|
|
48
|
-
"version": "0.15.
|
|
49
|
-
"
|
|
50
|
-
{
|
|
51
|
-
"alg": "SHA-256",
|
|
52
|
-
"content": "abd6e5625ea18a5baf3f318d6a9c849a2978a9441fc9f906cd572db1a1c2b4d6"
|
|
53
|
-
}
|
|
54
|
-
]
|
|
42
|
+
"name": "deadbyte-r60-bundled-bridge",
|
|
43
|
+
"version": "0.15.37",
|
|
44
|
+
"hash_status": "PENDING_R60_FREEZE_REGENERATION"
|
|
55
45
|
},
|
|
56
46
|
{
|
|
57
47
|
"type": "file",
|
|
58
|
-
"name": "deadbyte-
|
|
59
|
-
"version": "0.15.
|
|
60
|
-
"
|
|
61
|
-
{
|
|
62
|
-
"alg": "SHA-256",
|
|
63
|
-
"content": "281985edd717b991d78fe1853057a6a6cbf6fc5b57cab48ed8444b09b15dcd6e"
|
|
64
|
-
}
|
|
65
|
-
]
|
|
48
|
+
"name": "deadbyte-r60-node-http-adapter",
|
|
49
|
+
"version": "0.15.37",
|
|
50
|
+
"hash_status": "PENDING_R60_FREEZE_REGENERATION"
|
|
66
51
|
}
|
|
67
52
|
]
|
|
68
53
|
}
|
package/TEST-MATRIX.json
CHANGED
|
@@ -1,64 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "deadbyte.test-matrix.v1",
|
|
3
|
-
"version": "0.15.
|
|
4
|
-
"train": "
|
|
3
|
+
"version": "0.15.37",
|
|
4
|
+
"train": "R60",
|
|
5
5
|
"primary_platform": "win32-x64",
|
|
6
6
|
"reference": {
|
|
7
7
|
"package": "@wonderwhy-er/desktop-commander",
|
|
8
|
-
"version": "0.2.
|
|
9
|
-
"server_sha256": "
|
|
8
|
+
"version": "0.2.52",
|
|
9
|
+
"server_sha256": "dacffa416d0a46351aa553e6b05e51a10638bd190821eda03032de045b9f2aaf",
|
|
10
10
|
"schemas_sha256": "f342345e34e48769dabaefe1b932f09d41e2e207b422f7794a15ee50ffa8f140"
|
|
11
11
|
},
|
|
12
12
|
"required": [
|
|
13
13
|
{
|
|
14
|
-
"id": "
|
|
15
|
-
"command": "npm run
|
|
16
|
-
"expected": "PASS
|
|
14
|
+
"id": "r60-focused",
|
|
15
|
+
"command": "npm run r60:focused:test",
|
|
16
|
+
"expected": "PASS R60 authority truth, Bridge idempotency/recovery, reconnect, timeline, clock and Windows decode contracts"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
|
-
"id": "
|
|
20
|
-
"command": "
|
|
21
|
-
"expected": "
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"id": "cross-plane",
|
|
25
|
-
"command": "R58 cross-plane acceptance",
|
|
26
|
-
"expected": "PASS isolated frontend/controller/bridge/core lifecycle, stale-session, durable-job, interruption and recovery cases"
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"id": "full-regression",
|
|
30
|
-
"command": "npm run r48:full:test",
|
|
31
|
-
"expected": "PASS current R58 candidate after final relevant source mutation"
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"id": "package-boundary",
|
|
35
|
-
"command": "node --test test/package-boundary.test.mjs",
|
|
36
|
-
"expected": "PASS bundled Bridge and canonical launchers/package surface"
|
|
19
|
+
"id": "r60-full-regression",
|
|
20
|
+
"command": "npm run r60:full:test",
|
|
21
|
+
"expected": "PASS complete current successor regression; connector execution may observe the identical 16-batch partition"
|
|
37
22
|
},
|
|
38
23
|
{
|
|
39
24
|
"id": "windows-gate",
|
|
40
25
|
"command": "npm run gate:windows",
|
|
41
|
-
"expected": "PASS
|
|
26
|
+
"expected": "PASS exact 0.15.36 predecessor, focused/full regression, manifest verify and doctor; inherited transaction residue may remain an explicit WARN until production transition"
|
|
42
27
|
},
|
|
43
28
|
{
|
|
44
29
|
"id": "package-verify",
|
|
45
30
|
"command": "node scripts/npm-release-r48.mjs --verify-only",
|
|
46
|
-
"expected": "PASS
|
|
31
|
+
"expected": "PASS exact packed surface and isolated package version/doctor execution"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "frontdoor",
|
|
35
|
+
"command": "node src/remote-mcp-smoke-client.mjs <active-https-mcp> smoke",
|
|
36
|
+
"expected": "PASS exact 43-tool compact catalog and independently verified Ed25519 ping after activation"
|
|
47
37
|
},
|
|
48
38
|
{
|
|
49
39
|
"id": "activation",
|
|
50
|
-
"command": "
|
|
51
|
-
"expected": "activate exact
|
|
40
|
+
"command": "activate exact packed deadbyte-mcp@0.15.37 candidate",
|
|
41
|
+
"expected": "activate exact R60 from exact active 0.15.36 only after prepublish/package gates"
|
|
52
42
|
},
|
|
53
43
|
{
|
|
54
44
|
"id": "rollback",
|
|
55
|
-
"command": "runtime-update --rollback-receipt <signed
|
|
56
|
-
"expected": "restore exact signed 0.15.
|
|
45
|
+
"command": "runtime-update --rollback-receipt <signed R60 activation receipt>",
|
|
46
|
+
"expected": "restore exact signed 0.15.36 pointer/runtime and verify release/generation/machine binding"
|
|
57
47
|
},
|
|
58
48
|
{
|
|
59
49
|
"id": "restore",
|
|
60
|
-
"command": "
|
|
61
|
-
"expected": "restore exact
|
|
50
|
+
"command": "restore exact same packed 0.15.37 candidate",
|
|
51
|
+
"expected": "restore exact immutable R60 release/generation and verify public MCP without rebuild"
|
|
62
52
|
}
|
|
63
53
|
],
|
|
64
54
|
"observed_pre_release_evidence": {
|
|
@@ -160,22 +150,79 @@
|
|
|
160
150
|
"failed": 0,
|
|
161
151
|
"receipt_id": "f1aa5d06775113d734b94149",
|
|
162
152
|
"receipt_sha256": "d0dce46d897422f0db690b0cd523e5ab740ffd967e4dc8e265d436d888ccff9f"
|
|
153
|
+
},
|
|
154
|
+
"r59_contracts": {
|
|
155
|
+
"status": "PASS",
|
|
156
|
+
"tests": 19,
|
|
157
|
+
"failed": 0,
|
|
158
|
+
"receipt_sha256": "2d3adcc33d010c4977974971222e6b13d613ff268097fff0eec0113e4f82f281"
|
|
159
|
+
},
|
|
160
|
+
"r59_public_surface": {
|
|
161
|
+
"status": "PASS",
|
|
162
|
+
"tool_count": 43,
|
|
163
|
+
"unchanged": 43,
|
|
164
|
+
"added": 0,
|
|
165
|
+
"removed": 0,
|
|
166
|
+
"schema_changed": 0,
|
|
167
|
+
"baseline_release": "v0.15.35-1b5715b276facbc0",
|
|
168
|
+
"surface_sha256": "8e98978b720633acb0c7d4d65c36a945243c47f6dbccfa64ab877329f2956fe3"
|
|
169
|
+
},
|
|
170
|
+
"r59_full_regression": {
|
|
171
|
+
"status": "PENDING_AFTER_RELEASE_IDENTITY_MUTATION"
|
|
172
|
+
},
|
|
173
|
+
"r59_package": {
|
|
174
|
+
"status": "PENDING"
|
|
175
|
+
},
|
|
176
|
+
"r60_behavioral_regression": {
|
|
177
|
+
"status": "PASS",
|
|
178
|
+
"tests": 1241,
|
|
179
|
+
"passed": 1210,
|
|
180
|
+
"skipped": 31,
|
|
181
|
+
"failed": 0,
|
|
182
|
+
"batches": 16,
|
|
183
|
+
"note": "fresh current-tree R60 behavioral regression across 16 bounded Windows batches; manifest, doctor, package, registry and activation closure remain separate gates"
|
|
184
|
+
},
|
|
185
|
+
"r60_focused": {
|
|
186
|
+
"status": "PASS",
|
|
187
|
+
"tests": 43,
|
|
188
|
+
"passed": 43,
|
|
189
|
+
"skipped": 0,
|
|
190
|
+
"failed": 0
|
|
191
|
+
},
|
|
192
|
+
"r60_windows_gate": {
|
|
193
|
+
"status": "PASS_STAGED_WINDOWS_DOCTOR_WARN",
|
|
194
|
+
"preflight": "PASS",
|
|
195
|
+
"focused": "PASS_43_OF_43",
|
|
196
|
+
"full_regression": "PASS_1241_TESTS_1210_PASS_31_SKIP_0_FAIL_16_BATCHES",
|
|
197
|
+
"manifest": "PASS_CURRENT_TREE_FINAL_SEAL_REQUIRED_AFTER_METADATA_UPDATE",
|
|
198
|
+
"doctor": "WARN_EXIT_0",
|
|
199
|
+
"doctor_required_candidate_checks": "PASS",
|
|
200
|
+
"doctor_warning": "inherited production transaction-residue inventory remains unresolved; no recovery was launched during prepublish",
|
|
201
|
+
"note": "The connector request ceiling prevented observing the single long-lived all-stage invocation. The exact Windows gate script was observed stage-by-stage on the same candidate; default Stage=all remains the same ordered semantics."
|
|
202
|
+
},
|
|
203
|
+
"r60_package": {
|
|
204
|
+
"status": "PASS_VERIFY_ONLY_PRE_FINAL_SEAL",
|
|
205
|
+
"packed_surface_files": 2205,
|
|
206
|
+
"manifest_entries": 2204,
|
|
207
|
+
"isolated_package_gate": "PASS",
|
|
208
|
+
"note": "package hash is intentionally not embedded in manifest-covered metadata; exact final tarball identity is external evidence"
|
|
209
|
+
},
|
|
210
|
+
"r60_registry_round_trip": {
|
|
211
|
+
"status": "PENDING"
|
|
212
|
+
},
|
|
213
|
+
"r60_activation_rollback_restore": {
|
|
214
|
+
"status": "PENDING"
|
|
163
215
|
}
|
|
164
216
|
},
|
|
165
217
|
"inherited_parent_evidence": {
|
|
166
|
-
"version": "0.15.
|
|
167
|
-
"parent_manifest_sha256": "
|
|
168
|
-
"parent_generation_manifest_sha256": "
|
|
169
|
-
"parent_tarball_sha256": "
|
|
218
|
+
"version": "0.15.35",
|
|
219
|
+
"parent_manifest_sha256": "1b5715b276facbc00f8e341a554472cb4829e5af60e221c357c41b66053af9d4",
|
|
220
|
+
"parent_generation_manifest_sha256": "047e73b62d7b7819b84201a221a09b7e647cacf21f82101ebed4fbd7e23fc430",
|
|
221
|
+
"parent_tarball_sha256": "8259e30946d28dd138c1e2ce2f483fe1370d1658544f2adbfebafa4db8875bba",
|
|
170
222
|
"parent_registry_identity": "PASS",
|
|
171
223
|
"parent_activation_rollback_restore": "PASS",
|
|
172
|
-
"
|
|
173
|
-
"
|
|
174
|
-
},
|
|
175
|
-
"operator_override": {
|
|
176
|
-
"four_hour_soak": "NOT_COMPLETED",
|
|
177
|
-
"clean_machine": "NOT_COMPLETED",
|
|
178
|
-
"stable_final_claim": false
|
|
224
|
+
"four_hour_soak": "WAIVED_BY_OPERATOR",
|
|
225
|
+
"clean_machine": "NOT_COMPLETED"
|
|
179
226
|
},
|
|
180
227
|
"performance": {
|
|
181
228
|
"r51": {
|
|
@@ -223,10 +270,28 @@
|
|
|
223
270
|
"bridge_baseline_first_p95_reduction_pct": 43.06594367803213,
|
|
224
271
|
"bridge_candidate_first_p95_reduction_pct": 63.632445348471286,
|
|
225
272
|
"stdio_p95_delta_pct": 1.984392678457768
|
|
273
|
+
},
|
|
274
|
+
"r59": {
|
|
275
|
+
"baseline_version": "0.15.35",
|
|
276
|
+
"candidate_version": "0.15.36",
|
|
277
|
+
"public_surface_tool_count": 43,
|
|
278
|
+
"status": "NO_NEW_PERFORMANCE_CLAIM_OPERATOR_OVERRIDE"
|
|
279
|
+
},
|
|
280
|
+
"r60": {
|
|
281
|
+
"baseline_version": "0.15.36",
|
|
282
|
+
"candidate_version": "0.15.37",
|
|
283
|
+
"public_surface_tool_count": 43,
|
|
284
|
+
"status": "PENDING_POST_FREEZE_MEASUREMENT"
|
|
226
285
|
}
|
|
227
286
|
},
|
|
228
287
|
"non_win32": {
|
|
229
288
|
"portable_tests": "supported where platform-independent",
|
|
230
289
|
"windows_native_tests": "SKIP/unsupported"
|
|
290
|
+
},
|
|
291
|
+
"operator_override": {
|
|
292
|
+
"four_hour_soak": "WAIVED_BY_OPERATOR",
|
|
293
|
+
"clean_machine": "WAIVED_BY_OPERATOR",
|
|
294
|
+
"reason": "Operator explicitly requested immediate deployment without further testing.",
|
|
295
|
+
"stable_final_claim": false
|
|
231
296
|
}
|
|
232
297
|
}
|
package/bridge/package.json
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deadbyte-chatgpt-bridge",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.37",
|
|
4
4
|
"private": true,
|
|
5
5
|
"type": "module",
|
|
6
|
-
"engines": {
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": ">=22"
|
|
8
|
+
},
|
|
7
9
|
"dependencies": {
|
|
8
10
|
"@modelcontextprotocol/client": "2.1.0",
|
|
9
11
|
"@modelcontextprotocol/server": "2.1.0"
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const HEX64=/^[0-9a-f]{64}$/;
|
|
2
|
+
const PHASES=new Set(['STARTING','READY','DEGRADED','RECONCILING','STOPPING']);
|
|
3
|
+
|
|
4
|
+
function bounded(value,max=512){
|
|
5
|
+
return String(value??'').replace(/[\r\n\t]+/g,' ')
|
|
6
|
+
.replace(/(?:Bearer\s+\S+|token|secret|password|[A-Za-z]:\\[^ ]+)/gi,'<redacted>').slice(0,max);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function createBridgeHealth({clock=Date.now,elapsedClock=clock===Date.now?()=>performance.now():clock,maxCapabilityAgeMs=15000}={}){
|
|
10
|
+
if(typeof clock!=='function'||typeof elapsedClock!=='function'||!Number.isInteger(maxCapabilityAgeMs)||maxCapabilityAgeMs<5000||maxCapabilityAgeMs>60000) throw new Error('bridge health options invalid');
|
|
11
|
+
let phase='STARTING';
|
|
12
|
+
let diagnostic='downstream initialization pending';
|
|
13
|
+
let core=null;
|
|
14
|
+
let capability=null;
|
|
15
|
+
|
|
16
|
+
function coreConnected({childIdentity,protocolEra,catalogSha256}){
|
|
17
|
+
if(typeof childIdentity!=='string'||childIdentity.length<1||childIdentity.length>128) throw new Error('bridge child identity invalid');
|
|
18
|
+
if(protocolEra!=='modern'||!HEX64.test(String(catalogSha256))) throw new Error('bridge downstream attestation invalid');
|
|
19
|
+
core=Object.freeze({child_identity:childIdentity,protocol_era:protocolEra,catalog_sha256:catalogSha256});
|
|
20
|
+
phase='STARTING';diagnostic='capability attestation pending';
|
|
21
|
+
}
|
|
22
|
+
function capabilityObserved(manifest){
|
|
23
|
+
if(manifest?.schema!=='deadbyte.capability-manifest.v3'||!HEX64.test(String(manifest.snapshot_id))||!Number.isInteger(manifest.state_epoch)||manifest.state_epoch<1) throw new Error('bridge capability attestation invalid');
|
|
24
|
+
const observed=Date.parse(manifest.observed_at_utc),validUntil=Date.parse(manifest.valid_until_utc);
|
|
25
|
+
if(!Number.isFinite(observed)||!Number.isFinite(validUntil)||validUntil<observed) throw new Error('bridge capability timestamps invalid');
|
|
26
|
+
capability=Object.freeze({snapshot_id:manifest.snapshot_id,state_epoch:manifest.state_epoch,observed_at_ms:observed,
|
|
27
|
+
received_elapsed_ms:Number(elapsedClock()),age_at_receive_ms:Math.max(0,Number(clock())-observed),
|
|
28
|
+
valid_until_ms:validUntil,release_manifest_sha256:HEX64.test(String(manifest.bindings?.release_manifest_sha256))?manifest.bindings.release_manifest_sha256:null,
|
|
29
|
+
generation_manifest_sha256:HEX64.test(String(manifest.bindings?.generation_manifest_sha256))?manifest.bindings.generation_manifest_sha256:null});
|
|
30
|
+
const unavailable=Object.entries(manifest.planes??{}).filter(([,value])=>value?.state==='DEGRADED'||value?.state==='UNAVAILABLE');
|
|
31
|
+
if(unavailable.length){
|
|
32
|
+
phase='DEGRADED';
|
|
33
|
+
diagnostic=bounded(unavailable.map(([id,value])=>`${id}:${value.state}:${value.diagnostic?.code??'unavailable'}`).join(','));
|
|
34
|
+
}else{phase='READY';diagnostic=null;}
|
|
35
|
+
}
|
|
36
|
+
function reconciling(reason){phase='RECONCILING';diagnostic=bounded(reason||'downstream reconciliation required');capability=null;core=null;}
|
|
37
|
+
function degraded(reason){phase='DEGRADED';diagnostic=bounded(reason||'downstream degraded');}
|
|
38
|
+
function stopping(){phase='STOPPING';diagnostic='bridge stopping';}
|
|
39
|
+
function snapshot(){
|
|
40
|
+
const now=Number(clock());
|
|
41
|
+
let state=phase,reason=diagnostic;
|
|
42
|
+
const stale=capability&&(capability.age_at_receive_ms+Math.max(0,Number(elapsedClock())-capability.received_elapsed_ms)>maxCapabilityAgeMs||now>capability.valid_until_ms);
|
|
43
|
+
if(phase==='READY'&&(!core||!capability||stale)){state='DEGRADED';reason=stale?'capability snapshot stale':'downstream attestation incomplete';}
|
|
44
|
+
if(!PHASES.has(state)) throw new Error('bridge health phase invalid');
|
|
45
|
+
const ready=state==='READY'&&Boolean(core)&&Boolean(capability);
|
|
46
|
+
return Object.freeze({schema:'deadbyte.bridge-health.v1',state,http_status:ready?200:503,ready,
|
|
47
|
+
diagnostic:reason?bounded(reason):null,core,capability:capability?Object.freeze({snapshot_id:capability.snapshot_id,
|
|
48
|
+
state_epoch:capability.state_epoch,observed_at_utc:new Date(capability.observed_at_ms).toISOString(),
|
|
49
|
+
valid_until_utc:new Date(capability.valid_until_ms).toISOString(),release_manifest_sha256:capability.release_manifest_sha256,
|
|
50
|
+
generation_manifest_sha256:capability.generation_manifest_sha256}):null});
|
|
51
|
+
}
|
|
52
|
+
return Object.freeze({coreConnected,capabilityObserved,reconciling,degraded,stopping,snapshot});
|
|
53
|
+
}
|