From 4a442f47590492a549cbb309014a563e48b44b5e Mon Sep 17 00:00:00 2001 From: Kjetil Date: Fri, 27 Mar 2026 16:18:40 +0100 Subject: [PATCH 1/2] fix(calendar): restore week navigation for saved week view Keep the Angular Calendar navigation mode in sync with the restored Runbox calendar view so Previous and Next advance by week when the user reopens calendar in week mode. #1541 Closes #1541 --- .../calendar-app.component.spec.ts | 22 + .../calendar-app/calendar-app.component.ts | 39 +- src/app/changelog/changes.ts | 559 +++++++++++++++++- 3 files changed, 598 insertions(+), 22 deletions(-) diff --git a/src/app/calendar-app/calendar-app.component.spec.ts b/src/app/calendar-app/calendar-app.component.spec.ts index e2b29af55..f8adc7b8a 100644 --- a/src/app/calendar-app/calendar-app.component.spec.ts +++ b/src/app/calendar-app/calendar-app.component.spec.ts @@ -36,6 +36,7 @@ import { of, Observable, ReplaySubject } from 'rxjs'; import { MatLegacySnackBar as MatSnackBar } from '@angular/material/legacy-snack-bar'; import { RunboxCalendar } from './runbox-calendar'; import { RunboxCalendarEvent } from './runbox-calendar-event'; +import { RunboxCalendarView } from './runbox-calendar-view'; import { MatIcon } from '@angular/material/icon'; import { MatIconTestingModule } from '@angular/material/icon/testing'; import moment from 'moment'; @@ -281,6 +282,27 @@ END:VCALENDAR expect(component.shown_events.length).toBe(shownEventsCount, 'same number of events shown after cycling through months'); }); + it('should advance by week when restoring the week calendar view from preferences (GH-1541)', () => { + const preferences = TestBed.inject(PreferencesService) as any; + const startDate = new Date('2024-02-26T12:00:00Z'); + + component.viewDate = new Date(startDate); + preferences.preferences.next(new Map([[ + 'global:calendarSettings', + { lastUsedView: RunboxCalendarView.Week } + ]])); + fixture.detectChanges(); + + expect(component.view).toBe(RunboxCalendarView.Week); + expect(component.mwlView).toBe(component.CalendarView.Week); + + fixture.debugElement.nativeElement.querySelector('button#nextPeriodButton').click(); + fixture.detectChanges(); + + const daysAdvanced = Math.round((component.viewDate.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1000)); + expect(daysAdvanced).toBe(7); + }); + it('should not display yearly events as longer than they are (GH-179)', () => { mockData['events'] = GH_179_recurring_yearly; component.calendarservice.syncCaldav(true); diff --git a/src/app/calendar-app/calendar-app.component.ts b/src/app/calendar-app/calendar-app.component.ts index 0f1195171..1dc16fa95 100644 --- a/src/app/calendar-app/calendar-app.component.ts +++ b/src/app/calendar-app/calendar-app.component.ts @@ -330,28 +330,29 @@ export class CalendarAppComponent implements OnDestroy { setView(view: RunboxCalendarView): void { this.view = view; + + switch (this.view) { + case RunboxCalendarView.Overview: { + this.mwlView = null; + break; + } + case RunboxCalendarView.Month: { + this.mwlView = CalendarView.Month; + break; + } + case RunboxCalendarView.Week: { + this.mwlView = CalendarView.Week; + break; + } + case RunboxCalendarView.Day: { + this.mwlView = CalendarView.Day; + break; + } + } + if (this.settings.lastUsedView !== view) { this.settings.lastUsedView = this.view; this.preferenceService.set(this.prefGroup, 'calendarSettings', this.settings); - - switch (this.view) { - case RunboxCalendarView.Overview: { - this.mwlView = null; - break; - } - case RunboxCalendarView.Month: { - this.mwlView = CalendarView.Month; - break; - } - case RunboxCalendarView.Week: { - this.mwlView = CalendarView.Week; - break; - } - case RunboxCalendarView.Day: { - this.mwlView = CalendarView.Day; - break; - } - } } } diff --git a/src/app/changelog/changes.ts b/src/app/changelog/changes.ts index 125deeb28..fca4d82da 100644 --- a/src/app/changelog/changes.ts +++ b/src/app/changelog/changes.ts @@ -71,11 +71,564 @@ export class ChangelogEntry { // BEGIN:AUTOGENERATED const changes = [ [ - "2b05c475", - "1747382829", + "e42d70ad", + "1772635017", + "fix", + "tests", + "Format date according to local TZ in tests" + ], + [ + "3e26a8f9", + "1772634692", + "test", + "draftdesk", + "check for double line break in draftdesk unit tests" + ], + [ + "13471db2", + "1772634692", + "fix", + "compose", + "add double line break at top of replies" + ], + [ + "ae85bb70", + "1771944794", + "refactor", + "cleanup", + "remove extra newline" + ], + [ + "7a82a35a", + "1770942956", + "fix", + "stability", + "revert removal of fonts" + ], + [ + "16279fab", + "1770875924", + "fix", + "stability", + "address castaway review comments for PR #1765" + ], + [ + "5efd36f2", + "1770215427", + "refactor", + "rxjs", + "remove unused take import in test" + ], + [ + "08d1476b", + "1770214776", + "refactor", + "cleanup", + "remove unused imports" + ], + [ + "aeed9e93", + "1770214767", + "refactor", + "rxjs", + "remove redundant pipe take 1s on firstValueFrom" + ], + [ + "995f055a", + "1770214759", + "refactor", + "cleanup", + "remove code that turned out to be unnecessary" + ], + [ + "1b5feaae", + "1770214753", + "fix", + "build", + "gen-env" + ], + [ + "a9730ff0", + "1770214747", + "build", + "deps", + "update package lock json" + ], + [ + "47e1c3bd", + "1770214747", + "style", + "cleanup", + "remove obsolete CSS styles" + ], + [ + "796fecff", + "1770214746", + "refactor", + "cleanup", + "remove unused code and constants" + ], + [ + "3ea607c5", + "1770214746", + "fix", + "stability", + "gate service worker registration" + ], + [ + "6718dd69", + "1770214714", + "ci", + "tooling", + "update ESLint configuration" + ], + [ + "a38da338", + "1770214713", + "feat", + "migration", + "migrate to RxJS 7" + ], + [ + "99b6b322", + "1770214713", + "refactor", + "2fa", + "Change 2FA unlock code description" + ], + [ + "15d5b4f1", + "1769272608", + "style", + "account-upgrades", + "amend text regarding sub-accounts" + ], + [ + "9f4c2fb3", + "1769009210", + "refactor", + "2fa", + "Change 2FA unlock code description" + ], + [ + "f2d51985", + "1768489312", + "fix", + "cart", + "Fix add/remove cart item" + ], + [ + "3bc39da0", + "1768480595", + "feat", + "upgrades", + "Show recommended plans with addons if needed to downgrade" + ], + [ + "eaf16ee2", + "1768388642", + "refactor", + "upgrades", + "Ensure currency calculations are correct" + ], + [ + "1b76a7d4", + "1767483281", + "fix", + "mailviewer", + "intercept `mailto:` links and open a compose window" + ], + [ + "b52c415a", + "1765455095", + "fix", + "notifications", + "Check Notifcation API exists when showing button" + ], + [ + "ad665a71", + "1764772951", + "fix", + "plans", + "Enable downgrade to Micro including Email Hosting" + ], + [ + "840522fb", + "1764245620", + "style", + "payment", + "Change \"pending\" to \"incomplete\"." + ], + [ + "9ada126e", + "1764175688", + "fix", + "stripe", + "Fail early if stripe submission errors" + ], + [ + "757de0ed", + "1762962071", + "fix", + "stripe", + "Improve on-page status updates for Stripe payments" + ], + [ + "35cb13aa", + "1761061904", + "fix", + "notification", + "notification permission on click" + ], + [ + "524e9134", + "1760020202", + "style", + "payment", + "Correct image source URLs." + ], + [ + "42c6b9d2", + "1759989960", + "style", + "payment", + "Move shopping cart style back to main stylesheet for it to work." + ], + [ + "2154f5a8", + "1759989960", + "style", + "payment", + "Include missing SCSS file." + ], + [ + "07f415a6", + "1759989960", + "style", + "payment", + "Add Apple Pay logo and imrpove formatting." + ], + [ + "09968dc8", + "1759916636", + "feat", + "dkim", + "Display all users domains" + ], + [ + "a6316817", + "1759692383", + "style", + "payment", + "Minor textual correction." + ], + [ + "89bf44f6", + "1759692157", + "style", + "payment", + "Add cryptocurrency logos." + ], + [ + "2cc33c58", + "1759689457", + "style", + "payment", + "Bundle Stripe and PayPal, and improve layout." + ], + [ + "89de7403", + "1759202407", + "style", + "payment", + "Add note about number of email aliases on sub-accounts." + ], + [ + "a04b4700", + "1759144876", + "fix", + "mailviewer", + "Show images with ngsw bypass" + ], + [ + "0eb7556f", + "1757937300", + "fix", + "2fa", + "Show QR codes for 2FA generation" + ], + [ + "440fbdfc", + "1756825896", + "fix", + "sentry", + "Downgrade client to make it work with sentry server" + ], + [ + "10e135be", + "1756794090", + "style", + "payment", + "Fix typo." + ], + [ + "7ebeca44", + "1756335277", + "style", + "settings", + "Moved and updated link to documentation." + ], + [ + "a1faab26", + "1756305250", + "fix", + "paymentcards", + "Make add card dialog fit on screen" + ], + [ + "50b8e5db", + "1755783796", "feat", "worker", - "Add sentry to xapian worker scope" + "Improve Sentry integration" + ], + [ + "db8ccdef", + "1754909871", + "fix", + "stripe", + "Allow dialog to scroll (make Submit reachable)" + ], + [ + "4bdcff06", + "1751829714", + "style", + "dkim", + "Add note about format." + ], + [ + "7d6ddd10", + "1751477343", + "fix", + "cart", + "Renewing a subscription now sets a quantity of 1" + ], + [ + "1eebaa8a", + "1751367740", + "fix", + "commit-lint", + "allow hyphen in commit subject" + ], + [ + "67c0a118", + "1751367409", + "fix", + "login", + "make login inputs required" + ], + [ + "29eb8869", + "1751367360", + "fix", + "side-menu", + "make buttons keyboard navigable" + ], + [ + "8d22da9f", + "1751363648", + "fix", + "upgrades", + "Highlight correct \"current sub\" in plans table" + ], + [ + "d40892f9", + "1751296588", + "build", + "lint", + "Remove typos from commit-lint tags" + ], + [ + "e7be3886", + "1751296588", + "fix", + "upgrades", + "Indicate which plans would put the user over quota" + ], + [ + "ea501342", + "1751291013", + "fix", + "subscriptions", + "Only warn about close-quota for Disk/File quotas" + ], + [ + "1a198352", + "1751277492", + "fix", + "upgrades", + "Prevent two subscriptions being bought at once" + ], + [ + "9e4d014c", + "1750951971", + "fix", + "mailviewer", + "Text/HTML views blank when attachment has odd types" + ], + [ + "290ebe7e", + "1750694678", + "fix", + "upgrades", + "Remove ability to buy plans when over usage" + ], + [ + "8b4ad27a", + "1750691421", + "fix", + "upgrades", + "Checks quota usage for plan upgrades table" + ], + [ + "77657d08", + "1750691117", + "build", + "lint", + "Fix allowed commit-message tags" + ], + [ + "19ee3d5f", + "1750410342", + "style", + "upgrades", + "Improve formatting of recommended plans and other fixes." + ], + [ + "e53115a7", + "1750354119", + "fix", + "upgrades", + "Compare user's quotas when displaying plans" + ], + [ + "6d14aa2b", + "1750088797", + "fix", + "renewals", + "Removes confusing Yes/No for renewal checkboxes" + ], + [ + "b2d769b7", + "1750084083", + "fix", + "mailviewer", + "Fixes attachment display with HTML (again)" + ], + [ + "4a4e08e2", + "1749740369", + "fix", + "mailviewer", + "Only show attachments that are not inline in HTML" + ], + [ + "1beabc35", + "1749571399", + "fix", + "folderlist", + "place dir expander button above the anchor overlay" + ], + [ + "1e5cee80", + "1749544633", + "fix", + "github", + "make checkout of fork work in commit lint workflow" + ], + [ + "8d0d3cde", + "1749227244", + "style", + "mail", + "Make Allow and Block Sender descriptions consistent." + ], + [ + "652e3748", + "1749031846", + "build", + "ci", + "Remove redundant cache action" + ], + [ + "9a0189bb", + "1749031810", + "build", + "ci", + "prevent improper commit formatting from being merged into master" + ], + [ + "6cfc7dd4", + "1748872985", + "fix", + "details", + "show alternative email resend on email change" + ], + [ + "0036ce78", + "1748517484", + "fix", + "payments", + "Handle post stripe 3d secure correctly" + ], + [ + "ea2c77ca", + "1747908332", + "fix", + "build", + "Remove unused dependencies (revert)" + ], + [ + "2ef0626f", + "1747734901", + "build", + "deps", + "Remove unused dependencies" + ], + [ + "183d42ad", + "1747729699", + "build", + "deps", + "Remove unused dependencies" + ], + [ + "90d46835", + "1747328794", + "fix", + "payments", + "Renew or create products after Stripe payment" + ], + [ + "9b2580c3", + "1747302470", + "fix", + "folderlist", + "Make folder buttons keyboard navigable" + ], + [ + "51cb8dfe", + "1747297115", + "feat", + "login", + "Add autcomplete attrs in accordance with WCAG guidelines" + ], + [ + "403f7367", + "1747296965", + "fix", + "login", + "Fix user not sent with login req even when field is filled" ], [ "111120bd", From 3c32a06d537bb98390b4ec4421756dcaec818ba3 Mon Sep 17 00:00:00 2001 From: Kjetil Date: Thu, 2 Apr 2026 13:57:56 +0200 Subject: [PATCH 2/2] fix(calendar): restore saved view without changing setView --- .../calendar-app/calendar-app.component.ts | 13 +- src/app/changelog/changes.ts | 559 +----------------- 2 files changed, 12 insertions(+), 560 deletions(-) diff --git a/src/app/calendar-app/calendar-app.component.ts b/src/app/calendar-app/calendar-app.component.ts index 1dc16fa95..188cff8f6 100644 --- a/src/app/calendar-app/calendar-app.component.ts +++ b/src/app/calendar-app/calendar-app.component.ts @@ -118,7 +118,8 @@ export class CalendarAppComponent implements OnDestroy { const storedSettings = prefs.get(`${this.prefGroup}:calendarSettings`); if (storedSettings) { this.settings = new CalendarSettings(storedSettings); - this.setView(this.settings.lastUsedView); + this.view = this.settings.lastUsedView; + this.syncMwlView(); } }); this.calendarservice.errorLog.subscribe(e => this.showError(e)); @@ -328,9 +329,7 @@ export class CalendarAppComponent implements OnDestroy { }); } - setView(view: RunboxCalendarView): void { - this.view = view; - + private syncMwlView(): void { switch (this.view) { case RunboxCalendarView.Overview: { this.mwlView = null; @@ -349,10 +348,16 @@ export class CalendarAppComponent implements OnDestroy { break; } } + } + + setView(view: RunboxCalendarView): void { + this.view = view; if (this.settings.lastUsedView !== view) { this.settings.lastUsedView = this.view; this.preferenceService.set(this.prefGroup, 'calendarSettings', this.settings); + + this.syncMwlView(); } } diff --git a/src/app/changelog/changes.ts b/src/app/changelog/changes.ts index fca4d82da..125deeb28 100644 --- a/src/app/changelog/changes.ts +++ b/src/app/changelog/changes.ts @@ -71,564 +71,11 @@ export class ChangelogEntry { // BEGIN:AUTOGENERATED const changes = [ [ - "e42d70ad", - "1772635017", - "fix", - "tests", - "Format date according to local TZ in tests" - ], - [ - "3e26a8f9", - "1772634692", - "test", - "draftdesk", - "check for double line break in draftdesk unit tests" - ], - [ - "13471db2", - "1772634692", - "fix", - "compose", - "add double line break at top of replies" - ], - [ - "ae85bb70", - "1771944794", - "refactor", - "cleanup", - "remove extra newline" - ], - [ - "7a82a35a", - "1770942956", - "fix", - "stability", - "revert removal of fonts" - ], - [ - "16279fab", - "1770875924", - "fix", - "stability", - "address castaway review comments for PR #1765" - ], - [ - "5efd36f2", - "1770215427", - "refactor", - "rxjs", - "remove unused take import in test" - ], - [ - "08d1476b", - "1770214776", - "refactor", - "cleanup", - "remove unused imports" - ], - [ - "aeed9e93", - "1770214767", - "refactor", - "rxjs", - "remove redundant pipe take 1s on firstValueFrom" - ], - [ - "995f055a", - "1770214759", - "refactor", - "cleanup", - "remove code that turned out to be unnecessary" - ], - [ - "1b5feaae", - "1770214753", - "fix", - "build", - "gen-env" - ], - [ - "a9730ff0", - "1770214747", - "build", - "deps", - "update package lock json" - ], - [ - "47e1c3bd", - "1770214747", - "style", - "cleanup", - "remove obsolete CSS styles" - ], - [ - "796fecff", - "1770214746", - "refactor", - "cleanup", - "remove unused code and constants" - ], - [ - "3ea607c5", - "1770214746", - "fix", - "stability", - "gate service worker registration" - ], - [ - "6718dd69", - "1770214714", - "ci", - "tooling", - "update ESLint configuration" - ], - [ - "a38da338", - "1770214713", - "feat", - "migration", - "migrate to RxJS 7" - ], - [ - "99b6b322", - "1770214713", - "refactor", - "2fa", - "Change 2FA unlock code description" - ], - [ - "15d5b4f1", - "1769272608", - "style", - "account-upgrades", - "amend text regarding sub-accounts" - ], - [ - "9f4c2fb3", - "1769009210", - "refactor", - "2fa", - "Change 2FA unlock code description" - ], - [ - "f2d51985", - "1768489312", - "fix", - "cart", - "Fix add/remove cart item" - ], - [ - "3bc39da0", - "1768480595", - "feat", - "upgrades", - "Show recommended plans with addons if needed to downgrade" - ], - [ - "eaf16ee2", - "1768388642", - "refactor", - "upgrades", - "Ensure currency calculations are correct" - ], - [ - "1b76a7d4", - "1767483281", - "fix", - "mailviewer", - "intercept `mailto:` links and open a compose window" - ], - [ - "b52c415a", - "1765455095", - "fix", - "notifications", - "Check Notifcation API exists when showing button" - ], - [ - "ad665a71", - "1764772951", - "fix", - "plans", - "Enable downgrade to Micro including Email Hosting" - ], - [ - "840522fb", - "1764245620", - "style", - "payment", - "Change \"pending\" to \"incomplete\"." - ], - [ - "9ada126e", - "1764175688", - "fix", - "stripe", - "Fail early if stripe submission errors" - ], - [ - "757de0ed", - "1762962071", - "fix", - "stripe", - "Improve on-page status updates for Stripe payments" - ], - [ - "35cb13aa", - "1761061904", - "fix", - "notification", - "notification permission on click" - ], - [ - "524e9134", - "1760020202", - "style", - "payment", - "Correct image source URLs." - ], - [ - "42c6b9d2", - "1759989960", - "style", - "payment", - "Move shopping cart style back to main stylesheet for it to work." - ], - [ - "2154f5a8", - "1759989960", - "style", - "payment", - "Include missing SCSS file." - ], - [ - "07f415a6", - "1759989960", - "style", - "payment", - "Add Apple Pay logo and imrpove formatting." - ], - [ - "09968dc8", - "1759916636", - "feat", - "dkim", - "Display all users domains" - ], - [ - "a6316817", - "1759692383", - "style", - "payment", - "Minor textual correction." - ], - [ - "89bf44f6", - "1759692157", - "style", - "payment", - "Add cryptocurrency logos." - ], - [ - "2cc33c58", - "1759689457", - "style", - "payment", - "Bundle Stripe and PayPal, and improve layout." - ], - [ - "89de7403", - "1759202407", - "style", - "payment", - "Add note about number of email aliases on sub-accounts." - ], - [ - "a04b4700", - "1759144876", - "fix", - "mailviewer", - "Show images with ngsw bypass" - ], - [ - "0eb7556f", - "1757937300", - "fix", - "2fa", - "Show QR codes for 2FA generation" - ], - [ - "440fbdfc", - "1756825896", - "fix", - "sentry", - "Downgrade client to make it work with sentry server" - ], - [ - "10e135be", - "1756794090", - "style", - "payment", - "Fix typo." - ], - [ - "7ebeca44", - "1756335277", - "style", - "settings", - "Moved and updated link to documentation." - ], - [ - "a1faab26", - "1756305250", - "fix", - "paymentcards", - "Make add card dialog fit on screen" - ], - [ - "50b8e5db", - "1755783796", + "2b05c475", + "1747382829", "feat", "worker", - "Improve Sentry integration" - ], - [ - "db8ccdef", - "1754909871", - "fix", - "stripe", - "Allow dialog to scroll (make Submit reachable)" - ], - [ - "4bdcff06", - "1751829714", - "style", - "dkim", - "Add note about format." - ], - [ - "7d6ddd10", - "1751477343", - "fix", - "cart", - "Renewing a subscription now sets a quantity of 1" - ], - [ - "1eebaa8a", - "1751367740", - "fix", - "commit-lint", - "allow hyphen in commit subject" - ], - [ - "67c0a118", - "1751367409", - "fix", - "login", - "make login inputs required" - ], - [ - "29eb8869", - "1751367360", - "fix", - "side-menu", - "make buttons keyboard navigable" - ], - [ - "8d22da9f", - "1751363648", - "fix", - "upgrades", - "Highlight correct \"current sub\" in plans table" - ], - [ - "d40892f9", - "1751296588", - "build", - "lint", - "Remove typos from commit-lint tags" - ], - [ - "e7be3886", - "1751296588", - "fix", - "upgrades", - "Indicate which plans would put the user over quota" - ], - [ - "ea501342", - "1751291013", - "fix", - "subscriptions", - "Only warn about close-quota for Disk/File quotas" - ], - [ - "1a198352", - "1751277492", - "fix", - "upgrades", - "Prevent two subscriptions being bought at once" - ], - [ - "9e4d014c", - "1750951971", - "fix", - "mailviewer", - "Text/HTML views blank when attachment has odd types" - ], - [ - "290ebe7e", - "1750694678", - "fix", - "upgrades", - "Remove ability to buy plans when over usage" - ], - [ - "8b4ad27a", - "1750691421", - "fix", - "upgrades", - "Checks quota usage for plan upgrades table" - ], - [ - "77657d08", - "1750691117", - "build", - "lint", - "Fix allowed commit-message tags" - ], - [ - "19ee3d5f", - "1750410342", - "style", - "upgrades", - "Improve formatting of recommended plans and other fixes." - ], - [ - "e53115a7", - "1750354119", - "fix", - "upgrades", - "Compare user's quotas when displaying plans" - ], - [ - "6d14aa2b", - "1750088797", - "fix", - "renewals", - "Removes confusing Yes/No for renewal checkboxes" - ], - [ - "b2d769b7", - "1750084083", - "fix", - "mailviewer", - "Fixes attachment display with HTML (again)" - ], - [ - "4a4e08e2", - "1749740369", - "fix", - "mailviewer", - "Only show attachments that are not inline in HTML" - ], - [ - "1beabc35", - "1749571399", - "fix", - "folderlist", - "place dir expander button above the anchor overlay" - ], - [ - "1e5cee80", - "1749544633", - "fix", - "github", - "make checkout of fork work in commit lint workflow" - ], - [ - "8d0d3cde", - "1749227244", - "style", - "mail", - "Make Allow and Block Sender descriptions consistent." - ], - [ - "652e3748", - "1749031846", - "build", - "ci", - "Remove redundant cache action" - ], - [ - "9a0189bb", - "1749031810", - "build", - "ci", - "prevent improper commit formatting from being merged into master" - ], - [ - "6cfc7dd4", - "1748872985", - "fix", - "details", - "show alternative email resend on email change" - ], - [ - "0036ce78", - "1748517484", - "fix", - "payments", - "Handle post stripe 3d secure correctly" - ], - [ - "ea2c77ca", - "1747908332", - "fix", - "build", - "Remove unused dependencies (revert)" - ], - [ - "2ef0626f", - "1747734901", - "build", - "deps", - "Remove unused dependencies" - ], - [ - "183d42ad", - "1747729699", - "build", - "deps", - "Remove unused dependencies" - ], - [ - "90d46835", - "1747328794", - "fix", - "payments", - "Renew or create products after Stripe payment" - ], - [ - "9b2580c3", - "1747302470", - "fix", - "folderlist", - "Make folder buttons keyboard navigable" - ], - [ - "51cb8dfe", - "1747297115", - "feat", - "login", - "Add autcomplete attrs in accordance with WCAG guidelines" - ], - [ - "403f7367", - "1747296965", - "fix", - "login", - "Fix user not sent with login req even when field is filled" + "Add sentry to xapian worker scope" ], [ "111120bd",