v1.3.2 - Re-import fix, one-step Windows setup, CI
A fix for re-imports that could lose a trade, an easier Windows install, and a repository set up for contributors.
Not financial advice. Not a signal service. Every screenshot is the synthetic demo seed.
Fixed: a second import could overwrite a trade
Each import numbers a ticker's round trips for the day from 1 (_1, _2). Importing a statement for a day that already had trades, for example a mid-day export followed by the end-of-day one, numbered the new fills from 1 again and replaced the stored trade with that name. A whole round trip could disappear, and a trade could be left holding only its entries or only its exits.
The importer now rebuilds that ticker's day from the fills already stored plus the new ones, so every round trip comes out whole. Notes and tags stay with the trade they belong to. This applies to Thinkorswim, IBKR and the generic template.
If you imported the same day more than once, import that day's statement again after updating. The day is rebuilt correctly and nothing is duplicated.
Easier install on Windows
setup.bat checks for Python and Node, creates the Python environment, installs both halves of the app and creates backend\.env for your optional keys. Installing is now setup.bat once, then launch.bat.
Checked on every change
- A CI workflow runs the backend tests, the frontend tests and a production build on every push and pull request. The badge is on the README.
- New tests check the Thinkorswim and IBKR importers against the sample statements, with the expected P&L worked out by hand: a scale-in, partial exits, a short, a loser, a multi-day round trip and an open position. 23 backend and 19 frontend tests in all.
- axios is upgraded to 1.17 for its security fixes.
- About 300 lines of dead code left over from the 1.2.0 redesign are removed, including a dashboard request whose result nothing used.
For contributors
CONTRIBUTING.md (setup, tests, how to add a broker importer), a code of conduct, SECURITY.md with private vulnerability reporting, and templates for bug reports, feature requests, broker importer requests and pull requests. The README now opens with what the journal does and what stays on your machine.
Install
Download the zip below, unzip it, run setup.bat, then launch.bat. Python 3.11 or newer and Node 18 or newer. A new install starts empty: add an account, then import your broker's statement.
Upgrading
Your trades (backend/trading_journal.db) and your keys (backend/.env) are not part of a release, so updating never touches them.
If you cloned with git:
git pull
setup.bat
launch.batIf you downloaded the ZIP: unzip this one into a new folder, copy your two files across, run setup.bat once, then start it with launch.bat.
old-folder/backend/.env -> new-folder/backend/.env
old-folder/backend/trading_journal.db -> new-folder/backend/trading_journal.db