code wiki / (root) / nx_d001census.nx

nx_d001census.nx

buildroot/runtime/nx_d001census.nx

10890 B225 linesdepth 5pulls 5 transitivereach 0 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_d001census.nx -- SIZE THE D001 POPULATION INSTEAD OF DISCOVERING IT ONE REFUSED PROMOTE AT A TIME. /api/promote REFUSES a gate that rolls its own verdict (D001): nx_gate_green cannot judge it and it records no harness.jrnl frame, so flake and erosion stay invisible for it. Correct guard. But it fires at PROMOTE time, one gate at a time, so the only way to learn the size of the problem is to keep bouncing off it -- I hit it four times before asking how many there are. *A GUARD THAT ONLY SPEAKS AT THE MOMENT OF ACTION TEACHES YOU THE POPULATION ONE REFUSAL AT A TIME.* This partitions every gate in the tree into the three states that have DIFFERENT REMEDIES, which is the whole point -- "D001" as one bucket is not actionable: OK inherits_base=1 -- nothing to do MIGRATABLE inherits=0, emits_verdict=1 -- nx_gate_dry_apply CAN rewrite it, automatable NEEDS-ANCHOR inherits=0, emits_verdict=0 -- dry_apply SKIPs it ("no verdict=GREEN tail"); needs the anchor rung, a source edit in the gate-owner lane. MEASURED: all 4 I hit are here. PROBE-FAIL is its own bucket: *AN UNPARSED PROBE MUST NEVER FALL INTO A KNOWN STATE*, because the bucket it lands in becomes the number somebody plans a migration campaign against. COMPOSES nx_gate_migrate probe -- never re-derives "is this compliant", because a second implementation of that judgement would drift from the one /api/promote actually enforces, and would disagree exactly when it mattered. ⚠ the probe BUILDS each gate (`builds=1`), so this contends for per-target build leases like any other sweep: bounded by an explicit max, resumable by skip, deadline per probe. nx_d001census <max> [skip] [timeout_ms] [dir] license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0

dependencies 1 imports · 0 importers

nx_tool_run.nx nx_d001census.nx

imports: nx_tool_run.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main dce dc_atoi dcp dc_ends tr_run_capture_cwd tr_run_capture_core tr_run_capture_core_owned tr_run_capture_core_eviden sys_mmap_shared tr_clock_ms sys_clock_gettime_mono sys_munmap sys_pipe2 sys_fork sys_close sys_default_signal sys_mmap sys_bind_parent_lifetime sys_prctl sys_exit sys_setpgid tr_capture_redirect sys_dup3 sys_chdir sys_mmap ↻ sys_close_inherited sys_close_inherited_proc sys_execve tr_exec_failed sys_write sys_exit ↻ tr_watchdog_start sys_mmap ↻ sys_pipe2 ↻ sys_munmap ↻ sys_fork ↻ tr_watchdog_child sys_exit ↻ sys_close ↻

structs

none

consts

29const DC_HOST: *u8 = "/volume1/homes/elderwesto/nishihost"
30const DC_PROBE: *u8 = "/volume1/homes/elderwesto/nishihost/nx_gate_migrate.elf"
31const DC_DRY: *u8 = "/volume1/homes/elderwesto/nishihost/nx_gate_dry_apply.elf"
32const DC_DIR: *u8 = "/volume1/homes/elderwesto/nishihost/buildroot/runtime"
33const DC_DIRBUF: i64 = 262144
34const DC_RECLEN_OFF: i64 = 16
35const DC_NAME_OFF: i64 = 19
36const DC_CAP: i64 = 65536
37const DC_DEF_TMO: i64 = 180000

functions

39func dcp(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
called by 2: dcnmain
40func dce(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(2,s,n); return 0 }
called by 1: main
41func dcn(v: i64) -> i64
called by 1: main calls 1: dcp
54func dc_atoi(s: *u8) -> i64
called by 1: main
61func dc_ends(nm: *u8, sfx: *u8) -> i64
called by 1: main
73func agmig(d: *u8, o: i64, s: *u8) -> i64 { var x: i64=o; var i: i64=0; while s[i]!=(0 as u8){d[x]=s[i];x=x+1;i=i+1} return x }
called by 1: main
75func dc_has(buf: *u8, n: i64, ndl: *u8) -> i64
called by 1: main
90func dc_flag(buf: *u8, n: i64, key: *u8) -> i64
called by 1: main
105func main(argc: i64, argv: *i64) -> i64