Skip to content

feat: OSINT symbology, icon fixes, and web beta improvements#75

Open
Juliusolsson05 wants to merge 6 commits intomainfrom
feat/osint-improvements
Open

feat: OSINT symbology, icon fixes, and web beta improvements#75
Juliusolsson05 wants to merge 6 commits intomainfrom
feat/osint-improvements

Conversation

@Juliusolsson05
Copy link
Copy Markdown
Owner

Adds a structured symbology system to the OSINT web beta and fixes several icon rendering and classification issues.

Symbology package (web_beta/src/features/map/symbology/)

  • Catalog of 24 symbol entries with labels, descriptions, and keywords
  • Resolver with per-provider rules, confidence scores, and fallback chains
  • milsymbol + custom SVG renderer with caching
  • DeckGL IconLayer adapter

Icon fixes

  • Fixed monoColor: undefined bug that stripped all affiliation colors
  • Corrected SIDC codes for carrier, destroyer, frigate, amphibious, submarine
  • Restored volcano, flood, storm, landslide icons (were regressed to conflict-event)
  • Restored container/commercial port icons (were regressed to naval-base)
  • Smooth zoom-based icon scaling replaces step functions

Symbol reference page at /symbols — browsable catalog with all affiliation variants

This PR will be used for ongoing OSINT improvements.

Juliusolsson05 and others added 6 commits April 2, 2026 15:13
- Structured symbology system with catalog, resolver, renderer, and
  DeckGL adapter. Each icon choice is now traceable through a resolver
  with confidence scores and fallback chains.
- Corrected SIDC codes for carriers, destroyers, frigates, amphibious,
  submarines, air bases, naval bases, petroleum/gas facilities.
- Smooth zoom-based icon scaling via sizeScale instead of step functions.
- Fixed monoColor: undefined bug that stripped affiliation colors.
- Restored EONET volcano/flood/storm/landslide icons (were regressed
  to conflict-event).
- Restored container port and commercial port icons (were regressed
  to naval-base).
- Added /symbols page with full catalog reference.
- Fixed icon-gen.ts frame parameter being ignored.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ination, submarine cables router

- GDELT: actor1Name reads cols[6] (name) not cols[5] (code), numMentions
  reads cols[31] not cols[30] (GoldsteinScale)
- GPSJam: fetch now extracts npAvg, pct, bad, total, sampleCount,
  aircraftCount from Wingbits API response
- USGS: fetch now extracts magType, felt, cdi, mmi, alert, tsunami,
  significance, status, net from GeoJSON properties
- Reference: kind=all merges both tables then paginates the combined
  list instead of paginating each independently
- Submarine cables: custom router exposing both cables and landing
  points with ?kind=cables|landing-points|all
- Added scripts/fixes/ directory for future data correction scripts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove ME-only bounding boxes and region filters from all providers:
FIRMS, OpenSky, Safecast, submarine cables, GPSJam, UCDP, USGS,
Cloudflare Radar, and Overpass.

Overpass now fetches 8 global regions sequentially with 15s delay
between requests to avoid rate limiting. Supports --regions flag
for targeted re-runs of failed regions.

Remove hard caps from batch endpoint and provider helpers — limits
are now set by the client, not enforced server-side.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…lights fixes

- Score-based overpass filtering: top 5k installations by type + name +
  wiki presence instead of random 500
- Smooth zoom-based icon scaling via sizeScale instead of step functions
- Overpass type added wikidata/wikipedia fields
- Nightlights beforeId layer ordering for boundary visibility
- Various web_beta dependency and provider fixes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- README now reflects reality: global coverage, typed raw tables,
  no shared map_features table, batch endpoint documented
- Updated provider counts (43k overpass, 1k AIS, global coverage)
- Removed stale map_features references from API docs
- Added src/providers/licensing.ts with per-provider metadata:
  licenseClass, commercialAllowed, requiresAttribution,
  defaultEnabledInProd, and notes
- 17 providers marked commercial-safe, 7 marked restricted/unknown

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Queue split:
- realtime (concurrency 2): oref, opensky, gdelt-gqg
- standard (concurrency 1): gdelt, firms, usgs, eonet, etc.
- heavy (concurrency 1): nightlights, overpass, ogim, tile-mask

Bull Board now shows all three queues. Heavy jobs no longer block
time-sensitive realtime ingests.

SourceSync improvements:
- Added sourceMode (append/snapshot/upsert) and currentRows fields
- Created src/lib/sync.ts with standardized updateSync() helper

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant