diff --git a/.github/workflows/fw-lite.yaml b/.github/workflows/fw-lite.yaml index de78542640..cb7094ba4f 100644 --- a/.github/workflows/fw-lite.yaml +++ b/.github/workflows/fw-lite.yaml @@ -82,16 +82,18 @@ jobs: - name: Check for stale generated TypeScript types run: task fw-lite:has-stale-generated-types -- --no-build - - name: Set a non-UTC timezone so timezone bugs are observable - # Hosted runners default to UTC, which hides date bugs: the error equals the local UTC - # offset, which is zero on UTC (see #2092). Eastern is non-UTC, observes DST, and has a - # negative offset, so date round-trips run the way real users actually hit them. - run: sudo timedatectl set-timezone America/New_York - - name: Dotnet test # Benchmarks run in a separate Release-mode job — see `benchmark` below. # MAUI tests run in publish-win. `trx` logger writes result files for the TestHistory # upload below; --results-directory collects one .trx per test project into a single folder. + # + # TZ forces a non-UTC timezone so date bugs are observable: on UTC the error equals the + # local offset, which is zero and hides bugs (see #2092). Eastern is non-UTC, observes DST, + # and has a negative offset. We set TZ instead of `timedatectl set-timezone` because hosted + # runners no longer allow it ("Failed to set time zone: Access denied"); .NET honours TZ for + # TimeZoneInfo.Local on Linux, so this needs no privileges and only affects the tests. + env: + TZ: America/New_York run: dotnet test FwLiteCore.slnf --logger GitHubActions --logger trx --results-directory "${{ github.workspace }}/TestResults" --no-build -p:BuildAndroid=false --filter "Category!=Benchmark" - name: Publish test results to TestHistory diff --git a/backend/FwLite/LcmCrdt/CrdtProjectsService.cs b/backend/FwLite/LcmCrdt/CrdtProjectsService.cs index d145988801..4ba53eae99 100644 --- a/backend/FwLite/LcmCrdt/CrdtProjectsService.cs +++ b/backend/FwLite/LcmCrdt/CrdtProjectsService.cs @@ -179,7 +179,7 @@ public record CreateProjectRequest( public async Task CreateExampleProject(string name) { // Code must satisfy the lowercase-only ProjectCode rule; the display name keeps its casing. - return await CreateProjectFromTemplate(new(name, name.ToLowerInvariant(), AfterCreate: ExampleProjectData.Seed, Role: UserProjectRole.Manager), vernacularWs: "de"); + return await CreateProjectFromTemplate(new(name, name.ToLowerInvariant(), AfterCreate: ExampleProjectData.Seed, Role: UserProjectRole.Manager, AuthenticatedUser: "Example User", AuthenticatedUserId: "example-user"), vernacularWs: "de"); } /// diff --git a/frontend/viewer/src/css-breakpoints.ts b/frontend/viewer/src/css-breakpoints.ts index 5f427284f3..17ab453868 100644 --- a/frontend/viewer/src/css-breakpoints.ts +++ b/frontend/viewer/src/css-breakpoints.ts @@ -1,2 +1,4 @@ // used in the is-mobile.svelte hook and for the tailwind md breakpoint export const MOBILE_BREAKPOINT = 768; +// used for comments sidebar vs bottom dock (and Tailwind xl) +export const EXTRA_LARGE_BREAKPOINT = 1280; diff --git a/frontend/viewer/src/lib/components/ui/drawer/drawer-nested.svelte b/frontend/viewer/src/lib/components/ui/drawer/drawer-nested.svelte index 3005667292..37b4005915 100644 --- a/frontend/viewer/src/lib/components/ui/drawer/drawer-nested.svelte +++ b/frontend/viewer/src/lib/components/ui/drawer/drawer-nested.svelte @@ -1,12 +1,30 @@ - + diff --git a/frontend/viewer/src/lib/components/ui/drawer/drawer.svelte b/frontend/viewer/src/lib/components/ui/drawer/drawer.svelte index fd8d589337..8380772b31 100644 --- a/frontend/viewer/src/lib/components/ui/drawer/drawer.svelte +++ b/frontend/viewer/src/lib/components/ui/drawer/drawer.svelte @@ -1,7 +1,9 @@ diff --git a/frontend/viewer/src/lib/components/ui/textarea/textarea.svelte b/frontend/viewer/src/lib/components/ui/textarea/textarea.svelte index d510242641..7f8dea55ee 100644 --- a/frontend/viewer/src/lib/components/ui/textarea/textarea.svelte +++ b/frontend/viewer/src/lib/components/ui/textarea/textarea.svelte @@ -1,5 +1,6 @@