
[1m[46m RUN [49m[22m [36mv4.1.2 [39m[90m/Users/Mohammed/projects/tools/wa/packages/core[39m

 [32m✓[39m test/unit/injectionController.test.ts[2m > [22mInjectionController[2m > [22mfences stale document generations after main-frame navigation[32m 11[2mms[22m[39m
 [32m✓[39m test/unit/injectionController.test.ts[2m > [22mInjectionController[2m > [22mkeeps page-side runtime bridge binding idempotent within the same runtime generation[32m 7[2mms[22m[39m
 [32m✓[39m test/unit/injectionController.test.ts[2m > [22mInjectionController[2m > [22mdisposes page-side runtime listeners on runtime rollover and rebinds cleanly[32m 2[2mms[22m[39m
 [32m✓[39m test/unit/injectionController.test.ts[2m > [22mInjectionController[2m > [22mresets page-side bridge ownership when the runtime object is replaced in-place[32m 1[2mms[22m[39m
 [32m✓[39m test/unit/injectionController.test.ts[2m > [22mTransport injection controller bootstrap order[2m > [22mregisters persistent bindings and init scripts before navigation[32m 18[2mms[22m[39m
 [32m✓[39m test/unit/transportLaunchConfig.test.ts[2m > [22mTransport launch/config plumbing[2m > [22mforwards userDataDir to driver launch options[32m 26[2mms[22m[39m
 [32m✓[39m test/unit/transportLaunchConfig.test.ts[2m > [22mTransport launch/config plumbing[2m > [22mlogs browser console output and page errors when enabled[32m 10[2mms[22m[39m
 [32m✓[39m test/unit/transportLaunchConfig.test.ts[2m > [22mTransport launch/config plumbing[2m > [22mblocks crashlog and asset requests while allowing normal traffic to continue[32m 1[2mms[22m[39m
 [32m✓[39m test/unit/transportLaunchConfig.test.ts[2m > [22mTransport launch/config plumbing[2m > [22mdowngrades interception-dependent config explicitly when interception is unavailable[32m 0[2mms[22m[39m
 [32m✓[39m test/unit/releaseBlockerParity.test.ts[2m > [22mrelease-blocker parity matrix[2m > [22mtracks blocker restores separately from accepted non-blockers[32m 9[2mms[22m[39m
 [32m✓[39m test/unit/releaseBlockerParity.test.ts[2m > [22mrelease-blocker parity probes[2m > [22mrequires a non-launch browser→node runtime bridge binding after WAPI injection[32m 10[2mms[22m[39m
 [32m✓[39m test/unit/releaseBlockerParity.test.ts[2m > [22mrelease-blocker parity probes[2m > [22mrequires a frame-navigation reinjection hook like legacy browser.ts[32m 7[2mms[22m[39m
 [32m✓[39m test/unit/releaseBlockerParity.test.ts[2m > [22mrelease-blocker parity probes[2m > [22mrequires a post-auth ripe-session gate before reinjection[32m 4[2mms[22m[39m
 [32m✓[39m test/unit/releaseBlockerParity.test.ts[2m > [22mrelease-blocker parity probes[2m > [22mthreads userDataDir through Transport.initialize launch options[32m 21[2mms[22m[39m
 [32m✓[39m test/unit/releaseBlockerParity.test.ts[2m > [22mrelease-blocker parity probes[2m > [22mrequires a broken-method integrity gate or equivalent capability inventory[32m 5[2mms[22m[39m
 [32m✓[39m test/unit/runtimeEventBridge.test.ts[2m > [22mTransport runtime event bridge[2m > [22mmaps browser runtime callbacks onto core events and avoids duplicate setup in the same generation[32m 27[2mms[22m[39m
 [32m✓[39m test/unit/runtimeEventBridge.test.ts[2m > [22mTransport runtime event bridge[2m > [22mreinjects once for main-frame runtime loss, ignores iframe-only navigation, and uses waitForFunction probes[32m 7[2mms[22m[39m
 [32m✓[39m test/unit/runtimeEventBridge.test.ts[2m > [22mTransport runtime event bridge[2m > [22mdrops stale navigation recoveries so overlapping main-frame navigations only reinject once for the latest generation[32m 3[2mms[22m[39m
 [32m✓[39m test/unit/runtimeEventBridge.test.ts[2m > [22mTransport runtime event bridge[2m > [22mroutes in-place runtime replacement through the same queued recovery path[32m 3[2mms[22m[39m
[90mstdout[2m | test/unit/patchLifecycleSemantics.test.ts[2m > [22m[2mtransport patch lifecycle semantics[2m > [22m[2mkeeps disk cache opt-in instead of reading or writing it by default
[22m[39minfo: patches_fetched_from_remote {"component":"core-test","context":{"count":1,"sessionId":"patch-semantics","tag":"remote-tag"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/patchLifecycleSemantics.test.ts[2m > [22m[2mtransport patch lifecycle semantics[2m > [22m[2mreturns a fresh cache hit immediately and refreshes it in the background when cachedPatch is enabled
[22m[39minfo: patches_loaded_from_cache {"component":"core-test","context":{"count":1,"sessionId":"patch-semantics","tag":"cached-tag"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/patchLifecycleSemantics.test.ts[2m > [22m[2mtransport patch lifecycle semantics[2m > [22m[2mreturns a fresh cache hit immediately and refreshes it in the background when cachedPatch is enabled
[22m[39mdebug: patch_cache_refreshed_in_background {"component":"core-test","context":{"count":1,"sessionId":"patch-semantics","tag":"fresh-tag"},"timestamp":"I6O"}

 [32m✓[39m test/unit/patchLifecycleSemantics.test.ts[2m > [22mtransport patch lifecycle semantics[2m > [22mkeeps disk cache opt-in instead of reading or writing it by default[32m 21[2mms[22m[39m
 [32m✓[39m test/unit/patchLifecycleSemantics.test.ts[2m > [22mtransport patch lifecycle semantics[2m > [22mreturns a fresh cache hit immediately and refreshes it in the background when cachedPatch is enabled[32m 2[2mms[22m[39m
 [32m✓[39m test/unit/patchLifecycleSemantics.test.ts[2m > [22mtransport patch lifecycle semantics[2m > [22mtreats ghPatch as the primary GitHub source selector instead of a vague fallback toggle[32m 1[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmwykj_c76f9tfp","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmwykj_c76f9tfp","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmwykj_c76f9tfp","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmwykj_c76f9tfp","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmwykj_c76f9tfp","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmwykj_c76f9tfp","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmwykj_c76f9tfp","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmwykj_c76f9tfp","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmwykj_c76f9tfp","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmwykj_c76f9tfp","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I7O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mwarn: wapi_bootstrap_missing_runtime_after_wapi_asset {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mwarn: wapi_bootstrap_missing_runtime_after_launch_asset {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":false,"hasStoreMsg":false,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39minfo: broken_method_integrity_gate_repair {"component":"core","context":{"reason":"runtime_missing","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mwarn: wapi_bootstrap_missing_runtime_after_wapi_asset {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mwarn: wapi_bootstrap_missing_runtime_after_launch_asset {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":false,"hasStoreMsg":false,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"DISCONNECTED","prevState":"AUTHENTICATING","reason":"bootstrap.injection.capability","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"DISCONNECTED","reason":"phase_d_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D: blocks readiness until runtime injection proves usable capability
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_d_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmwyl6_laz8jnqt","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmwyl6_laz8jnqt","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmwyl6_laz8jnqt","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmwyl6_laz8jnqt","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmwyl6_laz8jnqt","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmwyl6_laz8jnqt","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmwyl6_laz8jnqt","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmwyl6_laz8jnqt","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmwyl6_laz8jnqt","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmwyl6_laz8jnqt","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I7O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I7O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I7O"}

[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mregister[2m > [22m[2mregisters a plugin and tracks it by name
[22m[39minfo: plugin_registered {"component":"test","context":{"hasRoutes":false,"pageCount":0,"plugin":"test-plugin","toolCount":0,"version":"1.0.0"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mregister[2m > [22m[2mthrows when registering duplicate plugin names
[22m[39minfo: plugin_registered {"component":"test","context":{"hasRoutes":false,"pageCount":0,"plugin":"dupe","toolCount":0,"version":"1.0.0"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mregister[2m > [22m[2minvokes plugin factory with input and stores returned hooks
[22m[39minfo: plugin_registered {"component":"test","context":{"hasRoutes":false,"pageCount":0,"plugin":"factory-test","toolCount":0,"version":"1.0.0"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mwireHooks - specific hooks[2m > [22m[2mwires core.starting hook to core.starting event
[22m[39minfo: plugin_registered {"component":"test","context":{"hasRoutes":false,"pageCount":0,"plugin":"lifecycle","toolCount":0,"version":"1.0.0"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mwireHooks - specific hooks[2m > [22m[2mwires auth.qr hook to launch.auth.qr.generated event
[22m[39minfo: plugin_registered {"component":"test","context":{"hasRoutes":false,"pageCount":0,"plugin":"qr-plugin","toolCount":0,"version":"1.0.0"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mwireHooks - specific hooks[2m > [22m[2mwires client.ready hook to client.ready event
[22m[39minfo: plugin_registered {"component":"test","context":{"hasRoutes":false,"pageCount":0,"plugin":"ready-plugin","toolCount":0,"version":"1.0.0"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mwireHooks - catch-all event handler[2m > [22m[2mforwards all catchable events to event hook with event name
[22m[39minfo: plugin_registered {"component":"test","context":{"hasRoutes":false,"pageCount":0,"plugin":"catchall","toolCount":0,"version":"1.0.0"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mwireHooks - catch-all event handler[2m > [22m[2mdoes not forward internal-only events not in CATCHABLE_EVENTS
[22m[39minfo: plugin_registered {"component":"test","context":{"hasRoutes":false,"pageCount":0,"plugin":"internal-filter","toolCount":0,"version":"1.0.0"},"timestamp":"I8O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I7O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase D: blocks readiness until runtime injection proves usable capability[32m 48[2mms[22m[39m
 [32m✓[39m test/unit/assetTruth.test.ts[2m > [22mtransport asset truth[2m > [22mkeeps the shipped wapi asset free of legacy helper globals[32m 2[2mms[22m[39m
 [32m✓[39m test/unit/assetTruth.test.ts[2m > [22mtransport asset truth[2m > [22mloads only the active transport asset set[32m 4[2mms[22m[39m
 [32m✓[39m test/unit/assetTruth.test.ts[2m > [22mtransport asset truth[2m > [22mdocuments that deferred init patch no longer uses a separate internal-event-handler script[32m 1[2mms[22m[39m
[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mdispose[2m > [22m[2mcalls dispose hook on all registered plugins
[22m[39minfo: plugin_registered {"component":"test","context":{"hasRoutes":false,"pageCount":0,"plugin":"p1","toolCount":0,"version":"1.0.0"},"timestamp":"I8O"}

[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mdispose[2m > [22m[2mcalls dispose hook on all registered plugins
[22m[39minfo: plugin_registered {"component":"test","context":{"hasRoutes":false,"pageCount":0,"plugin":"p2","toolCount":0,"version":"1.0.0"},"timestamp":"I8O"}

[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mdispose[2m > [22m[2mclears all plugins after dispose
[22m[39minfo: plugin_registered {"component":"test","context":{"hasRoutes":false,"pageCount":0,"plugin":"p1","toolCount":0,"version":"1.0.0"},"timestamp":"I8O"}

[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mdispose[2m > [22m[2mcontinues disposing other plugins if one throws
[22m[39minfo: plugin_registered {"component":"test","context":{"hasRoutes":false,"pageCount":0,"plugin":"throws","toolCount":0,"version":"1.0.0"},"timestamp":"I8O"}

[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mdispose[2m > [22m[2mcontinues disposing other plugins if one throws
[22m[39minfo: plugin_registered {"component":"test","context":{"hasRoutes":false,"pageCount":0,"plugin":"works","toolCount":0,"version":"1.0.0"},"timestamp":"I8O"}

[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mdispose[2m > [22m[2mcontinues disposing other plugins if one throws
[22m[39merror: plugin_dispose_error {"component":"test","context":{"plugin":"throws"},"error":{"message":"fail","name":"Error"},"timestamp":"I8O"}

[90mstdout[2m | test/unit/PluginHost.test.ts[2m > [22m[2mPluginHost[2m > [22m[2mgetTools[2m > [22m[2mcollects tools from all plugins with namespaced keys
[22m[39minfo: plugin_registered {"component":"test","context":{"hasRoutes":false,"pageCount":0,"plugin":"messaging","toolCount":1,"version":"1.0.0"},"timestamp":"I8O"}

 [32m✓[39m test/unit/PluginHost.test.ts[2m > [22mPluginHost[2m > [22mregister[2m > [22mregisters a plugin and tracks it by name[32m 13[2mms[22m[39m
 [32m✓[39m test/unit/PluginHost.test.ts[2m > [22mPluginHost[2m > [22mregister[2m > [22mthrows when registering duplicate plugin names[32m 1[2mms[22m[39m
 [32m✓[39m test/unit/PluginHost.test.ts[2m > [22mPluginHost[2m > [22mregister[2m > [22minvokes plugin factory with input and stores returned hooks[32m 4[2mms[22m[39m
 [32m✓[39m test/unit/PluginHost.test.ts[2m > [22mPluginHost[2m > [22mwireHooks - specific hooks[2m > [22mwires core.starting hook to core.starting event[32m 2[2mms[22m[39m
 [32m✓[39m test/unit/PluginHost.test.ts[2m > [22mPluginHost[2m > [22mwireHooks - specific hooks[2m > [22mwires auth.qr hook to launch.auth.qr.generated event[32m 1[2mms[22m[39m
 [32m✓[39m test/unit/PluginHost.test.ts[2m > [22mPluginHost[2m > [22mwireHooks - specific hooks[2m > [22mwires client.ready hook to client.ready event[32m 1[2mms[22m[39m
 [32m✓[39m test/unit/PluginHost.test.ts[2m > [22mPluginHost[2m > [22mwireHooks - catch-all event handler[2m > [22mforwards all catchable events to event hook with event name[32m 1[2mms[22m[39m
 [32m✓[39m test/unit/PluginHost.test.ts[2m > [22mPluginHost[2m > [22mwireHooks - catch-all event handler[2m > [22mdoes not forward internal-only events not in CATCHABLE_EVENTS[32m 55[2mms[22m[39m
 [32m✓[39m test/unit/PluginHost.test.ts[2m > [22mPluginHost[2m > [22mdispose[2m > [22mcalls dispose hook on all registered plugins[32m 2[2mms[22m[39m
 [32m✓[39m test/unit/PluginHost.test.ts[2m > [22mPluginHost[2m > [22mdispose[2m > [22mclears all plugins after dispose[32m 1[2mms[22m[39m
 [32m✓[39m test/unit/PluginHost.test.ts[2m > [22mPluginHost[2m > [22mdispose[2m > [22mcontinues disposing other plugins if one throws[32m 1[2mms[22m[39m
 [32m✓[39m test/unit/PluginHost.test.ts[2m > [22mPluginHost[2m > [22mgetTools[2m > [22mcollects tools from all plugins with namespaced keys[32m 0[2mms[22m[39m
 [32m✓[39m test/unit/runtimeListenerSurfaceInventory.test.ts[2m > [22mruntime listener surface inventory[2m > [22mderives the required WAPI method inventory from the shipped listener surface[32m 4[2mms[22m[39m
 [32m✓[39m test/unit/runtimeListenerSurfaceInventory.test.ts[2m > [22mruntime listener surface inventory[2m > [22mkeeps logout listener support explicit as navigation-backed, not WAPI-backed[32m 0[2mms[22m[39m
 [32m✓[39m test/unit/sessionReadinessTruth.test.ts[2m > [22msession readiness truth[2m > [22mkeeps READY blocked until lower-level obligations are satisfied[32m 12[2mms[22m[39m
 [32m✓[39m test/unit/sessionReadinessTruth.test.ts[2m > [22msession readiness truth[2m > [22mreports ready only when finalized requirements and lower-level truth align[32m 2[2mms[22m[39m
 [32m✓[39m test/unit/driverInterfaceContract.test.ts[2m > [22mdriver interface contract[2m > [22msupports deterministic listener removal via disposable handles and off()[32m 3[2mms[22m[39m
 [32m✓[39m test/unit/driverInterfaceContract.test.ts[2m > [22mdriver interface contract[2m > [22mkeeps duplicate listener registrations independently disposable[32m 1[2mms[22m[39m
 [32m✓[39m test/unit/driverInterfaceContract.test.ts[2m > [22mdriver interface contract[2m > [22msupports generation-safe init-script registration removal[32m 1[2mms[22m[39m
 [2m[90m↓[39m[22m test/e2e/createClient.e2e.test.ts[2m > [22mcreateClient E2E[2m > [22mshould emit launch.auth.qr.generated event when QR code appears
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: patches_fetched_from_remote {"component":"core","context":{"count":1,"sessionId":"bootstrap-contract","tag":"ec67d"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"applied":true,"keyType":"community","readinessImpact":"allow_ready_without_server_unlock","sessionId":"bootstrap-contract","status":"metadata_only"},"timestamp":"I6O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: patch_lifecycle_complete {"component":"core","context":{"applied":["runtime-bootstrap-overlay","remote-patch-0","init-patch-legacy"],"outcome":"applied","results":[{"description":"Records bootstrap patch attestation after runtime activation.","outcome":"applied","patchId":"runtime-bootstrap-overlay","required":true},{"description":"Remote live patch #0 (tag: ec67d)","outcome":"applied","patchId":"remote-patch-0","required":false},{"description":"Legacy init-patch: webpack module interceptor + Store.sendMessage guard.","outcome":"applied","patchId":"init-patch-legacy","required":true}],"sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: session_finalization_validated {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_overlay","usable":true},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"READY","prevState":"AUTHENTICATING","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: client_ready {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"READY","reason":"phase_e_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: emits distinct patch and license overlay lifecycle before readiness
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_e_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmwzaa_83alxbmp","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmwzaa_83alxbmp","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmwzaa_83alxbmp","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmwzaa_83alxbmp","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmwzaa_83alxbmp","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmwzaa_83alxbmp","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmwzaa_83alxbmp","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmwzaa_83alxbmp","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmwzaa_83alxbmp","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmwzaa_83alxbmp","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I6O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I6O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I6O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: patches_fetched_from_remote {"component":"core","context":{"count":1,"sessionId":"bootstrap-contract","tag":"ec67d"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"detail":"No license key resolved for this runtime session.","readinessImpact":"allow_ready","sessionId":"bootstrap-contract","status":"missing"},"timestamp":"I2O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: patch_lifecycle_complete {"component":"core","context":{"applied":["runtime-bootstrap-overlay","remote-patch-0","init-patch-legacy"],"outcome":"applied","results":[{"description":"Records bootstrap patch attestation after runtime activation.","outcome":"applied","patchId":"runtime-bootstrap-overlay","required":true},{"description":"Remote live patch #0 (tag: ec67d)","outcome":"applied","patchId":"remote-patch-0","required":false},{"description":"Legacy init-patch: webpack module interceptor + Store.sendMessage guard.","outcome":"applied","patchId":"init-patch-legacy","required":true}],"sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: session_finalization_validated {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_overlay","usable":true},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"READY","prevState":"AUTHENTICATING","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: client_ready {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"READY","reason":"phase_d_package_safe_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase D/E: runtime activation remains package-safe when process.cwd changes
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_d_package_safe_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase E: emits distinct patch and license overlay lifecycle before readiness[33m 903[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmwzqq_g7x10hpu","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmwzqq_g7x10hpu","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmwzqq_g7x10hpu","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmwzqq_g7x10hpu","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmwzqq_g7x10hpu","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmwzqq_g7x10hpu","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmwzqq_g7x10hpu","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmwzqq_g7x10hpu","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmwzqq_g7x10hpu","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmwzqq_g7x10hpu","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I2O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I2O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: patches_fetched_from_remote {"component":"core","context":{"count":1,"sessionId":"bootstrap-contract","tag":"ec67d"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"detail":"No license key resolved for this runtime session.","readinessImpact":"allow_ready","sessionId":"bootstrap-contract","status":"missing"},"timestamp":"I7O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: patch_lifecycle_complete {"component":"core","context":{"applied":["runtime-bootstrap-overlay","remote-patch-0","init-patch-legacy"],"outcome":"applied","results":[{"description":"Records bootstrap patch attestation after runtime activation.","outcome":"applied","patchId":"runtime-bootstrap-overlay","required":true},{"description":"Remote live patch #0 (tag: ec67d)","outcome":"applied","patchId":"remote-patch-0","required":false},{"description":"Legacy init-patch: webpack module interceptor + Store.sendMessage guard.","outcome":"applied","patchId":"init-patch-legacy","required":true}],"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: session_finalization_validated {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_overlay","usable":true},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"READY","prevState":"AUTHENTICATING","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: client_ready {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"READY","reason":"phase_e_missing_license_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: missing license stays observable and explicitly non-blocking for readiness
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_e_missing_license_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase D/E: runtime activation remains package-safe when process.cwd changes[33m 593[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmx03j_0ehn045k","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmx03j_0ehn045k","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmx03j_0ehn045k","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmx03j_0ehn045k","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmx03j_0ehn045k","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmx03j_0ehn045k","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmx03j_0ehn045k","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmx03j_0ehn045k","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx03j_0ehn045k","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx03j_0ehn045k","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I7O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I7O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39minfo: patches_fetched_from_remote {"component":"core","context":{"count":1,"sessionId":"bootstrap-contract","tag":"ec67d"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"DISCONNECTED","prevState":"AUTHENTICATING","reason":"bootstrap.license.lifecycle","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"DISCONNECTED","reason":"phase_e_invalid_license_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: invalid license classification blocks readiness before finalization
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_e_invalid_license_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase E: missing license stays observable and explicitly non-blocking for readiness[33m 461[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmx0ij_0qnywcw6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmx0ij_0qnywcw6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmx0ij_0qnywcw6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmx0ij_0qnywcw6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmx0ij_0qnywcw6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmx0ij_0qnywcw6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmx0ij_0qnywcw6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmx0ij_0qnywcw6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx0ij_0qnywcw6","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx0ij_0qnywcw6","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I2O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I2O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39minfo: patches_fetched_from_remote {"component":"core","context":{"count":1,"sessionId":"bootstrap-contract","tag":"ec67d"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"DISCONNECTED","prevState":"AUTHENTICATING","reason":"bootstrap.license.lifecycle","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"DISCONNECTED","reason":"phase_e_expired_license_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase E: expired license classification blocks readiness before finalization
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_e_expired_license_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase E: invalid license classification blocks readiness before finalization[33m 539[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmx0wy_xxwlhzsx","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmx0wy_xxwlhzsx","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmx0wy_xxwlhzsx","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmx0wy_xxwlhzsx","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmx0wy_xxwlhzsx","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmx0wy_xxwlhzsx","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmx0wy_xxwlhzsx","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmx0wy_xxwlhzsx","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx0wy_xxwlhzsx","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx0wy_xxwlhzsx","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I7O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mwarn: wapi_bootstrap_missing_runtime_after_wapi_asset {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mwarn: wapi_bootstrap_missing_runtime_after_launch_asset {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":false,"hasStoreMsg":false,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I7O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase E: expired license classification blocks readiness before finalization[33m 519[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39minfo: patches_fetched_from_remote {"component":"core","context":{"count":1,"sessionId":"bootstrap-contract","tag":"ec67d"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"detail":"No license key resolved for this runtime session.","readinessImpact":"allow_ready","sessionId":"bootstrap-contract","status":"missing"},"timestamp":"I2O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39minfo: patch_lifecycle_complete {"component":"core","context":{"applied":["runtime-bootstrap-overlay","remote-patch-0","init-patch-legacy"],"outcome":"applied","results":[{"description":"Records bootstrap patch attestation after runtime activation.","outcome":"applied","patchId":"runtime-bootstrap-overlay","required":true},{"description":"Remote live patch #0 (tag: ec67d)","outcome":"applied","patchId":"remote-patch-0","required":false},{"description":"Legacy init-patch: webpack module interceptor + Store.sendMessage guard.","outcome":"applied","patchId":"init-patch-legacy","required":true}],"sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39minfo: session_finalization_validated {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_overlay","usable":true},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"READY","prevState":"AUTHENTICATING","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39minfo: client_ready {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"READY","reason":"phase_f_repair_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_f_repair_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmx1ax_70f3yjt6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmx1ax_70f3yjt6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmx1ax_70f3yjt6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmx1ax_70f3yjt6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmx1ax_70f3yjt6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmx1ax_70f3yjt6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmx1ax_70f3yjt6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmx1ax_70f3yjt6","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx1ax_70f3yjt6","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx1ax_70f3yjt6","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I2O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I2O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I3O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I3O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase F: surfaces repairable validation work before readiness instead of hiding it behind success[33m 503[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: patches_fetched_from_remote {"component":"core","context":{"count":1,"sessionId":"bootstrap-contract","tag":"ec67d"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"detail":"No license key resolved for this runtime session.","readinessImpact":"allow_ready","sessionId":"bootstrap-contract","status":"missing"},"timestamp":"I9O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: patch_lifecycle_complete {"component":"core","context":{"applied":["runtime-bootstrap-overlay","remote-patch-0","init-patch-legacy"],"outcome":"applied","results":[{"description":"Records bootstrap patch attestation after runtime activation.","outcome":"applied","patchId":"runtime-bootstrap-overlay","required":true},{"description":"Remote live patch #0 (tag: ec67d)","outcome":"applied","patchId":"remote-patch-0","required":false},{"description":"Legacy init-patch: webpack module interceptor + Store.sendMessage guard.","outcome":"applied","patchId":"init-patch-legacy","required":true}],"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: session_finalization_validated {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_overlay","usable":true},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"READY","prevState":"AUTHENTICATING","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: client_ready {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"READY","reason":"phase_f_broken_method_repair_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_f_broken_method_repair_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmx1tg_3g6rq0et","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmx1tg_3g6rq0et","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmx1tg_3g6rq0et","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmx1tg_3g6rq0et","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmx1tg_3g6rq0et","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmx1tg_3g6rq0et","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmx1tg_3g6rq0et","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmx1tg_3g6rq0et","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx1tg_3g6rq0et","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx1tg_3g6rq0et","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I9O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mwarn: injection_controller_registration_failed {"component":"core","context":{"error":"missing_method","required":true,"scope":"runtime_bridge:ack.changed","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":false,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I9O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mwarn: runtime_activation_deferred {"component":"core","context":{"deferredReason":"required_method_missing","missingMethods":["onAck"],"nextGate":"post_auth_post_injection","requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":false,"validationPhase":"pre_auth_post_injection"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I9O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"fresh_auth","reinjected":true,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"deferredFromPreAuth":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"post_auth_post_injection"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I9O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase F broken-method integrity gate: repairs a recoverable required-method gap before readiness[33m 667[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: patches_fetched_from_remote {"component":"core","context":{"count":1,"sessionId":"bootstrap-contract","tag":"ec67d"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"detail":"No license key resolved for this runtime session.","readinessImpact":"allow_ready","sessionId":"bootstrap-contract","status":"missing"},"timestamp":"I3O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: patch_lifecycle_complete {"component":"core","context":{"applied":["runtime-bootstrap-overlay","remote-patch-0","init-patch-legacy"],"outcome":"applied","results":[{"description":"Records bootstrap patch attestation after runtime activation.","outcome":"applied","patchId":"runtime-bootstrap-overlay","required":true},{"description":"Remote live patch #0 (tag: ec67d)","outcome":"applied","patchId":"remote-patch-0","required":false},{"description":"Legacy init-patch: webpack module interceptor + Store.sendMessage guard.","outcome":"applied","patchId":"init-patch-legacy","required":true}],"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: session_finalization_validated {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_overlay","usable":true},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"READY","prevState":"AUTHENTICATING","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: client_ready {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"READY","reason":"phase_f_broken_method_deferred_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_f_broken_method_deferred_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmx24x_khx72msg","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmx24x_khx72msg","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmx24x_khx72msg","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmx24x_khx72msg","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmx24x_khx72msg","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmx24x_khx72msg","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmx24x_khx72msg","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmx24x_khx72msg","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx24x_khx72msg","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx24x_khx72msg","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I3O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I3O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"DISCONNECTED","prevState":"AUTHENTICATING","reason":"bootstrap.injection.capability","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"DISCONNECTED","reason":"phase_f_broken_method_terminal_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_f_broken_method_terminal_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmx24y_ubzq7c15","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmx24y_ubzq7c15","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmx24y_ubzq7c15","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmx24y_ubzq7c15","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmx24y_ubzq7c15","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmx24y_ubzq7c15","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmx24y_ubzq7c15","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmx24y_ubzq7c15","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx24y_ubzq7c15","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx24y_ubzq7c15","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I3O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"DISCONNECTED","prevState":"AUTHENTICATING","reason":"bootstrap.injection","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"DISCONNECTED","reason":"phase_f_fatal_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_f_fatal_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmx24z_hdeyy21s","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmx24z_hdeyy21s","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmx24z_hdeyy21s","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmx24z_hdeyy21s","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmx24z_hdeyy21s","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmx24z_hdeyy21s","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmx24z_hdeyy21s","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmx24z_hdeyy21s","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx24z_hdeyy21s","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx24z_hdeyy21s","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I3O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I3O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":false,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mwarn: wapi_bootstrap_missing_runtime_after_wapi_asset {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I3O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"fresh_auth","reinjected":true,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: patches_fetched_from_remote {"component":"core","context":{"count":1,"sessionId":"bootstrap-contract","tag":"ec67d"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"detail":"No license key resolved for this runtime session.","readinessImpact":"allow_ready","sessionId":"bootstrap-contract","status":"missing"},"timestamp":"I7O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: patch_lifecycle_complete {"component":"core","context":{"applied":["runtime-bootstrap-overlay","remote-patch-0","init-patch-legacy"],"outcome":"applied","results":[{"description":"Records bootstrap patch attestation after runtime activation.","outcome":"applied","patchId":"runtime-bootstrap-overlay","required":true},{"description":"Remote live patch #0 (tag: ec67d)","outcome":"applied","patchId":"remote-patch-0","required":false},{"description":"Legacy init-patch: webpack module interceptor + Store.sendMessage guard.","outcome":"applied","patchId":"init-patch-legacy","required":true}],"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: session_finalization_validated {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_overlay","usable":true},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"READY","prevState":"AUTHENTICATING","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: client_ready {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"READY","reason":"phase_g_fresh_auth_post_auth_reinject_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_g_fresh_auth_post_auth_reinject_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase F broken-method integrity gate: defers pre-auth required-method gaps so QR/auth polling can proceed before strict post-auth validation[33m 413[2mms[22m[39m
 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase F broken-method integrity gate: terminal required-method gaps block readiness explicitly[32m 2[2mms[22m[39m
 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase F failure classes: required injection failure is classified as a fatal bootstrap blocker[32m 1[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmx2g5_8y7p1ewj","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmx2g5_8y7p1ewj","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmx2g5_8y7p1ewj","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmx2g5_8y7p1ewj","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmx2g5_8y7p1ewj","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmx2g5_8y7p1ewj","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmx2g5_8y7p1ewj","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmx2g5_8y7p1ewj","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx2g5_8y7p1ewj","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx2g5_8y7p1ewj","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I7O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I7O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I7O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase G: fresh auth reruns post-auth reinjection and ripe-session gating before overlays begin[33m 400[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: patches_fetched_from_remote {"component":"core","context":{"count":1,"sessionId":"bootstrap-contract","tag":"ec67d"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"detail":"No license key resolved for this runtime session.","readinessImpact":"allow_ready","sessionId":"bootstrap-contract","status":"missing"},"timestamp":"I9O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: patch_lifecycle_complete {"component":"core","context":{"applied":["runtime-bootstrap-overlay","remote-patch-0","init-patch-legacy"],"outcome":"applied","results":[{"description":"Records bootstrap patch attestation after runtime activation.","outcome":"applied","patchId":"runtime-bootstrap-overlay","required":true},{"description":"Remote live patch #0 (tag: ec67d)","outcome":"applied","patchId":"remote-patch-0","required":false},{"description":"Legacy init-patch: webpack module interceptor + Store.sendMessage guard.","outcome":"applied","patchId":"init-patch-legacy","required":true}],"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: session_finalization_validated {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_overlay","usable":true},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"READY","prevState":"AUTHENTICATING","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: client_ready {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"READY","reason":"phase_g_resumed_session_truthful_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_g_resumed_session_truthful_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmx3bz_aawz2fyc","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmx3bz_aawz2fyc","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmx3bz_aawz2fyc","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmx3bz_aawz2fyc","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmx3bz_aawz2fyc","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmx3bz_aawz2fyc","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmx3bz_aawz2fyc","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmx3bz_aawz2fyc","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx3bz_aawz2fyc","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx3bz_aawz2fyc","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I9O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I9O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I9O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase G: resumed sessions do not regress into extra post-auth reinjection when the authenticated runtime is already truthful[33m 1141[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: patches_fetched_from_remote {"component":"core","context":{"count":1,"sessionId":"bootstrap-contract","tag":"ec67d"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"detail":"No license key resolved for this runtime session.","readinessImpact":"allow_ready","sessionId":"bootstrap-contract","status":"missing"},"timestamp":"I3O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: patch_lifecycle_complete {"component":"core","context":{"applied":["runtime-bootstrap-overlay","remote-patch-0","init-patch-legacy"],"outcome":"applied","results":[{"description":"Records bootstrap patch attestation after runtime activation.","outcome":"applied","patchId":"runtime-bootstrap-overlay","required":true},{"description":"Remote live patch #0 (tag: ec67d)","outcome":"applied","patchId":"remote-patch-0","required":false},{"description":"Legacy init-patch: webpack module interceptor + Store.sendMessage guard.","outcome":"applied","patchId":"init-patch-legacy","required":true}],"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: session_finalization_validated {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_overlay","usable":true},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"READY","prevState":"AUTHENTICATING","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: client_ready {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"READY","reason":"phase_g_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_g_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmx3mz_t3n7c3fh","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmx3mz_t3n7c3fh","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmx3mz_t3n7c3fh","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmx3mz_t3n7c3fh","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmx3mz_t3n7c3fh","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmx3mz_t3n7c3fh","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmx3mz_t3n7c3fh","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmx3mz_t3n7c3fh","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx3mz_t3n7c3fh","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx3mz_t3n7c3fh","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I3O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I3O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I3O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I3O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase G: client.ready does not emit until injection, overlays, validation, and finalization are complete[33m 400[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: patches_fetched_from_remote {"component":"core","context":{"count":1,"sessionId":"bootstrap-contract","tag":"ec67d"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"applied":true,"keyType":"community","readinessImpact":"allow_ready_without_server_unlock","sessionId":"bootstrap-contract","status":"metadata_only"},"timestamp":"I7O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: patch_lifecycle_complete {"component":"core","context":{"applied":["runtime-bootstrap-overlay","remote-patch-0","init-patch-legacy"],"outcome":"applied","results":[{"description":"Records bootstrap patch attestation after runtime activation.","outcome":"applied","patchId":"runtime-bootstrap-overlay","required":true},{"description":"Remote live patch #0 (tag: ec67d)","outcome":"applied","patchId":"remote-patch-0","required":false},{"description":"Legacy init-patch: webpack module interceptor + Store.sendMessage guard.","outcome":"applied","patchId":"init-patch-legacy","required":true}],"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: session_finalization_validated {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_overlay","usable":true},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"READY","prevState":"AUTHENTICATING","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: client_ready {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"READY","reason":"phase_g_hook_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: awaited client finalization hooks complete before client.ready emits
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_g_hook_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmx3y8_ueulsk2o","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmx3y8_ueulsk2o","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmx3y8_ueulsk2o","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmx3y8_ueulsk2o","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmx3y8_ueulsk2o","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmx3y8_ueulsk2o","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmx3y8_ueulsk2o","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmx3y8_ueulsk2o","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx3y8_ueulsk2o","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx3y8_ueulsk2o","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I7O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I7O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":false,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I7O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"DISCONNECTED","prevState":"AUTHENTICATING","reason":"bootstrap.auth.ripe_session_timeout","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"DISCONNECTED","reason":"phase_g_finalize_failure_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phase_g_finalize_failure_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmx3ya_ktbodnth","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmx3ya_ktbodnth","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmx3ya_ktbodnth","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmx3ya_ktbodnth","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmx3ya_ktbodnth","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmx3ya_ktbodnth","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmx3ya_ktbodnth","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmx3ya_ktbodnth","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx3ya_ktbodnth","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx3ya_ktbodnth","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I7O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I7O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":false,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"DISCONNECTED","prevState":"AUTHENTICATING","reason":"bootstrap.auth.invalid_session","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"DISCONNECTED","reason":"invalid_session_classification_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"invalid_session_classification_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmx3yg_cmxfk9t4","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmx3yg_cmxfk9t4","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmx3yg_cmxfk9t4","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmx3yg_cmxfk9t4","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmx3yg_cmxfk9t4","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmx3yg_cmxfk9t4","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmx3yg_cmxfk9t4","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmx3yg_cmxfk9t4","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx3yg_cmxfk9t4","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmx3yg_cmxfk9t4","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I7O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I7O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I7O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":false,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I7O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase G: awaited client finalization hooks complete before client.ready emits[33m 406[2mms[22m[39m
 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mPhase G: pending QR authentication remains a blocked finalization path instead of crashing bootstrap immediately[32m 2[2mms[22m[39m
 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mclassifies invalid session / NUKE distinctly instead of collapsing into auth timeout[32m 6[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"DISCONNECTED","prevState":"AUTHENTICATING","reason":"bootstrap.auth.timeout","sessionId":"bootstrap-contract"},"timestamp":"I8O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"DISCONNECTED","reason":"ignore_nuke_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I8O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I8O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"ignore_nuke_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I8O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmyeei_brovmre7","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmyeei_brovmre7","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmyeei_brovmre7","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmyeei_brovmre7","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmyeei_brovmre7","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmyeei_brovmre7","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmyeei_brovmre7","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmyeei_brovmre7","sessionId":"bootstrap-contract"},"timestamp":"I10O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyeei_brovmre7","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I10O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyeei_brovmre7","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I10O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I10O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I10O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I10O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I10O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I10O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I10O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I10O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":false,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I10O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"DISCONNECTED","prevState":"AUTHENTICATING","reason":"bootstrap.auth.phone_out_of_reach","sessionId":"bootstrap-contract"},"timestamp":"I10O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"DISCONNECTED","reason":"phone_out_of_reach_classification_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mclassifies phone-out-of-reach distinctly from ordinary authentication timeout
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"phone_out_of_reach_classification_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmyehx_4kdxm8d8","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmyehx_4kdxm8d8","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmyehx_4kdxm8d8","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmyehx_4kdxm8d8","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmyehx_4kdxm8d8","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmyehx_4kdxm8d8","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmyehx_4kdxm8d8","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmyehx_4kdxm8d8","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyehx_4kdxm8d8","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyehx_4kdxm8d8","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I0O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I0O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":false,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I0O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mignoreNuke keeps invalid-session detection from aborting bootstrap as a forced NUKE path[33m 60168[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"DISCONNECTED","prevState":"AUTHENTICATING","reason":"bootstrap.auth.timeout","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"DISCONNECTED","reason":"auth_timeout_classification_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"auth_timeout_classification_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmyeif_6gmg23v9","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmyeif_6gmg23v9","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmyeif_6gmg23v9","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmyeif_6gmg23v9","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmyeif_6gmg23v9","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmyeif_6gmg23v9","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmyeif_6gmg23v9","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmyeif_6gmg23v9","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyeif_6gmg23v9","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyeif_6gmg23v9","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I0O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I0O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":false,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: link_code_generated {"component":"core","context":{"attempt":1,"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I0O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"fresh_auth","reinjected":true,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I0O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mclassifies phone-out-of-reach distinctly from ordinary authentication timeout[32m 147[2mms[22m[39m
 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mkeeps ordinary auth timeout distinct when the phone-out-of-reach signal never appears[32m 18[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: patches_fetched_from_remote {"component":"core","context":{"count":1,"sessionId":"bootstrap-contract","tag":"ec67d"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"detail":"No license key resolved for this runtime session.","readinessImpact":"allow_ready","sessionId":"bootstrap-contract","status":"missing"},"timestamp":"I0O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: patch_lifecycle_complete {"component":"core","context":{"applied":["runtime-bootstrap-overlay","remote-patch-0","init-patch-legacy"],"outcome":"applied","results":[{"description":"Records bootstrap patch attestation after runtime activation.","outcome":"applied","patchId":"runtime-bootstrap-overlay","required":true},{"description":"Remote live patch #0 (tag: ec67d)","outcome":"applied","patchId":"remote-patch-0","required":false},{"description":"Legacy init-patch: webpack module interceptor + Store.sendMessage guard.","outcome":"applied","patchId":"init-patch-legacy","required":true}],"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: session_finalization_validated {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_overlay","usable":true},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"READY","prevState":"AUTHENTICATING","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: client_ready {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"READY","reason":"link_code_auth_path_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"link_code_auth_path_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmyfaf_rllcc7il","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmyfaf_rllcc7il","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmyfaf_rllcc7il","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmyfaf_rllcc7il","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmyfaf_rllcc7il","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmyfaf_rllcc7il","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmyfaf_rllcc7il","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmyfaf_rllcc7il","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyfaf_rllcc7il","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyfaf_rllcc7il","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I0O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I0O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":false},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":false,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39minfo: qr_code_generated {"component":"core","context":{"attempt":1,"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"DISCONNECTED","prevState":"AUTHENTICATING","reason":"bootstrap.auth.qr_max","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"DISCONNECTED","reason":"qr_max_classification_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"qr_max_classification_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmyfaq_4k6l3s4p","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmyfaq_4k6l3s4p","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmyfaq_4k6l3s4p","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmyfaq_4k6l3s4p","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmyfaq_4k6l3s4p","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmyfaq_4k6l3s4p","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmyfaq_4k6l3s4p","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmyfaq_4k6l3s4p","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyfaq_4k6l3s4p","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyfaq_4k6l3s4p","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I0O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I0O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"detail":"No license key resolved for this runtime session.","readinessImpact":"allow_ready","sessionId":"bootstrap-contract","status":"missing"},"timestamp":"I0O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39minfo: patch_lifecycle_complete {"component":"core","context":{"applied":["runtime-bootstrap-overlay","remote-patch-0","remote-patch-1","init-patch-legacy"],"outcome":"applied","results":[{"description":"Records bootstrap patch attestation after runtime activation.","outcome":"applied","patchId":"runtime-bootstrap-overlay","required":true},{"description":"Remote live patch #0 (tag: abc12)","outcome":"applied","patchId":"remote-patch-0","required":false},{"description":"Remote live patch #1 (tag: abc12)","outcome":"applied","patchId":"remote-patch-1","required":false},{"description":"Legacy init-patch: webpack module interceptor + Store.sendMessage guard.","outcome":"applied","patchId":"init-patch-legacy","required":true}],"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39minfo: session_finalization_validated {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_overlay","usable":true},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"READY","prevState":"AUTHENTICATING","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39minfo: client_ready {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"READY","reason":"payload_depth_patch_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"payload_depth_patch_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmyfaw_fkz2wk3k","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmyfaw_fkz2wk3k","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmyfaw_fkz2wk3k","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmyfaw_fkz2wk3k","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmyfaw_fkz2wk3k","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmyfaw_fkz2wk3k","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmyfaw_fkz2wk3k","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmyfaw_fkz2wk3k","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyfaw_fkz2wk3k","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyfaw_fkz2wk3k","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I0O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I0O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I1O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"applied":true,"keyType":"community","readinessImpact":"allow_ready_without_server_unlock","sessionId":"bootstrap-contract","status":"metadata_only"},"timestamp":"I1O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39minfo: patch_lifecycle_complete {"component":"core","context":{"applied":["runtime-bootstrap-overlay","init-patch-legacy"],"outcome":"applied","results":[{"description":"Records bootstrap patch attestation after runtime activation.","outcome":"applied","patchId":"runtime-bootstrap-overlay","required":true},{"description":"Legacy init-patch: webpack module interceptor + Store.sendMessage guard.","outcome":"applied","patchId":"init-patch-legacy","required":true}],"sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39minfo: session_finalization_validated {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_overlay","usable":true},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"READY","prevState":"AUTHENTICATING","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39minfo: client_ready {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"READY","reason":"deferred_init_patch_order_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mruns the deferred init patch only after license injection succeeds
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"deferred_init_patch_order_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmyfb2_5w9qzvpf","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmyfb2_5w9qzvpf","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmyfb2_5w9qzvpf","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmyfb2_5w9qzvpf","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmyfb2_5w9qzvpf","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmyfb2_5w9qzvpf","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmyfb2_5w9qzvpf","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmyfb2_5w9qzvpf","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyfb2_5w9qzvpf","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyfb2_5w9qzvpf","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I1O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I1O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"unknown","sessionId":"bootstrap-contract","waVersion":"unknown"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"applied":true,"keyType":"community","readinessImpact":"allow_ready_without_server_unlock","sessionId":"bootstrap-contract","status":"metadata_only"},"timestamp":"I1O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"DISCONNECTED","prevState":"AUTHENTICATING","reason":"bootstrap.patch.lifecycle","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"DISCONNECTED","reason":"deferred_init_patch_failure_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: remote patch fetch[2m > [22m[2mblocks readiness when the required deferred init patch fails
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"deferred_init_patch_failure_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmyfce_jzshlfay","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmyfce_jzshlfay","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmyfce_jzshlfay","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmyfce_jzshlfay","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmyfce_jzshlfay","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmyfce_jzshlfay","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmyfce_jzshlfay","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmyfce_jzshlfay","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyfce_jzshlfay","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyfce_jzshlfay","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I1O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I1O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"***c.us","sessionId":"bootstrap-contract","waVersion":"2.2350.0"},"timestamp":"I1O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39minfo: license_server_validation_success {"component":"core","context":{"maskedKey":"*******************2345","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"DISCONNECTED","prevState":"AUTHENTICATING","reason":"bootstrap.license.apply","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"DISCONNECTED","reason":"payload_depth_license_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mpasses host number to license validation server for round-trip check
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"payload_depth_license_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22msupports the retained link-code auth path explicitly when the runtime exposes window.linkCode[33m 1000[2mms[22m[39m
 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22menforces qrMax explicitly instead of collapsing repeated QR refreshes into a later timeout[32m 17[2mms[22m[39m
 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mpayload depth: remote patch fetch[2m > [22mincludes remote patches in preloaded artifacts when cdn.openwa.dev responds[32m 7[2mms[22m[39m
 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mpayload depth: remote patch fetch[2m > [22mruns the deferred init patch only after license injection succeeds[32m 6[2mms[22m[39m
 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mpayload depth: remote patch fetch[2m > [22mblocks readiness when the required deferred init patch fails[32m 47[2mms[22m[39m
[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STARTING","prevState":"DISCONNECTED","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39minfo: page_request_interception_enabled {"component":"core","context":{"blockAssets":false,"blockCrashLogs":true,"safeMode":false,"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"ProgressBarEvent","generation":"ctx_mnkmyfxr_ki1kcd0l","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"CriticalInternalMessage","generation":"ctx_mnkmyfxr_ki1kcd0l","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeReplacementDetected","generation":"ctx_mnkmyfxr_ki1kcd0l","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeMessageReceived","generation":"ctx_mnkmyfxr_ki1kcd0l","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAnyMessage","generation":"ctx_mnkmyfxr_ki1kcd0l","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAckChanged","generation":"ctx_mnkmyfxr_ki1kcd0l","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeStateChanged","generation":"ctx_mnkmyfxr_ki1kcd0l","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: injection_controller_binding_registered {"component":"core","context":{"binding":"OpenWA_RuntimeAddedToGroup","generation":"ctx_mnkmyfxr_ki1kcd0l","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyfxr_ki1kcd0l","initScript":"prog_observer","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: injection_controller_preload_registered {"component":"core","context":{"generation":"ctx_mnkmyfxr_ki1kcd0l","initScript":"runtime_replacement_observer","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: exposed_page_callbacks {"component":"core","context":{"functions":["ProgressBarEvent","CriticalInternalMessage","OpenWA_RuntimeMessageReceived","OpenWA_RuntimeAnyMessage","OpenWA_RuntimeAckChanged","OpenWA_RuntimeStateChanged","OpenWA_RuntimeAddedToGroup"],"sessionId":"bootstrap-contract"},"timestamp":"I9O"}
info: prog_observer_registered_pre_navigation {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39minfo: transport_initialized {"component":"core","context":{"driverName":"fake-driver","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39minfo: transport_navigated {"component":"core","context":{"sessionId":"bootstrap-contract","url":"https://web.whatsapp.com"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"AUTHENTICATING","prevState":"STARTING","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39minfo: runtime_event_bridge_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I9O"}
info: wapi_injection_probe {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39minfo: runtime_activation_ready {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_injection","usable":true,"validationPhase":"pre_auth_post_injection"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39minfo: runtime_recovery_completed_without_reinject {"component":"core","context":{"sessionId":"bootstrap-contract","trigger":"post_authentication"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39minfo: post_auth_runtime_reconciled {"component":"core","context":{"hasRuntime":true,"hasStoreMsg":true,"path":"resumed_session","reinjected":false,"ripeSessionLoaded":true,"sessionId":"bootstrap-contract","sessionLoaded":true},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39minfo: session_debug_info_extracted {"component":"core","context":{"hostNumber":"***c.us","sessionId":"bootstrap-contract","waVersion":"2.2350.0"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39minfo: license_lifecycle_complete {"component":"core","context":{"applied":true,"keyType":"community","readinessImpact":"allow_ready_without_server_unlock","sessionId":"bootstrap-contract","status":"metadata_only"},"timestamp":"I9O"}
info: applying_deferred_init_patch {"component":"core","context":{"patchId":"init-patch-legacy","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39minfo: patch_lifecycle_complete {"component":"core","context":{"applied":["runtime-bootstrap-overlay","init-patch-legacy"],"outcome":"applied","results":[{"description":"Records bootstrap patch attestation after runtime activation.","outcome":"applied","patchId":"runtime-bootstrap-overlay","required":true},{"description":"Legacy init-patch: webpack module interceptor + Store.sendMessage guard.","outcome":"applied","patchId":"init-patch-legacy","required":true}],"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39minfo: session_finalization_validated {"component":"core","context":{"bridgeReady":true,"hasRuntime":true,"hasStoreMsg":true,"missingMethods":[],"repairable":false,"requiredMethods":["onAck","onAnyMessage","onStateChanged"],"sessionId":"bootstrap-contract","sessionLoaded":true,"stage":"post_overlay","usable":true},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"READY","prevState":"AUTHENTICATING","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39minfo: client_ready {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39mdebug: session_state_changed {"component":"core","context":{"nextState":"STOPPED","prevState":"READY","reason":"payload_depth_fallback_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39minfo: transport_closed {"component":"core","context":{"sessionId":"bootstrap-contract"},"timestamp":"I9O"}

[90mstdout[2m | test/unit/bootstrapContract.test.ts[2m > [22m[2mbootstrap contract harness[2m > [22m[2mpayload depth: license server validation[2m > [22m[2mclassifies local_metadata fallback distinctly from a server-confirmed license unlock
[22m[39minfo: client_stopped {"component":"core","context":{"reason":"payload_depth_fallback_cleanup","sessionId":"bootstrap-contract"},"timestamp":"I9O"}

 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mpayload depth: license server validation[2m > [22mpasses host number to license validation server for round-trip check[33m 770[2mms[22m[39m
 [32m✓[39m test/unit/bootstrapContract.test.ts[2m > [22mbootstrap contract harness[2m > [22mpayload depth: license server validation[2m > [22mclassifies local_metadata fallback distinctly from a server-confirmed license unlock[32m 4[2mms[22m[39m

[2m Test Files [22m [1m[32m11 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (12)[39m
[2m      Tests [22m [1m[32m71 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (72)[39m
[2m   Start at [22m 20:56:54
[2m   Duration [22m 71.08s[2m (transform 5.24s, setup 0ms, import 9.67s, tests 69.52s, environment 3ms)[22m

