nx_dupname_gate.nx
buildroot/runtime/nx_dupname_gate.nx
about
nx_dupname_gate.nx -- THE ENTRY POINT nx_janitor_dupname NEVER HAD.
nx_janitor_dupname.nx carries a complete, careful shadow-collision census (jdn_scan / jdn_collisions /
jdn_pair_differs) and NO `func main`, so nothing in the ecosystem could ever run it: building it standalone
answers nxasm rc=102 "UNDEFINED label: main". A capability with no entry point is indistinguishable from a
capability that does not exist -- it greps as present, it reviews as done, and it can never fire.
LAW: A LIB WITH NO IMPORTER IS AN UNRUNNABLE CAPABILITY THAT SCORES AS A BUILT ONE.
TWO THINGS THIS DRIVER MUST SUPPLY, both of which the lib legitimately leaves to its caller:
1. CWD. jdn_scan opens the literal paths "runtime/_hdl_build" and "runtime", which only resolve with
cwd=buildroot -- the working directory nx_sov_build_run uses. /api/gate_run executes from the nishihost
root, so without the chdir both opens fail, jdn_collect returns 0, and the census would report ZERO
collisions: a VACUOUS GREEN produced by looking at nothing.
2. A NON-VACUITY REFUSAL. So this gate REFUSES unless it sees files in BOTH dirs. An instrument that
cannot find its corpus must say so, never report zero (the rule nx_routeguard and nx_gatebuilt_gate
already follow).
WHY THE COLLISION SET IS SPLIT BY CONTENT, not just counted: nx_sov_build_run probes _hdl_build FIRST, so a
duplicated basename means the runtime copy NEVER COMPILES. If the two files are byte-identical that is
merely redundant (COPY); if they DIFFER, you edit one and build the other, which is the bug that shipped
TWO nx_sovereignty_audit.nx. Only DIFFERING pairs are a defect, so only they set the verdict.
I NEEDED THIS MEASUREMENT AND GOT IT WRONG TWICE BY HAND FIRST (2026-08-07): nx_shelltool glob RECURSES, so
intersecting buildroot/runtime against runtime/_hdl_build compared a set with its own superset (97pc, absurd);
and the second attempt read a list the tool had honestly marked NX-TRUNCATED at capture_cap=163840 while my
own filter discarded the warning line. ★A DECLARED TRUNCATION YOU FILTER OUT OF YOUR VIEW IS A SILENT ONE.
license_tier: ORIGINAL Read-only: getdents + reads, writes nothing. (Rule 26) expect_exit: 0
dependencies 3 imports · 0 importers
imports: nx_syscalls.nxnx_janitor_dupname.nxnx_gate_verdict.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
| 31 | const DG_BUILDROOT: *u8 = "/volume1/homes/elderwesto/nishihost/buildroot" |
| 32 | const DG_FN_BYTES: i64 = 2097152 |
| 33 | const DG_FN_MAX: i64 = 30000 |
| 34 | const DG_RDCAP: i64 = 262144 |
| 35 | const DG_MAXSHOW: i64 = 20 // capped list of DIFFERING pairs; the cap is printed |
| 36 | const DG_CMP_CAP: i64 = 600 // max content comparisons; declared, never silent |
functions
| 38 | func main(argc: i64, argv: *i64) -> i64 |