code wiki / _hdl_build / nx_role_store_gate.nx
nx_role_store_gate.nx source
↩ module page · 100 lines · 7070 B
1import "nx_gate_base.nx"
2// nx_role_store_gate.nx -- SOVEREIGN end-to-end gate for the roles/*.tsv -> seg-store migration (operator
3// 2026-06-22: "migrate and get rid of these tsvs just nishi ecosystem"). Proves, with raw measured checks +
4// liar-kill + neg-control, that the role-coordination layer is now the sovereign seg-store and NO TSV remains:
5// T1 MIGRATED BASELINE present -- the 4 channels hold (at least) the migrated rows, structured (5+ fields).
6// T2 APPEND ROUNDTRIP -- rs_append into an isolated gatetestq channel reads back BYTE-EXACT.
7// T3 WRITER ROUTES TO STORE -- the REAL rq_submit writer lands its row in the store channel (not a .tsv).
8// T4 STATUS MUTATE (pump) -- rs_row_set overwrites a row; latest version wins (PENDING->APPLIED).
9// T5 LIAR-KILL -- a seq beyond count is ABSENT (-1); no fabricated row is ever returned.
10// T6 NEG-CONTROL -- an unknown channel has count 0 and absent rows.
11// T7 NO-TSV -- the 4 retired knowledge/roles/*.tsv files do NOT exist (retirement holds).
12// expect_exit: 0 license_tier: ORIGINAL
13import "nx_role_store.nx" // rs_append / rs_row_set / rs_get_seq / rs_count / rs_field
14import "nx_role_queue.nx" // rq_submit -- the REAL writer (proves it routes to the store)
15import "nx_syscalls.nx"
16
17func grow(name: *u8, ok: i64) -> i64 { if ok==1 { gw(" PASS " as *u8) } else { gw(" FAIL " as *u8) } gw(name); gw("
18" as *u8); return ok }
19func gn(v: i64) -> i64 { let b: *u8=sys_mmap(28); let e: i64=rs_itoa(b,v); sys_write(1,b,e); return 0 }
20func g_exists(p: *u8) -> i64 { let fd: i64=sys_openat_rd(p); if fd>=0 { sys_close(fd); return 1 } return 0 }
21func g_streqn(a: *u8, b: *u8, n: i64) -> i64 { var i: i64=0; while i<n { if a[i]!=b[i]{return 0} i=i+1 } return 1 }
22// does row <ch>:<seq> read back byte-exact equal to val[0..vlen)?
23func g_row_eq(ch: *u8, seq: i64, val: *u8, vlen: i64) -> i64 {
24 let pq: *i64=sys_mmap(16) as *i64; let lq: *i64=sys_mmap(16) as *i64
25 if rs_get_seq(ch, seq, pq, lq) != 1 { return 0 }
26 if lq[0] != vlen { return 0 }
27 return g_streqn(pq[0] as *u8, val, vlen)
28}
29// does any row of channel ch contain needle?
30func g_chan_has(ch: *u8, needle: *u8) -> i64 {
31 let n: i64=rs_count(ch); let pq: *i64=sys_mmap(16) as *i64; let lq: *i64=sys_mmap(16) as *i64
32 var nn: i64=0; while needle[nn]!=(0 as u8){nn=nn+1}
33 var seq: i64=0
34 while seq<n {
35 if rs_get_seq(ch, seq, pq, lq)==1 { let b: *u8=pq[0] as *u8; let bl: i64=lq[0]
36 if nn>0 { var i: i64=0; while i+nn<=bl { var j: i64=0; var ok: i64=1; while j<nn { if b[i+j]!=needle[j]{ok=0;j=nn} else {j=j+1} } if ok==1{return 1} i=i+1 } } }
37 seq=seq+1
38 }
39 return 0
40}
41
42func main() -> i64 {
43 gw("=== nx_role_store_gate: roles/*.tsv -> sovereign seg-store, end-to-end (NO TSV) ===\n" as *u8)
44 var pass: i64=0; var total: i64=0
45
46 // T1 -- migrated baseline present + structured
47 let cpm: i64=rs_count("pmcoord" as *u8); let ceq: i64=rs_count("engineerq" as *u8)
48 let cdq: i64=rs_count("doctorq" as *u8); let cel: i64=rs_count("engineerl" as *u8)
49 let f4: *u8=sys_mmap(256); let pq0: *i64=sys_mmap(16) as *i64; let lq0: *i64=sys_mmap(16) as *i64
50 var structured: i64=0
51 if rs_get_seq("pmcoord" as *u8, 0, pq0, lq0)==1 { if rs_field(pq0[0] as *u8, lq0[0], 4, f4) > 0 { structured=1 } }
52 total=total+1
53 if cpm>=24 { if ceq>=17 { if cdq>=1 { if cel>=1 { if structured==1 { pass=pass+1; gw("[PASS] " as *u8) } else { gw("[FAIL] " as *u8) } } else { gw("[FAIL] " as *u8) } } else { gw("[FAIL] " as *u8) } } else { gw("[FAIL] " as *u8) } } else { gw("[FAIL] " as *u8) }
54 gw("T1 migrated baseline pmcoord=" as *u8); gn(cpm); gw(" engineerq=" as *u8); gn(ceq); gw(" doctorq=" as *u8); gn(cdq); gw(" engineerl=" as *u8); gn(cel); gw(" (5-field row ok)\n" as *u8)
55
56 // T2 -- append roundtrip into isolated gatetestq channel, byte-exact readback
57 let tv: *u8 = "PENDING\t1782200000\tgatetest\tROLESTOREGATE-T2\t/tmp/g\t/tmp/o\t/tmp/n" as *u8
58 var tl: i64=0; while tv[tl]!=(0 as u8){tl=tl+1}
59 let seq2: i64 = rs_append("gatetestq" as *u8, tv, tl)
60 total=total+1
61 if seq2>=0 { if g_row_eq("gatetestq" as *u8, seq2, tv, tl)==1 { pass=pass+1; gw("[PASS] " as *u8) } else { gw("[FAIL] " as *u8) } } else { gw("[FAIL] " as *u8) }
62 gw("T2 rs_append roundtrip byte-exact at seq=" as *u8); gn(seq2); gw("\n" as *u8)
63
64 // T3 -- the REAL writer rq_submit routes into the store channel gatewq (role 'gatew' -> 'gatewq')
65 rq_submit("gatew" as *u8, "/tmp/gtgt" as *u8, "/tmp/gold" as *u8, "/tmp/gnew" as *u8, "ROLESTOREGATE-T3" as *u8)
66 total=total+1
67 if g_chan_has("gatewq" as *u8, "ROLESTOREGATE-T3" as *u8)==1 { pass=pass+1; gw("[PASS] " as *u8) } else { gw("[FAIL] " as *u8) }
68 gw("T3 rq_submit (the real writer) landed in the gatewq seg-store channel, NO TSV\n" as *u8)
69
70 // T4 -- status mutate: overwrite seq2 PENDING->APPLIED; latest version wins
71 let av: *u8 = "APPLIED\t1782200000\tgatetest\tROLESTOREGATE-T2\t/tmp/g\t/tmp/o\t/tmp/n" as *u8
72 var al: i64=0; while av[al]!=(0 as u8){al=al+1}
73 rs_row_set("gatetestq" as *u8, seq2, av, al)
74 total=total+1
75 if g_row_eq("gatetestq" as *u8, seq2, av, al)==1 { pass=pass+1; gw("[PASS] " as *u8) } else { gw("[FAIL] " as *u8) }
76 gw("T4 rs_row_set status mutate (PENDING->APPLIED) last-wins at seq=" as *u8); gn(seq2); gw("\n" as *u8)
77
78 // T5 -- liar-kill: a seq beyond the channel count is ABSENT (no fabricated row)
79 let beyond: i64 = rs_count("gatetestq" as *u8) + 100000
80 let pqx: *i64=sys_mmap(16) as *i64; let lqx: *i64=sys_mmap(16) as *i64
81 total=total+1
82 if rs_get_seq("gatetestq" as *u8, beyond, pqx, lqx) == (0 - 1) { pass=pass+1; gw("[PASS] " as *u8) } else { gw("[FAIL] " as *u8) }
83 gw("T5 liar-kill: seq beyond count is ABSENT (-1), no fabricated row\n" as *u8)
84
85 // T6 -- neg-control: unknown channel has count 0 and absent rows
86 total=total+1
87 if rs_count("no_such_channel_xyz" as *u8)==0 { if rs_get_seq("no_such_channel_xyz" as *u8, 0, pqx, lqx)==(0 - 1) { pass=pass+1; gw("[PASS] " as *u8) } else { gw("[FAIL] " as *u8) } } else { gw("[FAIL] " as *u8) }
88 gw("T6 neg-control: unknown channel count=0 + rows absent\n" as *u8)
89
90 // T7 -- NO-TSV: the 4 retired role files do NOT exist under knowledge/roles/
91 var ntsv: i64=0
92 if g_exists("knowledge/roles/pm_coord.tsv" as *u8)==0 { if g_exists("knowledge/roles/engineer_queue.tsv" as *u8)==0 { if g_exists("knowledge/roles/doctor_queue.tsv" as *u8)==0 { if g_exists("knowledge/roles/engineer_ledger.tsv" as *u8)==0 { ntsv=1 } } } }
93 total=total+1
94 if ntsv==1 { pass=pass+1; gw("[PASS] " as *u8) } else { gw("[FAIL] " as *u8) }
95 gw("T7 NO-TSV: the 4 knowledge/roles/*.tsv are retired/absent (store is the SSOT)\n" as *u8)
96
97 gw("\n=== nx_role_store_gate " as *u8); gn(pass); gw("/" as *u8); gn(total)
98 if pass==total { gw(" GREEN (the role layer is the sovereign seg-store; NO TSV)\n" as *u8); sys_exit(0); return 0 }
99 gw(" RED\n" as *u8); sys_exit(1); return 1
100}