fix: cross-node gate decryption, UI text scaling, aircraft zoom

- Derive gate envelope AES key from gate ID via HKDF so all nodes
  sharing a gate can decrypt each other's messages (was node-local)
- Preserve gate_envelope/reply_to in chain payload normalization
- Bump Wormhole modal text from 9-10px to 12-13px
- Add aircraft icon zoom interpolation (0.8→2.0 across zoom 5-12)
- Reduce Mesh Chat panel text sizes for tighter layout
This commit is contained in:
anoracleofra-code
2026-03-26 20:00:30 -06:00
parent c6fc47c2c5
commit da09cf429e
8 changed files with 111 additions and 56 deletions
+5 -3
View File
@@ -106,7 +106,7 @@ export function TrackedFlightLabels({
style={{
...LABEL_BASE,
color: labelColor,
fontSize: '10px',
fontSize: `${Math.max(10, Math.min(16, 10 + (zoom - 5) * 1.2))}px`,
textShadow: LABEL_SHADOW_EXTRA,
whiteSpace: 'nowrap',
}}
@@ -212,9 +212,11 @@ export function TrackedYachtLabels({ ships, inView, interpShip }: TrackedYachtLa
interface UavLabelsProps {
uavs: UAV[];
inView: (lat: number, lng: number) => boolean;
zoom?: number;
}
export function UavLabels({ uavs, inView }: UavLabelsProps) {
export function UavLabels({ uavs, inView, zoom = 5 }: UavLabelsProps) {
const labelSize = `${Math.max(10, Math.min(16, 10 + (zoom - 5) * 1.2))}px`;
return (
<>
{uavs.map((uav, i) => {
@@ -234,7 +236,7 @@ export function UavLabels({ uavs, inView }: UavLabelsProps) {
style={{
...LABEL_BASE,
color: '#ff8c00',
fontSize: '10px',
fontSize: labelSize,
textShadow: LABEL_SHADOW_EXTRA,
whiteSpace: 'nowrap',
}}