2026-08-31 (context axis + link-map) - a third provenance axis, and where module introspection dies in payload mode

Added OBS|context|<delivery>/<generation> next to OBS|build (D275): the measured environment a run happened in, orthogonal to OBS_FROM_*. It exists because the same payload binary reports different things in the ps4-compat host vs an injected native process and build cannot tell them apart. Generation is read by walking the runtime linker's link-map (obs_linkmap_walk, runtime.c, FreeBSD <link.h> offsets, syscall-free), which also backs the new 111-modlink section that dumps the full inventory - the answer 110-modules cannot give because sceKernelGetModuleInfo is refused (0x80020016 for every size, 0x160 included). Surprise: on the 36,361-record payload run the link-map walk returned nothing - context read payload/unknown-gpu. It shares the own-ELF-header find with the ELF-scan resolver, so it fails exactly when imports do (this build's unbound-imports payload mode). Added a reason out-param so the next run says which stage (own ELF header not resident = same cause as unbound imports; DT_DEBUG not populated = a loader that never processed this object). Confirms the strategic read: payload mode denies both symbol resolution and link-map introspection; the native-host injector is where both come back, and context will read payload/ps5-native when it does. make host/make module green; no new imports. NB make check currently blocks on an unrelated self_header.gen.h drift from a concurrent selfheader.rs edit - not this change.