nx_session_summary.nx
buildroot/runtime/nx_session_summary.nx
about
nx_session_summary.nx -- periodic session-end summary emitter.
Per [[feedback-hunter-gatherer-meta-primitives-outward-inward-axes]]
"every session emits both a hunt-log AND a gather-log entry or
it's a non-session." The session-summary primitive emits a
structured aggregate AT session boundary so the operator can read
"what happened this session" in one shot.
Composes:
nx_hunter -- kills + active + by-pillar counts
nx_gatherer -- yields + by-kind counts
nx_audit_dashboard -- attention indicators
nx_book -- entries added this session
nx_provenance_chain -- transforms run this session
nx_session_imbalance_q10 (gather_journal) -- hunt/gather balance
dependencies 2 imports · 2 importers
imports: nx_syscalls.nxnx_tier.nx
imported by: nx_audit_compose_test.nxnx_session_summary_test.nx
structs
| 33 | struct NxSessionSummary |
consts
| 20 | const NX_SS_OK: nx_int = 0 |
| 21 | const NX_SS_ERR_NULL: nx_int = 1 |
| 25 | const NX_SV_VALID: nx_int = 0 // hunt + gather both non-zero |
| 26 | const NX_SV_NON_SESSION: nx_int = 1 // missing one or both axes |
| 27 | const NX_SV_IMBALANCED: nx_int = 2 // ratio outside band |
| 28 | const NX_SV_COMPROMISED: nx_int = 3 // colony hit RED during session |
| 29 | const NX_SV_N_VERDICTS: nx_int = 4 |
functions
| 46 | func nx_sv_is_valid(v: nx_int) -> nx_int called by 1: main |
| 52 | func nx_session_summary_new(started_us: nx_size) -> *NxSessionSummary |
| 69 | func nx_session_summary_set_hunt(s: *NxSessionSummary, kills: nx_int, active: nx_int) -> nx_int |
| 75 | func nx_session_summary_set_gather(s: *NxSessionSummary, fields: nx_int, total_ms: nx_size) -> nx_int |
| 81 | func nx_session_summary_set_book(s: *NxSessionSummary, entries: nx_int, alerts: nx_int) -> nx_int |
| 87 | func nx_session_summary_set_imbalance(s: *NxSessionSummary, q10: nx_int) -> nx_int |
| 101 | func nx_session_summary_finalize(s: *NxSessionSummary, |
| 129 | func nx_session_summary_verdict(s: *NxSessionSummary) -> nx_int |
| 133 | func nx_session_summary_duration_us(s: *NxSessionSummary) -> nx_size |
| 139 | func nx_session_summary_is_valid(s: *NxSessionSummary) -> nx_int called by 1: main |