• v2.2.1 d709727a95

    v2.2.1
    All checks were successful
    check / commits (pull_request) Successful in 20s
    check / go (pull_request) Successful in 2m54s
    check / report (pull_request) Successful in 4s
    android / build (pull_request) Successful in 7m59s
    android / report (pull_request) Successful in 5s
    check / web (pull_request) Successful in 4m30s
    check / commits (push) Successful in 32s
    check / go (push) Successful in 3m0s
    check / report (push) Has been skipped
    check / web (push) Successful in 6m54s
    android / build (push) Successful in 7m29s
    android / report (push) Has been skipped
    tag / tag (push) Successful in 5m8s
    release / docs (push) Successful in 1m19s
    release / binaries (push) Successful in 1m59s
    release / android (push) Successful in 4m59s
    release / image (push) Successful in 3m57s
    release / module (push) Successful in 28s
    release / manifests (push) Successful in 29s
    release / release (push) Successful in 15s
    Stable

    nalum released this 2026-09-12 21:00:46 +00:00 | 0 commits to main since this release

    Fixes

    • fix(android): confetti in its own window, over any open sheet (d709727a)
    • fix(item): keep list entries out of the notification stream (fc396db7)

    Other

    • chore(deploy): a one-tap Obtainium add link in the release notes (cbfcd1fd)

    Full changelog: https://git.eagraiclainne.ie/eagraiclainne/app/compare/v2.2.0...v2.2.1

    Android: add to Obtainium — or import the eagraiclainne-obtainium_v2.2.1.json asset below.

    Downloads
  • v2.2.0 5131135378

    v2.2.0
    All checks were successful
    check / commits (pull_request) Successful in 34s
    check / go (pull_request) Successful in 3m56s
    check / report (pull_request) Successful in 11s
    check / web (pull_request) Successful in 6m42s
    android / build (pull_request) Successful in 8m14s
    android / report (pull_request) Successful in 6s
    check / commits (push) Successful in 33s
    check / go (push) Successful in 3m41s
    check / report (push) Has been skipped
    check / web (push) Successful in 6m53s
    android / build (push) Successful in 7m58s
    android / report (push) Has been skipped
    tag / tag (push) Successful in 5m13s
    release / docs (push) Successful in 1m26s
    release / binaries (push) Successful in 2m9s
    release / android (push) Successful in 5m9s
    release / image (push) Successful in 6m47s
    release / manifests (push) Successful in 44s
    release / module (push) Successful in 45s
    release / release (push) Successful in 19s
    Stable

    nalum released this 2026-08-30 17:27:45 +00:00 | 3 commits to main since this release

    Features

    • feat(android): the happening-today timeline on the home board (51311353)
    • feat(android): the home rail — points and tonight in one row (da94a589)
    • feat(android): a quarter-hour beat beside the minute clock (cd7b4824)
    • feat(web): the happening-today timeline on the home page (4d614fae)
    • feat(web): the calendar opens a day from the address (01d8ec50)
    • feat(web): the home rail — points and tonight in one row (47ba83f0)
    • feat(web): a quarter-hour beat beside the minute heartbeat (66a9aa44)

    Fixes

    • fix(android): the agenda's colophon is the page's foot, not a row (dd5a81f0)
    • fix(android): tonight's dinner wears accent, not celebrate (9937d82d)

    Other

    • test(web): re-record the home page goldens for the rail and timeline (44632cd7)
    • docs(design): drop the home rail and timeline handoff bundle (e5105d39)

    Full changelog: https://git.eagraiclainne.ie/eagraiclainne/app/compare/v2.1.3...v2.2.0

    Downloads
  • v2.1.3 e86fc98e65

    v2.1.3
    All checks were successful
    check / commits (pull_request) Successful in 54s
    check / go (pull_request) Successful in 4m0s
    check / report (pull_request) Successful in 11s
    check / web (pull_request) Successful in 6m46s
    android / build (pull_request) Successful in 8m0s
    android / report (pull_request) Successful in 5s
    check / commits (push) Successful in 35s
    check / go (push) Successful in 3m22s
    check / report (push) Has been skipped
    check / web (push) Successful in 5m52s
    android / build (push) Successful in 8m35s
    android / report (push) Has been skipped
    tag / tag (push) Successful in 6m40s
    release / docs (push) Successful in 1m38s
    release / binaries (push) Successful in 2m6s
    release / android (push) Successful in 8m58s
    release / image (push) Successful in 7m46s
    release / module (push) Successful in 58s
    release / manifests (push) Successful in 59s
    release / release (push) Successful in 15s
    Stable

    nalum released this 2026-08-30 11:01:08 +00:00 | 14 commits to main since this release

    Fixes

    • fix(widget): the agenda scrolls across the days (e86fc98e)
    • fix(widget): the dial's footer starts after the disc (4992eeb9)

    Other

    • chore(deploy): the Obtainium card reads by eagraiclainne.ie (92220a37)

    Full changelog: https://git.eagraiclainne.ie/eagraiclainne/app/compare/v2.1.2...v2.1.3

    Downloads
  • v2.1.2 2bbf6b8487

    v2.1.2
    All checks were successful
    check / commits (pull_request) Successful in 19s
    check / go (pull_request) Successful in 2m54s
    check / report (pull_request) Successful in 8s
    check / web (pull_request) Successful in 4m24s
    android / build (pull_request) Successful in 7m10s
    android / report (pull_request) Successful in 4s
    check / commits (push) Successful in 30s
    check / go (push) Successful in 2m46s
    check / report (push) Has been skipped
    check / web (push) Successful in 4m21s
    android / build (push) Successful in 7m11s
    android / report (push) Has been skipped
    tag / tag (push) Successful in 5m30s
    release / docs (push) Successful in 1m9s
    release / binaries (push) Successful in 1m42s
    release / image (push) Successful in 3m12s
    release / module (push) Successful in 21s
    release / manifests (push) Successful in 23s
    release / android (push) Successful in 4m37s
    release / release (push) Successful in 13s
    Stable

    nalum released this 2026-08-29 17:44:23 +00:00 | 17 commits to main since this release

    Fixes

    • fix(widget): the seven widgets keep their names through R8 (c03cb857)

    Other

    • chore(deploy): the Obtainium import ships with every release (2bbf6b84)

    Full changelog: https://git.eagraiclainne.ie/eagraiclainne/app/compare/v2.1.1...v2.1.2

    Downloads
  • v2.1.1 6839a7ac36

    v2.1.1
    All checks were successful
    check / commits (pull_request) Successful in 39s
    check / go (pull_request) Successful in 2m58s
    check / report (pull_request) Successful in 5s
    check / web (pull_request) Successful in 4m36s
    android / build (pull_request) Successful in 7m19s
    android / report (pull_request) Successful in 3s
    check / commits (push) Successful in 28s
    check / go (push) Successful in 2m59s
    check / report (push) Has been skipped
    check / web (push) Successful in 4m30s
    android / build (push) Successful in 7m22s
    android / report (push) Has been skipped
    tag / tag (push) Successful in 5m27s
    release / docs (push) Successful in 1m3s
    release / binaries (push) Successful in 1m43s
    release / image (push) Successful in 3m4s
    release / module (push) Successful in 24s
    release / manifests (push) Successful in 24s
    release / android (push) Successful in 4m28s
    release / release (push) Successful in 13s
    Stable

    nalum released this 2026-08-29 13:27:37 +00:00 | 19 commits to main since this release

    Fixes

    • fix(widget): the tick paints before the network (6839a7ac)
    • fix(widget): the points card centres its number and rules its foot (2e51b748)
    • fix(widget): the footer rides the card's bottom edge (ee65347e)
    • fix(widget): the horizon stamps the weekday, today included (fa4f534c)
    • fix(widget): the ring fills its placement (8e7c02c2)

    Other

    • test(widget): re-record the goldens the stretch and the foot reshaped (ddef1846)

    Full changelog: https://git.eagraiclainne.ie/eagraiclainne/app/compare/v2.1.0...v2.1.1

    Downloads
  • v2.1.0 b1f16f681a

    v2.1.0
    All checks were successful
    check / commits (pull_request) Successful in 22s
    check / go (pull_request) Successful in 2m53s
    check / report (pull_request) Successful in 9s
    check / web (pull_request) Successful in 4m30s
    android / build (pull_request) Successful in 7m16s
    android / report (pull_request) Successful in 3s
    check / commits (push) Successful in 23s
    check / go (push) Successful in 2m55s
    check / report (push) Has been skipped
    check / web (push) Successful in 4m16s
    android / build (push) Successful in 7m10s
    android / report (push) Has been skipped
    tag / tag (push) Successful in 5m35s
    release / docs (push) Successful in 1m12s
    release / binaries (push) Successful in 1m58s
    release / image (push) Successful in 3m9s
    release / module (push) Successful in 20s
    release / manifests (push) Successful in 23s
    release / android (push) Successful in 4m35s
    release / release (push) Successful in 15s
    Stable

    nalum released this 2026-08-29 12:04:49 +00:00 | 25 commits to main since this release

    Features

    • feat(tokens): the clash neutral leaves the palette (cccf3d82)
    • feat(widget): generated picker previews in the member's live theme (f47c3adc)
    • feat(widget): picker previews (51960f6f)
    • feat(widget): the day dial (bc873f8a)
    • feat(tokens): the dial's three neutrals (14003572)
    • feat(widget): placement configuration (4ec0d858)
    • feat(widget): the calendar - month grid, agenda fallback and the sliver (5fea11bd)
    • feat(widget): the points widget (6ceb1d31)
    • feat(app): widget deep links, and the quick add widget (d76eee1c)
    • feat(widget): the tick (6a34c71f)
    • feat(widget): the jobs widget (73657d73)
    • feat(android): the watch stream moves into the push service (460cf255)
    • feat(widget): the today widget, the updater and the beat (049fae5d)
    • feat(widget): the row, the ladder and the snapshot layer (58793c18)

    Fixes

    • fix(android): declare the app dark-adapted to OEM forced dark (b1f16f68)
    • fix(widget): quick add draws the app's own icons (47aca085)
    • fix(widget): the dial footer counts only from four (717cb40d)
    • fix(widget): the newcomer lands on top of the crowd (9238734c)
    • fix(widget): three at once keeps both lanes in member colour (7b313ed0)
    • fix(calendar): the Add button reads the title it just blurred (b6d8d95b)
    • fix(calendar): the time list rides the sheet's own scroll (5afa8697)
    • fix(widget): the calendar declares its own two sizes (ce8e4c60)
    • fix(widget): lock every widget to its placed size (f67f8585)
    • fix(widget): match the demo's widget anatomy (63ad1c60)
    • fix(widget): what the first real launcher showed (2bd74448)

    Other

    • test(widget): re-record the quick add golden the icons reshaped (5fc55878)
    • docs(widget): the inner lane belongs to the latest start (d8b990ae)
    • docs(widget): three at once keeps both lanes in member colour (b3a4132e)
    • test(widget): re-record the goldens the demo anatomy reshaped (4fb9e71e)
    • test(widget): re-record the goldens the tick grew (27220461)
    • refactor(calendar): the occupancy assembly leaves the screen (9f0b6611)
    • build(android): add glance for the widget family (3cf4195e)

    Full changelog: https://git.eagraiclainne.ie/eagraiclainne/app/compare/v2.0.1...v2.1.0

    Downloads
  • v2.0.1 ab652e5186

    v2.0.1
    All checks were successful
    check / commits (pull_request) Successful in 27s
    check / go (pull_request) Successful in 3m45s
    check / report (pull_request) Successful in 5s
    check / web (pull_request) Successful in 6m9s
    android / build (pull_request) Successful in 11m2s
    android / report (pull_request) Successful in 3s
    check / commits (push) Successful in 46s
    check / go (push) Successful in 3m7s
    check / report (push) Has been skipped
    check / web (push) Successful in 4m30s
    android / build (push) Successful in 7m29s
    android / report (push) Has been skipped
    tag / tag (push) Successful in 5m34s
    release / docs (push) Successful in 1m8s
    release / binaries (push) Successful in 1m44s
    release / image (push) Successful in 3m1s
    release / module (push) Successful in 22s
    release / manifests (push) Successful in 24s
    release / android (push) Successful in 4m53s
    release / release (push) Successful in 13s
    Stable

    nalum released this 2026-08-28 08:40:14 +00:00 | 57 commits to main since this release

    Fixes

    • fix(jobs): the card's height is a floor and only the spacer shrinks (f0d6be22)

    Other

    • test(jobs): pin a late job with a filled panel and a long title (ab652e51)
    • test(jobs): re-record the card goldens the floor grew (734e401e)
    • docs(jobs): the card's height is a floor, not a ceiling (a28591b1)

    Full changelog: https://git.eagraiclainne.ie/eagraiclainne/app/compare/v2.0.0...v2.0.1

    Downloads
  • v2.0.0 f89385d057

    v2.0.0
    All checks were successful
    check / commits (pull_request) Successful in 2m4s
    check / go (pull_request) Successful in 5m53s
    check / commits (push) Successful in 1m25s
    check / go (push) Successful in 7m27s
    check / report (push) Has been skipped
    check / web (pull_request) Successful in 13m37s
    check / report (pull_request) Successful in 4s
    check / web (push) Successful in 17m8s
    tag / tag (push) Successful in 23m6s
    release / binaries (push) Successful in 17m15s
    release / docs (push) Successful in 24m17s
    release / android (push) Successful in 30m21s
    release / image (push) Successful in 22m37s
    release / module (push) Successful in 12m18s
    release / manifests (push) Successful in 13m55s
    release / release (push) Successful in 13s
    Stable

    nalum released this 2026-08-26 19:29:30 +00:00 | 61 commits to main since this release

    Breaking changes

    • feat(event)!: open the calendar, keep editing with its owners (75fdb5dc)

    Features

    • feat(calendar): the week has one day surface and blocks carry names (3a388fe3)
    • feat(tokens): the on-mark ink pairing per member colour (7e952d86)
    • feat(calendar): the toolbar regrouped by grammar, compose twin (ba4a5337)
    • feat(calendar): the toolbar regrouped by grammar, web (c10ab406)
    • feat(calendar): creating an event — screen one and More, compose twin (6ce52e22)
    • feat(calendar): creating an event — screen one and More, web (bc9f8c5b)
    • feat(calendar): the event card is the editor, compose twin (5fe847bf)
    • feat(calendar): the event card is the editor, web (c50ffb36)
    • feat(calendar): agenda and week views, compose twin (b735f418)
    • feat(calendar): agenda and week views, web (d5c32f82)
    • feat(proto): the calendar view pref learns week (cf4e8ffc)
    • feat(calendar): the day sheet — untimed first, the axis collapses, compose twin (00cace0c)
    • feat(calendar): the day sheet — untimed first, the axis collapses, web (047a29d8)
    • feat(calendar): month view — the hairline grid and the phone dots, compose twin (27ec9c1a)
    • feat(calendar): month view — the hairline grid and the phone dots, web (7e9aafe7)
    • feat(calendar): the row grammar at calendar scale, compose twin (288feb3b)
    • feat(calendar): the row grammar at calendar scale, web (10f88982)
    • feat(event): an event keeps at least one person (9eb74cdc)
    • feat(tokens): the panel and button radii become generated roles (670068bc)
    • feat(jobs): a queued write's card says Saved on this device (e682c1d1)
    • feat(jobs): the Worth row says who gets the points, and when (3d967bae)
    • feat(jobs): the restricted sheets for a child reader (§7) (ed148231)
    • feat(jobs): two-screen creation flow for a new job (d96f4369)
    • feat(jobs): finish the job card against the household's review (fefc38e4)
    • feat(jobs): the job options sheet and the repeat sheet (589eb49d)
    • feat(jobs): rebuild the job card, five states on one silhouette (cd6b7934)
    • feat(jobs): one surface for the job detail sheet (846dee74)
    • feat(ui): the field row both redesigns compose from (a62ed9f5)
    • feat(event): join or leave one occurrence (3935d3ba)
    • feat(tokens): widen the palette to twenty-one roles (87e14d06)
    • feat(queue): add grouped writes that flush as one change (5ab42d75)

    Fixes

    • fix(android): waiting names survive devices below API 33 (68f5b3c1)
    • fix(jobs): the new job's Repeats is a row that opens the sheet (62434885)
    • fix(jobs): creating a job offers only a job's four repeat shapes (115c5457)
    • fix(ui): the repeat interval field wears the sheet's ink (6da2067f)
    • fix(calendar): the week cursor follows the month cursor (3354ebd6)
    • fix(calendar): the clock gives way after the meta (1eb3cfdc)
    • fix(calendar): hour labels centre on their rules (24439b7d)
    • fix(calendar): the week axis rules the whole day (6dda1220)
    • fix(field-row): an untouched field lets Escape close the sheet (8a19fe0b)
    • fix(calendar): the agenda's add link seeds its own day (418698b4)
    • fix(calendar): the last day folds into the When picker (ef6205fe)
    • fix(calendar): the day steps are icons with the date in the tooltip (69d1fd32)
    • fix(calendar): the phone toolbar compacts to the demo's three rows (1481a213)
    • fix(calendar): the untimed band sits above the day heads (3f5b7c0f)
    • fix(calendar): the open anchors fire once the view is on show (91206416)
    • fix(calendar): the row's shrink order is part of the grammar (216fc506)
    • fix(calendar): week and agenda stand on their own ground (f77fdf76)
    • fix(fonts): the fullwidth plus is drawn into Eagrai Symbols (bcfb5c88)
    • fix(calendar): the today control returns to the calendar icon (48a9d883)
    • fix(calendar): a job on the calendar opens the job sheet (97f2a8ce)
    • fix(jobs): the asking dialogs are dialogs — two buttons, the rule's words (a90a502f)
    • fix(jobs): the pickers ask their question in the title (9a5ec2a5)
    • fix(android): the card mirrors the demo stylesheet and the stamp (0994b52f)
    • fix(ui): the offline strip states the time, the demo's way (78c3a6ef)
    • fix(jobs): the meta row names an empty worth — No points (49bcdfed)
    • fix(jobs): the mark stamps every completion; 🎉 stays with rewards (a68cb4c8)
    • fix(ui): the card wears the demo stylesheet's own values (73317761)
    • fix(jobs): the sheet wears the reward mark and its missing glyphs (f6c1ad6c)
    • fix(ui): the mark renders the same everywhere, and centred (707e243b)
    • fix(jobs): three SS8/SS5 details the audit flagged (f90dcfaa)
    • fix(jobs): sub-job removal uses the SS6.2 dialog, and delete names the earner (ff14b7f5)
    • fix(jobs): say the rule's own words in the pre-clear and the readback (c46a706b)
    • fix(i18n): retire "step" from the Android failure strings (2d1f1ae8)
    • fix(jobs): the board's reopen refusal names the successor too (92111fc2)
    • fix(jobs): a flush-time refusal lands back on the sheet (171e2964)
    • fix(jobs): fire the replaced-change notice only on a real conflict (414ce398)
    • fix(jobs): gate the job menu per-verb and its button on the entry count (087981e3)
    • fix(jobs): the options sheet replaces the detail sheet (SS6.5) (abd94af0)
    • fix(jobs): the board tick of a repeating job asks first (d98fb676)
    • fix(i18n): retire "step" and "Overdue" from user-facing copy (39ead4c2)
    • fix(jobs): honor the chain-end reopen refusal on both surfaces (5c5718f4)
    • fix(jobs): widen the title clamp and restore the waiting progress bar (63e0efc0)
    • fix(jobs): apply §4h's rulings to the job card (385107af)
    • fix(jobs): stop the due/worth line breaking mid-phrase (2b5fa8f9)
    • fix(theme): custom themes cover all twenty-one roles (918ded3c)
    • fix(deadline): a date-only job is late only after its day (133570be)
    • fix(item): refuse a deadline on a step through Update (bb59757c)
    • fix(item): deleting a job frees its unclaimed rewards (7ca62a0a)

    Other

    • docs: Bring in the widget handoff and make sure the other two are up to date (f89385d0)
    • test(ui): re-record the page goldens for the ruled axis and shrink fix (ff62a68e)
    • test(ui): re-record the calendar page goldens for the review fixes (a31f8ca0)
    • test(ui): re-record the calendar goldens for the polish round (b4e885fd)
    • test(ui): re-record the calendar page goldens for the toolbar (eb743cd3)
    • test(ui): re-record the calendar page goldens for the week toggle (7d3a1481)
    • test(ui): re-record the calendar page goldens for the month redesign (f3041148)
    • docs: park the new handoff bundles (android, shared foundations, tui) (2a21c571)
    • test(ui): re-record the goldens for the shape roles and the dialogs (4febfecc)
    • test(ui): re-record the jobs goldens for the demo stylesheet (99c4d3f3)
    • test(ui): re-record goldens for the mark, the reward chip and the panels (cfdf04eb)
    • refactor(ui): one dressing per visual, on both surfaces (7111c8e9)
    • test(jobs): pin the child's absent menu and the card-to-menu behaviour (adb2d131)
    • test(jobs): re-record goldens for the rule's-own-words copy (efaebfe3)
    • test(jobs): re-record goldens for the SS6.5 replace ruling (9f881898)
    • test(jobs): pin the make-it-part-of-another-job sheet (9d1b8009)
    • test(jobs): re-record goldens for the step/Overdue word retirement (03d08b50)
    • test(jobs): re-record the job-card goldens for the title/waiting fix (0a24ee6c)
    • docs: the waiting card keeps its progress block, and the name cap holds (6c8a9874)
    • test(jobs): re-record the job-card goldens for §4h (56245e72)
    • docs: §4h rules the three open questions and four more defects (2aaf99ff)
    • test(jobs): re-record the job card goldens for the review (96901cd2)
    • test(jobs): re-record job card goldens for the due/worth fix (3484b10e)
    • docs: the rail is the owner's colour, and §4g closes the reader gap (3115f790)
    • test(jobs): re-record existing job-card and live-page goldens (bb0acf34)
    • test(ui): freeze the caret so the field-row goldens stop flaking (c797007d)
    • docs(proto): occurrence_date is a local date, not a UTC key (b074c386)
    • docs: bring in the design handoff docs (5d5ef1af)
    • test(integration): the webhook spec waits for its own delivery (cba711af)
    • test(ui): pin the live pages to the top before capture (496efd25)
    • test(ui): widen the page comparator's antialias allowance to 24px (04675af1)

    Full changelog: https://git.eagraiclainne.ie/eagraiclainne/app/compare/v1.8.1...v2.0.0

    Downloads
  • v1.8.1 6eb0e9dc07

    v1.8.1
    All checks were successful
    check / commits (pull_request) Successful in 18s
    check / go (pull_request) Successful in 3m0s
    check / report (pull_request) Successful in 5s
    check / web (pull_request) Successful in 4m41s
    check / commits (push) Successful in 8s
    check / go (push) Successful in 6m42s
    check / report (push) Has been skipped
    check / web (push) Successful in 12m52s
    tag / tag (push) Successful in 9m48s
    release / binaries (push) Successful in 9m26s
    release / docs (push) Successful in 11m20s
    release / android (push) Successful in 13m41s
    release / image (push) Successful in 7m25s
    release / manifests (push) Successful in 5m50s
    release / module (push) Successful in 6m17s
    release / release (push) Successful in 13s
    Stable

    nalum released this 2026-08-22 13:16:14 +00:00 | 172 commits to main since this release

    Fixes

    • fix(android): burst the confetti from the tapped card (f035478)
    • fix(push): dial Web Push endpoints through the SSRF guard (53ca310)
    • fix(user): admin password reset lifts the login lockout (1783051)
    • fix(test): pin the settings page golden's session date (3a68993)

    Other

    • docs: ADR-0035 stored-data evolution rules (6eb0e9d)

    Full changelog: https://git.eagraiclainne.ie/eagraiclainne/app/compare/v1.8.0...v1.8.1

    Downloads
  • v1.8.0 d46753a338

    v1.8.0
    All checks were successful
    check / commits (pull_request) Successful in 7s
    check / go (pull_request) Successful in 4m19s
    check / web (pull_request) Successful in 10m32s
    check / report (pull_request) Successful in 4s
    check / commits (push) Successful in 10s
    check / go (push) Successful in 4m45s
    check / report (push) Has been skipped
    check / web (push) Successful in 7m52s
    tag / tag (push) Successful in 5m50s
    release / binaries (push) Successful in 6m55s
    release / docs (push) Successful in 6m42s
    release / android (push) Successful in 8m16s
    release / image (push) Successful in 8m47s
    release / manifests (push) Successful in 28s
    release / module (push) Successful in 42s
    release / release (push) Successful in 12s
    Stable

    nalum released this 2026-08-19 21:28:11 +00:00 | 177 commits to main since this release

    Features

    • feat(tools): pages section in the ui-gallery (4bc63f6)
    • feat(seed): deterministic e2e dataset anchored to a fixed date (18b2aa8)
    • feat(tools): cmd/uigallery side-by-side screenshot gallery (29d5331)
    • feat(tokens): add design/tokens.yaml and cmd/tokengen generator (d6caa27)

    Fixes

    • fix(web): pin the page shots' last two host variables (6dc3ca0)
    • fix(web): bundle the prose-symbol glyphs the goldens leaned on (e5190fb)
    • fix(web): reduced motion holds the celebration instead of flashing it (94361f6)
    • fix(android): freeze the device clock to the e2e anchor (71f6d62)
    • fix(android): full-length page shots at both widths (046f26b)
    • fix(web): up-for-grabs row uses worthLabel like every bounty row (24f362e)
    • fix(android): render the deadline date in the locale's own order (5d8fcf7)

    Other

    • docs(readme): add CI, release and license badges (d46753a)
    • docs(readme): add a Liberapay patrons badge (67797d6)
    • test(web): re-record the goldens with bundled symbols, no GPU (6d0a288)
    • ci(web): gate the live page goldens (a93b47b)
    • test(android): maestro page flows against the e2e server (fd3b77b)
    • test(web): record the live page goldens (dd87254)
    • test(web): live whole-page suite against the hermetic server (3c52a59)
    • test(web): re-record the reward goldens for the claim card (c1a3a88)
    • refactor(web): reward parity pins the claim card, not the list row (019696a)
    • ci(ui): gate screenshot goldens and publish the gallery artifact (49d8328)
    • test(android): record screenshot goldens (d7658a9)
    • build(android): add the Roborazzi screenshot pipeline (8eaed3c)
    • test(web): playwright screenshot gallery with per-theme goldens (a14d45d)
    • test(android): assert render parity against the shared fixtures (a99d120)
    • test(conformance): add render-parity fixtures for job, reward and mark (05ec2b9)
    • build(android): wire Robolectric and Compose ui-test into unit tests (f604c21)
    • refactor(android): extract RewardCard from RewardsScreen (3ba6aba)
    • refactor(web): extract RewardCard and shared reward label helpers (059d401)
    • test(web): add react-testing-library render infra (8d79e3a)
    • ci(tokens): gate token and fixture drift in make check and workflows (ded5dcf)
    • test(android): pin the label and ledger fixtures to the web (fdafe80)
    • refactor(android): extract the label helpers into pure functions (695cb77)
    • test(web): pin the shared label fixtures with vitest (e5d75be)
    • refactor(android): source mark colours and theme groups from tokengen output (bc455a1)
    • refactor(cli): source TUI palette data from tokengen output (aa16364)
    • refactor(web): source theme and mark data from tokengen output (530f596)

    Full changelog: https://git.eagraiclainne.ie/eagraiclainne/app/compare/v1.7.0...v1.8.0

    Downloads