Wire the Node executor's degraded operations to the side-channel from the core issue.
src/detached.ts currently drops updateProgress and writeTaskLog with a one-time warning. Both should reach the executor handle instead — the same shape isCancelRequested already uses to expose frame-delivered cancels to a running handler, so the seam exists.
getSetting keeps answering null: createTaskCallback's middlewareFor should take its disable list from the job frame rather than from MiddlewareDisableStore, which has no storage to read on an executor.
Durations and numeric fields stay in the Node conventions already used by ExecutorRunOptions.
Done when
test/worker/executorAttach.test.ts asserts, against the hermetic scheduler: currentJob().setProgress() produces a progress frame; currentJob().publish() produces a task_log at level result; and a middleware named in the job frame's disable list does not run. The gated executorAttachServer.test.ts confirms progress reaching storage through the real binary.
Parent issue carries the rationale.
Wire the Node executor's degraded operations to the side-channel from the core issue.
src/detached.tscurrently dropsupdateProgressandwriteTaskLogwith a one-time warning. Both should reach the executor handle instead — the same shapeisCancelRequestedalready uses to expose frame-delivered cancels to a running handler, so the seam exists.getSettingkeeps answeringnull:createTaskCallback'smiddlewareForshould take its disable list from the job frame rather than fromMiddlewareDisableStore, which has no storage to read on an executor.Durations and numeric fields stay in the Node conventions already used by
ExecutorRunOptions.Done when
test/worker/executorAttach.test.tsasserts, against the hermetic scheduler:currentJob().setProgress()produces aprogressframe;currentJob().publish()produces atask_logat levelresult; and a middleware named in the job frame's disable list does not run. The gatedexecutorAttachServer.test.tsconfirms progress reaching storage through the real binary.Parent issue carries the rationale.