yakmesh 2.9.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/CHANGELOG.md +637 -0
  2. package/Caddyfile +77 -0
  3. package/README.md +119 -29
  4. package/content/api.js +50 -41
  5. package/content/index.js +1 -2
  6. package/content/store.js +323 -177
  7. package/dashboard/index.html +19 -3
  8. package/database/replication.js +117 -37
  9. package/docs/CRYPTO-AGILITY.md +204 -0
  10. package/docs/MTLS-RESEARCH.md +367 -0
  11. package/docs/NAMCHE-SPEC.md +681 -0
  12. package/docs/PEERQUANTA-YAKMESH-INTEGRATION.md +407 -0
  13. package/docs/PRECISION-DISCLOSURE.md +96 -0
  14. package/docs/README.md +76 -0
  15. package/docs/ROADMAP-2.4.0.md +447 -0
  16. package/docs/ROADMAP-2.5.0.md +244 -0
  17. package/docs/SECURITY-AUDIT-REPORT.md +306 -0
  18. package/docs/SST-INTEGRATION.md +712 -0
  19. package/docs/STEADYWATCH-IMPLEMENTATION.md +303 -0
  20. package/docs/TERNARY-AUDIT-REPORT.md +247 -0
  21. package/docs/TME-FAQ.md +221 -0
  22. package/docs/WHITEPAPER.md +623 -0
  23. package/docs/adapters.html +1001 -0
  24. package/docs/advanced-systems.html +1045 -0
  25. package/docs/annex.html +1046 -0
  26. package/docs/api.html +970 -0
  27. package/docs/business/response-templates.md +160 -0
  28. package/docs/c2c.html +1225 -0
  29. package/docs/cli.html +1332 -0
  30. package/docs/configuration.html +1248 -0
  31. package/docs/darshan.html +1085 -0
  32. package/docs/dharma.html +966 -0
  33. package/docs/docs-bundle.html +1075 -0
  34. package/docs/docs.css +3120 -0
  35. package/docs/docs.js +556 -0
  36. package/docs/doko.html +969 -0
  37. package/docs/geo-proof.html +858 -0
  38. package/docs/getting-started.html +840 -0
  39. package/docs/gumba-tutorial.html +1144 -0
  40. package/docs/gumba.html +1098 -0
  41. package/docs/index.html +914 -0
  42. package/docs/jhilke.html +1312 -0
  43. package/docs/karma.html +1100 -0
  44. package/docs/katha.html +1037 -0
  45. package/docs/lama.html +978 -0
  46. package/docs/mandala.html +1067 -0
  47. package/docs/mani.html +964 -0
  48. package/docs/mantra.html +967 -0
  49. package/docs/mesh.html +1409 -0
  50. package/docs/nakpak.html +869 -0
  51. package/docs/namche.html +928 -0
  52. package/docs/nav-order.json +53 -0
  53. package/docs/prahari.html +1043 -0
  54. package/docs/prism-bash.min.js +1 -0
  55. package/docs/prism-javascript.min.js +1 -0
  56. package/docs/prism-json.min.js +1 -0
  57. package/docs/prism-tomorrow.min.css +1 -0
  58. package/docs/prism.min.js +1 -0
  59. package/docs/privacy.html +699 -0
  60. package/docs/quick-reference.html +1181 -0
  61. package/docs/sakshi.html +1402 -0
  62. package/docs/sandboxing.md +386 -0
  63. package/docs/seva.html +911 -0
  64. package/docs/sherpa.html +871 -0
  65. package/docs/studio.html +860 -0
  66. package/docs/stupa.html +995 -0
  67. package/docs/tailwind.min.css +2 -0
  68. package/docs/tattva.html +1332 -0
  69. package/docs/terms.html +686 -0
  70. package/docs/time-server-deployment.md +166 -0
  71. package/docs/time-sources.html +1392 -0
  72. package/docs/tivra.html +1127 -0
  73. package/docs/trademark-policy.html +686 -0
  74. package/docs/tribhuj.html +1183 -0
  75. package/docs/trust-security.html +1029 -0
  76. package/docs/tutorials/backup-recovery.html +654 -0
  77. package/docs/tutorials/dashboard.html +604 -0
  78. package/docs/tutorials/domain-setup.html +605 -0
  79. package/docs/tutorials/host-website.html +456 -0
  80. package/docs/tutorials/mesh-network.html +505 -0
  81. package/docs/tutorials/mobile-access.html +445 -0
  82. package/docs/tutorials/privacy.html +467 -0
  83. package/docs/tutorials/raspberry-pi.html +600 -0
  84. package/docs/tutorials/security-basics.html +539 -0
  85. package/docs/tutorials/share-files.html +431 -0
  86. package/docs/tutorials/troubleshooting.html +637 -0
  87. package/docs/tutorials/trust-karma.html +419 -0
  88. package/docs/tutorials/yak-protocol.html +456 -0
  89. package/docs/tutorials.html +1034 -0
  90. package/docs/vani.html +1270 -0
  91. package/docs/webserver.html +809 -0
  92. package/docs/yak-protocol.html +940 -0
  93. package/docs/yak-timeserver-design.md +475 -0
  94. package/docs/yakapp.html +1015 -0
  95. package/docs/ypc27.html +1069 -0
  96. package/docs/yurt.html +1344 -0
  97. package/embedded-docs/bundle.js +274 -114
  98. package/gossip/protocol.js +247 -27
  99. package/identity/key-resolver.js +262 -0
  100. package/identity/machine-seed.js +632 -0
  101. package/identity/node-key.js +669 -368
  102. package/identity/tribhuj-ratchet.js +506 -0
  103. package/knowledge-base.js +37 -8
  104. package/launcher/yakmesh.bat +62 -0
  105. package/launcher/yakmesh.sh +70 -0
  106. package/mesh/annex.js +462 -108
  107. package/mesh/beacon-broadcast.js +4 -1
  108. package/mesh/darshan.js +17 -5
  109. package/mesh/gumba.js +47 -13
  110. package/mesh/jhilke.js +651 -0
  111. package/mesh/katha.js +5 -2
  112. package/mesh/nakpak-routing.js +8 -5
  113. package/mesh/network.js +724 -34
  114. package/mesh/pulse-sync.js +4 -1
  115. package/mesh/seva.js +526 -0
  116. package/mesh/sherpa-discovery.js +89 -8
  117. package/mesh/sybil-defense.js +19 -5
  118. package/mesh/temporal-encoder.js +4 -3
  119. package/mesh/yurt.js +72 -17
  120. package/models/entropy-sentinel.onnx +0 -0
  121. package/models/karma-trust.onnx +0 -0
  122. package/models/manifest.json +43 -0
  123. package/models/sakshi-anomaly.onnx +0 -0
  124. package/oracle/code-proof-protocol.js +7 -6
  125. package/oracle/codebase-lock.js +257 -28
  126. package/oracle/index.js +74 -15
  127. package/oracle/ma902-snmp.js +678 -0
  128. package/oracle/module-sealer.js +5 -3
  129. package/oracle/packet-checksum.js +201 -0
  130. package/oracle/ternary-144t.js +714 -0
  131. package/oracle/ternary-ml.js +481 -0
  132. package/oracle/time-api.js +239 -0
  133. package/oracle/time-source.js +137 -47
  134. package/oracle/validation-oracle-hardened.js +1111 -1071
  135. package/oracle/validation-oracle.js +4 -2
  136. package/oracle/ypc27.js +211 -0
  137. package/package.json +20 -3
  138. package/protocol/yak-handler.js +35 -9
  139. package/protocol/yak-protocol.js +6 -5
  140. package/reference/cpp/yakmesh_mceliece_shard.cpp +168 -0
  141. package/reference/cpp/yakmesh_ypc27.cpp +179 -0
  142. package/sbom.json +87 -0
  143. package/scripts/security-audit.mjs +264 -0
  144. package/scripts/update-docs-sidebar.cjs +164 -0
  145. package/security/crypto-config.js +4 -3
  146. package/security/dharma-moderation.js +4 -3
  147. package/security/doko-identity.js +193 -143
  148. package/security/domain-consensus.js +86 -85
  149. package/security/fs-hardening.js +620 -0
  150. package/security/hardware-attestation.js +5 -3
  151. package/security/hybrid-trust.js +227 -87
  152. package/security/karma-rate-limiter.js +692 -0
  153. package/security/khata-protocol.js +22 -21
  154. package/security/khata-trust-integration.js +277 -150
  155. package/security/memory-safety.js +635 -0
  156. package/security/mesh-auth.js +11 -10
  157. package/security/mesh-revocation.js +18 -5
  158. package/security/namche-gateway.js +298 -69
  159. package/security/sakshi.js +102 -3
  160. package/security/sangha.js +770 -0
  161. package/security/secure-config.js +473 -0
  162. package/security/silicon-parity.js +13 -10
  163. package/security/steadywatch.js +1142 -0
  164. package/security/strike-system.js +32 -3
  165. package/security/temporal-signing.js +488 -0
  166. package/security/trit-commitment.js +464 -0
  167. package/server/crypto/annex.js +247 -0
  168. package/server/darshan-api.js +343 -0
  169. package/server/index.js +3259 -362
  170. package/server/komm-api.js +668 -0
  171. package/utils/accel.js +2273 -0
  172. package/utils/ternary-id.js +79 -0
  173. package/utils/verify-worker.js +57 -0
  174. package/webserver/index.js +95 -5
  175. package/assets/yakmesh-logo.png +0 -0
  176. package/assets/yakmesh-logo.svg +0 -80
  177. package/assets/yakmesh-logo2.png +0 -0
  178. package/assets/yakmesh-logo2sm.png +0 -0
  179. package/assets/ymsm.png +0 -0
  180. package/scripts/update-docs-nav.cjs +0 -194
  181. package/update-docs-nav.cjs +0 -18
  182. package/update-nav.ps1 +0 -16
  183. package/website/assets/silhouettes/adapters.svg +0 -107
  184. package/website/assets/silhouettes/api-endpoints.svg +0 -115
  185. package/website/assets/silhouettes/atomic-clock.svg +0 -83
  186. package/website/assets/silhouettes/base-camp.svg +0 -81
  187. package/website/assets/silhouettes/bridge.svg +0 -69
  188. package/website/assets/silhouettes/docs-bundle.svg +0 -113
  189. package/website/assets/silhouettes/doko-basket.svg +0 -70
  190. package/website/assets/silhouettes/fortress.svg +0 -93
  191. package/website/assets/silhouettes/gateway.svg +0 -54
  192. package/website/assets/silhouettes/gears.svg +0 -93
  193. package/website/assets/silhouettes/globe-satellite.svg +0 -67
  194. package/website/assets/silhouettes/karma-wheel.svg +0 -137
  195. package/website/assets/silhouettes/lama-council.svg +0 -141
  196. package/website/assets/silhouettes/mandala-network.svg +0 -169
  197. package/website/assets/silhouettes/mani-stones.svg +0 -149
  198. package/website/assets/silhouettes/mantra-wheel.svg +0 -116
  199. package/website/assets/silhouettes/mesh-nodes.svg +0 -113
  200. package/website/assets/silhouettes/nakpak.svg +0 -56
  201. package/website/assets/silhouettes/peak-lightning.svg +0 -73
  202. package/website/assets/silhouettes/sherpa.svg +0 -69
  203. package/website/assets/silhouettes/stupa-tower.svg +0 -119
  204. package/website/assets/silhouettes/tattva-eye.svg +0 -78
  205. package/website/assets/silhouettes/terminal.svg +0 -74
  206. package/website/assets/silhouettes/webserver.svg +0 -145
  207. package/website/assets/silhouettes/yak.svg +0 -78
  208. package/website/assets/yakmesh-logo.png +0 -0
  209. package/website/assets/yakmesh-logo.webp +0 -0
  210. package/website/assets/yakmesh-logo128x140.webp +0 -0
  211. package/website/assets/yakmesh-logo2.png +0 -0
  212. package/website/assets/yakmesh-logo2.svg +0 -51
  213. package/website/assets/yakmesh-logo40x44.webp +0 -0
  214. package/website/assets/yakmesh.gif +0 -0
  215. package/website/assets/yakmesh.ico +0 -0
  216. package/website/assets/yakmesh.jpg +0 -0
  217. package/website/assets/yakmesh.pdf +0 -0
  218. package/website/assets/yakmesh.png +0 -0
  219. package/website/assets/yakmesh.svg +0 -70
  220. package/website/assets/yakmesh128.webp +0 -0
  221. package/website/assets/yakmesh32.png +0 -0
  222. package/website/assets/yakmesh32.svg +0 -65
  223. package/website/assets/yakmesh32o.ico +0 -2
  224. package/website/assets/yakmesh32o.svg +0 -65
  225. package/website/assets/yakmesh32o.svgz +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,543 @@
2
2
 
3
3
  All notable changes to YAKMESH will be documented in this file.
4
4
 
5
+ ## [3.2.0] - 2026-02-25
6
+
7
+ ### 🔐 SANGHA Security + 3-Node Mesh Live + YakApp Discord Features
8
+
9
+ *Theme: "Unity is security. Components protecting components. Every peer short-named, every message ephemeral."*
10
+
11
+ Three major streams: (1) SANGHA collective security architecture with novel approaches;
12
+ (2) first successful 3-node mesh deployment with SHERPA auto-discovery;
13
+ (3) YakApp gains Discord-like features including DARSHAN-powered ephemeral streaming.
14
+
15
+ ---
16
+
17
+ #### 🛡️ SANGHA — Unified Component Attestation (`security/sangha.js`, 570 lines)
18
+
19
+ **Novel security philosophy**: Traditional process isolation SEPARATES components — each stands alone.
20
+ SANGHA UNIFIES components — they protect each other through continuous mutual attestation.
21
+
22
+ **Core Mechanisms**:
23
+
24
+ - **SYNAPSE** — Cryptographic communication channels between components (signed + GPS-timestamped)
25
+ - **ANTIBODY** — Circulating verification routines patrol every 5s, collect state attestations
26
+ - **TEMPORAL BINDING** — Operations bound to GPS time windows (100ms→2000ms per component type)
27
+ - **COLLECTIVE RESPONSE** — All components react to any detected anomaly
28
+
29
+ **10 Components, 45 Synapses**: crypto, oracle, mesh, http, identity, fs, memory, sign, rate, config
30
+
31
+ ---
32
+
33
+ #### 🔒 Security Hardening Suite (6 new modules)
34
+
35
+ | Module | File | Lines | Novel Approach |
36
+ |--------|------|-------|----------------|
37
+ | FS Hardening | `security/fs-hardening.js` | ~510 | Files as SANGHA participants |
38
+ | Memory Safety | `security/memory-safety.js` | ~530 | Circulating canaries (heap/closure/native) |
39
+ | Temporal Signing | `security/temporal-signing.js` | ~470 | GPS-bound, auto-expiring signatures |
40
+ | KARMA Rate Limiter | `security/karma-rate-limiter.js` | ~600 | Trust-adaptive throughput (10→200 req/min) |
41
+ | Secure Config | `security/secure-config.js` | ~480 | Oracle-attested config hash |
42
+ | Sandboxing Guide | `docs/sandboxing.md` | ~400 | Linux/macOS container docs |
43
+
44
+ **Security Profiles**: PARANOID, HARDENED, STANDARD, DEVELOPMENT — with appropriate defaults.
45
+
46
+ ---
47
+
48
+ #### 🌐 3-Node Mesh Live — First Successful Deployment
49
+
50
+ **Milestone**: All 3 yakmesh nodes connected on same network via SHERPA automatic discovery.
51
+
52
+ **Networks** (oracle hash changes = new network name):
53
+
54
+ - `cipher-nitrogen-decompose (pq-3FZd)` — 98 JS files (2026-02-22)
55
+ - `countable-csidh-sphaleron (pq-HWXp)` — 99 JS files (2026-02-23)
56
+ - `discrete-fullerene-nitride (pq-vE4V)` — current (2026-02-24)
57
+
58
+ **Bug Fixes (6 critical)**:
59
+
60
+ 1. **ANNEX KEM rekey race** — `deterministicRekey()` with deterministic shared key derivation
61
+ 2. **ANNEX random sessionId** — sha3-256 of sorted peer IDs replaces random bytes
62
+ 3. **ANNEX bootstrap→KEM gap** — `_transitionKey` bridge holds old key 5s during handoff
63
+ 4. **JHILKE tick mismatch** — `_sharedTick()` using wall-clock `Math.floor(Date.now() / 1000)`
64
+ 5. **JHILKE rekey coordination** — `deriveRekeyKey()` + `_executeSwitch()` rewrite
65
+ 6. **SHERPA PHP bridge port** — sed 3000→3080 in beacon.php/relay.php
66
+
67
+ **peerTag() Helper** — Clean short tags in logs (`tc4H`, `mR7B`, `426u` instead of 60-char IDs).
68
+ Implemented across 8 files, ~60 truncation sites.
69
+
70
+ ---
71
+
72
+ #### 💬 YakApp — Discord-Like Features
73
+
74
+ **ChatPanel.jsx** expanded to ~3200 lines with 8 new Discord-inspired features:
75
+
76
+ | Feature | Protocol | Description |
77
+ |---------|----------|-------------|
78
+ | Direct Messages | KATHA | Private 1:1 conversations |
79
+ | User Presence | DARSHAN | Online/away/DND status via mesh |
80
+ | File/Media Sharing | ANNEX | Encrypted uploads with progress |
81
+ | Message Search | Local | Full-text search across history |
82
+ | Desktop Notifications | Browser API | Permission-gated alerts |
83
+ | Channel Management | GUMBA | Create/edit/delete channels |
84
+ | Invite Links | YAK:// | `yak://invite/{code}` deep links |
85
+ | Ephemeral Streams | DARSHAN | Real-time disappearing chat |
86
+
87
+ **Ephemeral Streaming (DARSHAN)**: Host broadcasts, viewers see content without downloading.
88
+ Messages auto-expire with TTL countdown UI. Purple-themed ephemeral styling.
89
+
90
+ **InviteModal**: Create/copy/delete invite links with expiry (1h/24h/7d/never) and max uses.
91
+
92
+ **SUDDHI Content Moderation** (`lib/suddhi.js`, ~350 lines):
93
+ Multi-layer validation for public room names/descriptions. Never censors messages — only
94
+ prevents harmful room ADVERTISING. Bloom filter for privacy-preserving pattern detection.
95
+
96
+ ---
97
+
98
+ #### 🔧 Infrastructure Improvements
99
+
100
+ **Bootstrap System Refactored**:
101
+
102
+ - Changed from aggressive 30s retry loop to seed-only mechanism
103
+ - DirectWS connections have priority
104
+ - Bootstrap only activates when `peers.size === 0`
105
+ - Added `peer:disconnected` handler for recovery
106
+
107
+ **Advertised Endpoints**: Nodes announce listening address in HELLO/WELCOME.
108
+ `_getAdvertisedEndpoint()` detects best local IP. Enables reconnection after restart.
109
+
110
+ **144T Routing Security**: 256-bit post-quantum routing (Grover-resistant).
111
+ 3^144 ≈ 10^68 address space. Now displayed in dashboard POST-QUANTUM card.
112
+
113
+ ---
114
+
115
+ #### 🐛 Protocol URL Fix
116
+
117
+ **CRITICAL**: Fixed incorrect protocol URLs across yakapp:
118
+
119
+ - `yakmesh://` → `yak://` (ChatPanel, QRGenerator, QRScanner)
120
+ - `yakmesh.io` → `yakmesh.dev` (SettingsPanel)
121
+
122
+ The correct protocol scheme is `yak://` — documented at <https://yakmesh.dev/docs/yak-protocol.html>
123
+
124
+ ---
125
+
126
+ #### 📊 Stats
127
+
128
+ | Metric | Value |
129
+ |--------|-------|
130
+ | Security modules added | 6 |
131
+ | SANGHA components | 10 |
132
+ | SANGHA synapses | 45 |
133
+ | ANNEX bugs fixed | 3 |
134
+ | JHILKE bugs fixed | 2 |
135
+ | peerTag() sites updated | ~60 |
136
+ | ChatPanel features added | 8 |
137
+ | ChatPanel lines | ~3200 |
138
+ | Protocol URL fixes | 4 files |
139
+
140
+ ---
141
+
142
+ ## [3.1.0] - 2026-02-21
143
+
144
+ ### 🎨 Docs 3.0 Polish + Phase 6 Realm AI — Zero External Dependencies
145
+
146
+ *Theme: "Every font local, every icon inline, every faction alive."*
147
+
148
+ Two streams of work: (1) the docs site achieves true zero-dependency operation — no Google Fonts,
149
+ no external requests, system font stacks only; (2) the C2C realm system grows a full AI layer
150
+ with NPU-driven faction brains, adaptive difficulty, and player-facing AI profiles.
151
+
152
+ ---
153
+
154
+ #### 📄 Docs 3.0 Polish Series
155
+
156
+ **Google Fonts Removal** — 48 HTML files purged of all `fonts.googleapis.com` references.
157
+ System font stacks (`system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif`) replace
158
+ all external font loads. Zero render-blocking requests from the docs site.
159
+
160
+ **SVG Icon Sprite System (Phase 2)** — `docs/assets/icons.svg` expanded to 69 symbols
161
+ covering every protocol, application, and reference category. 3,215+ icon references
162
+ across all docs pages. Inline `<svg><use href="#icon-..."/></svg>` pattern — no image
163
+ requests, instant rendering, accessible via `aria-hidden`.
164
+
165
+ **Heading Hierarchy Audit** — All 48 docs pages verified: one `<h1>` per page, consistent
166
+ `<h2>`/`<h3>` nesting. 48 h1s, 430 h2s, 335 h3s total.
167
+
168
+ **Performance Pass** — Async CSS loading via `media="print" onload` pattern (45 files),
169
+ `<noscript>` fallbacks, `will-change` hints for animations, skip-link accessibility on
170
+ every page. No external blocking resources remain.
171
+
172
+ **Content Expansion** — `docs/c2c.html` expanded from 513 words / 0 code blocks to
173
+ 1,226 lines with full "Building Your Own Realm" developer guide and "AI Profiles"
174
+ documentation section (three-tier table, personality shape, API endpoints, usage examples).
175
+
176
+ **Tooling** — `update-docs-nav.cjs` (398 lines, 5 phases: sprite injection, emoji→SVG
177
+ hero icons, sidebar sync, journey navigation cards). `deploy-hostinger.cjs` (230 lines,
178
+ 4-stage pipeline: mirror, canonical injection, OG URLs, sitemap generation).
179
+
180
+ ---
181
+
182
+ #### 🤖 C2C Phase 6 — Realm & AI (Miles 22–29)
183
+
184
+ Eight milestones completing the realm system's AI backbone. All documented in
185
+ [DESIGN.md](c2c/DESIGN.md) as Phase 6.
186
+
187
+ **Mile 22 — Realm System Core**: `realms.js` (429 lines). Realm CRUD, memberships,
188
+ story arc schema, manifest loader. Obsidian Scion reference realm with 6 story arcs,
189
+ 5 factions, 2 tech trees, 6 unit types. 4 game modes (sandbox/coop-pve/pvp/campaign).
190
+
191
+ **Mile 23 — NPC Factions & Narrative Voice**: `realm_factions` table with alignment,
192
+ personality, and capabilities JSON. `narrative.js` per-realm vocabulary and NPC dialogue
193
+ templates. 7 narrative event types in `realm_narrative_log`.
194
+
195
+ **Mile 24 — Realm Combat**: `realm-combat.js` (831 lines). 6 faction unit types in
196
+ 900-range IDs (Aethian Warrior → Power Tower Relay). Stats/rapidfire injected into
197
+ existing OGame combat engine. Player-vs-garrison and faction-raid-interception paths.
198
+
199
+ **Mile 25 — Realm Progression**: `realm-progression.js` (227 lines). 7-tier rank system
200
+ (Recruit 0 XP → Fleet Lord 150,000 XP). Atomic XP grants with rank-up detection.
201
+ Paginated leaderboard and individual progression stats.
202
+
203
+ **Mile 26 — Realm Research**: `realm-research.js` (364 lines). Manifest-defined tech
204
+ trees (`dark_energy`, `aethian_salvage`) gated by story arc completion. 6 concrete
205
+ `TECH_EFFECTS`: hull bonus, spy bonus, attack bonus, shield bonus, fleet diversity
206
+ bonus, repair speed.
207
+
208
+ **Mile 27 — Realm Tick Engine**: `realm-tick.js` (619 lines). Arc trigger evaluator
209
+ (6 trigger types), faction economy simulation (mines/expansion/towers/warriors),
210
+ staggered processing across realms, integrated into 30s main game tick.
211
+
212
+ **Mile 28 — NPU Faction Brain + Diplomacy + Adaptive Threats**:
213
+
214
+ - `faction-brain.js` — ONNX model (12→20→14→6 MLP), 6-action scoring (scout/expand/
215
+ tower/raid/obliterator/wait), personality-weighted, mood-aware narrative generation
216
+ - `faction_reputation` + `faction_diplomacy_log` tables — 7 diplomatic status tiers
217
+ (nemesis → allied), atomic reputation adjustments, combat targeting influenced by rep
218
+ - `adaptive-threats.js` — ONNX model (14→20→14→4 MLP), difficulty/category/timing/cost
219
+ scaling from player response history. Threat history table for learning.
220
+
221
+ **Mile 29 — AI Profiles**: `ai-profiles.js` (294 lines). Three-tier system:
222
+
223
+ - **Preset** — 5 profiles shipped with Obsidian Scion manifest (Berserker, Turtle,
224
+ Diplomat, Expansionist, Balanced)
225
+ - **Custom** — player-created via slider UI, max 20 per realm
226
+ - **NPU-Generated** — text description → personality vector via SEVA inference
227
+ - 7 REST API endpoints + `POST /generate` for NPU text→personality conversion
228
+ - `applyProfile()` copies personality + dialogue tags onto a realm faction
229
+
230
+ ---
231
+
232
+ #### 📊 Stats
233
+
234
+ | Metric | Value |
235
+ |--------|-------|
236
+ | Docs pages updated | 48 |
237
+ | SVG icon symbols | 69 |
238
+ | Google Fonts references removed | 192 lines across 48 files |
239
+ | C2C game modules added | 5 (realm-combat, realm-progression, realm-research, realm-tick, ai-profiles) |
240
+ | C2C schema tables added | 10 (realms, realm_memberships, realm_story_arcs, realm_factions, realm_faction_planets, realm_narrative_log, realm_research, faction_reputation, faction_diplomacy_log, threat_response_history, ai_profiles) |
241
+ | ONNX models added | 2 (faction-brain, adaptive-threat) |
242
+ | AI Profile presets | 5 |
243
+ | REST API endpoints added | 15+ |
244
+ | DESIGN.md milestones documented | 8 (Miles 22–29) |
245
+
246
+ ---
247
+
248
+ ## [3.0.0] - 2026-02-20
249
+
250
+ ### 🏔️ The Mega Release — Every Module Wired, Every Path Hardened
251
+
252
+ *Theme: "The mesh stands on math. Every protocol alive, every path encrypted, every proof verifiable."*
253
+
254
+ This is the culmination release. Every protocol module that existed as standalone code is now wired into
255
+ a running server. Every security gap identified by audit has been closed. Voting consensus is gone —
256
+ replaced by mathematical proof. The ternary backbone runs through every subsystem. Hardware acceleration
257
+ routes crypto to the fastest silicon available. And STEADYWATCH delivers real 256-bit quantum entropy
258
+ from IBM ibm_marrakesh quantum hardware.
259
+
260
+ ---
261
+
262
+ #### ⚡ ACCEL — Adaptive Compute & Crypto Engine Layer (`utils/accel.js`, 962 lines)
263
+
264
+ **New module.** Heterogeneous hardware acceleration that routes cryptographic operations to the
265
+ fastest available silicon:
266
+
267
+ - **CPU-SIMD**: AES-NI, VAES, AVX-512, GFNI detection via timing attestation
268
+ - **GPU**: WebGPU compute shader dispatch for batch operations
269
+ - **NPU**: ONNX Runtime integration (DirectML, CoreML, CUDA, TensorRT providers)
270
+ - Capability probing on startup — no false claims, no assumptions
271
+ - `accel.route(operation)` returns optimal backend for each crypto/ML task
272
+ - `_probeOnnxRuntime()` — locates and loads `onnxruntime-node` for ML inference
273
+ - Wired into **all 12 subsystem files**: security, oracle, mesh, adapters
274
+
275
+ #### 🧠 ONNX Machine Learning Pipeline
276
+
277
+ **3 security models** trained and shipping with every node:
278
+
279
+ | Model | Input → Output | Purpose |
280
+ |-------|----------------|---------|
281
+ | `entropy-sentinel.onnx` | 32 → 1 | STEADYWATCH entropy quality scoring |
282
+ | `sakshi-anomaly.onnx` | 12 → 4 | SAKSHI behavioral anomaly detection |
283
+ | `karma-trust.onnx` | 14 → 4 | KARMA trust level prediction |
284
+
285
+ - **Training pipeline**: `train_models.py` — numpy + ONNX pattern (no PyTorch/TF dependency)
286
+ - **Runtime**: `onnxruntime-node` with DirectML (NPU/GPU) and CPU fallback
287
+ - **Model manifest**: `models/manifest.json` — versioned, hash-verified
288
+ - Total: 22,829 bytes, 24,200 training samples
289
+ - NPU inference paths wired into SAKSHI `assessNode()` and KARMA `predictTrustLevel()`
290
+
291
+ #### 🛡️ STEADYWATCH Ternary-144 Integration (`security/steadywatch.js`, 1,129 lines)
292
+
293
+ **Quantum-hardware-validated entropy** from IBM ibm_marrakesh (156-qubit Heron r2):
294
+
295
+ - **SST satellite families**: 48/48/48 (A/B/C) from Hurwitz quaternion coordinates
296
+ - **6-trit balanced ternary** satellite addresses (729 addressable slots)
297
+ - **Fibonacci 24-cycle** family-aware seed selection (`selectByFibonacciCycle`)
298
+ - **Ternary seed quality**: `_checkBiasTernary()` returns `Trit` verdict (+1/0/-1)
299
+ - **EntropySentinel** NPU-accelerated quality monitor — `score()` returns numeric + ternary verdict
300
+ - **Batch consensus**: `batchQualityConsensus(seeds)` — TritArray aggregate quality
301
+ - Seed lookup by trit address: `getSeedByTritAddress(tritAddr)`
302
+ - **Result**: Real 256-bit quantum entropy for ANNEX ML-KEM-768 keygen
303
+
304
+ *Every Yakmesh node provisioned with a quantum-hardware-derived entropy seed,
305
+ validated by actual measurement on physical qubits.*
306
+
307
+ $$\text{Satellites} = 24 \times (p + 1), \quad p=5 \Rightarrow 144 \text{ unique seeds}$$
308
+
309
+ #### 🔌 Full Protocol Wiring — Zero Orphaned Modules
310
+
311
+ Every previously-standalone protocol module is now initialized, routed, and serving:
312
+
313
+ - **KOMM stack** (`server/komm-api.js`, 662 lines) — full HTTP+WS API:
314
+ - KATHA rich chat (reactions, typing, threads, read receipts)
315
+ - VANI voice/video signaling (WebRTC via mesh)
316
+ - YURT room discovery and management
317
+ - GUMBA cryptographic access control (proof-based, E2E over ANNEX)
318
+ - WebSocket at `/komm/ws` — JSON protocol `{ type, data, ts }`
319
+ - **DARSHAN** (`server/darshan-api.js`, 343 lines) — content streaming API
320
+ - View-not-copy delivery with attestation
321
+ - **NAKPAK** — onion routing initialized with ML-KEM circuits
322
+ - **SAKSHI** → **KARMA** pipeline — velocity alerts drive trust accumulation:
323
+ - CRITICAL alerts → negative karma
324
+ - WARNING alerts → neutral beacon sighting
325
+ - Mesh peer connections → positive karma accumulation
326
+
327
+ #### 🔗 SHERPA HTTP Relay Bridge
328
+
329
+ **Firewall traversal** for nodes behind NAT/CGNAT:
330
+
331
+ - `_initRelay()` — HTTP relay bridge alongside WebSocket
332
+ - SHERPA auto-connect with explicit beacon endpoints
333
+ - PHP bridge compatibility (`/mesh/relay` base endpoint)
334
+ - Gossip wired through relay transport
335
+ - **PQ-signed relay**: ML-DSA-65 signatures on all relay operations
336
+ - Relay client expiry and health visibility
337
+ - Caddy WSS template for TLS-terminated WebSocket
338
+
339
+ #### 🔐 ANNEX Hardening
340
+
341
+ - Single Annex instance per peer pair + deterministic initiator selection
342
+ - Infinite recursion fix in `_send()` (self-encrypting loop eliminated)
343
+ - Key derivation fixed with proper replay nonce management
344
+ - **PFS-safe rekey** — forward-looking pending key (no gap during ratchet)
345
+ - ANNEX relay bridge with `sendTo()` fallback for relay-only peers
346
+ - E2E delivery wired into GUMBA `getMessages()` — **zero TODOs remaining**
347
+
348
+ #### 🔺 TRIBHUJ Deep Integration
349
+
350
+ - **TRIBHUJ key ratchet** (`identity/tribhuj-ratchet.js`, 506 lines) — Fibonacci-style ternary key rotation
351
+ - Gateway attestation with TRIBHUJ proofs
352
+ - SSE (Server-Sent Events) for real-time state push
353
+ - Tighter drift tolerance in time synchronization
354
+ - Ternary + SST backbone wired across: KARMA, DOKO, revocation, strike, sybil, ANNEX
355
+
356
+ #### ⚖️ A+C Hybrid Integrity — Voting Consensus Removed
357
+
358
+ **Content validity determined by math, not votes:**
359
+
360
+ - **A** (Authenticity): Publisher ML-DSA-65 signature over content hash
361
+ - **C** (Correctness): SHA3-256 hash integrity verification
362
+ - Any node independently verifies both — one proof = proven
363
+
364
+ **Removed:**
365
+
366
+ - `ConsensusProof` class (validators, quorum, `hasQuorum`, `addValidator`)
367
+ - `content_vote` and `content_validate` gossip handlers
368
+ - `quorumSize` config, PENDING/REJECTED `ContentStatus` values
369
+ - `/:hash/proof` API endpoint, `X-Consensus-Proof` header
370
+
371
+ **Added:**
372
+
373
+ - `ContentStatus`: LOCAL → ANNOUNCED → VERIFIED (no PENDING/REJECTED)
374
+ - `publish()` signs content hash with ML-DSA-65, status → ANNOUNCED
375
+ - `content_response` verifies hash + publisher signature → VERIFIED
376
+ - `/:hash/integrity` API endpoint (hash + publisher sig + status)
377
+ - `X-Publisher-Signature`, `X-Published-By`, `X-Verified` response headers
378
+ - 8 new integrity verification tests replace 11 voting tests
379
+
380
+ *Ethos: Voting consensus is inherently flawed (51% attacks).
381
+ The math checks out — that's the only consensus needed.*
382
+
383
+ #### 🔒 Deep Security Audit — 30 Findings Fixed
384
+
385
+ **Two rounds of comprehensive security hardening:**
386
+
387
+ 1. **2 CRITICALs** — fixed: missing auth bypass, unsigned replication
388
+ 2. **6 HIGHs** — fixed: unsigned gossip rumors, unverified content votes,
389
+ unsigned replication changes, unauthenticated KOMM/DARSHAN APIs (`requirePeerAuth` wired)
390
+ 3. **27 findings** from deep review — all resolved
391
+ 4. **140 new security-focused tests** added
392
+ 5. Ethos audit: no external dependencies introduced, no centralization
393
+ 6. ML-DSA-65 signatures verified on **all** incoming mesh messages
394
+ 7. Comprehensive hardening: SQL injection, auth, encryption across all paths
395
+
396
+ #### 📊 Complete Statistics
397
+
398
+ | Metric | Value |
399
+ |--------|-------|
400
+ | Vitest tests | 1,323 passing |
401
+ | Oracle tests | 212 passing |
402
+ | **Total tests** | **1,535 (0 failures)** |
403
+ | New security tests | 140 |
404
+ | Test files | 29 vitest + oracle suites |
405
+ | Source files (protected) | 179+ |
406
+ | ONNX models | 3 (22,829 bytes) |
407
+ | Server module | 3,202 lines |
408
+ | SAKSHI module | 1,966 lines |
409
+ | STEADYWATCH module | 1,129 lines |
410
+ | ACCEL module | 962 lines |
411
+
412
+ ---
413
+
414
+ ## [2.9.0] - 2026-02-10
415
+
416
+ ### 📡 Communication Stack Complete + DHARMA Content Moderation
417
+
418
+ *Theme: "The full voice of the mesh — from chat to streaming, moderated by behavior, not identity."*
419
+
420
+ This release completes the 3.0 communication stack (Layers 9–13), adds behavior-based content moderation,
421
+ and introduces the adapter framework for extensible chat.
422
+
423
+ #### 🗣️ Communication Protocol Stack (Layers 9–13)
424
+
425
+ Five new protocol layers, all documented and tested:
426
+
427
+ | Layer | Protocol | Purpose | Module |
428
+ |-------|----------|---------|--------|
429
+ | 9 | GUMBA | Cryptographic access control (proof-based) | `mesh/gumba.js` |
430
+ | 10 | YURT | Decentralized room discovery | `mesh/yurt.js` |
431
+ | 11 | KATHA | Rich chat (reactions, typing, threads) | `mesh/katha.js` |
432
+ | 12 | VANI | Voice/video calls (WebRTC via mesh) | `mesh/vani.js` |
433
+ | 13 | DARSHAN | View-not-copy content streaming | `mesh/darshan.js` |
434
+
435
+ #### 🛡️ DHARMA — Behavior-Based Content Moderation (`security/dharma-moderation.js`, 517 lines)
436
+
437
+ **धर्म (Sanskrit: "righteous conduct")** — Content moderation that blocks actions, not identities:
438
+
439
+ - ✅ Violence incitement — blocked
440
+ - ✅ Terrorism promotion — blocked
441
+ - ✅ Exploitation — blocked
442
+ - ❌ NO religious discrimination
443
+ - ❌ NO identity-based filtering
444
+
445
+ Same rules for everyone. That's the law.
446
+
447
+ #### 🔌 Adapter Framework
448
+
449
+ Extensible chat plugin system with security built-in:
450
+
451
+ - **`ContentAdapter`** — serve content over the P2P mesh
452
+ - **`ChatModAdapter`** — add `/slash` commands to KATHA
453
+ - Capability declaration required for all adapters
454
+ - Response signing for verification
455
+ - Rate limiting by default
456
+ - **MLV Bible Adapter** — example implementation included
457
+
458
+ #### 🛡️ Active Defense Systems
459
+
460
+ - **VEGATI** velocity detection — behavioral velocity monitoring across dimensions
461
+ - **ZIMMEDARI** attestation accountability — revocation with lineage tracking
462
+ - Trust-proportional rate limits — higher trust = higher throughput
463
+ - STUPA revocation broadcasts — mesh-wide revocation propagation
464
+
465
+ #### 🔬 Security Audit
466
+
467
+ 16 modules analyzed against three principles: SECURITY (crypto, zero-trust), OPPORTUNITY (no gatekeeping), ETHOS (no external dependencies).
468
+
469
+ **Result: 96.7% compliant** — 14 fully compliant, 2 acceptable by design, 0 violations.
470
+
471
+ #### 📚 Documentation
472
+
473
+ - GUMBA, YURT, KATHA, VANI, DARSHAN — all documented with full HTML pages
474
+ - Protocol stack table dynamically generated from `nav-order.json`
475
+ - Silhouette illustrations for all communication protocols
476
+ - 87 doc files synced with sidebar navigation
477
+ - Adapters guide with ContentAdapter and ChatModAdapter examples
478
+ - Security + Opportunity + Ethos audit report published
479
+ - v2.9.0 release announcements for X, Discord, Telegram
480
+
481
+ #### 📊 Packaging
482
+
483
+ - 212 tests passing (0 regressions)
484
+ - 105 documentation files (2.59 MB bundle)
485
+ - 179 protected source files
486
+
487
+ ---
488
+
489
+ ## [2.8.3] - 2026-02-19
490
+
491
+ ### 📡 MA-902 SNMP Integration — Hardware GPS Telemetry for MANI
492
+
493
+ *Theme: "The celestial stones speak through silicon."*
494
+
495
+ #### 🛰️ New Module: `oracle/ma902-snmp.js` (662 lines)
496
+
497
+ - **MA902Monitor** class — SNMP v2c monitor for MA-902/S-C1 GPS Gigabit Time Server
498
+ - Queries enterprise OID `1.3.6.1.4.1.26381` (Chongqing Miaoan Technology)
499
+ - 12 proprietary OIDs mapped: GPS time, sub-seconds, lock status, reference source,
500
+ constellation bitmask, satellites (visible/used/tracking), alarm, quality, offset
501
+ - Lazy-loads `net-snmp` — nodes without MA-902 hardware are unaffected
502
+ - Configurable poll interval (default 10s), auto-reconnect on connection loss
503
+ - Event-driven: `telemetry`, `lockLost`, `lockAcquired`, `alarm`, `trustChanged`,
504
+ `satelliteDegradation`, `connectionLost`, `connectionRestored`
505
+ - **Trust assessment engine** translates satellite telemetry → MANI trust levels:
506
+ - Excellent (≥8 sats, confidence 1.0), Good (≥5, 0.625+), Marginal (≥3, 0.375+)
507
+ - Clock delta sanity check (GPS leap second aware, rejects >120s drift)
508
+ - Alarm and lock status validation
509
+
510
+ #### 🔗 ManiTimeDetector Integration
511
+
512
+ - `ManiTimeDetector` now accepts `ma902: { host, pollInterval }` config option
513
+ - GPS detection enriched with live SNMP data: satellite counts, constellation info,
514
+ lock status, timing quality — all from hardware, not just NTP inference
515
+ - NTP source cross-referenced: detects when w32tm/chrony source IP matches MA-902
516
+ - `getStatus()` includes full MA-902 monitor status in API responses
517
+ - MA-902 events forwarded through detector: `ma902:telemetry`, `ma902:lockLost`, etc.
518
+ - Trust level auto-re-evaluates on MA-902 state changes (lock loss triggers re-detect)
519
+ - **Result: Trust level upgraded from NTP → GPS** when MA-902 is reachable
520
+
521
+ #### 📊 Verified Live Results
522
+
523
+ ```
524
+ Trust Level: GPS (was NTP)
525
+ Phase Tolerance: ±500ms (was ±5000ms — 10x tighter)
526
+ Primary Source: gps (MA-902/S-C1)
527
+ Satellites: 6 used / 8 tracking / 10 visible
528
+ Constellations: GPS + BeiDou
529
+ Lock: YES | Alarm: NONE | Clock Delta: 0s
530
+ MA-902 Backed NTP: YES (w32tm source = 192.168.1.30)
531
+ High Precision Time: TRUE
532
+ ```
533
+
534
+ #### 📦 Packaging
535
+
536
+ - `net-snmp` added as **optionalDependency** (not required for non-MA-902 nodes)
537
+ - Export path: `yakmesh/oracle/ma902-snmp`
538
+ - 212/212 tests passing (0 regressions)
539
+
540
+ ---
541
+
5
542
  ## [2.8.2] - 2026-02-05
