Commit Graph

112 Commits

Author SHA1 Message Date
BigBodyCobain 707ca29220 Add in-app local API key setup
Let fresh Docker and local installs enter OpenSky, AIS, and other provider keys directly in onboarding or Settings without manually creating .env files. Persist keys server-side in the backend data store, keep them write-only from the browser, reload runtime settings, and retain local-operator access controls.
2026-05-02 21:16:32 -06:00
BigBodyCobain eb0288ee4e Fix Docker local controls and setup guidance
Allow the bundled Docker frontend proxy to reach local-operator endpoints through the private compose bridge without trusting LAN clients. This restores Time Machine, MeshChat key creation, AI pins/layers, and related local controls in Docker installs. Refresh first-run guidance so Docker users know to configure OpenSky and AIS keys through .env.
2026-05-02 20:18:46 -06:00
BigBodyCobain 8d3c7a51b7 Fix Docker frontend hydration under CSP
Render the app shell dynamically so Next can attach per-request CSP nonces to its production scripts, preventing Docker from serving a static shell that cannot hydrate. Also gives the first-contact warmup test enough time in CI.
2026-05-02 19:47:32 -06:00
BigBodyCobain e1060193d0 Improve v0.9.7 startup and runtime reliability
Prioritize cached first-paint data, defer heavyweight feed synthesis, make MeshChat activation explicit, improve CCTV media handling, and tighten desktop runtime packaging filters.
2026-05-02 17:31:54 -06:00
BigBodyCobain 08810f2537 fix: stabilize v0.9.7 startup and feeds 2026-05-02 13:35:49 -06:00
BigBodyCobain d515aba450 fix: polish v0.9.7 micro update 2026-05-02 02:13:36 -06:00
Shadowbroker 281371e135 Merge pull request #145 from BigBodyCobain/dependabot/npm_and_yarn/frontend/eslint-config-next-16.2.4
Upgrades eslint-config-next from 16.1.6 to 16.2.4 in /frontend
2026-05-02 00:24:02 -06:00
Shadowbroker 401268f22a Merge pull request #142 from BigBodyCobain/dependabot/npm_and_yarn/frontend/tailwindcss/postcss-4.2.4
Bumps @tailwindcss/postcss from 4.2.1 to 4.2.4 in /frontend
2026-05-02 00:23:25 -06:00
Shadowbroker f830148e69 Merge pull request #144 from BigBodyCobain/dependabot/npm_and_yarn/frontend/prettier-3.8.3
bump prettier from 3.8.1 to 3.8.3 in /frontend
2026-05-02 00:22:50 -06:00
BigBodyCobain 5dac844532 test: stabilize secure mail warmup assertion 2026-05-01 23:54:25 -06:00
dependabot[bot] 8884675845 chore(deps-dev): bump eslint-config-next in /frontend
Bumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 16.1.6 to 16.2.4.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v16.2.4/packages/eslint-config-next)

---
updated-dependencies:
- dependency-name: eslint-config-next
  dependency-version: 16.2.4
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-02 05:49:22 +00:00
dependabot[bot] 58144d1b82 chore(deps-dev): bump prettier from 3.8.1 to 3.8.3 in /frontend
Bumps [prettier](https://github.com/prettier/prettier) from 3.8.1 to 3.8.3.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.8.1...3.8.3)

---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.8.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-02 05:49:08 +00:00
dependabot[bot] f6f6176a12 chore(deps-dev): bump @tailwindcss/postcss in /frontend
Bumps [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) from 4.2.1 to 4.2.4.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.4/packages/@tailwindcss-postcss)

---
updated-dependencies:
- dependency-name: "@tailwindcss/postcss"
  dependency-version: 4.2.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-02 05:49:02 +00:00
BigBodyCobain 17cfef0f46 test: harden sender seal crypto inputs 2026-05-01 23:36:28 -06:00
BigBodyCobain 1917cbc724 test: normalize frontend crypto inputs 2026-05-01 23:32:41 -06:00
BigBodyCobain 4ec1fce53d ci: unblock v0.9.7 release checks 2026-05-01 23:24:46 -06:00
BigBodyCobain 28b3bd5ebf release: prepare v0.9.7 2026-05-01 22:56:50 -06:00
Shadowbroker ea457f27da Fix admin session cookie Secure flag breaking localhost access
Skip the Secure flag on the session cookie when the request comes from
a loopback address (localhost, 127.0.0.1, ::1). The Docker image sets
NODE_ENV=production which always enabled Secure, but browsers silently
drop Secure cookies on plain HTTP — breaking the admin panel for
self-hosted users accessing http://localhost:3000.

