nx_asset_visibility_gate.nx
buildroot/runtime/nx_asset_visibility_gate.nx
about
nx_asset_visibility_gate.nx -- KAT + TEETH for nx_asset_visibility (flag public/private BY SOURCE),
now reading the policy from the NATIVE seg_store (no TSV). The gate SEEDS its own isolated /tmp
policy store (vis_seed) and reads via the _p variants, so it never touches the production policy.
(a) gallery location -> operator-only, NOT public (b) web_assets/ -> public
(c) downloaded -> private, NOT public (d) type=doc fallback -> public
TEETH: (e) UNKNOWN source -> operator-only (fail-closed) (f) NO policy store -> operator-only
bridge: gallery->OWNER, wiki->ANON, downloaded->PRO (plugs into R6/aa_decide)
Verdict appended to knowledge/status/asset_visibility_gate.log (additive law #13).
expect_exit: 0 license_tier: ORIGINAL
dependencies 6 imports · 0 importers
imports: nx_syscalls.nxnx_canon_cid.nxnx_asset_record.nxnx_asset_access.nxnx_asset_visibility.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
| none |
functions
| 19 | func g_puts(logfd: i64, s: *u8) -> i64 |
| 26 | func g_putn(logfd: i64, v: i64) -> i64 |
| 40 | func g_streq(a: *u8, b: *u8) -> i64 called by 1: expect_vis |
| 45 | func E() -> *u8 { return "\x00" as *u8 } called by 1: mk_src |
| 46 | func sset(a: *i64, i: i64, s: *u8) -> i64 { a[i] = s as i64; return 0 } called by 1: mk_src |
| 48 | func mk_src(typ: *u8, prov: *u8, loc: *u8, out: *u8) -> i64 |
| 64 | func gt_prefix(prefix: *u8, base: *u8) -> i64 |
| 80 | func expect_vis(logfd: i64, label: *u8, rec: *u8, n: i64, pp: *u8, want_viz: *u8, want_pub: i64) -> i64 |
| 91 | func main() -> i64 |