nx_hunt_journal.nx
buildroot/runtime/nx_hunt_journal.nx
about
nx_hunt_journal.nx -- append-only event ring for hunt events.
Per [[feedback-hunter-gatherer-meta-primitives-outward-inward-axes]]
CARDINAL: "nx_hunt_journal (~/.nishi/hunt.jsonl)." Append-only log
of every hunt event (scout / engage / kill / archive) so the
session-audit gate can verify hunt_count >= 1 per session, and
imbalance flagger can detect 5x ratio for 3 consecutive sessions.
V1 ships in-memory ring; on-disk JSONL persistence is queued (matches
nx_evict_journal pattern; both write to ~/.nishi/<name>.jsonl in V2).
Composes:
nx_hunter -- emits events; journal records them
nx_gather_journal -- the inward-axis dual; session-audit pairs
both for valid-session predicate
nx_provenance_chain -- hunt-kill events are transforms; chain-logged
dependencies 3 imports · 4 importers
imports: nx_syscalls.nxnx_tier.nxnx_hunter.nx
imported by: nx_gather_journal.nxnx_gather_journal_test.nxnx_hunt_journal_test.nxnx_session_audit_compose_test.nx
structs
| 32 | struct NxHuntEvent |
| 42 | struct NxHuntJournalRing |
consts
| 24 | const NX_HEV_SCOUTED: nx_int = 0 |
| 25 | const NX_HEV_ENGAGED: nx_int = 1 |
| 26 | const NX_HEV_KILLED: nx_int = 2 |
| 27 | const NX_HEV_ARCHIVED: nx_int = 3 |
| 28 | const NX_HEV_N_KINDS: nx_int = 4 |
| 49 | const NX_HEV_BYTES: nx_size = 40 |
functions
| 51 | func nx_hev_kind_is_valid(k: nx_int) -> nx_int |
| 57 | func nx_hunt_journal_new(capacity: nx_size) -> *NxHuntJournalRing |
| 67 | func _hunt_jr_at(j: *NxHuntJournalRing, idx: nx_size) -> *NxHuntEvent |
| 71 | func nx_hunt_journal_log(j: *NxHuntJournalRing, |
| 90 | func nx_hunt_journal_count_kind(j: *NxHuntJournalRing, kind: nx_int) -> nx_int |
| 103 | func nx_hunt_journal_event_count(j: *NxHuntJournalRing) -> nx_size called by 1: main |