code wiki / (root) / nx_media_ingest_pipeline_gate.nx

nx_media_ingest_pipeline_gate.nx

buildroot/runtime/nx_media_ingest_pipeline_gate.nx

3559 B57 linesdepth 3pulls 4 transitivereach 0 importersview sourcekind gate/prooftopic media
docsdependenciesstructsconstsfunctions

about

nx_media_ingest_pipeline_gate.nx -- teeth for the keystone pipeline's path resolver + always-inform contract. license_tier: ORIGINAL D001 MIGRATION 2026-09-01 (/compare/mediaingest). This gate was one of FOUR in this domain that the matrix header listed as "candidate gates already in tree" and that had NO ELF AT ALL (exit 127). The reason was not neglect: /api/promote REFUSES a gate that rolls its own verdict, so the source could never become an artifact, so the domain's own evidence base was a list of names. The refusal was correct and the fix is the migration, never the allow_own_verdict escape -- that escape ships a gate whose outcome nothing can read. WHAT CHANGED AND WHAT DID NOT. The four subjects, their order and their assertions are byte-for-byte the same checks; only the verdict machinery moved from a hand-rolled pass/tot pair onto nx_gate_verdict: - gv_ctr/gv_check make DECLARED == EXECUTED by construction. The hand-rolled version could print "pass=4/4" while a tooth had silently stopped running, because the same code incremented both numbers. - the exit code is now produced by gv_verdict, so /api/gate_run and nx_gate_green can both READ the outcome, and the run records a harness.jrnl frame -- without which flake and erosion are invisible for this gate specifically. - T3 is renamed to say it is a NEGATIVE CONTROL. It always was one; it was invisible to the L2 census purely by naming, which costs nothing to fix and makes it countable. The old main() printed verdict=GREEN/RED and exited 0/1, so this migration does not CHANGE the verdict for any input -- it makes the same verdict legible to the judge.

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_media_ingest_pipeline.nx nx_gate_verdict.nx nx_media_ingest_pipeline_gate.

imports: nx_syscalls.nxnx_media_ingest_pipeline.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

main gv_head gv_puts sys_write gv_ctr sys_mmap nxa_die sys_write ↻ sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable sys_write ↻ nxa_dump_sizes sys_write ↻ sys_mmap ↻ mp_join mp_cat g_streq gv_puts ↻ gv_check gv_puts ↻ mp_resolve mp_join ↻ mp_exists sys_openat_rd sys_close mp_exists ↻ gv_verdict gv_note_bare_rate gv_bare_rate gv_at gv_obj_has_n gv_at ↻ gv_puts ↻

structs

none

consts

none

functions

25func g_streq(a: *u8, b: *u8) -> i64 { var i: i64 = 0; while a[i] != (0 as u8) { if a[i] != b[i] { return 0 } i = i + 1 } if b[i] != (0 as u8) { return 0 } return 1 }
called by 1: main
27func main() -> i64