code wiki / _hdl_build / nx_job_launch_bound.nx

nx_job_launch_bound.nx

buildroot/runtime/_hdl_build/nx_job_launch_bound.nx

3689 B72 linesdepth 2pulls 2 transitivereach 2 importersview sourcekind librarytopic job
docsdependenciesstructsconstsfunctions

about

nx_job_launch_bound.nx -- the never-brick bound on which organs may be ASYNC-LAUNCHED. WHY THIS EXISTS: nx_job_run refused every organ whose name did not contain "research_fetch", with its own comment naming the broader set a filed rung. That single substring is why the API-first doctrine still has no route that runs a general organ, and why every generator in the ecosystem falls back to shell. Widening it is the fix; widening it WITHOUT a bound would be the brick. THE REAL SECURITY BOUNDARY IS NOT HERE. nx_job_run already requires the name to match a row in tool_allowlist.conf -- a human vetted every launchable organ GREEN -- and already confines output to /tmp with no "..". This lib adds the missing NEVER-BRICK half: refuse the CLASSES that either outlive the call (daemons/servers never exit, so an async launch wedges the slot forever) or reach the control plane (deploy/promote/restart/kill/mgmt/hostctl/supervisor). That is the same reasoning /api/gate_run states for bounding itself to verifiers, applied to generators. DENY-BY-CLASS, not allow-by-one-name: a new generator is launchable the day it is allowlisted, with no edit here, while a new daemon is refused by default. A rule nothing has to remember beats a list somebody must maintain. license_tier: ORIGINAL No hw writes (Rule 26).

dependencies 1 imports · 2 importers

nx_syscalls.nx nx_job_launch_bound.nx nx_job_launch_bound_gate.nx nx_job_run.nx

imports: nx_syscalls.nx

imported by: nx_job_launch_bound_gate.nxnx_job_run.nx

structs

none

consts

30const JLB_US: i64 = 95
31const JLB_NUL: i64 = 0

functions

34func jlb_seg_starts(hay: *u8, s: i64, stem: *u8) -> i64
called by 1: jlb_seg_prefix
44func jlb_seg_prefix(name: *u8, stem: *u8) -> i64
called by 1: jlb_denied calls 1: jlb_seg_starts
59func jlb_denied(name: *u8) -> i64
called by 3: jb_allowjb_denymain calls 1: jlb_seg_prefix