KEEP
Release v0.10.29

February 28, 2026 Enriched

v0.10.29

Date: 2026-02-28
Changes: v0.10.28…v0.10.29

Summary

This release focuses on UI refinement and structural editing reliability. Drag-and-drop in the Structure tab is stabilized with a DragOverlay approach and unified drop targets, and sleeve rows are redesigned around a modal edit pattern with grouped display. Global text scaling is now driven by CSS custom property tokens, giving consistent sizing control across all views. On the data side, the Yields table gains sortable columns and the Top 10 Gainers panel now uses basis-adjusted calculations with a corrected currency parser for signed values.

Release tooling also sees improvement: bin/release-macos now loads Apple signing credentials from a .env.release file, and two new Claude Code skills (/cut_release, /fetch_release) automate the end-to-end release workflow.

Notable Changes

  • Drag-and-drop stabilization: Replaced direct drag handling with DragOverlay and unified drop targets, eliminating flickering and misplaced drops in structure editing.
  • Sleeve interaction redesign: Sleeve rows now use a modal edit pattern with grouped display, replacing inline editing for a cleaner hierarchy.
  • Global text scaling: Text sizes throughout the app are controlled by a single CSS custom property, enabling consistent scaling without per-component overrides.
  • Basis-adjusted Top 10: Gainers and capital decreases panels now compute against cost basis rather than raw value, with a fix to the currency parser for handling signed dollar amounts.
  • Release automation: New .env.release file pattern for macOS signing secrets, plus /cut_release and /fetch_release Claude Code skills for streamlined release management.

Features

  • feat(structure): stabilize drag-and-drop with DragOverlay and unified drop targets
  • feat: True global text scaling via CSS custom property tokens
  • feat: Add sortable columns to Yields table
  • feat: Add bin/release notes command and /summarize-changelog skill
  • feat: Basis-adjusted Top 10 Gainers, fix currency parser for signed values

Fixes

  • fix: Make subcategory (investment type) click-to-edit work and save correctly
  • fix: Standardize macOS release artifact on ZIP, update fetch expectations

Other

  • build: source .env.release for macOS signing secrets
  • build: add cut_release and fetch_release Claude Code skills
  • ui: Sleeve interaction redesign — modal edit, grouped rows, clean hierarchy
  • ui: Comfortable mode polish — compact card labels, smart dollar formatting
  • ui: Compact portfolio row layout with tighter right-side stack
  • add release notes for v0.10.18 through v0.10.25
  • add release notes for last 3 releases via the summarization history
  • doc notes
  • basis adjusted for top 10 capital decreases
Files Changed
 .claude/commands/cut_release.md                    |  116 ++
 .claude/commands/fetch_release.md                  |   84 ++
 .claude/skills/summarize-changelog/SKILL.md        |   69 +
 .gitignore                                         |    3 +
 apps/desktop/package-lock.json                     |    4 +-
 apps/desktop/package.json                          |    2 +-
 apps/desktop/src-tauri/Cargo.toml                  |    2 +-
 .../desktop/src-tauri/src/commands/transactions.rs |   54 +
 apps/desktop/src-tauri/src/lib.rs                  |    1 +
 apps/desktop/src-tauri/tauri.conf.json             |    4 +-
 apps/desktop/src/App.jsx                           | 1380 +++++++++++++-------
 apps/desktop/src/UnplacedSymbolsPanel.jsx          |   22 +-
 apps/desktop/src/app.css                           |  287 ++--
 bin/release                                        |  257 +++-
 bin/release-macos                                  |   51 +-
 core/src/csv_import/cleaner.rs                     |    8 +-
 core/src/csv_import/importer.rs                    |   11 +-
 .../INTERNAL-keep-sov-cap-manifesto.md             |  243 ++++
 release-notes/20260219-v0.10.18.enriched.md        |   61 +
 release-notes/20260219-v0.10.18.md                 |   62 +
 release-notes/20260219-v0.10.19.enriched.md        |   54 +
 release-notes/20260219-v0.10.19.md                 |   55 +
 release-notes/20260219-v0.10.20.enriched.md        |   54 +
 release-notes/20260219-v0.10.20.md                 |   55 +
 release-notes/20260219-v0.10.21.enriched.md        |   51 +
 release-notes/20260219-v0.10.21.md                 |   52 +
 release-notes/20260219-v0.10.22.enriched.md        |   54 +
 release-notes/20260219-v0.10.22.md                 |   55 +
 release-notes/20260219-v0.10.23.enriched.md        |   53 +
 release-notes/20260219-v0.10.23.md                 |   54 +
 release-notes/20260219-v0.10.24.enriched.md        |   54 +
 release-notes/20260219-v0.10.24.md                 |   55 +
 release-notes/20260219-v0.10.25.enriched.md        |   54 +
 release-notes/20260219-v0.10.25.md                 |   55 +
 release-notes/20260220-v0.10.26.enriched.md        |   67 +
 release-notes/20260220-v0.10.26.md                 |   68 +
 release-notes/20260220-v0.10.27.enriched.md        |   54 +
 release-notes/20260220-v0.10.27.md                 |   55 +
 release-notes/20260224-v0.10.28.enriched.md        |  118 ++
 release-notes/20260224-v0.10.28.md                 |  112 ++
 40 files changed, 3336 insertions(+), 614 deletions(-)
Artifacts
Platform Artifact Status
macOS KEEP-v0.10.29-macos-universal.zip pending
Linux KEEP-v0.10.29-linux-amd64.AppImage pending
Linux KEEP-v0.10.29-linux-amd64.deb pending
Windows KEEP-v0.10.29-windows-x64.msi pending
Raw Commits (source of truth)
  • 676f779 build: source .env.release for macOS signing secrets
  • fab2583 release: v0.10.29
  • b3b1441 build: add cut_release and fetch_release Claude Code skills
  • c359ba5 feat(structure): stabilize drag-and-drop with DragOverlay and unified drop targets
  • 94f6087 ui: Sleeve interaction redesign — modal edit, grouped rows, clean hierarchy
  • bc81e89 ui: Comfortable mode polish — compact card labels, smart dollar formatting
  • a8c8b7f feat: True global text scaling via CSS custom property tokens
  • 26349d9 ui: Compact portfolio row layout with tighter right-side stack
  • e2d51c5 feat: Add sortable columns to Yields table
  • e279a90 add release notes for v0.10.18 through v0.10.25
  • b9cc253 add release notes for last 3 releases via the summarization history
  • 646389a feat: Add bin/release notes command and /summarize-changelog skill
  • b83d726 doc notes
  • ba1bde6 fix: Make subcategory (investment type) click-to-edit work and save correctly
  • 8e34b36 basis adjusted for top 10 capital decreases
  • 7ce67b8 feat: Basis-adjusted Top 10 Gainers, fix currency parser for signed values
  • 9a45781 fix: Standardize macOS release artifact on ZIP, update fetch expectations