nx_swcompare_sending.nx source
↩ module page · 237 lines · 21769 B
1// nx_swcompare_sending.nx -- the MEASURED scoreboard for NISHI SENDING / MAIL (physical + digital + gifts +
2// the unified send surface), operator 2026-07-08: "nishi mail physical and digital state of the art and
3// integrated so i can send a postcard or present as easily as i can send digital ... use census and get us there".
4// Grades the LIVE sending surface across 35 axes, NEVER self-scored: each EXCEEDS/PRESENT cell is PROVEN by
5// reading a distinctive symbol in the REAL shipped organ source on disk; an ABSENT (ROADMAP) cell requires the
6// implementing symbol to NOT exist = an honest gap (the worklist). Liar-killed BOTH directions (over- and under-
7// claiming break the oracle). Yardsticks = the SOTA sending field (Gmail/Superhuman/HEY/Proton for digital;
8// Lob/PostGrid/Stannp for print-and-mail; Postal.io/Sendoso/Reachdesk/Goody for unified sending; TouchNote/
9// Paperless Post/Punkpost for consumer cards), captured in knowledge/compare/sending-bar.txt.
10// DIGITAL CORE .. SND-D1..D9 DIGITAL UX ... SND-D10..D14 PHYSICAL .. SND-P1..P9
11// GIFTS ........ SND-G1..G4 UNIFIED ...... SND-U1..U8
12// SNAPSHOT ORACLE: exceeds==2, present==16, absent==17 (of 35). [r1 spine U3+P5; r2 postcard P1; r3 letter/No.10 P2 + A7 card P3] The 2 EXCEEDS = sovereign anti-spoof crypto
13// (ed25519 SPF/DKIM/DMARC) + sovereign own print pipeline (raster->URF/IPP->device, no cloud print). The whole
14// physical + gifts + unified-send surface is the ABSENT worklist. A rung re-grades its axis (living map): when
15// nx_mailpiece/nx_postal_addr/nx_send etc. land their symbols, the axis auto-flips + the oracle is updated.
16// Two modes: no-arg = console census + liar-kill gate (run-exit 0 GREEN); `html` = emit the /compare/sending page.
17// Self-contained (only nx_syscalls). expect_exit: 0 license_tier: ORIGINAL
18import "nx_syscalls.nx"
19const K_MAGIC_262144: i64 = 262144
20
21func p(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
22func pn(v: i64) -> i64 {
23 var m: i64 = v; if m < 0 { p("-" as *u8); m = 0 - m }
24 let t: *u8 = sys_mmap(24); var k: i64 = 0; if m == 0 { t[0] = 48 as u8; k = 1 }
25 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
26 let o: *u8 = sys_mmap(24); var i: i64 = 0; while i < k { o[i] = t[k-1-i]; i = i + 1 } sys_write(1, o, k); return 0
27}
28func seq(a: *u8, b: *u8) -> i64 {
29 var i: i64 = 0
30 while a[i] != (0 as u8) { if a[i] != b[i] { return 0 } i = i + 1 }
31 if b[i] != (0 as u8) { return 0 }
32 return 1
33}
34func lc_read(path: *u8, buf: *u8, cap: i64) -> i64 {
35 let fd: i64 = sys_openat_rd(path); if fd < 0 { return 0 - 1 }
36 var tot: i64 = 0
37 while tot < cap { let r: i64 = sys_read(fd, (buf as i64 + tot) as *u8, cap - tot); if r <= 0 { break } tot = tot + r }
38 sys_close(fd); return tot
39}
40func lc_has(buf: *u8, n: i64, needle: *u8) -> i64 {
41 var i: i64 = 0
42 while i < n { var k: i64 = 0; var hit: i64 = 1
43 while needle[k] != (0 as u8) { if i + k >= n { hit = 0; k = 0 - 1; break } if buf[i+k] != needle[k] { hit = 0; break } k = k + 1 }
44 if hit == 1 { if k > 0 { return 1 } } i = i + 1 }
45 return 0
46}
47func lc_file_has(path: *u8, needle: *u8, buf: *u8, cap: i64) -> i64 {
48 let n: i64 = lc_read(path, buf, cap); if n <= 0 { return 0 }
49 return lc_has(buf, n, needle)
50}
51func clsname(c: i64) -> *u8 { if c == 2 { return "EXCEEDS" as *u8 } if c == 1 { return "PRESENT" as *u8 } return "ROADMAP" as *u8 }
52func clscolor(c: i64) -> *u8 { if c == 2 { return "rgb(34,160,90)" as *u8 } if c == 1 { return "rgb(40,110,210)" as *u8 } return "rgb(120,124,134)" as *u8 }
53func nishi_note(c: i64) -> *u8 { if c == 2 { return "Sovereign edge" as *u8 } if c == 1 { return "Yes" as *u8 } return "Planned" as *u8 }
54func grpname(g: i64) -> *u8 {
55 if g == 0 { return "Digital email -- transport and authentication" as *u8 }
56 if g == 1 { return "Digital email -- modern client UX" as *u8 }
57 if g == 2 { return "Physical mail -- postcards, letters, cards" as *u8 }
58 if g == 3 { return "Gifts and presents" as *u8 }
59 return "Unified sending and integration" as *u8
60}
61func con_row(id: *u8, label: *u8, sota: *u8, cls: i64) -> i64 {
62 p(" [" as *u8); p(clsname(cls)); p("] " as *u8); p(id); p(" " as *u8); p(label); p(" vs " as *u8); p(sota); p("\n" as *u8); return 0
63}
64func emit_row(id: *u8, label: *u8, sota: *u8, cls: i64) -> i64 {
65 p("<tr><td class='cap'><span class='id'>" as *u8); p(id); p("</span> " as *u8); p(label)
66 p("</td><td class='ni'>" as *u8); p(nishi_note(cls))
67 p("</td><td class='so'>" as *u8); p(sota)
68 p("</td><td><span class='pill' style='background:" as *u8); p(clscolor(cls)); p("'>" as *u8); p(clsname(cls)); p("</span></td></tr>\n" as *u8)
69 return 0
70}
71
72func main(argc: i64, argv: *i64) -> i64 {
73 let cap: i64 = K_MAGIC_262144
74 let buf: *u8 = sys_mmap(cap)
75 let N: i64 = 35
76
77 let gid: *i64 = sys_mmap(8 * 40) as *i64
78 let glab: *i64 = sys_mmap(8 * 40) as *i64
79 let ginc: *i64 = sys_mmap(8 * 40) as *i64
80 let gpath: *i64 = sys_mmap(8 * 40) as *i64
81 let gneed: *i64 = sys_mmap(8 * 40) as *i64
82 let ggrp: *i64 = sys_mmap(8 * 40) as *i64
83 let gexc: *i64 = sys_mmap(8 * 40) as *i64
84 let gread: *i64 = sys_mmap(8 * 40) as *i64
85 let gcls: *i64 = sys_mmap(8 * 40) as *i64
86
87 // ---- DIGITAL CORE (transport + auth) ----
88 gid[0]="SND-D1" as *u8 as i64; glab[0]="Email send transport (SMTP + MX)" as *u8 as i64; ginc[0]="Gmail / Proton" as *u8 as i64; gpath[0]="runtime/nx_smtp_client.nx" as *u8 as i64; gneed[0]="nx_smtp_dot_stuff" as *u8 as i64; ggrp[0]=0; gexc[0]=0
89 gid[1]="SND-D2" as *u8 as i64; glab[1]="Receiving MTA (open-relay defense)" as *u8 as i64; ginc[1]="Postfix-class" as *u8 as i64; gpath[1]="runtime/nx_email_mta.nx" as *u8 as i64; gneed[1]="rcpt_accept" as *u8 as i64; ggrp[1]=0; gexc[1]=0
90 gid[2]="SND-D3" as *u8 as i64; glab[2]="MIME / attachments" as *u8 as i64; ginc[2]="any client" as *u8 as i64; gpath[2]="runtime/nx_email_mime.nx" as *u8 as i64; gneed[2]="multipart_assemble" as *u8 as i64; ggrp[2]=0; gexc[2]=0
91 gid[3]="SND-D4" as *u8 as i64; glab[3]="Mailbox store (additive history)" as *u8 as i64; ginc[3]="IMAP server" as *u8 as i64; gpath[3]="runtime/nx_email_mailbox.nx" as *u8 as i64; gneed[3]="nx_mbox_deliver" as *u8 as i64; ggrp[3]=0; gexc[3]=0
92 gid[4]="SND-D5" as *u8 as i64; glab[4]="IMAP / POP retrieval" as *u8 as i64; ginc[4]="any client" as *u8 as i64; gpath[4]="runtime/nx_email_retrieve.nx" as *u8 as i64; gneed[4]="nx_pop3_dedot" as *u8 as i64; ggrp[4]=0; gexc[4]=0
93 gid[5]="SND-D6" as *u8 as i64; glab[5]="Anti-spoof SPF/DKIM/DMARC (sovereign ed25519)" as *u8 as i64; ginc[5]="opendkim" as *u8 as i64; gpath[5]="runtime/nx_email_auth.nx" as *u8 as i64; gneed[5]="nx_dkim_verify" as *u8 as i64; ggrp[5]=0; gexc[5]=1
94 gid[6]="SND-D7" as *u8 as i64; glab[6]="Authenticated submission (STARTTLS, downgrade defense)" as *u8 as i64; ginc[6]="587 / 465" as *u8 as i64; gpath[6]="runtime/nx_email_submit.nx" as *u8 as i64; gneed[6]="STARTTLS" as *u8 as i64; ggrp[6]=0; gexc[6]=0
95 gid[7]="SND-D8" as *u8 as i64; glab[7]="Webmail UI (inbox / read / delete)" as *u8 as i64; ginc[7]="Roundcube" as *u8 as i64; gpath[7]="runtime/nx_email_webmail.nx" as *u8 as i64; gneed[7]="nx_webmail_serve_conn" as *u8 as i64; ggrp[7]=0; gexc[7]=0
96 gid[8]="SND-D9" as *u8 as i64; glab[8]="Outbound DKIM-signed compose" as *u8 as i64; ginc[8]="any MSA" as *u8 as i64; gpath[8]="runtime/nx_email_send.nx" as *u8 as i64; gneed[8]="nx_email_dkim_sign_message" as *u8 as i64; ggrp[8]=0; gexc[8]=0
97
98 // ---- DIGITAL UX (all roadmap -> nx_webmail_pro.nx) ----
99 gid[9]="SND-D10" as *u8 as i64; glab[9]="Modern compose UX (keyboard + command palette)" as *u8 as i64; ginc[9]="Superhuman" as *u8 as i64; gpath[9]="runtime/nx_webmail_pro.nx" as *u8 as i64; gneed[9]="COMPOSE-PALETTE" as *u8 as i64; ggrp[9]=1; gexc[9]=0
100 gid[10]="SND-D11" as *u8 as i64; glab[10]="Send-later / scheduled send" as *u8 as i64; ginc[10]="Gmail" as *u8 as i64; gpath[10]="runtime/nx_webmail_pro.nx" as *u8 as i64; gneed[10]="SEND-LATER" as *u8 as i64; ggrp[10]=1; gexc[10]=0
101 gid[11]="SND-D12" as *u8 as i64; glab[11]="Snooze + follow-up reminders" as *u8 as i64; ginc[11]="Superhuman / HEY" as *u8 as i64; gpath[11]="runtime/nx_webmail_pro.nx" as *u8 as i64; gneed[11]="SNOOZE" as *u8 as i64; ggrp[11]=1; gexc[11]=0
102 gid[12]="SND-D13" as *u8 as i64; glab[12]="Undo-send (cancel window)" as *u8 as i64; ginc[12]="Gmail" as *u8 as i64; gpath[12]="runtime/nx_webmail_pro.nx" as *u8 as i64; gneed[12]="UNDO-SEND" as *u8 as i64; ggrp[12]=1; gexc[12]=0
103 gid[13]="SND-D14" as *u8 as i64; glab[13]="Split inbox / first-contact screener" as *u8 as i64; ginc[13]="HEY (Imbox)" as *u8 as i64; gpath[13]="runtime/nx_webmail_pro.nx" as *u8 as i64; gneed[13]="SCREENER" as *u8 as i64; ggrp[13]=1; gexc[13]=0
104
105 // ---- PHYSICAL ----
106 gid[14]="SND-P1" as *u8 as i64; glab[14]="Postcard composition (print-ready, USPS size + bleed)" as *u8 as i64; ginc[14]="Lob / TouchNote" as *u8 as i64; gpath[14]="runtime/nx_mailpiece.nx" as *u8 as i64; gneed[14]="NISHI-POSTCARD" as *u8 as i64; ggrp[14]=2; gexc[14]=0
107 gid[15]="SND-P2" as *u8 as i64; glab[15]="Letter + No.10 window envelope" as *u8 as i64; ginc[15]="Lob / PostGrid" as *u8 as i64; gpath[15]="runtime/nx_mailpiece.nx" as *u8 as i64; gneed[15]="NISHI-ENVELOPE" as *u8 as i64; ggrp[15]=2; gexc[15]=0
108 gid[16]="SND-P3" as *u8 as i64; glab[16]="Folded greeting card (A7 5x7)" as *u8 as i64; ginc[16]="Paperless Post" as *u8 as i64; gpath[16]="runtime/nx_mailpiece.nx" as *u8 as i64; gneed[16]="NISHI-FOLDCARD" as *u8 as i64; ggrp[16]=2; gexc[16]=0
109 gid[17]="SND-P4" as *u8 as i64; glab[17]="Sovereign print pipeline (raster -> URF/IPP -> device)" as *u8 as i64; ginc[17]="cloud print" as *u8 as i64; gpath[17]="runtime/nx_img_print.nx" as *u8 as i64; gneed[17]="nx_urf" as *u8 as i64; ggrp[17]=2; gexc[17]=1
110 gid[18]="SND-P5" as *u8 as i64; glab[18]="Structured postal address model + formatting" as *u8 as i64; ginc[18]="all" as *u8 as i64; gpath[18]="runtime/nx_send.nx" as *u8 as i64; gneed[18]="POSTAL-ADDR" as *u8 as i64; ggrp[18]=2; gexc[18]=0
111 gid[19]="SND-P6" as *u8 as i64; glab[19]="Address verification (CASS / DPV)" as *u8 as i64; ginc[19]="Lob / PostGrid" as *u8 as i64; gpath[19]="runtime/nx_postal_addr.nx" as *u8 as i64; gneed[19]="ADDR-VERIFY" as *u8 as i64; ggrp[19]=2; gexc[19]=0
112 gid[20]="SND-P7" as *u8 as i64; glab[20]="Carrier print-and-mail dispatch (hands-off)" as *u8 as i64; ginc[20]="Lob / PostGrid" as *u8 as i64; gpath[20]="runtime/nx_mail_dispatch.nx" as *u8 as i64; gneed[20]="CARRIER-DISPATCH" as *u8 as i64; ggrp[20]=2; gexc[20]=0
113 gid[21]="SND-P8" as *u8 as i64; glab[21]="Mail tracking (IMb / delivery scans)" as *u8 as i64; ginc[21]="Lob / USPS" as *u8 as i64; gpath[21]="runtime/nx_mail_dispatch.nx" as *u8 as i64; gneed[21]="MAIL-TRACK" as *u8 as i64; ggrp[21]=2; gexc[21]=0
114 gid[22]="SND-P9" as *u8 as i64; glab[22]="Handwriting-style rendering" as *u8 as i64; ginc[22]="Punkpost / Handwrytten" as *u8 as i64; gpath[22]="runtime/nx_handwrite.nx" as *u8 as i64; gneed[22]="HANDWRITE" as *u8 as i64; ggrp[22]=2; gexc[22]=0
115
116 // ---- GIFTS (all roadmap -> nx_gift.nx) ----
117 gid[23]="SND-G1" as *u8 as i64; glab[23]="Gift catalog + selection" as *u8 as i64; ginc[23]="Goody / Postal" as *u8 as i64; gpath[23]="runtime/nx_gift.nx" as *u8 as i64; gneed[23]="GIFT-CATALOG" as *u8 as i64; ggrp[23]=3; gexc[23]=0
118 gid[24]="SND-G2" as *u8 as i64; glab[24]="Gift send flow -> fulfillment" as *u8 as i64; ginc[24]="Sendoso / Postal" as *u8 as i64; gpath[24]="runtime/nx_gift.nx" as *u8 as i64; gneed[24]="GIFT-SEND" as *u8 as i64; ggrp[24]=3; gexc[24]=0
119 gid[25]="SND-G3" as *u8 as i64; glab[25]="e-gift / gift card / donation" as *u8 as i64; ginc[25]="Goody / Alyce" as *u8 as i64; gpath[25]="runtime/nx_gift.nx" as *u8 as i64; gneed[25]="EGIFT" as *u8 as i64; ggrp[25]=3; gexc[25]=0
120 gid[26]="SND-G4" as *u8 as i64; glab[26]="Address auto-capture via recipient magic-link" as *u8 as i64; ginc[26]="Postal / Sendoso" as *u8 as i64; gpath[26]="runtime/nx_gift.nx" as *u8 as i64; gneed[26]="CLAIM-LINK" as *u8 as i64; ggrp[26]=3; gexc[26]=0
121
122 // ---- UNIFIED / INTEGRATION ----
123 gid[27]="SND-U1" as *u8 as i64; glab[27]="One recipient / address book across channels" as *u8 as i64; ginc[27]="all" as *u8 as i64; gpath[27]="runtime/_hdl_build/nx_vizsla_contact.nx" as *u8 as i64; gneed[27]="VIZSLA-CONTACT-PROFILE" as *u8 as i64; ggrp[27]=4; gexc[27]=0
124 gid[28]="SND-U2" as *u8 as i64; glab[28]="One compose surface, digital OR physical at send" as *u8 as i64; ginc[28]="Paperless Post" as *u8 as i64; gpath[28]="runtime/nx_send_ui.nx" as *u8 as i64; gneed[28]="COMPOSE-CHANNEL" as *u8 as i64; ggrp[28]=4; gexc[28]=0
125 gid[29]="SND-U3" as *u8 as i64; glab[29]="Unified send-intent model (email/postcard/letter/card/gift)" as *u8 as i64; ginc[29]="Postal / Sendoso" as *u8 as i64; gpath[29]="runtime/nx_send.nx" as *u8 as i64; gneed[29]="SEND-INTENT" as *u8 as i64; ggrp[29]=4; gexc[29]=0
126 gid[30]="SND-U4" as *u8 as i64; glab[30]="Schedule / arrive-on-date" as *u8 as i64; ginc[30]="TouchNote" as *u8 as i64; gpath[30]="runtime/_hdl_build/nx_vizsla_remind.nx" as *u8 as i64; gneed[30]="VIZSLA-REM-DUE" as *u8 as i64; ggrp[30]=4; gexc[30]=0
127 gid[31]="SND-U5" as *u8 as i64; glab[31]="Recurring-occasion auto-send (birthday card)" as *u8 as i64; ginc[31]="TouchNote / Postable" as *u8 as i64; gpath[31]="runtime/nx_send.nx" as *u8 as i64; gneed[31]="AUTO-SEND" as *u8 as i64; ggrp[31]=4; gexc[31]=0
128 gid[32]="SND-U6" as *u8 as i64; glab[32]="Cross-channel delivery ledger / status" as *u8 as i64; ginc[32]="Postal" as *u8 as i64; gpath[32]="runtime/_hdl_build/nx_vizsla_notify.nx" as *u8 as i64; gneed[32]="VIZSLA-NOTIFY-DELIVER" as *u8 as i64; ggrp[32]=4; gexc[32]=0
129 gid[33]="SND-U7" as *u8 as i64; glab[33]="Unified send analytics (sent/delivered/opened/redeemed)" as *u8 as i64; ginc[33]="Postal / Sendoso" as *u8 as i64; gpath[33]="runtime/nx_send.nx" as *u8 as i64; gneed[33]="SEND-ANALYTICS" as *u8 as i64; ggrp[33]=4; gexc[33]=0
130 gid[34]="SND-U8" as *u8 as i64; glab[34]="Approval + budget workflow" as *u8 as i64; ginc[34]="Sendoso / Reachdesk" as *u8 as i64; gpath[34]="runtime/nx_send.nx" as *u8 as i64; gneed[34]="SEND-APPROVAL" as *u8 as i64; ggrp[34]=4; gexc[34]=0
131
132 // ---- read each axis symbol, classify, count ----
133 var exceeds: i64 = 0
134 var present: i64 = 0
135 var absent: i64 = 0
136 var i: i64 = 0
137 while i < N {
138 let r: i64 = lc_file_has(gpath[i] as *u8, gneed[i] as *u8, buf, cap)
139 gread[i] = r
140 var cls: i64 = 0
141 if r == 1 {
142 if gexc[i] == 1 { cls = 2; exceeds = exceeds + 1 } else { cls = 1; present = present + 1 }
143 } else {
144 absent = absent + 1
145 }
146 gcls[i] = cls
147 i = i + 1
148 }
149 let cov: i64 = (present + exceeds) * 1000 / N
150
151 var html: i64 = 0
152 if argc > 1 { if seq(argv[1] as *u8, "html" as *u8) == 1 { html = 1 } }
153
154 if html == 1 {
155 p("<html><head><meta charset='utf-8'><meta name='viewport' content='width=device-width,initial-scale=1'>" as *u8)
156 p("<title>Nishi Compare -- Sending and Mail</title><style>" as *u8)
157 p(":root{color-scheme:dark light}" as *u8)
158 p("body{margin:0;background:rgb(13,15,20);color:rgb(228,230,235);font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}" as *u8)
159 p(".wrap{max-width:1000px;margin:0 auto;padding:28px 20px 64px}" as *u8)
160 p("a{color:rgb(120,170,255);text-decoration:none}" as *u8)
161 p("h1{font-size:30px;margin:6px 0 2px}.sub{color:rgb(150,155,165);font-size:15px;margin-bottom:20px}" as *u8)
162 p(".ban{background:rgb(20,23,30);border:1px solid rgb(38,42,52);border-radius:14px;padding:16px 18px;margin:14px 0 22px}" as *u8)
163 p(".big{font-size:22px;font-weight:700}.big b{color:rgb(90,200,140)}" as *u8)
164 p(".legend span{display:inline-block;margin-right:14px;font-size:13px;color:rgb(170,175,185)}" as *u8)
165 p(".dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:middle}" as *u8)
166 p("table{width:100%;border-collapse:collapse;font-size:14px}" as *u8)
167 p("td{padding:9px 10px;border-bottom:1px solid rgb(30,34,43);vertical-align:top}" as *u8)
168 p(".grp td{background:rgb(18,21,27);color:rgb(150,200,255);font-weight:700;letter-spacing:.3px;font-size:13px;text-transform:uppercase}" as *u8)
169 p(".cap{width:46%}.id{color:rgb(110,116,128);font-size:11px;font-weight:700;margin-right:6px}" as *u8)
170 p(".ni{width:16%;color:rgb(200,205,214)}.so{width:22%;color:rgb(160,165,175)}" as *u8)
171 p(".pill{display:inline-block;padding:3px 9px;border-radius:999px;color:white;font-size:11px;font-weight:700;letter-spacing:.3px}" as *u8)
172 p(".foot{margin-top:26px;color:rgb(150,155,165);font-size:13px}.foot b{color:rgb(210,215,224)}" as *u8)
173 p("@media(prefers-color-scheme:light){body{background:rgb(250,250,252);color:rgb(20,24,32)}.ban{background:white;border-color:rgb(226,228,234)}.grp td{background:rgb(238,242,250);color:rgb(30,90,190)}td{border-color:rgb(232,234,240)}.ni{color:rgb(40,46,58)}.so{color:rgb(90,96,110)}}" as *u8)
174 p("</style></head><body><div class='wrap'>" as *u8)
175 p("<div class='sub'><a href='/compare'>Nishi Compare</a> / Sending and Mail</div>" as *u8)
176 p("<h1>Nishi Sending and Mail vs the field</h1>" as *u8)
177 p("<div class='sub'>Physical + digital in one place -- mechanically measured by reading real organ source, not analyst opinion. Send a postcard, letter, card, or gift as easily as an email.</div>" as *u8)
178 p("<div class='ban'><div class='big'>Coverage <b>" as *u8); pn(cov); p(" / 1000</b></div>" as *u8)
179 p("<div class='sub' style='margin:6px 0 10px'>Capability PRESENCE across " as *u8); pn(N); p(" axes of the sending surface -- " as *u8)
180 pn(exceeds); p(" sovereign edge, " as *u8); pn(present); p(" present, " as *u8); pn(absent); p(" on the roadmap. Presence, not depth-parity: the incumbents lead on breadth + hands-off logistics; Nishi leads on sovereignty (runs on your hardware, no data leaves for a SaaS to send).</div>" as *u8)
181 p("<div class='legend'><span><i class='dot' style='background:rgb(34,160,90)'></i>EXCEEDS -- sovereign edge</span><span><i class='dot' style='background:rgb(40,110,210)'></i>PRESENT -- built + gated</span><span><i class='dot' style='background:rgb(120,124,134)'></i>ROADMAP -- next rungs</span></div></div>" as *u8)
182 p("<table>" as *u8)
183 var g: i64 = 0 - 1
184 var j: i64 = 0
185 while j < N {
186 if ggrp[j] != g {
187 g = ggrp[j]
188 p("<tr class='grp'><td colspan='4'>" as *u8); p(grpname(g)); p("</td></tr>\n" as *u8)
189 }
190 emit_row(gid[j] as *u8, glab[j] as *u8, ginc[j] as *u8, gcls[j])
191 j = j + 1
192 }
193 p("</table>" as *u8)
194 p("<div class='foot'><b>The sovereign edge (the 2 EXCEEDS):</b> anti-spoof SPF/DKIM/DMARC on integer-deterministic ed25519 crypto (no openssl/opendkim), and an own print pipeline that composes a raster and drives a real printer over URF/IPP with no cloud print service. <b>The roadmap</b> is the whole physical + gifts + unified-send surface: postcard/letter/card composition to a print-ready piece, a structured postal address book, a unified send-intent that lets one recipient get an email OR a postcard OR a gift from one surface, and modern compose UX. " as *u8)
195 p("Competitor rows reflect public product docs + USPS standards (2025-26); Nishi rows are live symbol reads of on-disk source. Generated by <b>nx_swcompare_sending</b>, liar-killed both directions.</div>" as *u8)
196 p("</div></body></html>\n" as *u8)
197 return 0
198 }
199
200 // ---- console census + liar-kill gate ----
201 p("=== NX-SWCOMPARE-SENDING -- Nishi mail/sending MEASURED vs Gmail/Superhuman/HEY/Lob/PostGrid/Postal.io/TouchNote ===\n" as *u8)
202 var g2: i64 = 0 - 1
203 var k2: i64 = 0
204 while k2 < N {
205 if ggrp[k2] != g2 { g2 = ggrp[k2]; p("\n-- " as *u8); p(grpname(g2)); p(" --\n" as *u8) }
206 con_row(gid[k2] as *u8, glab[k2] as *u8, ginc[k2] as *u8, gcls[k2])
207 k2 = k2 + 1
208 }
209
210 // controls + grounding
211 let negctl: i64 = lc_file_has("runtime/nx_email_auth.nx" as *u8, "ZZQX_NOT_A_REAL_SYMBOL_QWERTY" as *u8, buf, cap)
212 let posctl: i64 = lc_file_has("runtime/nx_email_auth.nx" as *u8, "nx_dmarc_policy" as *u8, buf, cap)
213 let bar1: i64 = lc_file_has("knowledge/compare/sending-bar.txt" as *u8, "Lob" as *u8, buf, cap)
214 let bar2: i64 = lc_file_has("knowledge/compare/sending-bar.txt" as *u8, "Superhuman" as *u8, buf, cap)
215 let bar3: i64 = lc_file_has("knowledge/compare/sending-bar.txt" as *u8, "USPS" as *u8, buf, cap)
216 let bar4: i64 = lc_file_has("knowledge/compare/sending-bar.txt" as *u8, "Postal.io" as *u8, buf, cap)
217
218 var ok: i64 = 1
219 if exceeds != 2 { ok = 0 }
220 if present != 16 { ok = 0 }
221 if absent != 17 { ok = 0 }
222 if (exceeds + present + absent) != N { ok = 0 }
223 if negctl != 0 { ok = 0 }
224 if posctl != 1 { ok = 0 }
225 if bar1 != 1 { ok = 0 }
226 if bar2 != 1 { ok = 0 }
227 if bar3 != 1 { ok = 0 }
228 if bar4 != 1 { ok = 0 }
229
230 p("\nSND-SENDING-CENSUS coverage=" as *u8); pn(cov); p("/1000 exceeds=" as *u8); pn(exceeds)
231 p(" present=" as *u8); pn(present); p(" absent=" as *u8); pn(absent); p(" of=" as *u8); pn(N)
232 p(" negctl=" as *u8); pn(negctl); p(" posctl=" as *u8); pn(posctl)
233 p(" grounded=" as *u8); pn(bar1 + bar2 + bar3 + bar4)
234 if ok == 1 { p(" verdict=GREEN\n" as *u8); return 0 }
235 p(" verdict=RED\n" as *u8)
236 return 1
237}