diff --git a/Cargo.lock b/Cargo.lock
index a2e1886a..55f7d293 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1160,7 +1160,7 @@ dependencies = [
[[package]]
name = "oxide_builtins"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"chrono",
"fast-float",
@@ -1185,7 +1185,7 @@ dependencies = [
[[package]]
name = "oxide_bytecode"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"num-bigint",
"oxide_log",
@@ -1193,7 +1193,7 @@ dependencies = [
[[package]]
name = "oxide_cfg"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"oxide_bytecode",
"oxide_emit",
@@ -1204,7 +1204,7 @@ dependencies = [
[[package]]
name = "oxide_cli"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"ansi_term",
"bumpalo",
@@ -1226,7 +1226,7 @@ dependencies = [
[[package]]
name = "oxide_code_cache"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"lru",
"oxide_bytecode",
@@ -1235,7 +1235,7 @@ dependencies = [
[[package]]
name = "oxide_compiler"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"oxide_bytecode",
"oxide_cfg",
@@ -1255,7 +1255,7 @@ dependencies = [
[[package]]
name = "oxide_dce"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"oxide_bytecode",
"oxide_cfg",
@@ -1269,7 +1269,7 @@ dependencies = [
[[package]]
name = "oxide_emit"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"num-bigint",
"oxc_allocator",
@@ -1284,7 +1284,7 @@ dependencies = [
[[package]]
name = "oxide_engine"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"oxide_bytecode",
"oxide_compiler",
@@ -1296,7 +1296,7 @@ dependencies = [
[[package]]
name = "oxide_ir"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"oxide_bytecode",
"oxide_log",
@@ -1305,7 +1305,7 @@ dependencies = [
[[package]]
name = "oxide_kernel"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"bumpalo",
"dashmap",
@@ -1319,7 +1319,7 @@ dependencies = [
[[package]]
name = "oxide_liveness"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"oxide_bytecode",
"oxide_cfg",
@@ -1331,7 +1331,7 @@ dependencies = [
[[package]]
name = "oxide_log"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"tracing",
"tracing-appender",
@@ -1340,7 +1340,7 @@ dependencies = [
[[package]]
name = "oxide_parser"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"oxc_allocator",
"oxc_ast",
@@ -1355,7 +1355,7 @@ dependencies = [
[[package]]
name = "oxide_regalloc"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"oxide_bytecode",
"oxide_cfg",
@@ -1371,7 +1371,7 @@ dependencies = [
[[package]]
name = "oxide_runtime_api"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"num-bigint",
"num-traits",
@@ -1384,7 +1384,7 @@ dependencies = [
[[package]]
name = "oxide_test262"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"oxide_bytecode",
"oxide_compiler",
@@ -1402,7 +1402,7 @@ dependencies = [
[[package]]
name = "oxide_types"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"bumpalo",
"dashmap",
@@ -1415,7 +1415,7 @@ dependencies = [
[[package]]
name = "oxide_vm"
-version = "0.8.93"
+version = "0.8.94"
dependencies = [
"bumpalo",
"chrono",
diff --git a/Cargo.toml b/Cargo.toml
index 1a44997c..3bebf681 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -23,7 +23,7 @@ members = [
]
[workspace.package]
-version = "0.8.93"
+version = "0.8.94"
edition = "2021"
license = "MIT"
rust-version = "1.80"
diff --git a/crates/oxide_vm/src/worker/bindings.rs b/crates/oxide_vm/src/worker/bindings.rs
index b60ebfe9..e77d9872 100644
--- a/crates/oxide_vm/src/worker/bindings.rs
+++ b/crates/oxide_vm/src/worker/bindings.rs
@@ -14,7 +14,7 @@
use std::cell::{Cell, RefCell};
-use oxide_builtins::message_value::{detach_message, MessageValue};
+use oxide_builtins::message_value::detach_message;
use oxide_kernel::message_queue::Sender;
use oxide_kernel::shape_forge::EMPTY_SHAPE_ID;
use oxide_runtime_api::{NativeResult, ProtoKind, VmHost};
@@ -23,10 +23,12 @@ use oxide_types::value::JsValue;
use crate::vm::Vm;
+use super::WorkerOutMail;
+
// worker → 主线程输出通道(worker realm 专用,`worker_event_loop` 建 Vm 后注入)。
// thread-local:worker 线程独占,不跨线程共享。主 realm 的 Vm 不注入(恒 `None`)。
thread_local! {
- static WORKER_OUT_TX: RefCell