Skip to content

Pulling fix/carousel-images-served into develop#1268

Open
github-actions[bot] wants to merge 14 commits into
developfrom
fix/carousel-images-served
Open

Pulling fix/carousel-images-served into develop#1268
github-actions[bot] wants to merge 14 commits into
developfrom
fix/carousel-images-served

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

No description provided.

ktun95 and others added 13 commits May 30, 2026 11:15
… LCP

Re-encode the three slideshow assets to AVIF and WebP (the tubulin PNG drops
from 397 KiB to 40 KiB AVIF) and serve them via <picture> with the original
JPEG/PNG as fallback. Add explicit width/height to lock each image's aspect
ratio, eagerly load the first slide with fetchpriority="high" (it is the page
LCP element), and lazy-load the rest.

Declare the .webp/.avif asset modules so the new imports type-check.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The status row swaps from the "unavailable" placeholder to the loaded popover
once the async uptime fetch resolves, shifting everything below it. Wrap the
swap in a fixed-height flex container so the transition no longer contributes
to cumulative layout shift.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a build.rollupOptions.output.manualChunks config that breaks the single
1.6 MB entry chunk into separately cacheable vendor chunks (mui, apollo,
editor, fp, fontawesome). Enable build.sourcemap so production stack traces
map back to source and Lighthouse can attribute code (fixes valid-source-maps).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add preconnect hints for graphql.dictybase.dev and storage.dictybase.dev so
the browser opens those connections before the first GraphQL request and logo
fetch on the critical path.

Add a real public/robots.txt; without one the SPA fallback served index.html
for /robots.txt, which Lighthouse parsed as 28 invalid directives.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Read the uptime summary URL from VITE_APP_STATUS_JSON, defaulting to the
existing GitHub raw URL. This lets deployments point the request at a
dictybase-served proxy so it stays on a trusted, cacheable origin and off the
page's critical path, instead of hitting raw.githubusercontent.com directly.

Document the override (commented) in the production and staging env files.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Pass alt="dictyBase" to the header logo image so it has an accessible name
(fixes the image-alt accessibility and SEO audits).

Map the DCR News item date headings from h3 to a rendered h2 so the homepage
news section no longer skips a heading level under its h1 title, matching the
existing NewsItem behavior (fixes heading-order).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Navbar: make each dropdown a list item containing its sub-menu <ul> (instead
of a <ul> nested directly in a <ul>), turn the dropdown toggle into a
keyboard-operable role=button with aria-haspopup/aria-expanded, change the
mobile-menu wrapper from a stray <li> to a <div>, and give the hamburger
MenuIcon an aria-label and aria-expanded. Fixes the list, listitem and
aria-command-name audits.

Touch targets: enlarge footer links to a >=24px tap target and give the header
search field a min-width so it cannot collapse to an untappable sliver. Fixes
target-size.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Added a workflow section to describe the steps to take before
committing code, including linting, unit tests, build, and E2E
tests. Also added a section to encourage writing unit tests for
code changes.
…tests

Replace the `??` fallback for the uptime summary URL with a pipe of
fromNullable + getOrElse, matching the project's functional style. Add tests
for useDictyStatus covering the fetch-success (some), fetch-failure (none),
and JSON-parse-failure (none) paths.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…d height

Verify the container shows the unavailable placeholder when there is no status
data, swaps to the live-status popover when data is present, and reserves a
fixed min-height so the swap does not shift the page layout.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add Enter and Space keydown tests for the dropdown toggle so the new
keyboard handler (added alongside the role="button" accessibility change)
is exercised, restoring patch coverage on Dropdown.tsx.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The lockfile had floated @playwright/test up to 1.56.1, which hits a known
browser-install regression (microsoft/playwright#40998) where
`playwright install` stalls after downloading Chrome. This stalled the
"Install Playwright" step of the integration-testing workflow indefinitely
across all four apps. Bump the spec from ^1.44.0 to ^1.60.0 and refresh the
lockfile so CI installs a known-good version.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
static-server only serves real files under /assets (its --sf flag) and falls
back to index.html for everything else, so the carousel images placed at
/carousel/* in public/ would 404 in production. Move them back into
packages/ui-frontpage/src/assets/carousel and import them so Vite emits them as
hashed /assets/* files that static-server serves. The AVIF/WebP <picture>
sources, intrinsic width/height, and first-slide fetchpriority/eager loading
are retained.

Drop the index.html <link rel="preload"> for the first slide: imported assets
get hashed filenames with no stable path to preload statically, and it pointed
at the now-removed /carousel path. fetchpriority="high" on the eager first
slide keeps the LCP prioritization.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The documentation is updated to include instructions on how to verify changes that affect the build process. This ensures that build-related changes are thoroughly tested before deployment.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant