Work / Aakalan / Wiki / Concepts
settling-is-immediate
Conceptcanonicalverified 2026-09-23
CONCEPT.SETTLING-IS-IMMEDIATESummary
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/doneroute is gone: a 358-line screen reached byrouter.replaceafter 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
- settle-receive — the direction that is only a record
- person-claim — the legacy claim, and the two buttons that answer it
- we-never-message-anyone
Sources
- src/app/settle/[id].tsx
- src/lib/messages.ts
Every project of mine is written down like this.
Read the résumé