# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added - Implemented `WalletTransaction` tracking and `get_wallet_transactions` in `backend/src/esi/api.py` to reconcile and deduct filled orders locally without requiring full region re-polls. - Requested `esi-wallet.read_character_wallet.v1` scope via SSO `scripts/setup_auth.py` to enable route confirmation. - Introduced an in-memory SQLite database via `aiosqlite` in `backend/src/market.py` for efficient arbitrage querying and volume state updates. - Added `GET /settings`, `POST /settings`, and `POST /set_waypoints` FastAPI endpoints in `backend/src/main.py`. - Developed `LegMetrics` and graph caching mechanism in `backend/src/graph.py` to dramatically speed up route optimization. - Upgraded the React frontend `Options.js` to allow real-time UI configuration of cargo size, speeds, risk values, and profit thresholds. - `scripts/haul.sh` CLI for unified backend/frontend dependency checking, running, and EVE data bootstrapping. - `scripts/setup_auth.py` and `scripts/setup_eve_data.py` scripts to fetch OAuth credentials and base CSV game data. - `.env.example` to ease SSO configuration. - Custom Copilot Chat prompt for documenting changes under `.github/prompts`. ### Changed - Claimed fork ownership by adding attribution to `readme.md` and modifying the `license.md` copyright. - Migrated all primary ESI networking and dataset initialization in `backend/src/` to `asyncio` and `aiohttp` for non-blocking I/O. - Redesigned `create_route` no longer auto-sets waypoints; players must now use the explicit "Set in Game" button to push route locations to the client. - Switched frontend components (`Path.js`, `Info.js`) from HTTP polling to strictly using Server-Sent Events (`useSSE`) for real-time dataset rendering. - Rewrote the arbitrage shortlist capabilities using SQLite queries ranking to limit calculation matrix overhead strictly. - Overhauled triplet routing optimizations (`backend/src/route.py`) to reduce duplicate calculations when evaluating top candidates. - Refactored `backend/src/manager.py` to fix graph instantiations, updated ship properties to feature larger cargo, lower subwarp/warp speed, and accurately lower ship ISK value. - Re-aligned route and item capital checks across `backend/src/manager.py` and `backend/src/pathfinder.py` by transitioning the `Ship` attribute references from dataclasses to dictionaries. - Reduced initial max capital layout cap to `20,000,000` in `backend/src/arbitrage.py` to be more cautious about early-game up-front ISK demands. - Updated `backend/src/loader.py` to handle edge cases where `solar_system_id` was returned as 'None'. - Enhanced graph generation to reliably build its parent directory for `PATHS_FILE`. - Adjusted `.gitignore` to track standard Python and Node virtual environment directories properly. ### Removed - Removed the experimental `rust_backend/` rewrite and all associated instructions/configurations. ### Fixed - Addressed ESI rate limit errors by enforcing an active semaphore limit and 429 backoff mechanism inside ESI client requests. - Fixed uninitialized class name alias by swapping `Graph` to `NavigationGraph` across references. - Remedied route step structure by moving away from hardcoded dataclass references (`RouteStep`) to generic dictionaries in `backend/src/route.py`. - Checked and resolved printing of `snipe` variable references within `backend/src/manager.py` loops arrays versus strings.