Skip to content

Develop - #56

Merged
Renekakpo merged 4 commits into
mainfrom
develop
Aug 12, 2026
Merged

Develop#56
Renekakpo merged 4 commits into
mainfrom
develop

Conversation

@Renekakpo

Copy link
Copy Markdown
Contributor

No description provided.

rene and others added 4 commits August 11, 2026 23:46
… currencies

Why:
- At three decimals, typing the separator that is not the active preference,
  followed by exactly three digits, was claimed by the thousands branch and
  stripped: "1,234" stored 1234 dinars instead of 1.234, a silent factor of one
  thousand. The fraction-digit cap could not catch it because the separator was
  already gone. "0,500" stored 500 dinars for half a dinar, and a leading zero
  rules the grouping reading out entirely, so that case was not even ambiguous.
  The default separator is "dot" and is never locale-derived, so a comma-locale
  user in a three-decimal currency hits this on a nominal input path.

What:
- When a body carries a single grouping separator, no decimal separator, and
  exactly as many trailing digits as the currency's exponent, the decimal
  reading now wins: grouping is a writing convenience, the decimal separator
  carries value, and a user who means one thousand can always type "1000".
  Grouping stays authoritative when the string carries two separators or several
  groups, so formatter output still round-trips. Zero- and two-decimal
  currencies are byte-identical.
…ores-decimals

fix(input): read a lone separator group as the fraction for 3-decimal…
…resenter

Why:
- No UI could delete a transaction, so a wrong entry stayed in the ledger with no
  way out. The delete use case existed but was unreachable - and unsafe: it
  reversed the balance with a two-way sign branch that had no TRANSFER case, so
  deleting an outgoing transfer leg applied the wrong sign, off by twice the
  amount, and left an orphaned counter-entry that the per-wallet integrity audit
  cannot see. Separately, a row showed the note in place of the wallet, so two
  neighbouring rows presented different kinds of information with no marker.

What:
- The reversal derives from ledgerEffect, which moved to the domain layer where a
  ledger rule belongs. Transfers are refused in depth: the use case throws before
  opening a transaction, and the affordance is hidden on transfer rows. Deletion
  is reachable from the detail screen behind a single confirmation.
- A shared presenter owns the row content for both list renderers and the detail
  hero, so the category is always the title and the wallet always the subtitle,
  with a discreet indicator when a note exists. Sign and amount colour can no
  longer diverge between screens.
…and-row-presenter

feat(transactions): allow deleting a transaction, and unify the row p…
@Renekakpo
Renekakpo merged commit 8eb200a into main Aug 12, 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