Release History
Chronological record of Zoris Engine releases.
Changelog
[v2.6.0] - 2026-04-23
- PDF Reports: Dashboard now has separate Quant Briefing and Compliance Report download buttons (proxied via Next.js API route to keep API key server-side)
- PDF Generation: Fixed font crash (fpdf2 v1.7.2 requires
uni=Trueinadd_font()), both PDFs now generate successfully - PDF Endpoints: Added
/api/quant-briefing.pdfand/api/compliance-report.pdfwith dual auth (X-API-Key header or?api_key=query param for email links) - Autonomous Executor: Fixed
actual_costNameError crash that prevented all BUY executions - Autonomous Executor: Created
zoris_llm_validate.pybridge module (executor imported nonexistent module) - Mover Accuracy: Fixed default inflation (50.0 → NaN when no movers), rolling inversion logic now uses
.dropna() - Portfolio Actions: Fixed all positions showing "HOLD" — now cross-references risk report for actual LONG/AVOID/HOLD
- Asset Page: Fixed "UNDEFINED" header and missing data (Next.js 16 requires
await paramsPromise) - Asset Page: Added period % change card and full theme-aware rewrite
- Email Links: Fixed PDF and terminal links (hardcoded localhost/IP → BACKEND_URL/FRONTEND_URL env vars with api_key query param)
- API Helper: Added
verify_key()function tozoris_api.pyfor consistent key validation - Full backend/frontend/VM sync and production deployment across all nodes
[v2.5.0] - 2026-04-23
- Asset Detail Page: Full price history chart with date/volume/return columns for any JSE instrument
- Market Telemetry: Dashboard now shows all instruments (removed Zoris Score filter that hid zero-score entries)
- API Key Rotation: New tiered key format (
zoris-admin-<hex>for admin,zoris-sk-<hex>for client). Old keys invalidated. - Documentation: Added OpenAPI spec for interactive API Reference, fixed MDX parsing errors
- Dashboard UI: Collapsible sidebar, improved chart rendering, AI Portfolio as separate page
- Security: Sensitive architecture docs removed from version control, git history scrubbed
- Backend: Added
/api/corporate-actions,/api/sentiment-timeline,/api/market-breadthendpoints - Full backend/frontend/VM sync across all three infrastructure nodes
[v2.4.1] - 2026-04-22
- Verified News Brain integration in main prediction pipeline
- Confirmed news features produce 6 outputs for signal enhancement
- API performance endpoint filter validation working (avg_error>0 separates live predictions from backtest)
- Dashboard server confirmed operational
[v2.4.0] - 2026-04-21
- News Brain Integration: Added 6 news-derived features to improve signal quality
- news_sentiment (0-1): Average sentiment score over 20 days
- news_velocity_spike (0/1): Flag for unusual article volume spike
- news_director_buy (0/1): Flag for director buying activity
- news_director_sell (0/1): Flag for director selling activity
- news_event_flag (dividend/rights-issue/none): Corporate event detection
- news_modifier (-0.3 to +0.3): Sentiment modifier for signals
- JSE Scraper v2: PDF extraction now universal (all categories), bulletin discovery, slug exclusion
- Cron updated to run v2 scripts (jse_news_scraper_v2.py, jse_news_features_v2.py)
- Features synced to DO: 364 rows, 79 tickers with news coverage
[v2.3.0] - 2026-04-18
- PDF Reports: Institutional-grade Quant Briefing and Compliance PDFs
- Redesigned with Goldman Sachs/BlackRock aesthetic
- Typography: Inter (body), Cinzel (headers), Playfair Display (subtext)
- Brand: White header with emerald accent, Zorisord Group Limited branding
- AI Portfolio: Now reads from ai_portfolio.db SQLite database
- Partner logos section on last page with Zorisord, Zoris Production, Zoris Engine symbols
- Performance metrics: Fixed percentage display (was showing 4000% due to double multiplier)
[v2.2.0] - 2026-04-15
- Market Prediction System: Polymarket integration for live market data
- Paper Trading: $1000 virtual balance simulator (SQLite-backed)
- Auto-Trade Bot: Scans markets → predicts → places paper trades
- Authenticated API: Uses wallet key for full CLOB access
- Wallet: [REDACTED] (Polygon)
- Model: 55.5% CV accuracy (text-based features)
[v2.1.0] - 2026-04-15
- Feature Engineering: Added 3 liquidity proxy features (61 features → 62 features)
- Days_Since_Trade: Days since stock last traded (no trades = illiquid)
- Volume_Trend: 5d vs 20d volume momentum
- Share_Value: 5d volume sum × Price (dollar volume traded)
- Share_Value_ZScore: Daily Share_Value / 20-day rolling average
- Fixed Share_Value double-shift bug (was using t-2 to t-6, now correctly t-1 to t-5)
- Fixed Share_Value unshifted price (was using today's price, now uses yesterday's price)
- LightGBM Hyperparameter Optimization v62:
- 50 walk-forward splits (was 10)
- 75% Optuna search / 25% held-out evaluation
- Honest directional accuracy: 66.54% (no overfit gap)
- Share_Value is #1 feature by importance (399), model now understands dollar volume
- Synced to production server
[v2.0.0] - 2026-04-13
- Liquidity Rail: 4-gate entry system ensuring exit-ability based on real market volume and spreads
- Kronos Phase 1: Foundation model as 14th feature in XGBoost (probability-of-up signal)
- Fixed AI Prediction Accuracy graph (was reading nonexistent column, showed 0%)
- Fixed Morning Intel timing (moved from 16:15 pipeline to 07:00 EST pre-market cron)
- Aligned Morning Intel suggestions with autonomous executor (unified Score>=85+LONG+Weight criteria)
- Frequency-aware PDF fetching (monthly once per calendar month, weekly once per ISO week)
- XGBoost retrained with 14 features on 94,254 rows including Kronos_Prob_Up
- Pipeline switched to venv Python (was crashing on system Python with no packages)
- News intelligence: Gleaner, Observer, JSE PDF ingestion with Brotli decompression
- Fixed duplicate
__main__block in news module causing double execution - 3-line accuracy graph: binary (emerald), 3-class (blue dashed), movers (purple dashed)
- VM cleanup: removed 80+ dead files across all 3 nodes
[v1.0.0] - 2026-03-29
- Initial Production Release
- Institutional API Gateway support
- Scraper sync pipeline finalized
- Documentation site launch
Was this page helpful?
Last updated today
Built with Documentation.AI