What's Changed
- Refresh the README for the 1.3 feature set by @Oveduumnakal in #77
- Migrate deprecated Client menu APIs to the Menu class by @Oveduumnakal in #84
- Enforce the inline-comment and class-Javadoc rules in the style checker by @Oveduumnakal in #85
- CI hygiene: Javadoc lint, deprecation reporting, wrapper validation, Dependabot by @Oveduumnakal in #86
- Add release automation and PR convention checks by @Oveduumnakal in #87
- Extract StockpilePanel's nested classes into top-level files by @Oveduumnakal in #88
- Skip PR convention checks for Dependabot by @Oveduumnakal in #94
- Bump actions/setup-java from 4 to 5 by @dependabot[bot] in #89
- Bump actions/checkout from 4 to 7 by @dependabot[bot] in #90
- Bump gradle/actions from 4 to 6 by @dependabot[bot] in #91
- Read the live milestone in the PR check to avoid the creation race by @Oveduumnakal in #105
- Enforce persisted-data compatibility with fixtures and an automated schema guard by @Oveduumnakal in #97
- Add the source-attributed pricing foundation by @Oveduumnakal in #98
- Price GE buys/sells at real offer prices and track the buy limit by @Oveduumnakal in #102
- Show each lot's acquisition source in the collection log by @Oveduumnakal in #103
- Add repeat mode to notification rules with edge-triggered re-arm by @Oveduumnakal in #92
- Persist last-known prices so the panel isn't empty at startup by @Oveduumnakal in #96
- Wrap examine text to the detail card's real width by @Oveduumnakal in #106
- Add sort modes to the tracked list by @Oveduumnakal in #95
- Fix Release 1.4 spine test-pass findings (#107) by @Oveduumnakal in #113
- Flag plain block comments in the style checker by @Oveduumnakal in #115
- Session stats: value gained/lost since login (#62) by @Oveduumnakal in #116
- Give tracked-list header buttons distinct icons and hover colouring (#117) by @Oveduumnakal in #118
- Coalesce panel rebuilds so event storms can't live-lock the EDT (#120) by @Oveduumnakal in #121
- Auto-categorize tracked items from an OSRS Wiki category snapshot (#63) by @Oveduumnakal in #122
- Skip bank placeholders when counting held quantities (#123) by @Oveduumnakal in #124
- Preserve detail-view scroll position across price-refresh rebuilds (#125) by @Oveduumnakal in #126
- Unknown-source fallback: sell provenance and estimated-price marking (#71) by @Oveduumnakal in #127
- Restore detail scroll synchronously to eliminate the price-reload flash (#128) by @Oveduumnakal in #129
- Record High/Low Alchemy casts as sales at the alch value (#68) by @Oveduumnakal in #130
- Price ground pickups at 0 and suspend drops instead of closing them (#65) by @Oveduumnakal in #131
- Price shop buys and sells from the actual coins moved (#67) by @Oveduumnakal in #132
- Transfer cost basis through processing recipes (#69) by @Oveduumnakal in #134
- Suspend lots on death and restore them on recovery (#70) by @Oveduumnakal in #135
- Realize burnt/destroyed processing losses and tag them in the log (#144) by @Oveduumnakal in #145
- Tag failed gem cuts as a Crushed loss with its own glyph (#146) by @Oveduumnakal in #147
- Price player-trade items by apportioning the trade's gp (#66) by @Oveduumnakal in #133
- fix: keep the "Session:" prefix grey, colouring only the value by @Oveduumnakal in #148
- Export acquisitions to CSV and export/import the tracked list by @Oveduumnakal in #150
- Seed graph pop-outs for view-only items from previewItem by @Oveduumnakal in #151
- Portfolio value history chart by @Oveduumnakal in #154
- Store portfolio history per item so removals correct the chart by @Oveduumnakal in #155
- fix: keep tracked-item row height constant on hover by @Oveduumnakal in #156
- fix: don't count newly-tracked owned items as session profit by @Oveduumnakal in #157
- feat: "What's New" indicator and in-plugin changelog window by @Oveduumnakal in #158
- Value platinum tokens as trade currency so token-settled trades don't close at 0 by @Oveduumnakal in #187
- Keep cancelled-but-uncollected GE sell offers suspended across login by @Oveduumnakal in #188
- Don't persist mid-replay so login load stops stripping the last item's grouping by @Oveduumnakal in #189
- Exclude suspended units when an acquisitions edit re-derives held quantity by @Oveduumnakal in #190
- Realize the final GE fill delivered on a cancellation instead of discarding it by @Oveduumnakal in #191
- Retag a lot's buy source to Manual only when the buy side is edited by @Oveduumnakal in #192
- Enforce the Source-Based Pricing toggle across every source pipeline by @Oveduumnakal in #193
- Count suspended units in the portfolio value so suspensions stop reading as losses by @Oveduumnakal in #200
- Bound death-loss suspension to the death's own container batch by @Oveduumnakal in #201
- Drop an untracked item's session baseline so removal stops reading as a loss by @Oveduumnakal in #195
- Mark the session initialised when startUp loads while already logged in by @Oveduumnakal in #196
- Hydrate persisted prices on the login path, not just at startUp by @Oveduumnakal in #197
- Build exports and imports on the client thread instead of reading its state from the EDT by @Oveduumnakal in #199
- List only previously-shipped bugs in each release's changelog Bug Fixes by @Oveduumnakal in #204
- Refresh the plugin-hub description and tags to match the 1.4 scope by @Oveduumnakal in #206
- Restructure the README around user-facing features and add UI screenshots by @Oveduumnakal in #207
- Date the 1.4 changelog entry to its actual ship date by @Oveduumnakal in #209
New Contributors
- @dependabot[bot] made their first contribution in #89
Full Changelog: R-1.3...R-1.4