KEEP // TERMINAL

Release v0.11.0

May 31, 2026 Enriched

v0.11.0

Date: 2026-05-31
Changes: v0.10.32…v0.11.0

Summary

v0.11.0 is a feature-heavy release covering roughly five weeks of work. It introduces a full Allocation Decisions workflow — capital lineage and counterfactuals, a sortable persisted ledger, Trim to Cash, account labels, and signature-based duplicate detection — alongside a substantially expanded cash-flow simulator that adds retirement-readiness metrics, a Roth conversion strategy, and a birthdate-driven Pre-59.5 Bridge Coverage chart. The Structure and Performance views gain new analytics, including a Cost-Basis Return period column, a Sleeves (Intent) Value/Change/Return toggle, and a Modified Dietz return sensitivity scrubber. A range of CSV-import, snapshot, and Flow-attribution fixes round out the release.

A look at what’s new

Notable Changes

  • Allocation Decisions matured into a full workflow: capital lineage and counterfactuals, a sortable ledger with persisted order, Trim to Cash with persistent dismiss, account labels with inbox previews, a backward-look pass with signature-based dedupe and capped attribution, in-app delete confirmation, and once-daily source-price refresh.
  • Cash-flow simulator gained retirement-readiness metrics and a Roth conversion strategy, a Pre-59.5 Bridge Coverage chart driven by birthdate, a Years 0-vs-1 projection at a fixed 8%/yr, reorganized inputs with KEEP-derived defaults, and a just refresh-cashflow recipe.
  • Structure / Sleeves: a Cost-Basis Return period column (and a later column move + sleeve symbol-count fix), a Sleeves (Intent) Value | Change | Return toggle, and a Flow-view fix that attributes cash inflows as flow rather than market impact.
  • Performance: a Modified Dietz return % sensitivity scrubber and a Flow-Adjusted line with persisted line toggles.
  • Portfolio: redesigned top cards that surface change since the last snapshot.
  • Tooling / docs: just add-unsettled-cash for pending trade proceeds, demo refresh/publish recipes, and a new canonical RELEASING runbook.

Features

  • feat: Structure — move Cost-Basis Return column + fix sleeve symbol count
  • feat: cashflow — retirement readiness metrics + Roth conversion strategy
  • feat: Structure — Cost-Basis Return period column on sleeve table
  • feat: Portfolio — sleeve carousel with click-through to Structure tab
  • feat: just add-unsettled-cash — patch SPAXX** for pending trade proceeds
  • feat: cashflow — Pre-59.5 Bridge Coverage chart (birthdate-driven)
  • feat: Allocation Decisions — delete row with in-app confirm modal
  • feat: Allocation Decisions — backward-look pass, dedupe, signature dupe-check, capped attribution
  • feat: Account Labels + Decisions inbox previews & signature dupe-check
  • feat: Allocation Decisions — Trim to Cash + persistent dismiss
  • feat: Performance — Dietz return % sensitivity scrubber
  • feat: cashflow projection chart — Years 0 vs 1 at fixed 8%/yr
  • feat: Performance chart — Flow-Adjusted line + persisted line toggles
  • feat: just refresh-cashflow — promote cashflow defaults snippet to a recipe
  • feat: auto-refresh Allocation Decisions source prices once per day
  • feat: just screenshot + capture-demo-screens (AppleScript V3)
  • feat: just publish-demo-assets — sync demo metrics to keep-site
  • feat: just refresh-demo — sanitized demo follows the live product
  • feat: sortable Allocation Decisions ledger with persisted order
  • feat: Allocation Decisions — capital lineage and counterfactuals
  • feat: redesign Portfolio top cards — surface change since last snapshot
  • feat: Sleeves (Intent) chart toggle — Value | Change | Return
  • feat: cashflow simulator inputs reorganized + KEEP-derived defaults documented

Fixes

  • fix: Flow view — treat cash inflows as Cash Flow, not market impact
  • fix: refresh Leading Sleeve card after CSV import + align red
  • fix: compute % Daily from price change to exclude same-day transactions
  • fix: extend transaction window to 365 days and harden account ID parsing
  • fix: refresh snapshot deltas after CSV import

Other

  • docs: add canonical RELEASING runbook; correct README release section
  • chore: refresh cashflow defaults from latest KEEP snapshot
  • docs: local DB encryption plan draft
  • style: Performance chart adopts ledger zebra treatment
  • chore: extend Allocation Decisions proposal scan to 365 days
  • chore: refresh cashflow defaults from latest KEEP snapshot
  • chore: refresh cashflow defaults from latest KEEP snapshot
  • docs: add v0.10.32 release notes (canonical + enriched)
