Async job runner — eats the async-fetch >15 s edge-timeout debt, the good-form way. Deployed end-to-end over the sovereign MCP + mgmt API, zero shell.
*_research_fetch organs (web crawls of 14+ URLs over sovereign TLS) run longer than the edge's ~15 s synchronous window. Called directly over /mcp, the client times out and gets HTML mid-fetch even though the organ completes server-side. nx_job_run forks the organ detached, redirects its output to a scratch file, and returns a job handle immediately — so the caller never blocks and the crawl finishes async.*research_fetch* names — cannot reach write/control organs (nx_store_put, nx_fs_write, nx_mgmt) at all.tool_allowlist.conf — same trust boundary as nx_plan_run; never an arbitrary path./tmp/ with no .. — writes land only on disposable scratch. Never bricks (rule 26).1 rc=0 JOB-STARTED pid=8037 tool=nx_supply_research_fetch elf=/…/nx_supply_research_fetch.elf out=/tmp/nxjob_supply.out 2 rc=6 REFUSED: only *research_fetch* organs are async-launchable
Step 1: resolved name → GREEN elf, passed the family gate, forked, returned immediately. Step 2: the guard refused a non-fetch tool by construction.
== A. SUPPLY CHAIN & LOGISTICS == nishi-hs sh+kex=37ms certloop=967ms fin=1ms nishi-xfer recv=43ms dec=56ms cl-stop https://en.wikipedia.org/wiki/Supply_chain … Supply_chain_management · Global_value_chain · Logistics · Containerization · Incoterms · Freight_transport · Container_ship · Port == B. TRADE, TARIFFS & TAX == … Tariff · Section_301 · Trade_war · Customs · Dumping
A ~15 s, 14+ URL sovereign-TLS crawl — exactly the workload that used to time out — completed after the caller already returned.
| Seq | Sev | Finding |
|---|---|---|
| 191 | 5 | Fetch organs crawl but SAVE-FAIL — response bodies not persisted (every URL status= bytes=). Affects all fetch-derived atlas/catalog/market data. Root = fetch save path, not the runner. |
| 192 | 3 | Runner is fetch-scoped via a substring gate; the broader async-safe set needs a data-driven job-launch allowlist (rule 11). |
| MCP tool | nx_job_run — registered, allowlist hot-read, swept into tools/list |
| Binary | nx_job_run.elf · 14 610 B · built + promoted on-NAS via /api |
| Workflow | runnable via nx_plan_run · frontier F350 (platform, done) |
| RACI | lane jobrunner — R/A engineer · C ops · I operator |
| Source | buildroot/runtime/_hdl_build/nx_job_run.nx · imports nx_syscalls only |