Fixes #129
2026-04-03 21:08:00 -06:00
anoracleofra-code 66df14a93c fix: improve alert box collision resolution to prevent overlapping
- Increase gap between alert boxes from 6px to 12px
- Use weighted repulsion so high-risk alerts stay closer to true position
- Reduce grid cell height for better overlap detection (100→80px)
- Double max iterations (30→60) for dense clusters
- Increase max offset from 350→500px for more spread room
- Fix box height estimate to match actual rendered dimensions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 07:23:20 -06:00
anoracleofra-code c81d81ec41 feat: real-time gate messages via SSE + faster push/pull intervals
- Add Server-Sent Events endpoint at GET /api/mesh/gate/stream that
  broadcasts ALL gate events to connected frontends (privacy: no
  per-gate subscriptions, clients filter locally)
- Hook SSE broadcast into all gate event entry points: local append,
  peer push receiver, and pull loop
- Reduce push/pull intervals from 30s to 10s for faster relay sync
- Add useGateSSE hook for frontend EventSource integration
- GateView + MeshChat use SSE for instant refresh, polling demoted
  to 30s fallback

Latency: same-node instant, cross-node ~10s avg (was ~34s)
2026-03-27 09:35:53 -06:00
anoracleofra-code 5f4d52c288 style: make threat alert cards larger and more prominent
- Header: 10px → 14px with wider letter spacing
- Body text: 9px → 12px, max-width 160px → 260px
- Footer: 8px → 10px
- Card: min-width 120→200, border 1.5→2px, stronger glow
- Box width constant: 180→280 for collision avoidance
- Font: JetBrains Mono for consistency with terminal reskin
2026-03-26 20:58:50 -06:00
anoracleofra-code 5e40e8dd55 style: terminal reskin — Infonet aesthetic for main dashboard
- JetBrains Mono as primary body font
- Backgrounds: pure black → #0a0a0a (warmer dark)
- Borders: opacity 0.18 → 0.30 (more visible panel edges)
- Body text: near-white → gray-300 (softer terminal feel)
- Scanline overlay: 5% → 8% opacity
- Text glow: double-layer shadow, increased intensity
- All panel containers: bg-[#0a0a0a]/90 border-cyan-900/40
- Map popup titles: uppercase + tracking
- Matrix HUD theme: updated border baselines to match

Rollback: git reset --hard backup-pre-terminal-reskin
2026-03-26 20:53:27 -06:00
anoracleofra-code 46657300c4 fix: use mapZoom instead of undefined zoom for UavLabels 2026-03-26 20:20:46 -06:00
anoracleofra-code c5d48aa636 feat: pass FINNHUB_API_KEY to Docker, update layer defaults, cluster APRS
- Add FINNHUB_API_KEY to docker-compose.yml so financial ticker works
  in Docker deployments
- Update default layer config: planes/ships ON, satellites only for
  space, no fire hotspots, military bases + internet outages for infra,
  all SIGINT except HF digital spots
- Add MapLibre native clustering to APRS markers (matches Meshtastic)
  with cluster radius 42, breaks apart at zoom 8
2026-03-26 20:16:40 -06:00
anoracleofra-code da09cf429e 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
2026-03-26 20:00:30 -06:00
anoracleofra-code 12cf5c0824 fix: add paho-mqtt dependency + improve Infonet sync status labels
paho-mqtt was missing from pyproject.toml, causing the Meshtastic MQTT
bridge to silently disable itself in Docker — no live chat messages
could be received. Also improve Infonet node status labels: show
RETRYING when sync fails instead of misleading SYNCING, and WAITING
when node is enabled but no sync has run yet.
2026-03-26 15:45:11 -06:00
anoracleofra-code 04939ee6e8 fix: bump text sizes across all mesh/infonet/settings components
7px→11px, 8px→12px, 9px→13px, 10px→14px (text-sm) across MeshChat,
MeshTerminal, InfonetTerminal (all sub-components), ShodanPanel,
SettingsPanel, and OnboardingModal. 316 instances total.
2026-03-26 10:38:33 -06:00
anoracleofra-code 4897a54803 fix: allow Docker internal IPs for local operator + bump changelog text sizes
- require_local_operator now recognizes Docker bridge network IPs
  (172.x, 192.168.x, 10.x) as local, fixing "Forbidden — local operator
  access only" when frontend container calls wormhole/mesh endpoints
- Bumped all changelog modal text from 8-9px to 11-13px for readability
2026-03-26 10:23:31 -06:00
Shadowbroker 1b7df287fa Merge pull request #121 from BigBodyCobain/dependabot/npm_and_yarn/frontend/framer-motion-12.38.0
chore(deps): bump framer-motion from 12.34.3 to 12.38.0 in /frontend
2026-03-26 06:22:44 -06:00
Shadowbroker bbe47b6c31 Merge pull request #119 from BigBodyCobain/dependabot/npm_and_yarn/frontend/react-19.2.4
chore(deps): bump react from 19.2.3 to 19.2.4 in /frontend
2026-03-26 06:22:38 -06:00
anoracleofra-code ac6b209c37 fix: Docker self-update shows pull instructions instead of silently failing
The self-updater extracted files inside the container but Docker restarts
from the original image, discarding all changes. Now detects Docker via
/.dockerenv and returns pull commands for the user to run on their host.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 06:18:23 -06:00
dependabot[bot] c4a731406a chore(deps): bump framer-motion from 12.34.3 to 12.38.0 in /frontend
Bumps [framer-motion](https://github.com/motiondivision/motion) from 12.34.3 to 12.38.0.
- [Changelog](https://github.com/motiondivision/motion/blob/main/CHANGELOG.md)
- [Commits](https://github.com/motiondivision/motion/compare/v12.34.3...v12.38.0)

---
updated-dependencies:
- dependency-name: framer-motion
  dependency-version: 12.38.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 12:00:43 +00:00
dependabot[bot] d22c9b0077 chore(deps): bump react from 19.2.3 to 19.2.4 in /frontend
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 19.2.3 to 19.2.4.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.4/packages/react)

---
updated-dependencies:
- dependency-name: react
  dependency-version: 19.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 12:00:16 +00:00
anoracleofra-code 668ce16dc7 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
2026-03-26 05:58:04 -06:00
elhard1 54d4055da1 fix(start.sh): add missing fi after UV bootstrap block
The UV install conditional was never closed, which caused 'unexpected
end of file' from bash -n and broke the macOS/Linux startup path.

Document in ChangelogModal BUG_FIXES (2026-03-26).

Made-with: Cursor
2026-03-26 09:11:30 +08:00
Singular Failure 3a2d8ddd75 feat: add Spanish CCTV feeds and fix image loading
- Add 5 native ingestors to cctv_pipeline.py: DGT (~1,917 cameras),
  Madrid (~357), Málaga (~134), Vigo (~59), Vitoria-Gasteiz (~17)
- Fix DGT DATEX2 parser to match actual XML schema (device elements,
  not CctvCameraRecord)
- Wire all new ingestors into the scheduler via data_fetcher.py
- Remove standalone spain_cctv.py by Alborz Nazari, replaced by native
  pipeline ingestors that integrate with the existing scheduler pattern
- Fix CCTV image loading for servers with Referer-based hotlink
  protection (referrerPolicy="no-referrer")
- Replace external via.placeholder.com fallbacks with inline SVG data
  URIs to avoid dependency on unreachable third-party service
- Surface source_agency attribution in CCTV panel UI for open data
  license compliance (CC BY / Spain Ley 37/2007)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 15:10:43 +01:00
Wa1iD 231f0afc4e fix: restore CCTV layer ingestion and map rendering 2026-03-20 22:05:05 +01:00
adust09 b40f9d1fd0 feat: add power plants layer with WRI Global Power Plant Database
Map ~35,000 power generation facilities from 164 countries using the
WRI Global Power Plant Database (CC BY 4.0). Follows the existing
datacenter layer pattern with clustered icon symbols, amber color
scheme, and click popups showing fuel type, capacity, and operator.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 16:56:24 +09:00
Xpirix ebcc101168 style: update bottom bar component to improve style interaction 2026-03-16 20:16:00 +03:00
adust09 44147da205 fix: resolve merge conflicts between JSDF bases and East Asia adversary bases
Merge both feature sets: keep JSDF bases (gsdf/msdf/asdf branches) from
PR #77 and East Asia adversary bases (missile/nuclear branches) from main.
Union all branch types in tests and MaplibreViewer labels.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 01:10:19 +09:00
adust09 457f00ca42 feat: add 18 JSDF bases to military bases layer
Add ASDF (8), MSDF (6), and GSDF (4) bases to military_bases.json.
Colocated bases (Misawa, Yokosuka, Sasebo) have offset coordinates
to avoid overlap with existing US entries. Add branchLabel entries
for GSDF/MSDF/ASDF in MaplibreViewer popup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 14:44:32 +09:00
adust09 27506bbaa9 test: add JSDF bases tests (RED phase)
- Add gsdf/msdf/asdf to known_branches in test_branch_values_are_known
- Add test_includes_jsdf_bases for Yonaguni, Naha, Kure
- Add test_colocated_bases_have_separate_entries for Misawa
- Add buildMilitaryBasesGeoJSON tests with ASDF branch validation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 14:43:01 +09:00
adust09 910d1fd633 feat: enhance East Asia coverage with adversary bases, news sources, ICAO ranges, and PLAN vessel DB
- Add 68 military bases (PLA, Russia, DPRK, ROC, Philippines, Australia)
  with data-driven color coding (red/blue/green) on the map
- Add 6 news RSS feeds (Yonhap, Nikkei Asia, Taipei Times, Asia Times,
  Defense News, Japan Times) and 15 geocoding keywords for islands,
  straits, and disputed areas
- Extend ICAO country ranges for Russia, Australia, Philippines,
  Singapore, DPRK and add Russian aircraft classification (fighters,
  bombers, cargo, recon)
- Create PLAN/CCG vessel enrichment module (90+ ships) following
  yacht_alert pattern for automatic MMSI-based identification
- Update frontend types and popup styling for adversary/allied/ROC
  color distinction

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 12:46:40 +09:00
adust09 4b9765791f feat: enrich military aircraft with ICAO country/force and East Asia model classification
Infer country and military force (PLA, JSDF, ROK, ROC) from ICAO hex
address blocks when the flag field is Unknown. Extract and extend aircraft
model classification to cover East Asian fighters, cargo, recon, and
tanker types with hyphen-normalized matching.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 01:05:44 +09:00
adust09 05de14af9d feat: add military bases map layer for Western Pacific
Add 18 US military bases (Japan, Guam, South Korea, Hawaii, Diego Garcia)
as a toggleable map layer. Follows the existing data center layer pattern:
static JSON → backend fetcher → slow-tier API → frontend GeoJSON layer.

Includes red circle markers with labels, click popups showing operator
and branch info, and a toggle in the left panel.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 00:33:35 +09:00
Shadowbroker 71c00a6c57 Delete frontend/errors.txt
Former-commit-id: 257159ead999c4805217b3bcefb24101b34281b9
2026-03-14 19:16:22 -06:00
Shadowbroker a0c2ff68c0 Delete frontend/build_error.txt
Former-commit-id: b984825c75bb468d9b80c72e62b8f5ba897af9c7
2026-03-14 19:16:07 -06:00
Shadowbroker 3e41cc4999 Delete frontend/build_logs2.txt
Former-commit-id: c60db226c818c30ba78012b4906d3aaf763a7100
2026-03-14 19:15:48 -06:00
Shadowbroker 79ade6d92f Delete frontend/build_logs.txt
Former-commit-id: 2c6e44b2882a9d3646ebcbdc8c632f4f9e8a98a1
2026-03-14 19:15:26 -06:00
Shadowbroker 50a07fb419 Delete frontend/build_logs3.txt
Former-commit-id: 18910fb5ded0c99f9c4a9e6febfe3c8f464f754a
2026-03-14 19:15:13 -06:00