Files Changed
 .gitignore                                         |   10 +-
 Claude.md                                          |   63 +-
 README.md                                          |   97 +-
 apps/cashflow/README.md                            |   52 +
 apps/cashflow/defaults.js                          |   35 +-
 apps/cashflow/index.html                           |  676 +++++-
 apps/cashflow/refresh_defaults.py                  |  180 ++
 apps/desktop/package-lock.json                     |    4 +-
 apps/desktop/package.json                          |    2 +-
 apps/desktop/src-tauri/Cargo.toml                  |    5 +-
 apps/desktop/src-tauri/resources/demo.db           |  Bin 241664 -> 454656 bytes
 apps/desktop/src-tauri/resources/demo_metrics.json |   38 +
 apps/desktop/src-tauri/src/bin/keep-migrate.rs     |   48 +
 .../src-tauri/src/commands/account_aliases.rs      |  164 ++
 .../src-tauri/src/commands/allocation_decisions.rs | 1686 +++++++++++++++
 apps/desktop/src-tauri/src/commands/benchmark.rs   |   18 +-
 apps/desktop/src-tauri/src/commands/mod.rs         |    2 +
 apps/desktop/src-tauri/src/commands/sleeves.rs     |   73 +
 apps/desktop/src-tauri/src/db/migrations.rs        |  242 +++
 apps/desktop/src-tauri/src/lib.rs                  |   18 +-
 apps/desktop/src-tauri/tauri.conf.json             |    2 +-
 apps/desktop/src/App.jsx                           | 2191 ++++++++++++++++++--
 apps/desktop/src/SleeveSankey.jsx                  |   65 +-
 apps/desktop/src/utils/periodReturn.js             |   69 +
 core/src/csv_import/transaction_parser.rs          |   97 +-
 core/src/db/schema.rs                              |    2 +
 core/src/snapshot.rs                               |   26 +-
 docs/RELEASING.md                                  |  115 +
 docs/demo-version/demo-db-impl-plan.md             |    2 +
 docs/local-db-encryption-plan.md                   |  141 ++
 docs/unsettled-cash-adjustments.md                 |   82 +
 justfile                                           |  225 ++
 release-notes/20260426-v0.10.32.enriched.md        |   69 +
 release-notes/20260426-v0.10.32.md                 |   65 +
 scripts/capture_screen.applescript                 |   79 +
 scripts/generate_demo_db.py                        |  903 +++++---
 36 files changed, 7013 insertions(+), 533 deletions(-)
Artifacts
Platform Artifact Status
macOS KEEP-v0.11.0-macos-universal.zip shipped
Linux KEEP-v0.11.0-linux-amd64.AppImage shipped
Linux KEEP-v0.11.0-linux-amd64.deb shipped
Windows KEEP-v0.11.0-windows-x64.msi shipped
Raw Commits (source of truth)
  • 9f4df13 release: v0.11.0
  • 5eabaf7 docs: add canonical RELEASING runbook; correct README release section
  • 3565b21 chore: refresh cashflow defaults from latest KEEP snapshot
  • b351a11 fix: Flow view — treat cash inflows as Cash Flow, not market impact
  • dabb74f feat: Structure — move Cost-Basis Return column + fix sleeve symbol count
  • 1f4cdcb feat: cashflow — retirement readiness metrics + Roth conversion strategy
  • f040b8a feat: Structure — Cost-Basis Return period column on sleeve table
  • 0aabc45 feat: Portfolio — sleeve carousel with click-through to Structure tab
  • 4c9cee3 feat: just add-unsettled-cash — patch SPAXX** for pending trade proceeds
  • 08fd3cf feat: cashflow — Pre-59.5 Bridge Coverage chart (birthdate-driven)
  • ce501f3 feat: Allocation Decisions — delete row with in-app confirm modal
  • 1b2a28c feat: Allocation Decisions — backward-look pass, dedupe, signature dupe-check, capped attribution
  • f5b3df8 docs: local DB encryption plan draft
  • 337e613 feat: Account Labels + Decisions inbox previews & signature dupe-check
  • 786a8a5 feat: Allocation Decisions — Trim to Cash + persistent dismiss
  • fba7781 feat: Performance — Dietz return % sensitivity scrubber
  • c8e12da feat: cashflow projection chart — Years 0 vs 1 at fixed 8%/yr
  • 8cda555 feat: Performance chart — Flow-Adjusted line + persisted line toggles
  • 57a2364 feat: just refresh-cashflow — promote cashflow defaults snippet to a recipe
  • 91901b6 feat: auto-refresh Allocation Decisions source prices once per day
  • 42b81ce fix: refresh Leading Sleeve card after CSV import + align red
  • 9822628 feat: just screenshot + capture-demo-screens (AppleScript V3)
  • 9a4cd3d feat: just publish-demo-assets — sync demo metrics to keep-site
  • 7d5a65c feat: just refresh-demo — sanitized demo follows the live product
  • 091f903 feat: sortable Allocation Decisions ledger with persisted order
  • 648669e style: Performance chart adopts ledger zebra treatment
  • d34e333 chore: extend Allocation Decisions proposal scan to 365 days
  • 7607380 feat: Allocation Decisions — capital lineage and counterfactuals
  • cb46f86 feat: redesign Portfolio top cards — surface change since last snapshot
  • bb68aa2 chore: refresh cashflow defaults from latest KEEP snapshot
  • a24cbf1 feat: Sleeves (Intent) chart toggle — Value | Change | Return
  • 1900a21 chore: refresh cashflow defaults from latest KEEP snapshot
  • 03065ee fix: compute % Daily from price change to exclude same-day transactions
  • eec7ec6 feat: cashflow simulator inputs reorganized + KEEP-derived defaults documented
  • b5e26ff fix: extend transaction window to 365 days and harden account ID parsing
  • 4655e64 fix: refresh snapshot deltas after CSV import
  • f09001b docs: add v0.10.32 release notes (canonical + enriched)