android: event delete, confetti parity, coverage in CI #102
No reviewers
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
eagraiclainne/app!102
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/android-parity-and-ci"
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?
Stacked on #101 (merge that first; Forgejo retargets this to main). The Android parity and CI items from the #100 plan, plus one offline-queue bug found on the way.
Delete an event / the series (closes #78).
CalendarRepository.deleteEventgoes through the offline queue (events.delete,OpKind.DELETE), mirroring the meal and reward deletes; the sketch drops the event's occurrence rows locally so an offline delete disappears from the board at once. The event sheet gains the web's affordance word for word — "Delete the series" for a repeating event, "Delete the whole event" for a plain one, danger-styled behind a two-step confirm with the web's "This removes every occurrence, past and future." warning — gated onEventService/Deletefrom the permission matrix, never a role guess. The sync chip names the queued op.events.update replay fix.
updateEventenqueues underevents.update, but the OpQueue registry never learned the name — an event edit made offline failed replay with "this change is from an older version of the app" and the change was lost as a recorded failure. Android sibling of the server-side mint gap fixed in PR #82. Registry and sync-chip label added.Confetti parity + a buzz (closes #83). The Compose confetti is rewritten curve for curve against
confetti.ts+app.css: 110 pieces in the eight mark colours, 30% round dots, a fast eased burst to a peak over the first 18% of each piece's life, a long accelerating fall past the bottom edge, and per-piece sway/tumble/phase so nothing falls in a straight line — replacing the old single-parabola burst that faded in place. Deterministic per-index hashing keeps the burst a stamp, as before. And the one thing the phone can do that the web cannot: a short confirm buzz (HapticFeedbackConstants.CONFIRM,LONG_PRESSbefore API 30) when the burst starts. Reduced motion still suppresses the whole celebration.JaCoCo in the Android report (closes #76).
enableUnitTestCoverageon the debug variant of both modules (release runs the same suites and would double-count), the coverage task rides the unit-test step, and the build job parses both modules' JaCoCo XML into acoverageoutput — skipping the committedie/eagraiclainne/api/**protobuf codegen, whose tens of thousands of generated lines would drown the number. The sticky<!-- android-test-report -->comment gains the same**Coverage:**line the Go report has. Report only, no gate.make checkand the Android unit tests are green on every commit. On-device verification of the delete flow and the new confetti is pending — no phone was attached during this run; the coverage parse was verified against real local JaCoCo reports (2.4% of lines today, honestly low).Test report
Coverage: 27.8%
Updated by the check workflow · commit
b9971c615fAndroid test report
Coverage: 2.4% of lines
Updated by the android workflow · commit
b9971c615f