Releases: coinman-dev/portfolio
Release list
v0.7.2-beta
CoinMan Portfolio Tracker — v0.7.2-beta
This release consolidates everything since v0.6.0-alpha. It supersedes v0.7.0-beta and v0.7.1-beta, which will be removed shortly.
✨ New
- Local Windows build script (
scripts/build-windows-local.sh) — cross-compiles a portable Windows.exefrom Linux/WSL viacargo-xwinwithout needing a Windows VM. Runs pre-flight checks (git repo, distro, required apt packages, MSVC Rust target,cargo-xwin,tauri-cli) and prompts to install anything missing. Stamps the build version from the latestv*git tag plus the short HEAD SHA (e.g.0.7.2-beta-37c3484), then restores the working tree afterwards. - Coin catalog tooling (
scripts/catalog/check_explorers.py) — validates explorer URLs across the catalog and detects per-coin wallet-address patterns. Maintainer-only utility, not shipped in the binary. - Runtime app version is now read from
CARGO_PKG_VERSIONand shown in the desktop UI, so the displayed version always matches the actual binary. - Automated CI versioning — release pipeline derives the version from the git tag (or branch name for non-tag pushes) and stamps it into
Cargo.toml,tauri.conf.json, andfrontend/index.jsat build time.
🐛 Fixed
- Delete confirm dialog on Tauri 2. Previously
window.confirmwas replaced asynchronously by the dialog plugin, so the synchronous early-return never fired and rows/portfolios were deleted before the confirmation dialog appeared. Now usestauri-plugin-dialog'sask(), which returns a realPromise<boolean>. - Column auto-align after the first added coin. Auto-align now also re-runs when async market data arrives, so the layout doesn't get stuck on placeholder widths from the initial
$ 0.00cells. - Column resize no longer pushes "Change" off-screen. Dragging a column wider now shrinks the right-most
Changecolumn by the same delta; the table stays inside the container. - Auto-align respects manual column widths. Your drag preferences are saved (including
Change) and used as a floor on subsequent passes; theCoin/Datecolumn absorbs the remainder so the right edge of the table stays anchored. - Window resize re-applies auto-align (debounced 150 ms) so columns rebalance after the app window changes size.
- Money formatting trims trailing zeros while keeping at least 2 decimal places:
$ 82,389.00000→$ 82,389.00,$ 0.50000000→$ 0.50. Significant decimals are preserved ($ 82,389.12345is left as is). - Liquity BOLD price lookup. CoinGecko renamed the slug from
liquity-boldtoliquity-bold-2; catalog entry updated. - Cross-platform CI versioning script. The Python step in the release workflow had a
re.MULTILINEbug and produced a broken Windows artifact path on tagged builds; both fixed.
🔧 Maintenance
- Rust MSRV bumped
1.77.2→1.95.0(pinned insrc-tauri/Cargo.toml). - Tauri stack updated to current stable:
tauri2.10.3 → 2.11.1tauri-build2.5.6 → 2.6.1tauri-plugin-dialog2.2.0 → 2.7.1tauri-plugin-log"2"→ 2.8.0tauri-plugin-single-instance2.4.0 → 2.4.2- Plus 100+ transitive dependencies refreshed via
cargo update.
- Catalog scripts relocated from
catalog_update/toscripts/catalog/to consolidate dev tooling under one directory. - README refreshed: drops the now-unnecessary Node.js prerequisite (Tauri 2's CLI is a Rust binary; frontend is plain vanilla JS), trims the Linux apt list, documents
scripts/build-windows-local.shas the quick path for cross-compilation, and adds a Tauri version badge. - Daily GitHub Actions cache cleanup workflow added.
- Workflow renamed
build-macos.yml→build-release.yml; Node.js 20 deprecation warnings suppressed.
Downloads
| Platform | Asset |
|---|---|
| Windows x64 | coinman-portfolio-windows-x64.zip |
| macOS Intel | coinman-portfolio-macos-x86_64.dmg |
| macOS Apple Silicon | coinman-portfolio-macos-aarch64.dmg |
| Linux x64 | coinman-portfolio-linux-x64.tar.gz |
⚠️ Beta release. Test on a copy of your database before relying on it. Encrypted databases from previous versions remain compatible.
Deprecation
This release replaces v0.7.0-beta and v0.7.1-beta. Anyone on those tags should jump straight to v0.7.2-beta.
v0.7.1-beta
v0.7.1-beta
v0.7.0-beta: Beta release v0.7.0
Changes since v0.6.0-alpha: - CI: Automate versioning based on tags/branches - FEAT: Add check_explorers.py and update coin catalog (cmc.json) - CI: Daily Actions cache cleanup workflow - DOCS: Add GitHub status badges to README - FIX: Correct package metadata and license in Cargo.toml
v0.6.0-alpha
CoinMan Portfolio Tracker — Alpha Release
⚠️ This is an alpha version. It may contain bugs and is not recommended for production use.
Portable builds (no installer required)
| File | Platform |
|---|---|
coinman-portfolio-windows-x64.zip |
Windows 10/11 (x64) |
coinman-portfolio-linux-x64.tar.gz |
Linux Ubuntu 22.04+ (x64) |
coinman-portfolio-macos-x64.dmg |
macOS 10.15+ (Intel) |
coinman-portfolio-macos-arm64.dmg |
macOS 11+ (Apple Silicon M1/M2/M3) |
How to run
Windows: Extract the zip, place coinman-portfolio.exe anywhere, run it. The database/ folder will be created next to the exe.
Linux: Extract the archive, make executable and run:
tar -xzf coinman-portfolio-linux-x64.tar.gz
chmod +x coinman-portfolio
./coinman-portfolioRequires
libwebkit2gtk-4.1-0on the system:sudo apt install libwebkit2gtk-4.1-0
macOS: Open the DMG, drag the app to Applications, run it.
What's new in v0.6.0
CoinMarketCap price source
- Added CoinMarketCap as an alternative price source (in addition to CoinGecko)
- Toggle between CMC and CoinGecko in Settings → Price Source
- CMC API key can be entered and validated directly in the app
- If CMC authentication fails, the app automatically falls back to CoinGecko
- Switching price source now immediately fetches fresh prices (session cache is cleared on switch)
- Status bar now shows
from CMCorfrom CGto indicate which source was used
CoinGecko price fetching via gecko_id
- Prices are now fetched using the
gecko_idfield from the coin catalog - Improved accuracy for coins whose CoinGecko ID differs from their symbol
Coin catalog update
- Catalog update script overhauled: better CMC → CoinGecko ID matching
- Coin data refreshed with latest catalog
App renamed
- Application renamed to CoinMan Portfolio Tracker
Settings persistence
auto_align_columnsandshow_table_footersettings are now saved and restored between sessions
Template engine
- Added internal
CoinmanTpltemplate engine for cleaner UI rendering - Fixed startup initialization and status bar layout
v0.5.0-alpha
CoinMan Portfolio Tracker — Alpha Release
⚠️ This is an alpha version. It may contain bugs and is not recommended for production use.
Portable builds (no installer required)
| File | Platform |
|---|---|
coinman-portfolio-windows-x64.zip |
Windows 10/11 (x64) |
coinman-portfolio-linux-x64.tar.gz |
Linux Ubuntu 22.04+ (x64) |
coinman-portfolio-macos-x64.dmg |
macOS 10.15+ (Intel) |
coinman-portfolio-macos-arm64.dmg |
macOS 11+ (Apple Silicon M1/M2/M3) |
How to run
Windows: Extract the zip, place coinman-portfolio.exe anywhere, run it. The database/ folder will be created next to the exe.
Linux: Extract the archive, make executable and run:
tar -xzf coinman-portfolio-linux-x64.tar.gz
chmod +x coinman-portfolio
./coinman-portfolioRequires
libwebkit2gtk-4.1-0on the system:sudo apt install libwebkit2gtk-4.1-0
macOS: Open the DMG, drag the app to Applications, run it.
What's new in v0.5.0
Update checker
- The app now automatically checks for new versions on GitHub once a week (3 seconds after launch)
- If a newer version is found, a modal window appears with the version number
- Both stable releases and pre-releases are detected and shown separately
- A clickable "Update available" indicator appears in the status bar (bottom right)
- Last check date is saved to
settings-cache.json— no repeated checks on every launch
Coin validation
- Adding or editing a transaction now requires the coin to exist in the built-in catalog (CoinMarketCap database)
- If the coin is not found, saving is blocked and an error is shown:
Coin "Bitcoin (BTC)" was not found in the database - Prevents saving transactions for unknown or mistyped coins
Settings file renamed
settings.jsonrenamed tosettings-cache.json(stores both UI settings and market cache)
Code quality
- App version is now defined in a single place (
CONFIG.APP_VERSION) and used everywhere — About modal, update checker - CSS: moved inline styles to classes, added CSS variables
- Explorer URL fix: correct
?separator before wallet address in blockchain explorer links
v0.4.0-alpha
CoinMan Portfolio — Alpha Release
⚠️ This is an alpha version. It may contain bugs and is not recommended for production use.
Portable builds (no installer required)
| File | Platform |
|---|---|
coinman-portfolio-windows-x64.zip |
Windows 10/11 (x64) |
coinman-portfolio-linux-x64.tar.gz |
Linux Ubuntu 22.04+ (x64) |
coinman-portfolio-macos-x64.dmg |
macOS 10.15+ (Intel) |
coinman-portfolio-macos-arm64.dmg |
macOS 11+ (Apple Silicon M1/M2/M3) |
How to run
Windows: Extract the zip, place coinman-portfolio.exe anywhere, run it. The database/ folder will be created next to the exe.
Linux: Extract the archive, make executable and run:
tar -xzf coinman-portfolio-linux-x64.tar.gz
chmod +x coinman-portfolio
./coinman-portfolioRequires
libwebkit2gtk-4.1-0on the system:sudo apt install libwebkit2gtk-4.1-0
macOS: Open the DMG, drag the app to Applications, run it.
What's new in v0.4.0
Wallet address field
- Add/Edit Transaction modals now include a Wallet Address field (up to 220 characters)
- Stored per transaction alongside notes
Offline market data
- Price data is now preserved when the app starts without internet
- Market data source is shown in the status bar:
from API,from session cache (date), orfrom file (date) - Previously, launching offline would zero out all prices
COLLAPSE / EXPAND state saved
- The collapse/expand state of the portfolio table is now persisted to
settings.json - Restored automatically on next launch
Collapsed row format
- Collapsed rows now show
Transactions: N(previously showedN Positions)
Template system refactored
- All HTML templates use visible
[[VARIABLE]]placeholders withBEGIN/ENDcomment markers - Improves compatibility with design tools (Dreamweaver, etc.)
Portfolio tabs — flex layout
- Portfolio tab row refactored from table layout to CSS flexbox
- More robust wrapping behaviour with many portfolios
Bug fixes
- Fixed: "undefined" shown in Notes field when editing old transactions that had no note
- Fixed: bullet separator
•now only appears when a note exists (expanded rows) - Fixed: transaction date format now shows
HH:MMinstead ofHH:MM:SS - Fixed: CMD window flash on Windows when clicking external links (CoinGecko, GitHub)
- Added macOS support for external link opening (
opencommand)
Legal
- Added MIT
LICENSEfile - About modal now shows CoinGecko attribution and "not financial advice" disclaimer
- README updated with Disclaimer and Data Attribution sections
v0.3.0-alpha
CoinMan Portfolio — Alpha Release
⚠️ This is an alpha version. It may contain bugs and is not recommended for production use.
Portable builds (no installer required)
| File | Platform |
|---|---|
coinman-portfolio-windows-x64.zip |
Windows 10/11 (x64) |
coinman-portfolio-linux-x64.tar.gz |
Linux Ubuntu 22.04+ (x64) |
coinman-portfolio-macos-x64.dmg |
macOS 10.15+ (Intel) |
coinman-portfolio-macos-arm64.dmg |
macOS 11+ (Apple Silicon M1/M2/M3) |
How to run
Windows: Extract the zip, place coinman-portfolio.exe anywhere, run it. The database/ folder will be created next to the exe.
Linux: Extract the archive, make executable and run:
tar -xzf coinman-portfolio-linux-x64.tar.gz
chmod +x coinman-portfolio
./coinman-portfolioRequires
libwebkit2gtk-4.1-0on the system:sudo apt install libwebkit2gtk-4.1-0
macOS: Open the DMG, drag the app to Applications, run it.
What's new in v0.3.0
Interactive column resizing
- Drag column borders to resize — changes saved automatically to
settings.json - Column width limits prevent the table from overflowing the screen; the last column (
Change) acts as a buffer - Smart "Cur. Price" column: hiding it redistributes its width to "Coin / Date", keeping the layout intact; re-enabling restores original widths
showCurPricesetting now persisted insettings.json(previously localStorage only)
Per-user settings
settings.jsonnow stores per-database-file settings:activePortfolioId,portfolioOrder,marketCache- Global settings (
windowState,showCurPrice,columnWidths) remain shared across all databases - Automatic migration from old flat format on first load
Portfolio order
- Drag-and-drop portfolio tab reorder is now saved in
settings.json(not in the database file) - Database file always stores portfolios sorted by ID for stability
"Save database as..."
- New File menu item to copy the current database to a new file
Unicode database filenames
- Spaces, Cyrillic, and other Unicode characters in filenames now work correctly
UI fixes
- File menu now closes properly when opening any modal dialog (Encrypt, Clear, etc.)
macOS support
- First macOS builds: DMG for both Intel (x86_64) and Apple Silicon (aarch64)
Bug fixes (post-release)
- Fixed: app no longer creates
default.jsonwhen opening a single non-default database file - Fixed: window position is now preserved correctly on Wayland
- Fixed: file dialog deadlock resolved on Linux (Kubuntu and similar)
- Fixed: window size no longer grows on each launch on Linux — corrected decoration offset calibration on WMs that include window decorations in
inner_size()
v0.2.0-alpha
CoinMan Portfolio — Alpha Release
⚠️ This is an alpha version. It may contain bugs and is not recommended for production use.
Portable builds (no installer required)
| File | Platform |
|---|---|
coinman-portfolio-windows-x64.zip |
Windows 10/11 (x64) |
coinman-portfolio-linux-x64.tar.gz |
Linux Ubuntu 22.04+ (x64) |
How to run
Windows: Extract the zip, place coinman-portfolio.exe anywhere, run it. The database/ folder will be created next to the exe.
Linux: Extract the archive, make executable and run:
tar -xzf coinman-portfolio-linux-x64.tar.gz
chmod +x coinman-portfolio
./coinman-portfolioRequires
libwebkit2gtk-4.1-0on the system:sudo apt install libwebkit2gtk-4.1-0
What's new in v0.2.0
- AES-256-GCM database encryption — protect your portfolio data with a password
- Encrypt / decrypt via File menu
- Change password without decrypting
- Encrypted files shown with a lock icon in the database selector
- Password held in memory only — never stored on disk
- Settings file (
settings.jsonnext to exe) — window geometry and market cache now survive restarts independently of the database - Keyboard navigation in dropdown menus (Arrow keys / Enter / Escape)
- Enter key support in all password dialogs
- DB selector on startup — if 2+ database files exist, selector appears before any file is loaded (no failed-load round-trip for encrypted files)
- Market price cache persists between launches