6
543
 
7
544
  ### 📦 Documentation Release: TRIBHUJ Ternary Systems
@@ -71,6 +608,7 @@ This release formalizes YAKMESH's rejection of voting-based consensus in favor o
71
608
  | Byzantine | ~5% | Deliberate wrong, sybil, compromised |
72
609
 
73
610
  **New exports:**
611
+
74
612
  - `DISAGREEMENT_CAUSE` - 16 categorized causes
75
613
  - `REMEDIATION` - 11 remediation actions (no permanent bans)
76
614
  - `analyzeDisagreement()` - Diagnose likely cause
@@ -80,6 +618,7 @@ This release formalizes YAKMESH's rejection of voting-based consensus in favor o
80
618
  #### 🗑️ VARNA Removed
81
619
 
82
620
  **VARNA** (`security/varna.js`) has been **deleted** as anti-yakmesh ethos:
621
+
83
622
  - `VARNA_PERMISSIONS` gated actions by tier (denial system = attack vector)
84
623
  - `verifyWeightedVotes()` was voting (politics, not math)
85
624
  - `VARNA_WEIGHT` gave higher tiers more power (PoW/PoS replication)
@@ -132,6 +671,7 @@ This release formalizes YAKMESH's rejection of voting-based consensus in favor o
132
671
  #### TATTVA Ternary ValidationResult
133
672
 
134
673
  **तत्त्व (Sanskrit: "essence")** - Three-state validation:
674
+
135
675
  - `VALID` (+1), `INVALID` (-1), `PENDING` (0)
136
676
  - Ternary logic operations: AND, OR, CONSENSUS
137
677
  - Backward compatible: `result.valid` still works
@@ -140,6 +680,7 @@ This release formalizes YAKMESH's rejection of voting-based consensus in favor o
140
680
  #### LAMA Ternary Consensus
141
681
 
142
682
  **Retrofitted consensus voting:**
683
+
143
684
  - `ConsensusVote.accept()`, `.reject()`, `.abstain()`
144
685
  - `computeTernaryConsensus()` with confidence calculation
145
686
  - Close votes return NEUTRAL (undecided), not forced majority
@@ -171,18 +712,21 @@ This release formalizes YAKMESH's rejection of voting-based consensus in favor o
171
712
  #### 📦 Protocol Integrations
172
713
 
173
714
  **STUPA Broadcast** (`mesh/beacon-broadcast.js`)
715
+
174
716
  - `StupaMessage` now includes `ypc27` field
175
717
  - `_computeYpc27()` and `verifyYpc27()` methods
176
718
  - `isValid(verifyQuantum)` for optional quantum verification
177
719
  - Checksum verified on `deserialize()` for incoming messages
