Skip to content

Releases: atomantic/EscapeMint

v1.2.0

21 Mar 22:55

Choose a tag to compare

Release v1.2.0 - Dependency Updates & Bug Fixes

Released: 2026-03-21

Overview

Major dependency upgrades (vite 8, plugin-react 6, jsdom 29, vitest 4.1) along with several bug fixes for derivatives funds, fund size calculations, and export filtering.

Added

  • Re-invest toggle to backtest — recycle sell proceeds into cash pool
  • Privacy policy and terms of use for App Store submission

Changed

  • Upgraded vite from 7.3.1 to 8.0.1 (main + pages)
  • Upgraded @vitejs/plugin-react from 5.1.4 to 6.0.1 (main + pages)
  • Upgraded jsdom from 28.1.0 to 29.0.0
  • Upgraded vitest group (vitest + @vitest/coverage-v8) to 4.1.0
  • Upgraded typescript-eslint from 8.56.1 to 8.57.0
  • Upgraded lint-staged from 16.3.1 to 16.4.0
  • Upgraded @types/node from 25.3.3 to 25.5.0 (main + pages)
  • Upgraded flatted from 3.4.1 to 3.4.2
  • Upgraded recharts from 3.7.0 to 3.8.0
  • Upgraded postcss from 8.5.6 to 8.5.8 (main + pages)
  • Updated manualChunks config to function syntax for vite 8/Rolldown compatibility

Fixed

  • Fund size calculation for manage_cash=false accumulate funds
  • Use derivatives engine values for closed fund Net Gain/Loss
  • Zero out fund size/value for closed derivatives funds
  • Use tracked fund_size for harvest mode funds on platform dashboard
  • Only count margin_borrowed from cash funds to prevent double-counting
  • Exclude test/demo funds from export, add demo prefix to isTestPlatform
  • Update undici to resolve WebSocket overflow and HTTP smuggling vulnerabilities

Full Changelog

Full Diff: v1.1.0...v1.2.0

v1.1.0

06 Mar 03:30

Choose a tag to compare

Release v1.1.0

Released: 2026-03-05

Security

  • Restrict CORS origins and validate CDP URL to localhost
  • Restrict HTTP status codes, fix IPv6 SSRF in import/export routes

Fixes

  • Address remaining audit items: toasts, stale closure, cleanup, logging
  • Use React Router navigate instead of window.location.href
  • Add meaningful error logging to swallowed catch blocks
  • Guard null lock release, add missing await, abort timeout, and error logging
  • Handle result.error in API fetch handlers
  • Wrap fetchAllEntries in try/catch, add toast to CreateFundModal catch
  • Add concurrency limit to fetchAllEntries, reset state on fetch errors in Layout
  • Include fund ID in rejection log, clear corrupt sessionStorage
  • Move connectRef assignment into useEffect to avoid render-time side effect
  • Fix connectRef type, add fetchPlatforms error handling, pass error object to logger

Refactoring

  • Standardize error responses in backup and export routes

Full Changelog

Full Diff: v1.0.0...v1.1.0

v1.0.0

01 Mar 20:13

Choose a tag to compare

Release v1.0.0

Released: 2026-03-01

Added

  • Dependabot grouping for React ecosystem (react, react-dom, @types/react, @types/react-dom) and Vitest ecosystem (vitest, @vitest/*) to prevent version mismatches
  • Dependabot coverage for pages/ directory (has its own package-lock.json outside workspace)
  • Peer dependency check (npm ls) in CI to catch version mismatches before merge
  • .nvmrc pinned to Node 20 (matching CI and engines constraint)

Changed

  • Upgraded all dependencies to latest versions: Express 4→5, React 18→19, UUID 11→13, Tailwind CSS 3→4 (web), react-router-dom 6→7 (pages), Vite 6→7 (pages), @vitejs/plugin-react 4→5, TypeScript 5.7→5.9, and all type packages
  • Migrated web package from Tailwind CSS 3 to 4 (CSS-based config with @import "tailwindcss" and @theme)
  • Removed @types/uuid (uuid v13 ships its own types)
  • Version bumps and changelog finalization now happen only during /release, not on every commit
  • /cam appends to .changelogs/NEXT.md instead of creating per-version changelog files
  • Consolidated unreleased changelogs (v0.42.18-21) into NEXT.md and reset version to v0.42.17
  • Removed project-level /pr and /gitup commands (redundant with global /release and standard git)
  • Pages CI workflow uses npm ci instead of npm install for reproducible builds

Fixed

  • Aggregate projected annual return now uses portfolio-level time-weighted realized APY instead of summing individually-compounded per-fund projections (short-duration funds with modest returns were getting exponentially inflated APYs)
  • Dashboard cache projected return uses same portfolio-level formula for consistency
  • @vitest/coverage-v8 aligned with vitest 4.x across all packages
  • Dashboard table shows actual fund size (latestFundSize) instead of static config value (config.fund_size_usd)
  • Aggregate API now uses fundSize from computeFundFinalMetrics() instead of config override

Full Changelog

Full Diff: v0.42.17...v1.0.0

v0.42.17

01 Mar 15:52

Choose a tag to compare

Release v0.42.17

Released: 2026-03-01

Overview

Fixes aggregate realized APY and liquid APY to use a dollar-weighted compound formula instead of linearly averaging per-fund compound APYs. The old approach produced wildly inaccurate aggregate APY when funds had varying timelines (e.g., a fund with 50% return over 30 days would annualize to ~12,875% and dominate the weighted average even with tiny portfolio weight).

Bug Fixes

  • Aggregate realized APY uses compound formula: Replaced weighted average of per-fund compound APYs with a portfolio-level dollar-weighted compound calculation: totalDollarDays = sum(TWFS_i * daysActive_i), avgCapital = totalDollarDays / portfolioDays, then APY = (1 + totalReturn/avgCapital)^(365/portfolioDays) - 1
  • Aggregate liquid APY uses compound formula: Same compound formula applied to liquid APY (realized + unrealized gains), replacing the linear annualization
  • Time-series chart APY uses compound formula: Dashboard history and filtered time-series APY calculations now use the compound formula for consistency
  • Added portfolioDays to aggregate metrics: Computed from earliest-to-latest entry dates across all funds, passed through engine, server, and client for accurate annualization

Installation

git clone https://github.com/atomantic/EscapeMint.git
cd EscapeMint
npm run setup
npm run dev

Full Changelog

Full Diff: v0.42.16...v0.42.17

v0.41.0

01 Mar 01:05

Choose a tag to compare

Release v0.41.0

Changes

  • feat: serve production UI from Express server, make CDP browser on-demand
  • chore: add Dependabot configuration for vulnerability scanning
  • ci: switch branching to main+release, drop dev branch

Installation

git clone https://github.com/atomantic/EscapeMint.git
cd EscapeMint
npm run setup
npm run dev

v0.40.8

28 Feb 22:13
685eea7

Choose a tag to compare

Release v0.40.8

Changes

  • address review: fix coverage command and recharts version note
  • address review: fix typo and coverage command name
  • chore: bump version to 0.40.8
  • address review: fix documentation accuracy issues
  • update GOALS
  • docs: create roadmap (5 phases)
  • docs: define v1 requirements
  • docs: replan — resolve known issues, remove outdated sections, update priorities
  • docs: complete project research
  • chore: add project config
  • docs: initialize project
  • docs: map existing codebase

Installation

git clone https://github.com/atomantic/EscapeMint.git
cd EscapeMint
npm run setup
npm run dev

v0.40.7

27 Feb 20:28
9f9d8aa

Choose a tag to compare

Release v0.40.7

Changes

  • chore: bump version to v0.40.7
  • address review: safe platform cleanup on fund creation failure
  • chore: bump version to v0.40.6
  • address review: try/finally for loading state, platform rollback, a11y fixes
  • chore: bump version to v0.40.5
  • address review: idempotent platform creation, test prefix guard, cancel restore
  • feat: allow creating new platforms inline in Add Fund form
  • fix: install pages deps in setup and dev:backtest scripts

Installation

git clone https://github.com/atomantic/EscapeMint.git
cd EscapeMint
npm run setup
npm run dev

v0.40.4

27 Feb 19:05
a9e735e

Choose a tag to compare

Release v0.40.4

Changes

  • address review: consolidate duplicate Changed sections in changelog
  • chore: bump version to v0.40.4
  • address review: remove unused jsonwebtoken, update changelog
  • fix: migrate CI from pnpm to npm for workspace:* compatibility
  • fix: replace pnpm workspace:* protocol with npm-compatible * refs
  • remove excess claude command
  • docs: replan PLAN.md — condense archive, deduplicate with GOALS.md, add next actions
  • docs: add GOALS.md with project mission, milestones, and non-goals
  • fix: remove automatic version bumping from CI workflows

Installation

git clone https://github.com/atomantic/EscapeMint.git
cd EscapeMint
npm run setup
npm run dev

v0.39.9

21 Feb 07:33
5d04145

Choose a tag to compare

Release v0.39.9

Changes

  • address review: add lock failure logging, clarify DEPOSIT/WITHDRAW comment
  • fix: restore trailing newline in Modal.tsx
  • fix: DRY streaming functions, remove dead code, harden sessionStorage parsing
  • fix: code review fixes for SOLID/DRY/YAGNI and bug prevention
  • refactor(web): simplify favicon to clean bold dollar sign
  • fix: remove artificial APY upper-bound clamps, fix display formatting
  • fix: add APY clamping to remaining unclamped calculations
  • fix: align derivatives APY between server and client
  • fix: clamp derivatives APY and client-side APY to prevent overflow
  • fix: derivatives integrity check and deposit edit fund size doubling
  • fix: clamp trading fund APY to prevent exponential overflow

Installation

git clone https://github.com/atomantic/EscapeMint.git
cd EscapeMint
npm run setup
npm run dev

v0.38.7

10 Feb 22:32
4473a99

Choose a tag to compare

Release v0.38.7

Changes

  • fix: consolidate changelog to minor version level
  • fix: add missing changelog entries for v0.38.3 and v0.38.4
  • fix: align day precision between server and client
  • fix: address second round of PR review feedback
  • fix: address PR review feedback
  • fix: test platform detection misses platforms like test2, test-del-*
  • feat: use TWAP denominator for trading fund APY calculations
  • feat: remove start_date from config, track active days for APY

Installation

git clone https://github.com/atomantic/EscapeMint.git
cd EscapeMint
npm run setup
npm run dev