Every product on CommsLink is designed and shipped to production by an AI — live, most days. This is the raw record, generated straight from the commit history. No hand-picking, no polish: 2,358 ships and counting.
One-shot: end-to-end verify the lab2 champion-injection pipeline via the sanctioned deploy path (tiny backtest + inject 2 champions, marker-guarded)
Ligo Tier 3 champion-injection pipeline: lab_v2 keeps champion genomes + new inject_champions() inserts top-K OOS champions into the LIVE pop as IMMIGRANTS (add, not replace); --inject-live CLI + weekly Mon 06:00 UTC cron (backtest -> inject top-5). Bridges offline OOS rigor to live walk-forward evolution
Ligo evolution Tier 2+3-scale: CROSSOVER (instrument-row recombination of 2 parents), RANDOM IMMIGRANTS (15% of births = fresh novelty), FAMILY_CAP=12 (break the ms_klarman monoculture), and GROW toward POPULATION_TARGET=300 (+5/cycle) instead of drifting down
Ligo evolution Tier 1: unfreeze the algo population — rank by RETURN (total_value/initial_capital) not raw dollars, child capital parity (100k), GRACE_DAYS=20 newborn audition before culling, gentle daily churn (10%->3%), replace-each-death so population stops shrinking; add+backfill initial_capital column
Agentic rebalancer: fix 'Not enough shares to sell' — place SELLs by share quantity clamped to shares_available_for_sells (round down), instead of dollar-based sells that overshot on a stale quote; deploy-ec2.sh now syncs rebalance.mjs into the api secrets volume
Carrier00 HOTFIX: game wouldn't start (Play did nothing) — module-init crashed on player.bombers[1] after bombers were removed from the carrier wing; crew now assigns to the 4 fighters
AI Lab v2: use standard market template (SiteHeader+MarketNav) + labeled metric legend + flag random-origin (luck) rows
AI Lab v2: predictive-skill evolutionary ecosystem (competes with v1)
Agentic rebalance: fix quote parsing (holdings were valued at $0)
Rebalance executor: surface Robinhood plain-text errors instead of crashing on JSON.parse
Agentic-executor: open-order guard + sync prod raw-MCP rebalance script to repo
Agentic-executor: full rebalance executor + MCP client (policy->diff->market dollar-orders, drift+snapshot)
Agentic-executor: one-time OAuth capture + headless token manager (Robinhood agentic trading, unattended rebalance — scaffolding)
Agentic: trading policy endpoint (the brain) — consensus -> target weights, executor-agnostic for exe later
Pricing: free tier 2k credits + profitable credit packs; archive Ligo Grok calls (no longer live, kills unmetered cost)
Dashboard globes: animated arcs for major shipping lanes (maritime) + major international air routes (air traffic)
Dashboard globes: Maritime = grey land overlay on Blue Marble; AirTraffic = solid blue ocean + green continents (no topography)
Ligo: file-cache _fetch_yahoo_chart with stale-fallback so dashboard stops hammering Yahoo on every page load
Campaign detail: Grok chat sidebar + performance diagnostics (impression share, first-page-bid warnings)
Wizard chat assistant: floating Grok chat panel on steps 2-5 (refines profile + plan via JSON patches), persisted in localStorage
Campaign detail: live status from Google (campaign primary_status + per-ad approval), ad previews rendered as Google search results
AI-vertizing: campaigns now launch ENABLED (no more PAUSED safety), EU political advertising disclosure question added to wizard launch step, schema column + flag wired through API → Stripe webhook → ligo → Google
AI-vertizing pivot to per-user OAuth: Connect Google Ads step in wizard, account picker, HMAC-signed state binding flow to user_id, ligo launches into user's own account (no MCC)
Stripe webhook → ligo /launch-direct after ad payment succeeds (auto-pushes campaign to Google Ads MCC)
AI-vertizing: ask for daily budget in Step 2 (was monthly), carry through to Launch step (no re-entry needed). Drop the launch-step daily-cap field
Portfolio: add options (call/put) support — strike + expiry fields, live option premium via /api/markets/option-quote, P&L calc respects 100x contract multiplier
Portfolio tracker for logged-in users (localStorage-backed, 30s price refresh), Air Traffic section under Maritime, /api/algos/dashboard 30s cache
Hide Shipping Equities section from dashboard (still shown on /maritime)
Globe: bump port markers to bright amber, larger size, higher altitude — more prominent. Backend ports limit 50→150
Maritime: globe + top ports side-by-side (50/50 grid), globe width halved since it's a circle
Maritime map → 3D globe (react-globe.gl) with Blue Marble texture, drag to rotate
Maritime map: ESRI Ocean Basemap (blue water + green land + bathymetry), 'Maritime Traffic' title overlay top-right
Maritime: navy-tinted nautical-chart map, 25% shorter (345px), move chokepoint cards to right sidebar as Key Chokepoints rail
Extract MaritimeMonitor, embed on dashboard, scrollable top ports
Extract MaritimeMonitor into reusable component, embed on dashboard under news panel, top ports now scrollable
Invert sign up button — dark bg with cyan text + cyan border
CTA: transparent bg, stacked centered layout, button label simplified to 'Sign up'
Remove Live Market and Active Tracker from left menu (pages kept — active-tracker still used by indicator popup)
Skeleton shells with loading spinners for Futures, News, and Signals sections while first fetch is in-flight
Add signed-out CTA above news panel: 'Sign up free to track your own portfolio'
News panel: split Yahoo Finance (left) from other sources (right), drop Recent Headlines title, 25% taller (230→290)
Consolidate news panels: one Paper, one scrollbar, 2-col grid inside, 180s countdown, flash new items, fix UTC parsing
Recent Headlines: add mood chip matching News Stream style
Add 2-column News Stream + Recent Headlines panel under the map
Drop 'Global Market Dashboard' title; header logo text becomes 'CommsLink Markets' on market pages
Move active-viewers endpoint under /stats/active to avoid route collision, grey eye icon
Add /ai-lab route, shrink dashboard, active-viewers eye badge
Add /ai-lab route w/ algo sections, shrink dashboard to Futures+Map+Signals, add active-viewers eye badge w/ 30d history hover
Dashboard: split main content into 80/20 grid, move Signals to a tall thin sticky rail on the right
Signals: drop borders, 30s auto-refresh with live countdown badge, flash green/red on value change
Signals: drop inline sparkline + status dot, add hover tooltip with history chart + raw/state details
31 Indicators: unified card style — status dot + white label + colored value, matches Global Markets/Futures
Title color reflects market mood, remove subtitle, live countdown 10→0, futures + map merged into one panel
Futures cards: strip ticker symbol from label (3-line uniform), add direction-colored borders matching markets style
Overnight Futures cards: match Global Markets style — green/red status dot, white label, smaller price
Overnight Futures: uniform borders, hover for 24h chart, real-time price flash on update
Ticker: no repeat, 70s cycle (30s scroll + 40s pause). Backend pulse cache reduced 600s→180s for fresher Grok headlines
Transparent ticker (text floats over map), live overnight futures every 10s with visibility pause
Move breaking text overlay to map top-left and pulse to map bottom as scrolling news ticker
Real-time map: client-side sun position (smooth motion), 5s market refresh, price-flash on info-strip cards, moon tooltip with full coordinates
Embed mode: cyan modal title, hide page hero title, compact paddings/fonts/tables
Narrower indicator modal — tablet width (~900px) centered horizontally
Click any of the 31 indicators to open its dedicated page in a modal iframe (?embed=1 hides chrome)
Move 31 Indicators grid up to sit between map and Algo Population
Reorder dashboard: Evolution above Leaderboard, Leaderboard shows top 10 by default with show-all toggle
Remove MOEX, delete Global Market Sessions bar, move UTC/Local clock to map overlay, reorder dashboard with map below Prediction panels
Show city name on info-strip cards instead of market ticker name
Cross-highlight active market across map dot, timeline bar, and info strip card on hover
Add mini session sparkline to open-market info strip cards
Add intraday session sparkline to GlobalMarketMap tooltip
Sun hover tooltip: subsolar point, declination, season, NOAA Kp index with storm scale color, recent M-class flares, historical market context
Clock display: UTC + local clock in timeline header, market local time in tooltip
Timeline bars hover tooltip: status, prices, UTC + local trading hours, time until next transition
Timeline: one fat bar per market (not 3 duplicates per day offset), taller bars (14-28px), bigger labels with change %
Market map tooltip fix: use position:fixed with viewport coords so popup sits right next to cursor regardless of containers or scroll
Market map iteration: color by change% (green up/red down/orange flat/grey closed), scroll to zoom + pan, bigger timeline with region rows, tooltip auto-flips
Global Market Map component + Natural Earth 110m world geojson
Global Market Map: world map with day/night terminator, 18 markets, timeline bar, info strip at top of dashboard
Prediction accuracy tracking: rebalance_outcomes table, 24h outcome scoring, API endpoint, dashboard widget with cycle-type split
Remove SPY/IAU/INTC PredictionEngine from 7 indicator pages
Fix MySQL deadlock: remove --preload from gunicorn, use 2 workers with separate connections
Fix backtest loading: 8s fetch timeout, 3 gunicorn workers to unblock API during backtests
Inline prediction landscape modal on dashboard, remove separate pred-landscape nav link
Move Backtest Lab to #2 in sidebar, right under Dashboard
Add /backtest as public route (copy from /admin/backtest)
Move backtest page from /admin/backtest to /backtest, public route
Backtest page public (view-only), admin-only start/deploy/delete buttons, nav visible to all
Add MarketNav sidebar to backtest page
Backtest Lab: admin-only nav link with date limits (2018+), separated by divider in sidebar
Fix stale DEATH_THRESHOLD references, update config/dashboard knobs for ranking evolution
Backtest admin: per-algo detail modal (stats, lineage, matrix, trades), generation analysis, school analysis, SPY benchmark banner
Ranking by 20-day percentage return instead of absolute total value
Relative ranking evolution: monthly kill bottom 10%, reproduce top 10%
Fix backtest economic dynamics: trigger at 19:50 (not 20:00 which was never generated), liquidate positions to fund reproduction when cash is insufficient
Fix backtest: add executemany to _AlgosDB wrapper
Historical data assembly: FRED macro indicators + Yahoo prices + date limits (2018+), pre-build endpoint, data status endpoint
Backtest harness: historical data assembly, runner, admin UI, deploy/rollback
Backtest harness: historical data assembly, full intraday backtest runner, admin UI with deploy/cancel/delete, background thread execution
Dashboard: add Collective Sentiment grid showing per-instrument consensus with mini histograms, strength dots, trend arrows
Fix dashboard: guard null fast_indicators, ensure nginx proxies population/intraday to ligo
Generated 2026-07-16 from git across all CommsLink repos · page 1/2, showing 1–100 of 125 CommsLink Markets ships · complete record: /changelog.txt · /changelog.json.