178
720
 
179
721
  **NAKPAK Routing** (`mesh/nakpak-routing.js`)
722
+
180
723
  - `NakpakPacket` now includes `ypc27` field
181
724
  - Checksum computed during `padToFixedSize()` finalization
182
725
  - `verifyYpc27()` for packet integrity verification
183
726
  - Checksum verified on `deserialize()` with error on mismatch
184
727
 
185
728
  **KHATA Protocol** (`security/khata-protocol.js`)
729
+
186
730
  - All message types (ANNOUNCE, REQUEST, RESPONSE, REVOKE) now include checksums
187
731
  - `_wrapWithYpc27()` and `_verifyYpc27()` helper methods
188
732
  - Checksum failures logged with stats tracking
@@ -213,6 +757,7 @@ This release formalizes YAKMESH's rejection of voting-based consensus in favor o
213
757
  #### ✅ New Modules
214
758
 
215
759
  **TRIBHUJ Foundation** (`oracle/tribhuj.js`)
760
+
216
761
  - त्रिभुज (Triangle) — balanced ternary primitives
217
762
  - `Trit` class: immutable single trit {-1, 0, +1}
218
763
  - `TritArray` class: arrays with decimal conversion
@@ -223,6 +768,7 @@ This release formalizes YAKMESH's rejection of voting-based consensus in favor o
223
768
  - **36 tests**
224
769
 
225
770
  **TRISULA Routing** (`mesh/trisula-tree.js`)
771
+
226
772
  - त्रिशूल (Trident) — Ternary Search Tree for peer routing
227
773
  - `TrisulaTST`: O(k) insert/search where k = key length
228
774
  - `TrisulaPeerRouter`: XOR-distance peer lookup
@@ -233,6 +779,7 @@ This release formalizes YAKMESH's rejection of voting-based consensus in favor o
233
779
  #### 🔄 Retrofits
234
780
 
235
781
  **TATTVA Validation** (`oracle/validation-oracle-hardened.js`)
782
+
236
783
  - `ValidationResult` now uses ternary state internally
237
784
  - New methods: `isValid`, `isInvalid`, `isPending`
238
785
  - New operations: `and()`, `or()`, `consensus()`
@@ -240,12 +787,14 @@ This release formalizes YAKMESH's rejection of voting-based consensus in favor o
240
787
  - **22 tests**
241
788
 
242
789
  **LAMA Consensus** (`oracle/consensus-engine.js`)
790
+
243
791
  - New `ConsensusVote` class: ACCEPT/REJECT/ABSTAIN with weights
244
792
  - `computeTernaryConsensus()`: threshold-based aggregation
245
793
  - Prevents consensus "flapping" with ABSTAIN votes
246
794
  - **16 tests**
247
795
 
248
796
  **KHATA/SHERPA Link Quality** (`mesh/sherpa-discovery.js`)
797
+
249
798
  - New `LinkQuality` class for bidirectional link health
250
799
  - Outbound/inbound quality as balanced ternary
251
800
  - `isSymmetric`/`isAsymmetric` detection
@@ -269,6 +818,7 @@ This release formalizes YAKMESH's rejection of voting-based consensus in favor o
269
818
  #### 🔮 Future: NTRU Integration
270
819
 
271
820
  This release lays the foundation for NTRU post-quantum cryptography:
821
+
272
822
  - NTRU uses ternary polynomials with coefficients in {-1, 0, +1}
273
823
  - `TritArray` can directly represent NTRU polynomial coefficients
274
824
  - Self-inverting negation simplifies NTRU arithmetic
@@ -377,6 +927,7 @@ This release lays the foundation for NTRU post-quantum cryptography:
377
927
  #### ✅ Implemented Features
378
928
 
379
929
  **Geographic Proof Core** (`security/geo-proof.js`)
930
+
380
931
  - Speed-of-light distance calculation (fiber = 0.67c)
381
932
  - LandmarkRegistry for known geographic reference points
382
933
  - RTTMeasurement with jitter handling and averaging
@@ -386,6 +937,7 @@ This release lays the foundation for NTRU post-quantum cryptography:
386
937
  - **59 tests**
387
938
 
388
939
  **KHATA Gossip Integration** (`security/khata-trust-integration.js`)
940
+
389
941
  - 6 new message types for geo-proof gossip:
390
942
  - GEO_PROOF_ANNOUNCE, GEO_PROOF_REQUEST, GEO_PROOF_RESPONSE
391
943
  - LANDMARK_ANNOUNCE, LANDMARK_REQUEST, LANDMARK_VERIFY
@@ -394,6 +946,7 @@ This release lays the foundation for NTRU post-quantum cryptography:
394
946
  - **14 new tests** (36 total)
395
947
 
396
948
  **CLI Commands** (`cli/index.js`)
949
+
397
950
  - `yakmesh geo status` - Show geographic proof status
398
951
  - `yakmesh geo landmarks` - List known landmarks
399
952
  - `yakmesh geo zones` - List exclusion zones
@@ -403,6 +956,7 @@ This release lays the foundation for NTRU post-quantum cryptography:
403
956
  - `yakmesh geo physics` - Show speed-of-light constants
404
957
 
405
958
  **Server API Endpoints** (`server/index.js`)
959
+
406
960
  - `GET /geo/status` - Geographic proof status and physics constants
407
961
  - `GET /geo/landmarks` - List registered landmarks
408
962
  - `POST /geo/landmarks` - Add a landmark
@@ -411,6 +965,7 @@ This release lays the foundation for NTRU post-quantum cryptography:
411
965
  - `POST /geo/verify` - Verify another node's claims
412
966
 
413
967
  **SHERPA Beacon Integration** (`mesh/sherpa-discovery.js`)
968
+
414
969
  - RTT measurement during beacon fetch (performance.now())
415
970
  - Geographic coordinates in BeaconMessage (lat, lon, name, accuracyKm, timeTier)
416
971
  - Automatic landmark discovery from geo-enabled beacons
@@ -435,6 +990,7 @@ This release lays the foundation for NTRU post-quantum cryptography:
435
990
  | 200 ms | ≥19,986 km |
436
991
 
437
992
  **Formula:** `minDistance = (RTT / 2) × fiberSpeed`
993
+
438
994
  - Vacuum speed: 299,792.458 km/s
439
995
  - Fiber speed (0.67c): 199,861.639 km/s
440
996
 
@@ -472,18 +1028,21 @@ This release lays the foundation for NTRU post-quantum cryptography:
472
1028
  #### ✅ Implemented Features
473
1029
 
474
1030
  **Mesh-Consensus Revocation** (`security/mesh-revocation.js`)
1031
+
475
1032
  - 2/3 threshold attestation-based revocation
476
1033
  - Post-quantum signed attestations (ML-DSA-65)
477
1034
  - Revocation certificates with threshold proof
478
1035
  - **41 tests**
479
1036
 
480
1037
  **Hardware Attestation** (`security/hardware-attestation.js`)
1038
+
481
1039
  - AES-NI timing verification to prove real silicon
482
1040
  - Challenge-response protocol for peer verification
483
1041
  - Bot farms and VMs fail timing checks
484
1042
  - **5 tests**
485
1043
 
486
1044
  **Trust Tier System** (`security/trust-tier.js`)
1045
+
487
1046
  - ORACLE (2.0x): Atomic clock + AES-NI + 30 days
488
1047
  - ANCHOR (1.5x): GPS+PPS + AES-NI + 14 days
489
1048
  - SENTINEL (1.25x): PTP + AES-NI + 7 days
@@ -492,6 +1051,7 @@ This release lays the foundation for NTRU post-quantum cryptography:
492
1051
  - **35 tests**
493
1052
 
494
1053
  **Silicon Parity** (`security/silicon-parity.js`)
1054
+
495
1055
  - "One Silicon = One Vote" anti-ASIC/farm defense
496
1056
  - Weight division: `tierMax / coreCount`
497
1057
  - 100-core rig = same weight as 1-core
@@ -499,6 +1059,7 @@ This release lays the foundation for NTRU post-quantum cryptography:
499
1059
  - **36 tests**
500
1060
 
501
1061
  **Sybil Graph Analysis** (`security/sybil-graph.js`)
1062
+
502
1063
  - Clustering coefficient detection (>0.7 = suspicious)
503
1064
  - Edge cut ratio analysis (<0.1 = insular cluster)
504
1065
  - Component analysis for cluster isolation
@@ -506,6 +1067,7 @@ This release lays the foundation for NTRU post-quantum cryptography:
506
1067
  - **44 tests**
507
1068
 
508
1069
  **KHATA Trust Integration** (`security/khata-trust-integration.js`)
1070
+
509
1071
  - Gossip layer for trust messages over KHATA protocol
510
1072
  - 8 new message types for attestation/challenge routing
511
1073
  - Deduplication and hop limit enforcement
@@ -513,6 +1075,7 @@ This release lays the foundation for NTRU post-quantum cryptography:
513
1075
  - **22 tests**
514
1076
 
515
1077
  **Strike System** (`security/strike-system.js`)
1078
+
516
1079
  - "Three Strikes — Then Math Speaks"
517
1080
  - Hardware fingerprint tracks identity across fresh starts
518
1081
  - Strike 1: Fresh start allowed, recorded
@@ -569,6 +1132,7 @@ New adapter for integrating BYOND games (Space Station 13, Pondera, etc.) with Y
569
1132
  - **DMAPI Library** - Drop-in DM code for game developers
570
1133
 
571
1134
  **Files:**
1135
+
572
1136
  - `adapters/adapter-byond/index.js` - Main adapter
573
1137
  - `adapters/adapter-byond/topic-client.js` - Wire protocol
574
1138
  - `adapters/adapter-byond/http-bridge.js` - HTTP server
@@ -629,18 +1193,21 @@ This release adds mesh-synchronized bookmark sharing, key compromise recovery, a
629
1193
  Share bookmark lists between nodes via gossip protocol. Subscribe to trusted nodes and receive their bookmarks automatically.
630
1194
 
631
1195
  **New Class: `RemoteBookmarkSync`**
1196
+
632
1197
  - **Publish**: Share your bookmarks to the mesh (`yakmesh bookmark share <list-name>`)
633
1198
  - **Subscribe**: Follow other nodes' bookmark lists (`yakmesh bookmark subscribe <node-id>`)
634
1199
  - **Sync**: Automatic sync via gossip protocol
635
1200
  - **Priority**: Local bookmarks always override remote ones
636
1201
 
637
1202
  **Dashboard UI:**
1203
+
638
1204
  - New "Remote Bookmarks" panel with subscription management
639
1205
  - Subscribe/Unsubscribe buttons
640
1206
  - Publish your bookmarks to mesh
641
1207
  - View remote bookmarks from subscribed nodes
642
1208
 
643
1209
  **REST API:**
1210
+
644
1211
  - `GET /bookmarks/remote/status` - Sync status and stats
645
1212
  - `GET /bookmarks/remote` - List remote bookmarks
646
1213
  - `POST /bookmarks/remote/subscribe` - Subscribe to a node
@@ -652,12 +1219,14 @@ Share bookmark lists between nodes via gossip protocol. Subscribe to trusted nod
652
1219
  Emergency revocation system for compromised DOKO identities.
653
1220
 
654
1221
  **New Class: `DOKORevocation`**
1222
+
655
1223
  - **Self-revocation**: Sign revocation with your own key (if available)
656
1224
  - **Emergency revocation**: Pre-generated "break-glass" certificates
657
1225
  - **Verification**: Validate revocation certificates with ML-DSA
658
1226
  - **Broadcast**: Share revocations via gossip to prevent trust in compromised DOKOs
659
1227
 
660
1228
  **Revocation Reasons:**
1229
+
661
1230
  - `KEY_COMPROMISED` - Private key leaked or stolen
662
1231
  - `DOKO_SUPERSEDED` - Replaced by new DOKO
663
1232
  - `IDENTITY_RETIRED` - Voluntary retirement
@@ -665,6 +1234,7 @@ Emergency revocation system for compromised DOKO identities.
665
1234
  - `AFFILIATION_ENDED` - Left organization
666
1235
 
667
1236
  **Usage:**
1237
+
668
1238
  ```javascript
669
1239
  // Generate emergency cert when creating DOKO (store offline!)
670
1240
  const emergencyCert = DOKORevocation.generateEmergencyCertificate(doko, privateKey);
@@ -692,6 +1262,7 @@ const status = DOKORevocation.isRevoked(dokoId);
692
1262
  | **Total** | | **352** |
693
1263
 
694
1264
  **New Test Files:**
1265
+
695
1266
  - `protocol/tests/yak-protocol.test.js` - 56 tests for URL parsing, bookmarks, DOKO integration
696
1267
  - `tests/multi-node.test.js` - 18 tests for cross-node sync with mock network
697
1268
 
@@ -714,6 +1285,7 @@ This release completes Phase 2 of the YAK:// protocol implementation with local
714
1285
  Personal "pet names" for YAK:// addresses. No global registry needed - bookmarks are local to your node.
715
1286
 
716
1287
  **Features:**
1288
+
717
1289
  - **BookmarkManager**: Manages local bookmarks stored in `data/bookmarks.json`
718
1290
  - **URL Resolution**: Bookmarks are resolved after builtins, before content hashes
719
1291
  - **CLI Commands**: Full bookmark management via CLI
@@ -728,6 +1300,7 @@ Personal "pet names" for YAK:// addresses. No global registry needed - bookmarks
728
1300
  - `DELETE /bookmarks/:name` - Remove bookmark
729
1301
 
730
1302
  **Usage:**
1303
+
731
1304
  ```bash
732
1305
  # Add a bookmark
733
1306
  yakmesh protocol bookmark add docs yak://site/docs
@@ -745,6 +1318,7 @@ yakmesh protocol test yak://docs
745
1318
  Bind SSL certificates to DOKO identities for enhanced domain verification.
746
1319
 
747
1320
  **New Class: `DOKOCertBinding`**
1321
+
748
1322
  - `computeFingerprint(cert)` - SHA-256 fingerprint from PEM or DER certificate
749
1323
  - `createBinding(options)` - Create SSL binding for a domain
750
1324
  - `addBinding(doko, binding)` - Add binding to DOKO extensions
@@ -753,6 +1327,7 @@ Bind SSL certificates to DOKO identities for enhanced domain verification.
753
1327
  - `validateBindings(doko)` - Validate all bindings (expiration, etc.)
754
1328
 
755
1329
  **Cryptographic Chain:**
1330
+
756
1331
  ```
757
1332
  Domain → SSL Certificate → DOKO Identity → Mesh Verification
758
1333
  ```
@@ -764,6 +1339,7 @@ Domain → SSL Certificate → DOKO Identity → Mesh Verification
764
1339
  Secure ownership transfer of domains and DOKO-bound assets.
765
1340
 
766
1341
  **New Class: `DOKOTransfer`**
1342
+
767
1343
  - `createRequest(options)` - Create transfer request with expiration
768
1344
  - `authorize(request, signature, nodeId)` - Owner authorizes transfer
769
1345
  - `reject(request, reason)` - Owner rejects transfer
@@ -773,6 +1349,7 @@ Secure ownership transfer of domains and DOKO-bound assets.
773
1349
  - `createProof(completedTransfer)` - Generate mesh-verifiable proof
774
1350
 
775
1351
  **Transfer Flow:**
1352
+
776
1353
  ```
777
1354
  New Owner → Request → Current Owner → Authorize →
778
1355
  Mesh Verifies → Complete → Ownership Updated
@@ -810,6 +1387,7 @@ This patch release fixes critical ML-DSA-65 argument order bugs discovered durin
810
1387
  #### 🐛 Bug Fixes
811
1388
 
812
1389
  ##### ML-DSA-65 Argument Order (CRITICAL)
1390
+
813
1391
  Fixed incorrect argument order in two files where the noble-post-quantum API was used incorrectly:
814
1392
 
815
1393
  - **`oracle/module-sealer.js`**: Fixed `sign()` and `verify()` argument order
@@ -822,6 +1400,7 @@ Fixed incorrect argument order in two files where the noble-post-quantum API was
822
1400
  **Impact**: Module attestations and NakPak routing signatures were failing validation.
823
1401
 
824
1402
  ##### JSON Serialization in DOKO Identity
1403
+
825
1404
  Fixed `getSignableBytes()` to properly serialize nested objects using recursive key sorting.
826
1405
 
827
1406
  #### ✨ New Exports
@@ -839,6 +1418,7 @@ Added missing module exports to `package.json`:
839
1418
  #### 📋 Release Process
840
1419
 
841
1420
  Added `RELEASE_CHECKLIST.md` with pre-release verification steps including:
1421
+
842
1422
  - Cryptographic API argument order verification
843
1423
  - Export file existence checks
844
1424
  - Documentation accuracy review
@@ -860,6 +1440,7 @@ This major release introduces **mathematical trust** — replacing certificate a
860
1440
  A 7-gate verification gateway inspired by Nepal's Namche Bazaar — the last checkpoint before Everest.
861
1441
 
862
1442
  ##### The 7 Gates of Verification
1443
+
863
1444
  | Gate | Name | Verification |
864
1445
  |------|------|-------------|
865
1446
  | 1 | Cryptographic Gate | Valid ML-DSA-65 signature |
@@ -871,12 +1452,14 @@ A 7-gate verification gateway inspired by Nepal's Namche Bazaar — the last che
871
1452
  | 7 | Freshness Gate | Proof-of-liveliness within 5 minutes |
872
1453
 
873
1454
  ##### New Module: `security/namche-gateway.js`
1455
+
874
1456
  - `NamcheGateway` - Main verification orchestrator
875
1457
  - `GateResult` - Individual gate pass/fail with evidence
876
1458
  - `VerificationReport` - Complete 7-gate assessment
877
1459
  - `TrustDecision` - Final ALLOW/DENY/CHALLENGE decision
878
1460
 
879
1461
  ##### Trust Levels
1462
+
880
1463
  ```javascript
