Skip to content

fix(mind): confirm sheet and payment agree; prepare 0.9.0 - #122

Merged
bitwalt merged 1 commit into
mainfrom
feat/agent-safety-0.9
Oct 10, 2026
Merged

bitwalt merged 1 commit into
mainfrom
feat/agent-safety-0.9

Conversation

@bitwalt

@bitwalt bitwalt commented Oct 10, 2026

Copy link
Copy Markdown
Member

Summary

Before 0.9, the assistant's money-moving path had gaps where the confirm sheet could show one thing and the payment do another. This closes them, makes a few assistant details clearer, and bumps the version to 0.9.0 with the changelog.

What changes for the user

  • A payment from chat or voice goes to exactly the destination the sheet showed, even if the contact's address changed in between.
  • An invoice's own amount is the one shown and paid; a different amount from the assistant is refused. A Lightning address that returns an invoice for another amount than approved is refused.
  • Flashnet swaps show "At least" (the floor) and are bound to it: 1% below the quote instead of a hidden 5%.
  • The Agent wallet confirm sheet shows what the daily and monthly limits leave.
  • Assistant errors say what to do next and no longer show raw technical text.
  • The get_swap_quote stub tool is removed (it only pointed at the Swap screen).

How it works

  • previewSendPayment pins what the sheet resolved for 5 minutes; send_payment uses it instead of resolving again.
  • reconcileInvoiceAmount is used by the sheet and the handler, so both agree on the amount.
  • FLASHNET_MIN_RECEIVE_FRACTION ties the swap floor to the price tolerance already used for re-approval.
  • services/aiErrors.ts maps known failures and hides technical ones.

Release prep

package.json and app.json go to 0.9.0. The CHANGELOG moves Unreleased under 0.9.0 and adds the merged work that was missing from it (RGB on this phone, Prismo, Agent wallet) and these fixes. Tagging v0.9.0 is left for after merge.

Testing

Full jest suite (215 suites, 1675 tests) and tsc --noEmit pass. New tests cover contact-address change between sheet and payment, amount mismatch, LNURL invoice mismatch, the Flashnet floor row, budget row and error messages. Not tried on a device.

- Pay exactly the destination the sheet showed; an invoice's own amount wins
  and a different amount from the model is refused
- Refuse a Lightning-address invoice for a different amount than approved
- Flashnet swaps: floor at the shown 1% tolerance, shown as "At least"
- Agent wallet confirm shows the budget the limits leave
- Readable assistant errors instead of raw messages
- Drop the get_swap_quote stub tool
- Version 0.9.0 and changelog
@bitwalt
bitwalt merged commit 5be0c39 into main Oct 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant