Commit Graph

9 Commits

Author SHA1 Message Date
85f97bb2a6 feat: harden intelligence runtime and llm providers 2026-05-16 21:18:34 +02:00
calesthio
1b80539cdc feat(markets): surface gold and silver across dashboard and briefs 2026-03-28 22:53:23 -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
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
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
Virgílio Santos
4c601ed142 Added countdown timer to loading page — progress bar with sweep ETA 2026-03-14 15:56:31 -03:00
Virgílio Santos
1933e063ae Added loading page — SSE-driven splash screen for first-run UX 2026-03-14 15:56:31 -03:00
calesthio
3674fcb4f7 Crucix — agent with dashboard, delta engine, Telegram/Discord bots 2026-03-14 00:35:31 -07:00
calesthio
ef2c6470fb Initial release — Crucix Intelligence Engine v2.0.0
26-source OSINT intelligence engine with live Jarvis dashboard,
auto-refresh via SSE, optional LLM layer (4 providers), delta/memory
system, and Telegram breaking news alerts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 23:45:46 -07:00