code wiki / _hdl_build / nx_vizsla_tenant_gate.nx
nx_vizsla_tenant_gate.nx
buildroot/runtime/_hdl_build/nx_vizsla_tenant_gate.nx
about
nx_vizsla_tenant_gate.nx -- VIZSLA universal/multi-tenant gate: proves the SAME S-class relationship engine
serves MANY people on one Nishi system, each fully ISOLATED (operator 2026-06-22: "universal also available to
others ... the same thing giving me s class relationship management can help them achieve s class"). Two
tenants with DIFFERENT people + interactions; each gets their OWN correct brief; NEITHER can see the other's
data (cross-tenant bleed = RED). Plus a path-traversal security control. 100% sovereign: self-writes the
per-tenant fixtures, forks nx_vizsla_tenant (which composes the blessed relate engine), greps stdout.
tenant ELDER (today 2026-06-22): emom inner last 06-20=FRESH bday 06-25=in 3d ; ejess close never=NEW followup;
THANKS emom gift 06-10=PENDING ; OBLIGATION OWE ejess dinner => followups=1 birthdays=1 thankyous=1 obligations=1
tenant DAVE: dwife inner last 06-21=FRESH bday 09-01=far ; dboss work never=NEW followup ;
OBLIGATION DUE dboss raise => followups=1 birthdays=0 thankyous=0 obligations=1
Rows:
1 load-elder tenant load -> RELATE-LOAD scanned=3 new=3 seg-8001
2 load-dave tenant load -> RELATE-LOAD scanned=2 new=2 seg-8002
3 elder-brief-own elder brief shows ejess (NEW) + emom (BIRTHDAY)
4 elder-verdict followups=1 birthdays=1 thankyous=1 obligations=1
5 elder-ISOLATED elder brief shows NOTHING of dave (no dboss, no dwife) [isolation]
6 dave-brief-own dave brief shows dboss OBLIGATION DUE
7 dave-verdict followups=1 birthdays=0 thankyous=0 obligations=1
8 dave-ISOLATED dave brief shows NOTHING of elder (no emom, no ejess) [isolation]
9 tid-traversal-reject brief with tenant-id ".." => exit 1 [security neg-control]
10 brief-determinism elder brief byte-identical twice
Evidence: VIZSLA-TENANT-GATE -> stdout + knowledge/status/vizsla_gate.log; exit 0 iff 10/10.
spec: knowledge/research/2026-06-22-vizsla-sclass-roadmap.md license_tier: ORIGINAL
dependencies 1 imports · 0 importers
imports: nx_syscalls.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
| 28 | func og_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } |
| 29 | func og_p(s: *u8) -> i64 { sys_write(1, s, og_slen(s)); return 0 } |
| 31 | func og_cat(dst: *u8, off: i64, s: *u8) -> i64 |
| 37 | func og_catn(dst: *u8, off: i64, v: i64) -> i64 |
| 50 | func og_write(path: *u8, content: *u8) -> i64 |
| 58 | func og_readall(path: *u8, szout: *i64) -> *u8 |
| 75 | func og_runv(elf: *u8, args: *i64, outpath: *u8) -> i64 |
| 105 | func og_has(path: *u8, needle: *u8) -> i64 |
| 124 | func og_fileeq(p1: *u8, p2: *u8) -> i64 |
| 139 | func og_row(name: *u8, pass: i64) -> i64 |
| 146 | func og_args(a1: *u8, a2: *u8, a3: *u8, a4: *u8, a5: *u8) -> *i64 |
| 157 | func og_args7(a1: *u8, a2: *u8, a3: *u8, a4: *u8, a5: *u8, a6: *u8, a7: *u8) -> *i64 |
| 171 | func og_join(base: *u8, name: *u8) -> *u8 |
| 180 | func main(argc: i64, argv: *i64) -> i64 |