Release v0.10.28
February 24, 2026 Enriched
v0.10.28
Date: 2026-02-24
Changes: v0.10.27…v0.10.28
Summary
This release introduces sleeves, a new intent layer for capital allocation, along with persistent categories that can be created, renamed, and deleted. An onboarding state machine provides a first-run experience, and default sleeves and categories are seeded on first import. Backup handling has been reworked to use SQLite-safe VACUUM INTO with a split quick/export UX. The release also includes typography and styling improvements, several bug fixes for demo data source handling and single-snapshot performance rendering, and a move of macOS builds to local with signing and notarization support.
Notable Changes
- Sleeves and categories: Two new domain concepts added end-to-end — persistent categories as an ontology layer and sleeves as an intent-based capital allocation mechanism, with multi-select drag-and-drop for assigning symbols.
- Onboarding state machine: New first-run experience with state regression protection on CSV re-import.
- SQLite-safe backups: Backup command rewritten to use VACUUM INTO, replacing the previous approach, with separate quick-backup and export flows.
- macOS signing and notarization: CI updated to move macOS builds to local runners with code signing and notarization support.
Features
- feat: Inline sleeve notes with truncation, expand, and edit modal
- feat: SQLite-safe backup with VACUUM INTO, split quick/export UX
- feat: Seed default sleeves & categories on first import
- feat: Multi-select drag-and-drop for symbols + tagline update
- feat: Add onboarding state machine & first-run experience
- feat: Add persistent categories — create, rename, delete ontology nodes
- feat: Add sleeves — intent layer for capital allocation
Fixes
- fix: Prevent onboarding state regression on CSV re-import
- fix: Performance tab renders correctly with single snapshot
- fix: Sleeves/categories/cashlike respect Demo data source
Other
- remove unused branding images that were unzipped
- style: Remove all decorative emoji, strengthen typography hierarchy
- pland and feature documentation
- docs: Add useful signing/notarization commands reference
- ci: Move macOS builds to local, add signing + notarization support
Files Changed
.github/workflows/release.yml | 107 +-
apps/desktop/package-lock.json | 10 +-
apps/desktop/package.json | 2 +-
apps/desktop/src-tauri/Cargo.toml | 3 +-
apps/desktop/src-tauri/Entitlements.plist | 14 +
apps/desktop/src-tauri/resources/demo.db | Bin 200704 -> 241664 bytes
apps/desktop/src-tauri/src/commands/backup.rs | 54 +-
apps/desktop/src-tauri/src/commands/categories.rs | 217 ++-
apps/desktop/src-tauri/src/commands/csv.rs | 7 +-
apps/desktop/src-tauri/src/commands/licensing.rs | 16 +-
apps/desktop/src-tauri/src/commands/mod.rs | 2 +
apps/desktop/src-tauri/src/commands/onboarding.rs | 269 +++
apps/desktop/src-tauri/src/commands/sleeves.rs | 195 +++
apps/desktop/src-tauri/src/db/app_state.rs | 32 +
apps/desktop/src-tauri/src/db/migrations.rs | 118 ++
apps/desktop/src-tauri/src/db/mod.rs | 1 +
apps/desktop/src-tauri/src/lib.rs | 27 +-
apps/desktop/src-tauri/tauri.conf.json | 8 +-
apps/desktop/src/App.jsx | 1769 ++++++++++++++++----
apps/desktop/src/UnplacedSymbolsPanel.jsx | 67 +
apps/desktop/src/app.css | 293 +++-
bin/release | 46 +-
bin/release-macos | 169 ++
core/src/db/schema.rs | 128 +-
core/src/export/mod.rs | 1 +
core/src/export/portfolio.rs | 2 +-
core/src/export/sleeves.rs | 77 +
..._vector_illustration_displays_four_castle 2.png | Bin 1067301 -> 0 bytes
...al_vector_illustration_displays_four_castle.png | Bin 1067301 -> 0 bytes
docs/building-macos-universal.md | 155 ++
docs/macos-code-signing-dmg.md | 178 ++
docs/plans/keep-companion-iOS-satellite.md | 448 +++++
docs/plans/sleeve-impl-plan-feb22-2026.md | 347 ++++
docs/product-features/sleeves-feature-impl.md | 1348 +++++++++++++++
34 files changed, 5646 insertions(+), 464 deletions(-)
Artifacts
| Platform | Artifact | Status |
|---|---|---|
| macOS | KEEP-v0.10.28-macos-universal.zip | pending |
| Linux | KEEP-v0.10.28-linux-amd64.AppImage | pending |
| Linux | KEEP-v0.10.28-linux-amd64.deb | pending |
| Windows | KEEP-v0.10.28-windows-x64.msi | pending |
Raw Commits (source of truth)
- 76e83a4 release: v0.10.28
- fdfa04e remove unused branding images that were unzipped
- 5039e07 feat: Inline sleeve notes with truncation, expand, and edit modal
- 5d98105 feat: SQLite-safe backup with VACUUM INTO, split quick/export UX
- 3eec6ea fix: Prevent onboarding state regression on CSV re-import
- b11a713 style: Remove all decorative emoji, strengthen typography hierarchy
- 6e5590f fix: Performance tab renders correctly with single snapshot
- a7bec20 feat: Seed default sleeves & categories on first import
- cc0ace7 feat: Multi-select drag-and-drop for symbols + tagline update
- 28a6dc1 feat: Add onboarding state machine & first-run experience
- 84bbad2 fix: Sleeves/categories/cashlike respect Demo data source
- f70fdf0 pland and feature documentation
- 002cf24 feat: Add persistent categories — create, rename, delete ontology nodes
- be60aa4 feat: Add sleeves — intent layer for capital allocation
- b9af13b docs: Add useful signing/notarization commands reference
- 6807cc0 ci: Move macOS builds to local, add signing + notarization support