Commit Graph

82 Commits

Author SHA1 Message Date
calesthio
7158b58373 Use official star-history embed format for README chart 2026-03-20 22:40:02 -07:00
calesthio
cd5e6fc61a Fix star history URLs to use lowercase repo name 2026-03-20 22:38:05 -07:00
calesthio
6ba8ba05db Fix star history chart rendering on GitHub dark mode 2026-03-20 22:36:02 -07:00
calesthio
d483ec35f0 Add star history chart to README 2026-03-20 22:33:56 -07:00
calesthio
44dd7fcdd8 Rename dashboard performance toggle to visuals 2026-03-20 15:12:56 -07:00
calesthio
ed384528ef Document dashboard performance modes 2026-03-20 11:03:49 -07:00
Calesthio
e4537de62a Merge pull request #59 from calesthio/codex/add-regional-rss-feeds
Add regional RSS feeds for South America, India, and Australia
2026-03-20 10:58:28 -07:00
calesthio
4ce2e7f1e3 Add regional RSS sources to dashboard 2026-03-20 06:32:42 -07:00
calesthio
05ce4680f5 Add token impersonation warning to README 2026-03-20 05:49:34 -07:00
Calesthio
c3c06ff586 Merge pull request #53 from calesthio/codex/dashboard-regressions-opensky-fallback
Fix dashboard regressions and add OpenSky fallback
2026-03-19 13:37:37 -07:00
calesthio
7e3ead0e96 Fix dashboard map regressions and OpenSky fallback 2026-03-19 11:57:22 -07:00
Calesthio
6514d7c00d Add Mistral AI as LLM provider (#14)
Add Mistral AI as LLM provider
2026-03-19 08:11:19 -07:00
Calesthio
8f260e7196 feat: add news sources, 30-day filter, and fix ticker crash (#9)
feat: add news sources, 30-day filter, and fix ticker crash
2026-03-19 08:11:11 -07:00
nirae
4d526ca11b update default model to mistral-large-latest and real integration test 2026-03-19 08:04:08 -07:00
nirae
05b63a68af use mistral-large-latest instead of mistral-medium 2026-03-19 08:04:08 -07:00
nirae
7a9c957909 add Mistral in README 2026-03-19 08:04:08 -07:00
nirae
4af53ab25a Add Mistral AI as LLM provider 2026-03-19 08:04:08 -07:00
Ketchalegend
a8ff837834 fix: tighten source badge mapping per review
- NYT Africa, DW Africa → Africa badge (check before generic nyt/dw)
- NPR → USA badge (was incorrectly grouped with Africa)
- RFI → Africa (Africa/Cameroon region per PR)
- Add .tk-src.us style for USA sources
2026-03-19 08:01:20 -07:00
Ketchalegend
ba9e93679f feat: add news sources, 30-day filter, and fix ticker performance
- Fix Al Jazeera RSS URL (feeds.aljazeera.com is dead, moved to www.aljazeera.com)
- Add 8 new RSS sources: DW, France 24, Euronews, DW Africa, RFI, Africa News,
  NYT Africa, NPR — covering Germany, Europe, Africa, Cameroon region, and USA
- Filter WHO outbreak news and ticker feed to last 30 days (drops stale alerts
  like 733-day-old WHO DONs)
- Fix ticker causing Chrome to crash: add will-change:transform and
  contain:layout style for GPU compositing, reduce DOM nodes from 80 to 40
- Add badge styles for new source categories (DW, EU, Africa)
2026-03-19 08:01:20 -07:00
Calesthio
3fed206e59 feat(i18n): Add internationalization support with English and French locales (#1)
feat(i18n): Add internationalization support with English and French locales
2026-03-19 08:00:40 -07:00
Calesthio
bed928b6ed fix: prevent infinite loading screen by adding sweep timeouts (#32)
fix: prevent infinite loading screen by adding sweep timeouts
2026-03-19 08:00:32 -07:00
Calesthio
2c9174bdae Fix telegram (#29)
Fix telegram
2026-03-19 08:00:24 -07:00
Calesthio
8d99cd22a0 Added the Strait of Gibraltar into CHOKEPOINTS (#43)
Added the Strait of Gibraltar into CHOKEPOINTS
2026-03-19 08:00:15 -07:00
calesthio
b1f1a53767 Refine README community callouts 2026-03-18 23:41:55 -07:00
David
9b395b6aa5 feat(i18n): Add internationalization support
- Add i18n module with locale loading and translation helpers
- Add English (en) and French (fr) locale files with comprehensive translations
- Inject locale data into dashboard HTML via server
- Add /api/locales endpoint for locale info
- Add t() translation function to dashboard

Translated elements:
- Boot sequence (initialization, connecting, sweep complete)
- Header pills (sweep, sources, delta, risk indicators)
- Left rail panels (sensor grid, nuclear watch, risk gauges, space watch)
- Layer names and descriptions
- Map legend items
- Lower panels (news ticker, sweep delta, macro+markets, trade ideas)
- Right rail (OSINT stream)
- Badges and status indicators

Supported languages: English (default), French
Set CRUCIX_LANG=fr to switch to French
2026-03-18 21:43:57 +01:00
calesthio
c29ec93350 Add dashboard signal guide glossary (#42) 2026-03-18 12:01:04 -07:00
calesthio
26a6471269 Improve mobile globe loading and perf mode (#44) 2026-03-18 11:49:17 -07:00
Guardian
7c10c6d0cd Added the Strait of Gibraltar into CHOKEPOINTS 2026-03-18 13:12:57 -05:00
calesthio
d570ca6887 Improve mobile dashboard layout and map defaults 2026-03-18 10:52:04 -07:00
R4V3N
203f359028 Merge pull request #35 from calesthio/feat/docker-ghcr-publish
Add prebuilt Docker image publishing to GHCR
2026-03-18 17:35:50 +01:00
R4V3N
06e0140268 Add Docker Hub image tags to metadata step
The login step was present but no Docker Hub image name was
configured in the metadata action, so nothing would be pushed.
Now generates Docker Hub tags when DOCKERHUB_ENABLED is set.
2026-03-18 16:13:49 +01:00
Firdavs
6b614d559d fix: clear timeout timer in runSource to prevent event loop hang
The Promise.race timeout was never cleared on success/failure,
keeping the Node event loop alive for ~30s after fast sweeps.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 07:40:27 +00:00
satoshipanic
801293356c fix(telegram): restore command auth boundary and scope command registration
Restrict command handling to TELEGRAM_CHAT_ID again to prevent arbitrary private chats from executing privileged bot commands. Keep reply routing, @BotName parsing, and long-message chunking while scoping setMyCommands to the configured chat only.

Made-with: Cursor
2026-03-18 08:20:32 +01:00
R4V3N
9510865dd8 Fix Docker Hub login condition in CI workflow
Replace invalid secrets check in if-condition with a
repository variable (vars.DOCKERHUB_ENABLED) to avoid
workflow file parsing errors.
2026-03-18 06:28:19 +01:00
R4V3N
e0a6e131bf Merge branch 'master' into feat/docker-ghcr-publish 2026-03-18 06:21:45 +01:00
R4V3N
3294b18d1c Remove .dockerignore from .gitignore
The .dockerignore needs to be tracked so the CI workflow and
contributors can use it during Docker builds.
2026-03-18 06:13:50 +01:00
calesthio
a8682c50d0 Add zoom-aware symbology, fix globe popovers, expand geo coverage (#34)
* Add zoom-aware symbology, fix globe popovers, expand geo coverage

Map rendering improvements based on user feedback:
- Globe markers now scale with camera altitude (onZoom hook)
- Priority-based visibility culls low-priority markers at world view
- Globe popovers use getScreenCoords for accurate positioning
- Flat map labels hidden at low zoom, revealed progressively
- Default globe altitude lowered from 2.5 to 1.8 for better fill
- Americas region zoom tightened to CONUS focus

Geographic coverage expansion:
- 4 new OpenSky air theaters: Caribbean, Gulf of Guinea, Cape Route, Horn of Africa
- Flight corridors now span Americas and Africa
- NOAA alerts extract centroid lat/lon from GeoJSON geometry
- EPA RadNet stations geocoded with hardcoded coords for 10 US cities
- ISS + Tiangong positions estimated from TLE orbital elements
- GDELT geoEvents() now called in briefing for mapped event points
- New legend entries: Weather Alert, EPA RadNet, Space Station, GDELT Event

* Fix null-safe coordinate checks and remove injected data blob

- Use `!= null` instead of truthy checks for lat/lon in noaa.mjs
  and inject.mjs so valid 0-coordinates (equator/prime meridian)
  are not silently dropped
- Reset jarvis.html `let D` back to null placeholder so generated
  runtime data is not part of the PR diff

* Remove re-injected data blob from jarvis.html

Reset let D back to null — previous commit was correct but
inject.mjs build verification re-injected the payload.
2026-03-17 19:34:08 -07:00
calesthio
d63c69bb05 Merge pull request #26 from trisk/aljazeera-url
Fix Al Jazeera RSS feed URL
2026-03-17 14:38:26 -07:00
calesthio
7195951997 Merge pull request #16 from DanNO248/feature/openrouter-support
feat: add openrouter support
2026-03-17 14:28:09 -07:00
calesthio
3e2d1a3b5d Merge master into feature/openrouter-support 2026-03-17 14:27:06 -07:00
calesthio
1959cc1199 Merge pull request #8 from octo-patch/feature/add-minimax-provider
feat: add MiniMax as LLM provider
2026-03-17 14:24:31 -07:00
calesthio
83a7c3b594 Merge pull request #19 from xaoscience/security/npm-audit
fix(security): patch undici CVEs, restore discord.js@14
2026-03-17 14:24:16 -07:00
calesthio
4761c3d221 Merge pull request #18 from xaoscience/fix/setup-friction
Small setup friction improvement and correction
2026-03-17 14:24:00 -07:00
calesthio
54bbcd4b04 Fix static dashboard injection flow 2026-03-17 13:47:55 -07:00
calesthio
cd206e4efd Promote live demo in repo copy 2026-03-17 13:05:04 -07:00
Firdavs
d22f36e158 fix: prevent infinite loading screen by adding sweep timeouts
The dashboard would hang indefinitely on the loading screen because:

1. `bls.mjs` used a raw `fetch()` without any timeout/AbortSignal —
   if the BLS API was slow or unresponsive, it would block forever.

2. `runSource()` in `briefing.mjs` had no per-source timeout, so a
   single hanging API could stall the entire sweep indefinitely.

3. `server.mjs` loaded cached `latest.json` via a fire-and-forget
   promise (`.then()`) instead of `await`, meaning the dashboard
   never received the cached data before the sweep started.

4. `loading.html` relied solely on SSE for redirect — if the SSE
   connection missed the update event, the page would never redirect.

Changes:
- Add 15s AbortController timeout to BLS `getSeries()` fetch call
- Add 30s per-source timeout via `Promise.race()` in `runSource()`
- Await `synthesize()` when loading cached data so the dashboard
  serves instantly on restart when `runs/latest.json` exists
- Add 5s fallback polling to loading page alongside SSE

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 21:56:08 +03:00
R4V3N
4513d5d7ed Add GitHub Actions workflow for Docker image publishing
Builds multi-platform images (amd64/arm64) and pushes to GHCR
on master pushes and version tags. Optional Docker Hub support
via repository secrets.
2026-03-17 17:19:33 +01:00
satoshipanic
28121298cf fix(telegram): split long messages at 4096 chars to avoid truncation
- Add TELEGRAM_MAX_TEXT and _chunkText(); send multiple messages when over limit
- Prefer newline boundaries to avoid breaking Markdown

Made-with: Cursor
2026-03-17 14:41:47 +01:00
satoshipanic
2a0b73e5a6 fix(telegram): register slash commands and support DM/group two-way bot
- Call setMyCommands on startup for private and group chat scopes
- Parse /cmd@BotName in groups; reply to originating chat
- Allow sendMessage chatId override for command replies

Made-with: Cursor
2026-03-17 14:41:47 +01:00
Albert Lee
cf941e1d87 Fix Al Jazeera RSS feed URL 2026-03-17 06:11:16 -04:00