From 8c6a804dfc1892673a6db34365df7f8fb4ff09e7 Mon Sep 17 00:00:00 2001 From: piekstra Date: Wed, 29 Jul 2026 18:49:15 -0400 Subject: [PATCH] =?UTF-8?q?Release=20v0.1.4=20=E2=80=94=20two=20safety=20r?= =?UTF-8?q?ails=20learned=20the=20hard=20way?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both rails in this release exist because the missing guard actually cost money on a live account, not because they seemed prudent: - `quote recenter|provision`: `--min-ask` now DEFAULTS to the position's break-even (#13). It was optional, so it only applied when remembered — and it got forgotten: a below-cost ask sat resting, filled, and locked in a loss. - `amm swap`: slippage bounds are checked against a fresh quote and refused above 5% (#14). `--max-usdc` was passed through unexamined, so a hand-rounded $56 on a ~$51 quote authorised ~9% slippage in silence. `--max-slippage-pct` derives the bound instead of asking anyone to guess. Both fire under --force, which is where they matter: no prompt is shown, so a loose value would otherwise pass unseen. Claude-Session: https://claude.ai/code/session_01J7bz8aijn2Uwv1yF5rUenW --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c1eb84f..78ddae5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1148,7 +1148,7 @@ checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" [[package]] name = "lofty-cli" -version = "0.1.3" +version = "0.1.4" dependencies = [ "assert_cmd", "clap", diff --git a/Cargo.toml b/Cargo.toml index 0d3971c..525ce60 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lofty-cli" -version = "0.1.3" +version = "0.1.4" edition = "2021" rust-version = "1.88" description = "Interact with the Lofty (lofty.ai) fractional real-estate marketplace API — market data, order books, and market-making analysis. Keychain-secured, agent-friendly."