Negative points balances render inconsistently across ledgers #122
Labels
No labels
adr
android
area/calendar
area/design-system
area/i18n
area/jobs
area/offline
area/server
area/testing
bug
ci
duplicate
enhancement
help wanted
invalid
notifications
question
reliability
security
severity/low
severity/medium
tracking
web
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
eagraiclainne/app#122
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
From the surface parity report (2026-08-18), defect 13.
Web has 3 balance ledgers:
PointsChipand Rewards clamp at 0,Today.tsx:419does not. Android mirrors this: only the header chip (TopBar.kt:182) clamps. A member whose spends exceed claims sees "-5 points" on one board and "0" in the header, on both platforms.Fix: one shared balance function per surface, one clamping decision. See also the consolidation issues for shared points formatters.
Delivered across PR #145 (web) and PR #146 (Android), both merged. Ruling recorded: a display balance is what you can spend, so every ledger clamps at 0 — web through points.ts balanceOf, Android through RewardsRepository.balanceOf, with the zero-balance strip hidden. The TUI's bounty math was fixed in PR #147's shared rows.