881
1464
  TRUST_LEVELS = {
882
1465
  UNTRUSTED: 0, // Failed critical gates
@@ -894,12 +1477,14 @@ TRUST_LEVELS = {
894
1477
  Self-sovereign identity documents verified by the mesh, not a CA.
895
1478
 
896
1479
  ##### New Module: `security/doko-identity.js`
1480
+
897
1481
  - `DOKODocument` - The identity document structure
898
1482
  - `DOKOGenerator` - Create new DOKO documents
899
1483
  - `DOKOValidator` - Validate document structure and signatures
900
1484
  - `DOKOExtensions` - Optional capability declarations
901
1485
 
902
1486
  ##### DOKO Structure
1487
+
903
1488
  ```javascript
904
1489
  {
905
1490
  version: "1.0",
@@ -928,6 +1513,7 @@ Self-sovereign identity documents verified by the mesh, not a CA.
928
1513
  Bind DOKO identity to X.509 certificates for TLS-level verification.
929
1514
 
930
1515
  ##### New Module: `security/tls-binding.js`
1516
+
931
1517
  - `DOKOCertificateGenerator` - Create X.509 certs from DOKO
932
1518
  - `TLSVerifier` - Verify TLS connections against DOKO
933
1519
  - `TLSCapabilityAdvertiser` - Announce TLS capabilities to mesh
@@ -939,11 +1525,13 @@ Bind DOKO identity to X.509 certificates for TLS-level verification.
939
1525
  Multi-factor trust assessment combining cryptographic proof with behavioral history.
940
1526
 
941
1527
  ##### New Module: `security/hybrid-trust.js`
1528
+
942
1529
  - `TrustEvidence` - Collect evidence from multiple sources
943
1530
  - `HybridTrustModel` - Calculate weighted trust scores
944
1531
  - `TrustBasedAccessControl` - Gate features by trust level
945
1532
 
946
1533
  ##### Trust Factors
1534
+
947
1535
  | Factor | Weight | Source |
948
1536
  |--------|--------|--------|
949
1537
  | Cryptographic | 40% | NAMCHE gates 1-3 |
@@ -958,6 +1546,7 @@ Multi-factor trust assessment combining cryptographic proof with behavioral hist
958
1546
  Mesh-verified domain ownership without centralized DNS authorities.
959
1547
 
960
1548
  ##### New Module: `security/domain-consensus.js`
1549
+
961
1550
  - `DomainClaim` - Claim domain ownership
962
1551
  - `DomainConsensus` - Multi-peer verification
963
1552
  - `DNSVerifier` - Check DNS TXT records
@@ -1018,23 +1607,27 @@ This release implements SHERPA, a novel peer discovery mechanism that uses the p
1018
1607
  #### New Feature: SHERPA Discovery
1019
1608
 
1020
1609
  ##### The Innovation: "The Web IS the DHT"
1610
+
1021
1611
  - Each node exposes `/.well-known/yakmesh/beacon` with its peer list
1022
1612
  - Discovery crawls known endpoints to find new peers
1023
1613
  - No central authority - truly decentralized bootstrap
1024
1614
  - Works with existing CDN infrastructure
1025
1615
 
1026
1616
  ##### New Module: `mesh/sherpa-discovery.js`
1617
+
1027
1618
  - `SherpaDiscovery` - Main discovery engine with peer crawling
1028
1619
  - `BeaconMessage` - Signed beacon format for peer advertisement
1029
1620
  - `PeerRegistry` - Scored peer management with decay
1030
1621
  - `createBeaconMiddleware` - Express middleware for beacon endpoint
1031
1622
 
1032
1623
  ##### New Endpoints
1624
+
1033
1625
  - `GET /.well-known/yakmesh/beacon` - Advertise this node and known peers
1034
1626
  - `GET /sherpa/status` - Discovery statistics
1035
1627
  - `GET /sherpa/candidates` - Get connection candidates
1036
1628
 
1037
1629
  ##### Configuration
1630
+
1038
1631
  ```javascript
1039
1632
  // yakmesh.config.js
1040
1633
  export default {
@@ -1048,6 +1641,7 @@ export default {
1048
1641
  ```
1049
1642
 
1050
1643
  ##### Beacon Response Format
1644
+
1051
1645
  ```json
1052
1646
  {
1053
1647
  "version": "1.0",
@@ -1072,6 +1666,7 @@ This release renames dark-themed protocols to yak-themed names for brand consist
1072
1666
  #### Renamed Protocols
1073
1667
 
1074
1668
  ##### NAKPAK (formerly Phantom)
1669
+
1075
1670
  - **N**ested **A**nonymous **K**ernel for **P**rivate **A**uthenticated **K**omms
1076
1671
  - Post-quantum onion routing with ML-KEM768 key encapsulation
1077
1672
  - File renamed: `phantom-routing.js` → `nakpak-routing.js`
@@ -1079,11 +1674,13 @@ This release renames dark-themed protocols to yak-themed names for brand consist
1079
1674
  - Etymology: NAK (female yak) + PAK (package) = sounds like "knapsack" 🎒
1080
1675
 
1081
1676
  ##### SHERPA (new protocol slot)
1677
+
1082
1678
  - **S**ecure **H**idden **E**ndpoint **R**esolution **P**ath **A**rchitecture
1083
1679
  - Peer discovery DHT via public web layer
1084
1680
  - Guides nodes to find each other like Sherpas guide travelers
1085
1681
 
1086
1682
  #### Protocol Stack Update
1683
+
1087
1684
  ```text
1088
1685
  1. HTTP API - Public content delivery
1089
1686
  2. Annex - Encrypted P2P messaging
@@ -1103,6 +1700,7 @@ This release adds defense-in-depth with FIPS 205 hash-based backup signatures an
1103
1700
  #### New Features
1104
1701
 
1105
1702
  ##### SLH-DSA Backup Signatures (FIPS 205)
1703
+
1106
1704
  - **Dual Algorithm Support:** ML-DSA (lattice-based) + SLH-DSA (hash-based)
1107
1705
  - **Level 3:** SLH-DSA-SHA2-192f (hash-based, different cryptographic assumptions)
1108
1706
  - **Level 5:** SLH-DSA-SHA2-256f (hash-based, paranoid mode)
@@ -1111,6 +1709,7 @@ This release adds defense-in-depth with FIPS 205 hash-based backup signatures an
1111
1709
  - Defense-in-depth: if lattice assumptions break, hash-based signatures still hold
1112
1710
 
1113
1711
  ##### Monitoring Dashboard
1712
+
1114
1713
  - Updated `/dashboard` with YAKMESH branding
1115
1714
  - New `/metrics` endpoint aggregates all node status
1116
1715
  - **Oracle Status:** Health, network identity, verified peers
@@ -1119,6 +1718,7 @@ This release adds defense-in-depth with FIPS 205 hash-based backup signatures an
1119
1718
  - **Uptime Tracking:** Human-readable uptime display
1120
1719
 
1121
1720
  ##### Dev.to Automation
1721
+
1122
1722
  - GitHub Actions now posts to Dev.to on major releases
1123
1723
  - Automated article creation with version info
1124
1724
  - Add `DEVTO_API_KEY` to GitHub secrets to enable
@@ -1126,17 +1726,20 @@ This release adds defense-in-depth with FIPS 205 hash-based backup signatures an
1126
1726
  #### Technical Details
1127
1727
 
1128
1728
  ##### SLH-DSA Key/Signature Sizes
1729
+
1129
1730
  | Level | Public Key | Secret Key | Signature |
1130
1731
  |-------|------------|------------|-----------|
1131
1732
  | 3 (192f) | 48 bytes | 96 bytes | ~35 KB |
1132
1733
  | 5 (256f) | 64 bytes | 128 bytes | ~50 KB |
1133
1734
 
1134
1735
  ##### Performance (SLH-DSA is slower than ML-DSA)
1736
+
1135
1737
  - Sign: ~100-160ms (vs 3ms for ML-DSA)
1136
1738
  - Verify: ~5-9ms (vs 1ms for ML-DSA)
1137
1739
  - Use dual signatures only for high-value operations
1138
1740
 
1139
1741
  #### Added
1742
+
1140
1743
  - `signBackup()`, `verifyBackup()` - SLH-DSA standalone operations
1141
1744
  - `signDual()`, `verifyDual()` - Dual signature operations
1142
1745
  - `generateDualSignatureKeyPairs()` - Generate both ML-DSA and SLH-DSA keypairs
@@ -1146,6 +1749,7 @@ This release adds defense-in-depth with FIPS 205 hash-based backup signatures an
1146
1749
  - Uptime tracking with human-readable formatting
1147
1750
 
1148
1751
  #### Changed
1752
+
1149
1753
  - `getCryptoSummary()` now includes `backupSignatureAlgorithm` and FIPS 205 in standards
1150
1754
  - Dashboard rebranded from "Lantern Mesh" to "YAKMESH"
1151
1755
  - `discord-release.yml` now includes Dev.to posting job
@@ -1161,6 +1765,7 @@ This release adds support for NIST Level 5 security and unifies all hash operati
1161
1765
  #### New Features
1162
1766
 
1163
1767
  ##### NIST Level 5 Support
1768
+
1164
1769
  - Configurable security levels: Level 3 (default) or Level 5 (paranoid)
1165
1770
  - **Level 5 Algorithms:**
1166
1771
  - ML-DSA-87 (Dilithium5) for signatures - 256-bit classical security
@@ -1169,11 +1774,13 @@ This release adds support for NIST Level 5 security and unifies all hash operati
1169
1774
  - Runtime switchable via `setSecurityLevel(SecurityLevel.LEVEL_5)`
1170
1775
 
1171
1776
  ##### Crypto Agility Documentation
1777
+
1172
1778
  - New `docs/CRYPTO-AGILITY.md` formalizes algorithm upgrade procedures
1173
1779
  - Version negotiation protocol for future algorithm transitions
1174
1780
  - Monitoring list for future algorithm candidates (X-Wing, SLH-DSA, etc.)
1175
1781
 
1176
1782
  ##### Post-Quantum Test Suite
1783
+
1177
1784
  - Comprehensive cryptographic tests in `oracle/tests/crypto.test.js`
1178
1785
  - Tests for ML-DSA-65/87, ML-KEM-768/1024
1179
1786
  - Performance benchmarks for Level 3 vs Level 5 overhead
@@ -1182,7 +1789,9 @@ This release adds support for NIST Level 5 security and unifies all hash operati
1182
1789
  #### Changed
1183
1790
 
1184
1791
  ##### Unified SHA3-256 Hashing
1792
+
1185
1793
  All hash operations now use SHA3-256 for post-quantum consistency:
1794
+
1186
1795
  - `oracle/network-identity.js` - HKDF now uses SHA3-256
1187
1796
  - `oracle/phase-epoch.js` - Phase derivation uses SHA3-256
1188
1797
  - `gossip/protocol.js` - Bloom filters and message IDs use SHA3-256
@@ -1192,12 +1801,14 @@ All hash operations now use SHA3-256 for post-quantum consistency:
1192
1801
  - `mesh/echo-ranging.js` - Probe key derivation uses SHA3-256
1193
1802
 
1194
1803
  ### Added
1804
+
1195
1805
  - `security/crypto-config.js` - Centralized crypto configuration module
1196
1806
  - `docs/CRYPTO-AGILITY.md` - Algorithm upgrade path documentation
1197
1807
  - `oracle/tests/crypto.test.js` - PQ cryptography test suite
1198
1808
  - `npm run test:crypto` script for running crypto tests
1199
1809
 
1200
1810
  ### Technical Details
1811
+
1201
1812
  - SHA3-256 provides 128-bit post-quantum security (Grover resistance)
1202
1813
  - All symmetric keys derived from PQ-safe shared secrets
1203
1814
  - No vulnerable classical asymmetric crypto in codebase
@@ -1207,6 +1818,7 @@ All hash operations now use SHA3-256 for post-quantum consistency:
1207
1818
  ## [1.5.1] - 2026-01-17
1208
1819
 
1209
1820
  ### 🔧 Maintenance Release
1821
+
1210
1822
  - Port fallback system for WebSocket and HTTP servers
1211
1823
  - Process management script (`scripts/start.sh`)
1212
1824
  - Discord webhook integration for releases
@@ -1221,11 +1833,13 @@ All hash operations now use SHA3-256 for post-quantum consistency:
1221
1833
  This release fixes a fundamental issue where nodes running identical code were generating different node IDs, preventing them from recognizing each other as peers on the same network.
1222
1834
 
1223
1835
  #### The Problem (v1.4.0 and earlier)
1836
+
1224
1837
  - Node IDs were derived from **random public key** entropy
1225
1838
  - Each node got a unique ID regardless of codebase
1226
1839
  - Nodes couldn't verify they were on the same network by comparing node IDs
1227
1840
 
1228
1841
  #### The Solution (v1.5.0)
1842
+
1229
1843
  - Node IDs now composed of TWO parts:
1230
1844
  1. **Network Name** - Derived from codebase hash (SAME for all nodes on network)
1231
1845
  2. **Instance ID** - Derived from public key (UNIQUE per node)
@@ -1233,22 +1847,26 @@ This release fixes a fundamental issue where nodes running identical code were g
1233
1847
  - Example: `node-qubit-lattice-prism-pq-a7x9`
1234
1848
 
1235
1849
  #### Human Verification
1850
+
1236
1851
  - All nodes on the same network share the same **network name** and **verification phrase**
1237
1852
  - Users can verbally verify: "Are you on qubit-lattice-prism?"
1238
1853
  - If network names match = same code = can peer
1239
1854
 
1240
1855
  ### Changed
1856
+
1241
1857
  - `identity/node-key.js` - Node ID generation now uses codebase hash for network name
1242
1858
  - `server/index.js` - Oracle initialized BEFORE identity (provides codebase hash)
1243
1859
  - `node-key.json` now stores `networkName`, `verificationPhrase`, and `codebaseHash`
1244
1860
  - Identity automatically regenerates if codebase changes
1245
1861
 
1246
1862
  ### Added
1863
+
1247
1864
  - `setCodebaseHash()` / `getCodebaseHash()` exports from identity module
1248
1865
  - `getNetworkIdentity()` method on NodeIdentity class
1249
1866
  - Codebase change detection - warns and regenerates identity on code updates
1250
1867
 
1251
1868
  ### Breaking Changes
1869
+
1252
1870
  - Existing `node-key.json` files will trigger identity regeneration
1253
1871
  - Old node IDs are no longer compatible with v1.5.0 network naming
1254
1872
 
@@ -1259,6 +1877,7 @@ This release fixes a fundamental issue where nodes running identical code were g
1259
1877
  ### 🔐 Yakmesh Annex - Post-Quantum Encrypted P2P Channels
1260
1878
 
1261
1879
  #### Annex: Autonomous Network Negotiated Encrypted eXchange
1880
+
1262
1881
  - ML-KEM-768 (Kyber) key encapsulation for quantum-resistant key exchange
1263
1882
  - AES-256-GCM authenticated encryption for message confidentiality
1264
1883
  - Perfect Forward Secrecy - session keys rotate every 5 minutes or 10,000 messages
@@ -1266,6 +1885,7 @@ This release fixes a fundamental issue where nodes running identical code were g
1266
1885
  - Three-message handshake: INIT → ACCEPT → CONFIRM
1267
1886
 
1268
1887
  ### Added
1888
+
1269
1889
  - `mesh/annex.js` - Complete Annex implementation (744 lines)
1270
1890
  - AnnexEnvelope class for encrypted message wrapping
1271
1891
  - AnnexSession class for per-peer session management
@@ -1278,6 +1898,7 @@ This release fixes a fundamental issue where nodes running identical code were g
1278
1898
  ## [1.3.2] - 2026-01-17
1279
1899
 
1280
1900
  ### Added
1901
+
1281
1902
  - **Public Content Delivery API** - Content-addressed storage for decentralized website hosting
1282
1903
  - `GET /content` - List available content with stats
1283
1904
  - `GET /content/:hash` - Fetch content by hash with optional proof
@@ -1286,10 +1907,12 @@ This release fixes a fundamental issue where nodes running identical code were g
1286
1907
  - Consensus proof system for verified content
1287
1908
 
1288
1909
  ### Fixed
1910
+
1289
1911
  - Gossip protocol method calls (use `spreadRumor()` instead of `broadcast()`)
1290
1912
  - Direct messaging via mesh instead of non-existent gossip.sendTo()
1291
1913
 
1292
1914
  ### Community
1915
+
1293
1916
  - Added social links: Discord, Telegram, X (Twitter)
1294
1917
  - Created Discord announcement template
1295
1918
 
@@ -1298,16 +1921,19 @@ This release fixes a fundamental issue where nodes running identical code were g
1298
1921
  ## [1.3.1] - 2026-01-16
1299
1922
 
1300
1923
  ### Security
1924
+
1301
1925
  - Hardened peer handshake protocol validation
1302
1926
  - Enhanced network fingerprint verification in HELLO/WELCOME exchange
1303
1927
  - Added CodebaseLock module for runtime source integrity
1304
1928
 
1305
1929
  ### Added
1930
+
1306
1931
  - 3-node test infrastructure for protocol verification
1307
1932
  - iO-style (indistinguishability obfuscation) network identity derivation
1308
1933
  - Human-readable network names from codebase fingerprint
1309
1934
 
1310
1935
  ### Fixed
1936
+
1311
1937
  - Config path resolution for relative/absolute paths
1312
1938
  - Test suite node ID prefix assertion
1313
1939
 
@@ -1318,18 +1944,21 @@ This release fixes a fundamental issue where nodes running identical code were g
1318
1944
  ### 🌟 Major New Systems - "A Beacon in the Darkness"
1319
1945
 
1320
1946
  #### ECHO - Encrypted Coordinate Heuristic Oracle
1947
+
1321
1948
  - Privacy-preserving network topology discovery
1322
1949
  - Virtual coordinate system for latency estimation
1323
1950
  - Encrypted timing probes (AES-256-GCM)
1324
1951
  - Route optimization through coordinate-based pathfinding
1325
1952
 
1326
1953
  #### PULSE - Precision Universal Latency Sync Engine
1954
+
1327
1955
  - Mesh heartbeat system with cryptographic proofs
1328
1956
  - Node liveness detection (alive/suspect/dead states)
1329
1957
  - Network partition detection with confidence scoring
1330
1958
  - Raft-inspired leader election using heartbeat chains
1331
1959
 
1332
1960
  #### PHANTOM - Post-quantum Hidden Anonymous Network Transmission
1961
+
1333
1962
  - **First-ever post-quantum onion routing implementation**
1334
1963
  - ML-KEM-768 (Kyber) key encapsulation per layer
1335
1964
  - Multi-layer encryption with temporal padding
@@ -1337,21 +1966,25 @@ This release fixes a fundamental issue where nodes running identical code were g
1337
1966
  - Fixed packet sizing to prevent length analysis
1338
1967
 
1339
1968
  #### BEACON - Broadcast Emergency Alert Channel Over Network
1969
+
1340
1970
  - Priority message propagation (ROUTINE → CRITICAL)
1341
1971
  - Flood-based protocol with intelligent deduplication
1342
1972
  - Proof-of-receipt for delivery confirmation
1343
1973
  - TTL-based propagation control
1344
1974
 
1345
1975
  ### 📊 Test Coverage
1976
+
1346
1977
  - 68 tests total (18 TME + 24 Security + 26 Novel Systems)
1347
1978
  - All tests passing
1348
1979
 
1349
1980
  ### 🔐 Security Improvements
1981
+
1350
1982
  - Enhanced cryptographic hashing (SHA3-256)
1351
1983
  - Timing attack resistance in PHANTOM
1352
1984
  - Improved rate limiting integration
1353
1985
 
1354
1986
  ### 🛡️ Code Proof Protocol Hardening
1987
+
1355
1988
  - **CRITICAL FIX**: HELLO message now includes `networkFingerprint`
1356
1989
  - **CRITICAL FIX**: WELCOME handler validates fingerprint, rejects mismatches (code 1008)
1357
1990
  - Added `CodebaseLock` module for runtime source file protection
@@ -1369,6 +2002,7 @@ This release fixes a fundamental issue where nodes running identical code were g
1369
2002
  ## [1.2.0] - 2026-01-15
1370
2003
 
1371
2004
  ### Added
2005
+
1372
2006
  - **TME (Temporal Mesh Encoding)** - Novel packet resilience system
1373
2007
  - Encodes data across TIME, not space
1374
2008
  - Temporal slicing with cryptographic chaining
@@ -1381,6 +2015,7 @@ This release fixes a fundamental issue where nodes running identical code were g
1381
2015
  ## [1.1.0] - 2026-01-14
1382
2016
 
1383
2017
  ### Added
2018
+
1384
2019
  - **NAVR** (Network Access Verification via Resources) - Sybil defense
1385
2020
  - Replay attack protection (nonces, timestamps, sequences)
1386
2021
  - Message validator with size limits and depth checks
@@ -1392,6 +2027,7 @@ This release fixes a fundamental issue where nodes running identical code were g
1392
2027
  ## [1.0.3] - 2026-01-15
1393
2028
 
1394
2029
  ### Fixed
2030
+
1395
2031
  - verify() function in identity module
1396
2032
  - Rate limiter initialization
1397
2033
 
@@ -1400,6 +2036,7 @@ This release fixes a fundamental issue where nodes running identical code were g
1400
2036
  ## [1.0.0] - 2026-01-13
1401
2037
 
1402
2038
  ### Initial Release
2039
+
1403
2040
  - ML-DSA-65 post-quantum signatures
1404
2041
  - SQLite-based distributed oracle
1405
2042
  - WebSocket mesh networking