Skip to content
Ritesh FirodiyaGet in touch

Work / Aakalan / Wiki / Concepts

settling-is-immediate

Conceptcanonicalverified 2026-09-23

CONCEPT.SETTLING-IS-IMMEDIATE

Summary

A settlement clears the balance the moment it is recorded, in both directions, and the other person is TOLD rather than asked.

Why it matters

This reverses the product's original rule 7 — "neither side can clear a debt on their own" — and the reason is that the rule was unsatisfiable for most of a ledger. A payer's claim could only be confirmed by the receiver; most people in a ledger are added from the address book and have no account to confirm from; confirmSettlement refuses the creator by design; and there is no withdraw or reject anywhere. So "I paid them" recorded a claim that moved no balance and could never clear, and retrying hit the already-claimed guard. It was reported as "Settle is not working".

Implications

  • settle/[id] finishes in place. The old /settle/done route is gone: a 358-line screen reached by router.replace after every settlement, whose only unique message was "it worked".
  • Telling them is the settled screen's PRIMARY action, because nothing asked their permission and for somebody not on Aakalan that message is the only way they will ever know. See we-never-message-anyone.
  • An unconfirmed claim must never reserve part of a debt. What the settle screen offers to settle is exactly what settling clears.
  • Legacy claims stay answerable — person-claim is the only screen in the product where that answer can be given.

Related

Sources

  • src/app/settle/[id].tsx
  • src/lib/messages.ts

Every project of mine is written down like this.

Read the résumé