code wiki / _hdl_build / nx_attempt_loop.nx
nx_attempt_loop.nx
buildroot/runtime/_hdl_build/nx_attempt_loop.nx
about
nx_attempt_loop.nx -- the WARDEN's team-attempt loop over the assignment
queue (X-Q-003 rung 1; spec ADDENDUM Q3 "team-attempt loop"). NOTE the
basename nx_work_dispatcher that nx_assign_next's header reserved for Q3
was already taken 2026-06-05 by the governor-era policy lib (imported by
nx_assignments_run/nx_team_console), so Q3 ships under the spec's own
words instead -- the older lib is untouched.
One call = one beat: route the Conductor's pick. EXEC-recipe rows are
attempted hands-off (durable lane build+run under a conf deadline,
hang-proof via nx_guarded_run) and judged ONLY by nx_reconcile's evidence
flip -- never by the recipe's exit code (the fake-green class dies here).
Uncovered rows are RAISED (TODO->NOVEL = the tutor batch, "a raised-hand
row instead of a silent stall") and the best covered row is attempted in
the same beat, so a raise never wastes a beat. ASSIGNRESULT rows append
to assign_next.log (one marching-order + outcomes stream).
Policy lives in nx_wd_core.nx; this is the thin real-paths main (the pulse
runs it arg-free; the gate drives the core on scratch paths).
exit 0 = healthy beat (attempt GREEN, raise, or idle)
exit 1 = attempt RED (row flipped RED; queue-health escalates)
exit 101 = queue missing
license_tier: ORIGINAL
dependencies 1 imports · 0 importers
imports: nx_wd_core.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| none |
functions
| 25 | func main() -> i64 |