v0.9.6: InfoNet hashchain, Wormhole gate encryption, mesh reputation, 16 community contributors

Gate messages now propagate via the Infonet hashchain as encrypted blobs — every node syncs them
through normal chain sync while only Gate members with MLS keys can decrypt. Added mesh reputation
system, peer push workers, voluntary Wormhole opt-in for node participation, fork recovery,
killwormhole scripts, obfuscated terminology, and hardened the self-updater to protect encryption
keys and chain state during updates.

New features: Shodan search, train tracking, Sentinel Hub imagery, 8 new intelligence layers,
CCTV expansion to 11,000+ cameras across 6 countries, Mesh Terminal CLI, prediction markets,
desktop-shell scaffold, and comprehensive mesh test suite (215 frontend + backend tests passing).

Community contributors: @wa1id, @AlborzNazari, @adust09, @Xpirix, @imqdcr, @csysp, @suranyami,
@chr0n1x, @johan-martensson, @singularfailure, @smithbh, @OrfeoTerkuci, @deuza, @tm-const,
@Elhard1, @ttulttul
This commit is contained in:
anoracleofra-code
2026-03-26 05:58:04 -06:00
parent d363013742
commit 668ce16dc7
363 changed files with 170456 additions and 23229 deletions
@@ -0,0 +1,55 @@
import { Layer, Marker, Source } from 'react-map-gl/maplibre';
export function MeasurementLayers({
measurePoints,
}: {
measurePoints: { lat: number; lng: number }[] | undefined;
}) {
if (!measurePoints || measurePoints.length === 0) return null;
return (
<>
{measurePoints.length >= 2 && (
<Source
id="measure-lines"
type="geojson"
data={{
type: 'FeatureCollection',
features: [
{
type: 'Feature',
properties: {},
geometry: {
type: 'LineString',
coordinates: measurePoints.map((p) => [p.lng, p.lat]),
},
},
],
}}
>
<Layer
id="measure-lines-layer"
type="line"
paint={{
'line-color': '#00ffff',
'line-width': 2,
'line-dasharray': [4, 3],
'line-opacity': 0.8,
}}
/>
</Source>
)}
{measurePoints.map((pt, idx) => (
<Marker key={`measure-${idx}`} longitude={pt.lng} latitude={pt.lat} anchor="center">
<div className="flex flex-col items-center pointer-events-none">
<div className="w-6 h-6 rounded-full border-2 border-cyan-400 animate-ping absolute opacity-20" />
<div className="w-4 h-4 rounded-full bg-cyan-500 border-2 border-cyan-300 shadow-[0_0_12px_rgba(0,255,255,0.6)] flex items-center justify-center">
<span className="text-[7px] font-mono font-bold text-black">{idx + 1}</span>
</div>
</div>
</Marker>
))}
</>
);
}