Repository navigation
Releases
Public Update: Feat: Trader UX, fail-closed execution, VOOI broker & Telegram alerts
Public Highlights
- Tag:
v2026.10.31 - Standalone sync commit:
16cd53aea9dd1eeef8fbdc9dee8e0eba1d5b170a(from monorepomaind7afd67) - Focus: clearer trader UX (Deals → sheet → Positions), fail-closed opens, VOOI broker API, Telegram user alerts + operator commands, execution hardening, and stronger ops monitoring
- Compared to last public frontend release:
v2026.10.11 - Source of truth: https://github.com/MarchenkoRuslan/arbitrage/releases/tag/v2026.10.31
- Linked pull requests in the mirrored changelog: 75
Why It Matters
People can see what the product is doing in plain language, and the app refuses unsafe opens instead of hoping an operator notices. Partners get a cleaner VOOI broker surface and clearer safety story — without claiming live money trading is fully on.
Who Benefits
- Traders and operators using the UI day to day
- Partners evaluating UX, safety posture, and VOOI integration hygiene
- The team shipping and monitoring production (better evidence, smaller alert secret blast radius)
New Capabilities (short list)
- Browse and act on Deals in one flow, with Health, Operations, Getting started, and How it works
- Fail-closed open / close confirmations and honest realized PnL
- VOOI broker API (
/vooi/broker/*) and Telegram user subscriptions + operator commands - Locked stop/recovery thresholds, gate evidence, playbooks, stall diagnostics
Advantages / Benefits
- Faster orientation and fewer accidental real-money clicks
- Less decoding of internal error codes during incidents
- Cleaner partner-facing integration surface with VOOI
- Stronger production signal without loading the full runtime dotenv onto GitHub-hosted alert runners
What's Next / Future Plans
Tracked in the source monorepo (not invented here):
- VOOI funded canary / venue route health (#479, #595–#602)
- Phase 4-pre evidence bundle (#496, #497)
- Distribution readiness / go-live sign-off (#619–#626)
- Frontend follow-ups #607, #603
Live multi-venue trading with real money remains an explicit later decision.
Upgrade Notes
- This public repo mirrors the
frontend/tree from the monorepo; deploy/runtime config still lives with the full stack. - See configuration table in the mirrored notes below for
ARB_VOOI_BROKER_KEY, Telegram webhook/operator settings, and alert fallback secrets. - Validate Health /
/statusafter deploy before any live-trading discussion.
Full Changelog (Mirrored)
v2026.10.31 — Clearer trading screens, safer opens, VOOI broker tools & Telegram alerts
Compared to: v2026.10.14
Date: 2026-10-31
Window: everything merged to main after the VOOI-first release on 2026-10-14
This release is about three things that matter in day-to-day use:
- Seeing the system clearly — screens that use normal words and show what is ready (or not).
- Not opening a bad trade by accident — if something important is missing, the open button stays off.
- Working better with partners and alerts — VOOI broker tools on our side, and Telegram messages people can opt into.
Important for everyone reading this: live trading with real money is still off by default. Nothing in this release flips that switch for you. We made the product safer and clearer while that switch stays off.
In plain words
Imagine you have a dashboard that finds price differences across exchanges, helps you open matched trades, and watches risk.
Since mid-October we:
- Redesigned how traders move through the app (find a deal → check it → open → watch positions).
- Made the app refuse to open when conditions are wrong, instead of hoping the operator notices.
- Finished a large hardening pass: thresholds locked, failure playbooks written, operator Telegram commands.
- Added a proper VOOI broker API so we can manage broker analytics and settings through our own backend.
- Added user Telegram subscriptions so people can turn product alerts on and off for themselves.
- Tightened production monitoring and how we send alert fallbacks (without exposing the full production secret file to GitHub runners).
If you are a partner: this release shows we care about operator clarity, fail-closed safety, and clean integration surfaces — not only about shipping features fast.
New Capabilities
Each item below is something you can do or see now that was missing or much harder before.
Browse and act on deals in one flow
You can move from a simple Deals list into an execution sheet, then watch open trades on Positions. You no longer need to jump across unrelated screens to understand one opportunity.
Related: #537, #542, #545
Understand system health at a glance
The Health page uses a traffic-light style view, including whether the VOOI order path looks healthy. Operators can tell “data is fine” from “orders may be blocked” without reading raw logs.
Related: #544, #575
Learn the product without a walkthrough call
Getting started and a real How it works page explain the flow in product language. New teammates and partners can orient themselves from the UI.
Related: #520, #545
Run day-to-day ops from one place
The Operations page gathers confirmed actions, positions / daily P&L, guardrails, parity, and continuity checks. Real-money actions ask for an explicit confirmation.
Related: #520, #544, #574
Read Auto in normal language
Gates, blockers, switches, and outcomes are shown as plain words instead of internal codes. The product explains why something is blocked.
Related: #544, #546, #576, #593
Open trades only when checks pass (fail-closed)
If trading is off, the route is not ready, the deal is not ready, or the safety check has not answered yet, open stays disabled. Manual API opens also refuse routes the screener has not marked ready.
Related: #546, #560, #566
Close positions with a clear confirmation
Closing uses an accessible in-app dialog (keyboard-friendly), not a browser pop-up that is easy to miss.
Related: #563, #605
See honest position results
Positions show real realized P&L and keep the minus sign on losses. Snapshots can mark dry-run context so warnings follow the right position.
Related: #557, #606
Spot inconsistent coins / prices earlier
A wrong-coin warning and corrected basis math help catch mismatched symbols when mid prices are missing.
Related: #542, #554
Manage VOOI broker analytics and settings from our API
Server-side /vooi/broker/* routes support broker analytics reads and management writes (users, public-key rotation, exchange defaults), with secret ARB_VOOI_BROKER_KEY kept off the browser.
Related: #609
Subscribe to product alerts in Telegram
Users can subscribe, unsubscribe, and check status; product alerts can go to a personal chat id.
Related: #628
Control key operator actions from Telegram
Operators can use /status, /gate, /stop, /help, /ack behind a webhook secret, allowlists, rate limits, and audit counters.
Related: #519
Trust locked stop / recovery rules
All 12 stop and recovery thresholds are locked against reviewed calibration evidence, so production config cannot quietly drift.
Related: #517
Diagnose failures with playbooks and evidence
Gate evidence tests, root-cause playbooks, fault maps, stall diagnostics, and clearer incident classification make “what went wrong?” answerable from status and runbooks.
Related: #518, [#591...
Public Update: Feat: Multi-venue execution, public product expansion, and ops reliability hardening
Public Highlights
- Tag: v2026.10.11
- Focus: This release delivers a broad production-readiness sweep across execution, public product surfaces, operational reliability, and CI/CD quality gates. The stack now supports multi-v...
- Source of truth: https://github.com/MarchenkoRuslan/arbitrage/releases/tag/v2026.10.11
Why It Matters
This release reduces operational and security risk under edge conditions.
Who Benefits
Operators, security reviewers, and teams running protected deployments.
Upgrade Notes
- Validate auth and policy settings in staging before rollout.
- Release v2026.10.11 focus: This release delivers a broad production-readiness sweep across execution, public product surfaces, operational reliability, and CI/CD quality gates. The stack now supports multi-v...
Full Changelog (Mirrored)
Summary
This release delivers a broad production-readiness sweep across execution, public product surfaces, operational reliability, and CI/CD quality gates. The stack now supports multi-venue live order execution, expanded public data flows and pages, stronger auth behavior for Telegram-first operation, and deeper production monitoring guardrails.
Execution and Venue Coverage
- Added Binance live order adapter and execution capability matrix support (#417).
- Added Bybit and Aster live order adapters (#418, #416).
- Added dYdX v4 and Extended live order adapters (#422, #423).
- Expanded execution modeling and venue capability routing for cross-venue order handling.
Public API and Auth Hardening
- Added public channel auth controls and proxy allowlist behavior.
- Added dual-surface auth matrix coverage for public and operator flows (#409).
- Added public journal projection endpoint and schema coverage (#305).
- Improved Telegram-first operation:
- API token fallback path for auth continuity.
- Frontend 401 hinting for Telegram session recovery.
- Telegram web app bootstrap script integration.
- Updated deploy smoke logic to treat Telegram-mode edge
/status401 as expected when applicable.
Strategy, Screener, and Runtime Semantics
- Added automated auto-exit close criteria:
- stop-loss thresholding
- spread-window exits
- funding-window exits
- minimum-hold gating (#407)
- Added 24h dry-run validation for auto-exit criteria behavior (#370).
- Added event-driven screener fast passes and latency-budget controls.
- Added order-book confirmation for cross-venue basis entry validation.
- Added reproducible screener latency benchmark and baseline artifact generation (#298).
- Fixed
/statussnapshot continuity refresh behavior with single-flight control (#412).
Frontend Product Surface Expansion
- Introduced mobile-first redesign and tokenized design system upgrades across shell/pages (#379, #380, #202).
- Added product modes mapped to runtime presets (#303).
- Added shared public data layer for public pages.
- Added public Statistics and Journal pages over public DTOs (#305).
- Added guided onboarding wizard over public endpoints (#306).
- Refined public/operator layout and navigation behavior with broader responsive coverage.
Operations and Reliability
- Improved production health monitoring and readiness checks.
- Published effective threshold source reporting in monitoring summaries.
- Bounded 5xx and upstream-reset counters to recent lookback windows to reduce stale-noise alerts.
- Added unattended Stage-A baseline capture with JSON summary output (#438).
- Added host-side production watchdog script with systemd timer/service templates (#443).
- Fixed project-cycle state sync to use stable item/field/option IDs (#441).
Market Data and Historical Inputs
- Added VOOI reference-only connector support for market-data integration (#291).
- Added VOOI funding-history backfill utility and seed schema support (#369).
CI/CD and Quality Gates
- Added dual-surface compatibility matrix CI path and public-layer documentation checks.
- Enhanced frontend lint/test workflow:
- changed-files lint scope
- ESLint cache usage
- markdown exclusion from frontend lint path
- improved runner consistency
- Updated CI job dependencies so frontend checks complete before backend audit stages.
- Added helper script for CI queue-priority operations.
- Updated workflow dependencies and action versions for stability and maintainability.
- Improved frontend CI/CD job flow in latest pipeline sweep (#445).
Documentation and Coverage Expansion
- Reworked architecture/operations navigation and cross-links for maintainability.
- Extended test coverage across API auth matrix, public projection contracts, execution adapters, ws-ticket/auth edges, monitoring scripts, and frontend public layout behavior.
Notable Net-Effect Clarification
- An intermediate edge token-injection change was introduced and then reverted in full. The final released behavior keeps the API closed as intended and does not retain that temporary opening path.
Validation Highlights
- Expanded targeted suites across auth/API/WS-ticket/public projection/monitoring/execution paths.
- CI and docs consistency checks updated in lockstep with behavior and contract changes.
- Production-monitor scripts and watchdog flow validated with dedicated tests and runbook updates.
Public Update: Ops: Roadmap reset and execution hardening plan
Public Highlights
- Tag: v2026.10.02.01
- Focus: Executive Summary
- Source of truth: https://github.com/MarchenkoRuslan/arbitrage/releases/tag/v2026.10.02.01
Why It Matters
This release reduces operational and security risk under edge conditions.
Who Benefits
Operators, security reviewers, and teams running protected deployments.
Upgrade Notes
- Validate auth and policy settings in staging before rollout.
- Release v2026.10.02.01 focus: Executive Summary
Full Changelog (Mirrored)
Executive Summary
Roadmap governance and execution planning were normalized in one cycle: open work is now explicit, parent-child ownership is linked, and the delivery board reflects current priorities instead of historical closure noise.
Delivered In This Release
- Roadmap reset to active stages R1-R4 with clear dates and outcomes.
- Open work linked to parent programs and milestones for traceable execution.
- Missing live-readiness backlog captured as actionable issues.
- Project board cleaned and re-centered on in-progress and next critical tasks.
- Mirror synchronization completed for org repositories.
Scope Added To Backlog
- #266 live place/cancel/status wiring
- #267 safe-env signed submit/cancel smoke validation
- #268 depth query path for slippage
- #269 maker-first entry flow
- #270 restart reconciliation classifier + seeded integration path
- #271 missing READY/risk/connectivity alert emission
- #272 remaining global stop-trading triggers
- #273 stop-recovery gate with cooldown, health checks, and manual ack
Next Week Plan
- Close R1 blockers first: #272 and #273.
- Start R2 execution hardening: #266, #267, #268.
- Run targeted reliability checks and publish checkpoint status on #174.
Validation
- GitHub issue hierarchy and milestone mapping verified.
- Project board states updated and archived noise removed.
- Repo synchronization checks completed across origin and upstream.
Compatibility and Risk
- No runtime behavior changes in this release.
- No config default changes.
- Operational risk lowered by clearer execution sequencing and ownership.
Public Update: Frontend: WS Auth Ticket UX + Parity Runtime Visibility
Public Highlights
- Tag: v2026.09.27.01
- Focus: What's Changed
- Source of truth: https://github.com/MarchenkoRuslan/arbitrage/releases/tag/v2026.09.27.01
Why It Matters
This update improves visibility and usability for real-time decision making.
Who Benefits
Frontend users, traders, and support operators working from the dashboard.
Upgrade Notes
- Refresh the app build to pick up UI and telemetry improvements.
- Release v2026.09.27.01 focus: What's Changed
Full Changelog (Mirrored)
What's Changed
- Implement preflight parity artifact and report endpoints by @MarchenkoRuslan in MarchenkoRuslan/arbitrage#215
- Enhance WebSocket authentication handling and diagnostics by @MarchenkoRuslan in MarchenkoRuslan/arbitrage#216
Full Changelog: MarchenkoRuslan/arbitrage@v2026.09.26.01...v2026.09.27.01
Public Update: Ops: Data Collection + Profitability Trust Milestone Closure
Public Highlights
- Tag: v2026.09.26.01
- Focus: Closed two major milestones: Data collection and Profitability Trust & Formula Hardening.
- Source of truth: https://github.com/MarchenkoRuslan/arbitrage/releases/tag/v2026.09.26.01
Why It Matters
This release reduces operational and security risk under edge conditions.
Who Benefits
Operators, security reviewers, and teams running protected deployments.
Upgrade Notes
- Validate auth and policy settings in staging before rollout.
- Release v2026.09.26.01 focus: Closed two major milestones: Data collection and Profitability Trust & Formula Hardening.
Full Changelog (Mirrored)
Summary
- Closed two major milestones: Data collection and Profitability Trust & Formula Hardening.
- Delivered trust diagnostics, calibration pipeline, and runtime coefficient artifact governance (loader + rollback).
User-Visible Changes
- New trust diagnostics surfaced in status and execution preflight flows (confidence/provenance and blocker clarity).
- Deterministic ranking and tie-break behavior hardened for repeatable candidate selection.
- Runtime now supports calibration artifact loading with rollback path and schema-aware validation.
- Added explicit handling for unavailable historical win-rate data in history gate diagnostics.
Configuration Changes
- Added runtime controls for calibration artifact management and rollback.
- Extended diagnostics fields and reason codes exposed via API contracts.
Data and Strategy Semantics
- Scoring decomposition hardened (signal vs execution-adjusted components).
- Calibration artifacts introduced for profitability coefficients with reproducible generation pipeline.
- Candidate/blocker reason deduplication improves operator interpretation and triage.
Operational Impact
- Backward compatibility: additive for most API consumers, but diagnostics payloads became richer and stricter in meaning.
- Migration steps: operators should validate calibration artifact presence/health before enabling runtime override workflows.
- Risk/watchouts: missing historical data now emits explicit trust reasoning instead of silent ambiguity.
Milestone Closure Evidence
- Data collection: 15 closed / 0 open, closed 2026-09-26.
- Profitability Trust & Formula Hardening: 9 closed / 0 open, closed 2026-09-26.
- Program tracker issues closed: #109 and #123.
- Key merged PRs: #212, #213, #214.
Validation Evidence
- Release based on merged main changes at commit 84e99b3.
- Milestone and issue closure verified via GitHub API/CLI at publication time.
Public Update: Frontend: Real-time Opportunities via WebSocket with REST fallback
Public Highlights
- Tag: v2026.09.22
- Focus: Added WebSocket-based real-time delivery for the Opportunities page, with automatic fallback to REST polling when the connection is unhealthy.
- Source of truth: https://github.com/MarchenkoRuslan/arbitrage/releases/tag/v2026.09.22
Why It Matters
This update improves visibility and usability for real-time decision making.
Who Benefits
Frontend users, traders, and support operators working from the dashboard.
Upgrade Notes
- Refresh the app build to pick up UI and telemetry improvements.
- Release v2026.09.22 focus: Added WebSocket-based real-time delivery for the Opportunities page, with automatic fallback to REST polling when the connection is unhealthy.
Full Changelog (Mirrored)
Summary
- Added WebSocket-based real-time delivery for the Opportunities page, with automatic fallback to REST polling when the connection is unhealthy.
User-Visible Changes
- Updated behavior/output: Opportunities page now connects to
/ws/opportunitieson load; a transport indicator near the page title shows live/connecting/reconnecting/polling-fallback state with a manual "Retry" button. - New or changed CLI/runtime behavior: none (frontend-only change)
- Any removed behavior: none
Configuration Changes
- Added vars:
VITE_ARB_WS_URL(optional; overrides the derived WS endpoint) - Changed defaults: none
- Deprecated vars: none
Data and Strategy Semantics
- Formula/metric changes: none
- Ranking or validation changes: none
- Exchange connector behavior changes: none
Operational Impact
- Backward compatibility: fully backward compatible; REST polling remains the automatic fallback path, manual refresh unaffected
- Migration steps (if any): none
- Risks / watchouts: WS frames older than the currently cached snapshot (by
updated_at) are discarded to avoid out-of-order overwrites; a silently unresponsive connection is force-closed after 60s to trigger reconnect
Deprecation Timeline (required when aliases/deprecations exist)
- N/A ΓÇö no compatibility aliases introduced
Validation Evidence
- Commands run:
pnpm run check(lint, unit tests, build, audit); Playwright e2e for the transport indicator (connect, reconnect-to-fallback, manual refresh) - Scope of tests/lint checks: unit tests for backoff math, socket lifecycle, stale-frame guard, stall detection, ticket auth; e2e for visible transport states
- Known limitations not covered: detailed ticket-auth UX (429 Retry-After, expired/reused-ticket messaging) tracked separately in #72
Public Update: Exec: Partial Fill Lifecycle (Two-Leg Open)
Public Highlights
- Tag: v2026.09.19.02
- Focus:
OrderResultnow reportsfilled_quantity,remaining_quantity,average_fill_price, and - Source of truth: https://github.com/MarchenkoRuslan/arbitrage/releases/tag/v2026.09.19.02
Why It Matters
This release expands executable market coverage and improves cross-venue reliability.
Who Benefits
Execution operators, strategy owners, and teams tracking venue behavior in production.
Upgrade Notes
- Confirm venue allowlists and dry-run checks before enabling new execution paths.
- Release v2026.09.19.02 focus:
OrderResultnow reportsfilled_quantity,remaining_quantity,average_fill_price, and
Full Changelog (Mirrored)
Summary
OrderResultnow reportsfilled_quantity,remaining_quantity,average_fill_price, and
last_fill_price, andOrderStatusgainedpartially_filledandcanceled.- The two-leg engine polls order status every
ARB_EXEC_PARTIAL_FILL_POLL_Suntil an order is
terminal orARB_EXEC_PARTIAL_FILL_TIMEOUT_Selapses, then cancels the resting remainder. - The second leg is sized off the quantity the first leg actually filled, and rollbacks close
only the filled quantity, so a partial fill no longer leaves naked directional exposure. - A first leg that fills below
ARB_EXEC_MIN_PARTIAL_FILL_PCTis rolled back without opening
the second leg. - A partial second leg retries only the missing remainder until it completes or
ARB_EXEC_MAX_UNHEDGED_DURATION_Selapses; the unhedged remainder is then trimmed off the
first leg and the attempt staysactiveat the reduced size. - A failed trim leaves
residual_exposure: trueand counts toward the consecutive-rollback stop. DryRunBrokercan simulate partial and deferred fills (fill_ratio,max_fill_size,
partial_next,defer_next) and implementsget_order_status/cancel_order.
Config impact
- Added:
ARB_EXEC_PARTIAL_FILL_TIMEOUT_S(default60)ARB_EXEC_PARTIAL_FILL_POLL_S(default2)ARB_EXEC_MAX_UNHEDGED_DURATION_S(default30)ARB_EXEC_MIN_PARTIAL_FILL_PCT(default0.3)
ARB_EXEC_PARTIAL_FILL_POLL_Smust be<=ARB_EXEC_PARTIAL_FILL_TIMEOUT_S.
Compatibility and migration
- Default runtime stays read-only and live venue placement is still rejected.
- Full-fill dry-run behavior is unchanged; the new fields default to the full-fill values.
GET /configgains the four new keys.POST /execution/openandGET /execution/attempts
gainfilled_quantity,partial_fill,unhedged_timeout,residual_trim_quantity, and
residual_trim_order, plus per-orderfilled_quantity,remaining_quantity, and
average_fill_price.
Validation
pytestcovers fill-field normalization, broker partial/deferred fill simulation, status
polling, timeout cancel, partial leg1 hedging and rollback sizing, the minimum partial floor,
second-leg remainder retry, residual trim success and failure, the unhedged timeout, the new
settings validators, and the API contract.ruff check .and generated OpenAPI types are updated in the same changeset.
Public Update: Feat: Cash and Carry HL Spot-Perp
Public Highlights
- Tag: v2026.09.19.01
- Focus: Added read-only Hyperliquid spot ingestion (spotMetaAndAssetCtxs), SpotTicker/CostOfCarry models, and a cash_and_carry strategy scorer (long spot + short perp) with profile spot-pe...
- Source of truth: https://github.com/MarchenkoRuslan/arbitrage/releases/tag/v2026.09.19.01
Why It Matters
This update improves visibility and usability for real-time decision making.
Who Benefits
Frontend users, traders, and support operators working from the dashboard.
Upgrade Notes
- Refresh the app build to pick up UI and telemetry improvements.
- Release v2026.09.19.01 focus: Added read-only Hyperliquid spot ingestion (spotMetaAndAssetCtxs), SpotTicker/CostOfCarry models, and a cash_and_carry strategy scorer (long spot + short perp) with profile spot-pe...
Full Changelog (Mirrored)
Summary
- Added read-only Hyperliquid spot ingestion (spotMetaAndAssetCtxs), SpotTicker/CostOfCarry models, and a cash_and_carry strategy scorer (long spot + short perp) with profile spot-perp-carry-v1 (closes #96).
User-Visible Changes
- Updated behavior/output: strategy registry accepts cash_and_carry; opportunities expose spot/perp instrument_kind and optional borrow_rate on the long leg.
- New or changed CLI/runtime behavior: each REST poll refreshes HL spot quotes into MarketState (best-effort). Continuous screener loop still defaults to funding_arbitrage; invoke Cash and Carry via find_opportunities_with_strategy(..., strategy_type="cash_and_carry") like basis.
- Replay: Cash and Carry positions use basis convergence/inversion, funding flip, funding decay, and time-stop exits; borrow APR reduces funding carry PnL.
Configuration Changes
- Added vars: ARB_CASH_AND_CARRY_ENTRY_BPS (default 5.0), ARB_BORROW_RATE_APR (default 0.0), ARB_LENDING_YIELD_APR (default 0.0).
- Changed defaults: none.
- Deprecated vars: none.
Data and Strategy Semantics
- Formula: combined_score = basis_bps + funding_edge_bps - carry_cost_bps - roundtrip_fees, with basis_bps = (perp_mark - spot_mark) / spot_mark * 10000.
- Entry requires basis_bps >= cash_and_carry_entry_bps and non-negative expected perp funding.
- Unit spot tokens map to perps (UBTC -> BTC, etc.); ADL/margin checks apply only to perp legs.
Operational Impact
- Backward compatibility: funding and basis paths unchanged.
- Migration steps: none.
- Risks/watchouts: live spot execution remains out of scope (SpotOrderRequest is a model only); borrow rate is config-driven (not fetched from a lending market).
Validation Evidence
- Commands run: pytest, ruff check ., frontend types:generate / contract check.
- Scope of tests/lint checks: spot parse, scoring, exits, validator ADL skip, OpenAPI config fields.
- Known limitations not covered: live spot order placement; continuous multi-strategy merge in the default screener loop.
Public Update: Frontend: Deep Pipeline Diagnostics
Public Highlights
- Tag: v2026.09.16.01
- Focus: Added a Deep Pipeline Diagnostics section to the Status page for one-screen triage.
- Source of truth: https://github.com/MarchenkoRuslan/arbitrage/releases/tag/v2026.09.16.01
Why It Matters
This update improves visibility and usability for real-time decision making.
Who Benefits
Frontend users, traders, and support operators working from the dashboard.
Upgrade Notes
- Refresh the app build to pick up UI and telemetry improvements.
- Release v2026.09.16.01 focus: Added a Deep Pipeline Diagnostics section to the Status page for one-screen triage.
Full Changelog (Mirrored)
Summary
- Added a Deep Pipeline Diagnostics section to the Status page for one-screen triage.
- Added a drop-counter heatmap with per-cycle relative intensity scaling.
- Added reason-code distribution with Top 8 default and Show all expansion for high-cardinality cycles.
- Added reason-severity breakdown (
blockedvswatching) with percentage shares. - Added unified exchange split table for
exchange_diagnosticscounters. - Added concise top-3 blockers summary that combines drop counters and reason events.
Configuration impact
- Added vars: None.
- Changed defaults: None.
- Deprecated vars: None.
Operational impact
- Backward compatibility: Fully backward compatible; no backend API contract changes.
- Operator workflow: Triage
watchingfloods from Status page without manually aggregating/statusJSON.
Validation evidence
corepack pnpm --dir frontend testcorepack pnpm --dir frontend build
Public Update: Frontend: Backtest Page UI
Public Highlights
- Tag: v2026.09.13.01
- Focus: Added a full Backtest Page UI (/backtest) with five tabs - Summary, Replay, Gate, Locks, Detail - so operators can run replays, inspect KPIs, and manage strategy locks without call...
- Source of truth: https://github.com/MarchenkoRuslan/arbitrage/releases/tag/v2026.09.13.01
Why It Matters
This update improves visibility and usability for real-time decision making.
Who Benefits
Frontend users, traders, and support operators working from the dashboard.
Upgrade Notes
- Refresh the app build to pick up UI and telemetry improvements.
- Release v2026.09.13.01 focus: Added a full Backtest Page UI (/backtest) with five tabs - Summary, Replay, Gate, Locks, Detail - so operators can run replays, inspect KPIs, and manage strategy locks without call...
Full Changelog (Mirrored)
Summary
- Added a full Backtest Page UI (/backtest) with five tabs - Summary, Replay, Gate, Locks, Detail - so operators can run replays, inspect KPIs, and manage strategy locks without calling the API directly (closes #36).
User-Visible Changes
- Updated behavior/output: new /backtest route with an operator workspace for validating a strategy before execution is considered.
- Summary: dataset coverage (total snapshots, symbols, first/last snapshot timestamp). Empty until history accumulates (ARB_BACKTEST_CAPTURE_ENABLED=true).
- Replay: run replay against captured history (symbols, date range, entry/exit score, cycle hours, min samples, strategy id). Result panel shows parameters used and KPI breakdown (samples, entries/exits, win rate, PnL, drawdown, exit reasons), plus lock action.
- Gate: current pass/fail verdict for strategy readiness.
- Locks: history of frozen replay results (POST /backtest/lock) with PnL/drawdown and detail link.
- Detail: full breakdown of one selected lock, including gate thresholds and achieved metrics.
- New or changed CLI/runtime behavior: server-side validation errors (422) are shown next to specific fields (ApiValidationError, parseApiError) instead of generic messages.
- Removed behavior: none.
Configuration Changes
- Added vars: none (uses existing ARB_BACKTEST_CAPTURE_ENABLED for snapshot capture).
- Changed defaults: none.
- Deprecated vars: none.
Data and Strategy Semantics
- Formula/metric changes: none (frontend-only change; no backend/API contract changes).
- Ranking/validation changes: replay result panel surfaces exact parameters used and backend exit_reasons breakdown.
- Exchange connector behavior changes: none.
Operational Impact
- Backward compatibility: fully backward compatible; no backend/API contract changes.
- Migration steps: none.
- Risks/watchouts: locking re-runs replay with the same parameters rather than freezing what is on screen; sample counts may differ if new snapshots arrive between replay and lock. Page does not auto-poll; use refresh for summary/gate, locks refresh after a new lock is created.
Deprecation Timeline
- Not applicable (no aliases/deprecations introduced).
Validation Evidence
- Commands run: pnpm run check (lint, test, build, audit) - all passing.
- Scope of tests/lint checks: component/hook/integration suite for Summary, Replay, Gate, Locks, Detail tabs, error handling, and refresh behavior.
- Known limitations not covered: manual smoke test against local backend with real snapshot data; automated tests use mocked data.