fix: Android danger rule, reduced-motion celebrate, cleanups #144

Merged
nalum merged 3 commits from fix/android-defects into main 2026-08-18 16:43:22 +00:00
Owner

Closes #124, #125, #117. PR 6 of the #137 stack, based on #143. Three commits, one per concern.

#124 — honest up-for-grabs rows on Today

The preview rows rendered bare danger-coloured Overdue text — the project rule is danger = icon AND word — while the shared OverdueBadge sat unused beside them. The rows now wear the badge, the worth line gets its star back, and each row is its own tap target opening the Jobs board (the web's per-row links); the card-level click goes so a press has one meaning.

#125 — celebrate stays a state under reduced motion

Reduced motion suppressed the whole celebrate moment — no stamp, no tint, the card just vanished — where the web keeps both as instant states and zeroes only durations. JobStamp now reads its own reduced-motion answer: it snaps to the settled end frame and holds it for the animation's span before retiring. Call sites (Jobs, Today, Rewards claim) always stamp; only the confetti stays gated.

#117 — cleanups

The UncheckAll proto comment claimed "ADMIN/MEMBER only" while the matrix (the authority) grants CHILD — it now points at the PermissionMatrix instead of restating a role list (gen files regenerated). The dead isManager binding in Jobs.kt is gone.

Emulator-verified against the live deploy: the Up-for-grabs row shows the clock-and-word Overdue pill and the starred worth, tapping the row lands on the Jobs board, and with the system animator scale at zero a completed card holds the celebrate tint and settled mark stamp as a static state before retiring. Seeded data cleaned up.

🤖 Generated with Claude Code

Closes #124, #125, #117. PR 6 of the #137 stack, based on #143. Three commits, one per concern. **#124 — honest up-for-grabs rows on Today** The preview rows rendered bare danger-coloured Overdue text — the project rule is danger = icon AND word — while the shared `OverdueBadge` sat unused beside them. The rows now wear the badge, the worth line gets its star back, and each row is its own tap target opening the Jobs board (the web's per-row links); the card-level click goes so a press has one meaning. **#125 — celebrate stays a state under reduced motion** Reduced motion suppressed the whole celebrate moment — no stamp, no tint, the card just vanished — where the web keeps both as instant states and zeroes only durations. `JobStamp` now reads its own reduced-motion answer: it snaps to the settled end frame and holds it for the animation's span before retiring. Call sites (Jobs, Today, Rewards claim) always stamp; only the confetti stays gated. **#117 — cleanups** The `UncheckAll` proto comment claimed "ADMIN/MEMBER only" while the matrix (the authority) grants CHILD — it now points at the PermissionMatrix instead of restating a role list (gen files regenerated). The dead `isManager` binding in `Jobs.kt` is gone. Emulator-verified against the live deploy: the Up-for-grabs row shows the clock-and-word Overdue pill and the starred worth, tapping the row lands on the Jobs board, and with the system animator scale at zero a completed card holds the celebrate tint and settled mark stamp as a static state before retiring. Seeded data cleaned up. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The preview rows broke the danger rule — bare danger-coloured Overdue
text with neither icon nor frame — while the shared OverdueBadge sat
unused beside them (#124). The rows now wear the badge, the worth line
gets its star back, and each row is its own tap target opening the Jobs
board, like the web's per-row links; the card-level click goes, so a
row press has one meaning.
Reduced motion suppressed the whole celebrate moment — no stamp, no
tint, the card just vanished — where the web keeps stamp and tint as
instant states and zeroes only the durations (#125). The stamp overlay
now reads its own reduced-motion answer: it snaps to the settled end
frame and holds it for the animation's span before retiring, so the
moment still reads as a state, not motion (the same ruling the save
arc follows). Call sites always stamp; only the confetti stays gated.
chore: true UncheckAll comment, drop dead isManager binding
Some checks failed
check / commits (pull_request) Successful in 7s
check / web (pull_request) Successful in 1m29s
check / go (pull_request) Successful in 2m37s
check / report (pull_request) Successful in 4s
android / build (pull_request) Successful in 5m18s
android / report (pull_request) Successful in 4s
android / report (push) Has been cancelled
check / commits (push) Has been cancelled
check / go (push) Has been cancelled
check / report (push) Has been cancelled
check / web (push) Has been cancelled
tag / tag (push) Has been cancelled
android / build (push) Has been cancelled
f992b10032
Two cleanups from the parity report (#117). The UncheckAll proto
comment still claimed ADMIN/MEMBER only — the matrix (the authority)
grants CHILD too and the handler carries no role check, so the comment
now points at the matrix instead of restating a stale role list. And
Jobs.kt declared an isManager binding no affordance reads any more —
gone.

Test report

Suite Tests Result Skipped
Unit 1370 ✅ pass 1
Integration 86 ✅ pass —

Coverage: 28.0%

Updated by the check workflow · commit f992b10032

<!-- ci-test-report --> ## Test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit | 1370 | ✅ pass | 1 | | Integration | 86 | ✅ pass | — | **Coverage:** 28.0% <sub>Updated by the check workflow · commit f992b10032c6254855921ec90c695588907b1918</sub>

Android test report

Suite Tests Result Skipped
Unit (debug) 31 ✅ pass 0

Coverage: 2.4% of lines

Updated by the android workflow · commit f992b10032

<!-- android-test-report --> ## Android test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit (debug) | 31 | ✅ pass | 0 | **Coverage:** 2.4% of lines <sub>Updated by the android workflow · commit f992b10032c6254855921ec90c695588907b1918</sub>
nalum changed target branch from fix/cli-defects to main 2026-08-18 16:43:16 +00:00
nalum merged commit f992b10032 into main 2026-08-18 16:43:22 +00:00
nalum deleted branch fix/android-defects 2026-08-18 16:43:22 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
eagraiclainne/app!144
No description provided.