Skip to content

chore: update prod from main#1263

Merged
fhennig merged 14 commits into
prodfrom
main
Jun 24, 2026
Merged

chore: update prod from main#1263
fhennig merged 14 commits into
prodfrom
main

Conversation

@github-actions

Copy link
Copy Markdown

This pull request updates the prod branch with the latest changes from the main branch.

⚠️ Do not squash-merge! ⚠️

Make sure to merge this creating a merge commit.

…rameterized function (#1261)

## Summary

- Replaces the two separate
`wastewaterOrganismConfigs`/`wastewaterOrganismStagingConfigs` objects
and the `withResistanceCollectionOverrides` helper with a single
`buildWastewaterOrganismConfigs(isStaging: boolean)` function
- Env-specific values (`collectionsUserId`, variant `collectionId`) are
now expressed as inline ternaries, making prod/staging differences
visible at the point of definition
- Corrects the prod variant `collectionId` to 4943 (was 4961, the
staging value)
- All call sites are unchanged — the two exported constants remain

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dashboards Ready Ready Preview, Comment Jun 24, 2026 8:04am

Request Review

…sm enum value (#1262)

Closes #1258

## Summary

- Renames the Astro route directory `collections/[organism]` →
`collections/[pathFragment]` so the URL segment is the kebab-case path
fragment (e.g. `west-nile`, `rsv-a`) consistent with the rest of the
site
- Updates the four URL builders in `pages.ts` to use
`organismConfig[organism].pathFragment` instead of the raw enum key
- Updates all four collection Astro pages to resolve `pathFragment` →
`Organism` via `allOrganisms.find()`

## Test plan

- [x] Visit `/collections/west-nile`, `/collections/rsv-a`,
`/collections/rsv-b`, `/collections/ebola-sudan`,
`/collections/ebola-zaire`, `/collections/influenza-a`,
`/collections/influenza-b` and verify they load correctly
- [x] Verify the old URLs (e.g. `/collections/westNile`) now 404
- [x] Verify collection detail, edit, and create pages work for the
affected organisms
- [x] Verify organisms where enum key = pathFragment (e.g. `covid`,
`mpox`) are unaffected

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
## Summary
- Bumps `@genspectrum/dashboard-components` from 1.17.0 to 1.18.0

## Test plan
- [ ] CI passes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Closes #1242

## Summary

Adds RSV resistance mutation annotations. They are different from the
covid annotations, in that we really use only one annotation for
multiple mutations, whereas with covid we use one annotation per
mutation. We do this because we want to name each mutation individually.
This difference is now encoded with `annotationMode`, see below.

- Adds `annotationMode: 'per-variant' | 'per-collection'` (required, no
default) to `ResistanceMutationCollectionConfig`
- Updates `buildResistanceData` to branch on the mode: `per-variant`
keeps existing COVID behaviour (one annotation per mutation, name =
variant name); `per-collection` emits one annotation for the whole
collection with all mutations flattened
- Enables `resistanceAnalysisModeEnabled` on RSV-A and RSV-B. Prod
collection IDs are 4983/4984 (RSV-A) and 4985/4986 (RSV-B); staging
overrides these to 5001/5002 (RSV-A) and 5003/5004 (RSV-B) via
`wastewaterOrganismStagingConfigs`.
- Sets `annotationMode: 'per-variant'` on all three existing COVID
collections

## Screenshot

<img width="1512" height="751" alt="image"
src="https://github.com/user-attachments/assets/3becdefc-bbf8-4b77-a295-c8c15a188f53"
/>

## Test plan

- [x] `resistanceData.spec.ts` — existing per-variant tests still pass;
new per-collection describe block covers flattened annotation and
query-variant skipping
- [x] TypeScript compiles cleanly (`tsc --noEmit`)
- [x] Verify resistance tab appears on RSV-A and RSV-B wastewater
dashboard pages on staging

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Bumps [gradle/actions](https://github.com/gradle/actions) from 6 to
6.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/actions/releases">gradle/actions's
releases</a>.</em></p>
<blockquote>
<h2>v6.1.0</h2>
<h2>New: Basic Cache Provider</h2>
<p>A new MIT-licensed <strong>Basic Caching</strong> provider is now
available as an alternative to the proprietary <strong>Enhanced
Caching</strong> provided by <code>gradle-actions-caching</code>. Choose
Basic Caching by setting <code>cache-provider: basic</code> on
<code>setup-gradle</code> or <code>dependency-submission</code>
actions.</p>
<ul>
<li>Built on <code>@actions/cache</code> -- fully open source</li>
<li>Caches <code>~/.gradle/caches</code> and
<code>~/.gradle/wrapper</code> directories</li>
<li>Cache key derived from build files (<code>*.gradle*</code>,
<code>gradle-wrapper.properties</code>, etc.)</li>
<li>Clean cache on build file changes (no restore keys, preventing stale
entry accumulation)</li>
</ul>
<p><strong>Limitations vs Enhanced Caching:</strong> No cache cleanup,
no deduplication of cached content, cached content is fixed unless build
files change.</p>
<h2>Revamped Licensing &amp; Distribution Documentation</h2>
<ul>
<li>New <strong>DISTRIBUTION.md</strong> documents the licensing of each
component (particularly Basic Caching vs Enhanced Caching)</li>
<li>Simplified licensing notices in README, docs, and runtime log
output</li>
<li>Clear usage tiers: Enhanced Caching is free for public repos and in
Free Preview for private repos</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>Use a unique cache entry for wrapper-validation test by <a
href="https://github.com/bigdaz"><code>@​bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/921">gradle/actions#921</a></li>
<li>Update Dependencies by <a
href="https://github.com/bigdaz"><code>@​bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/922">gradle/actions#922</a></li>
<li>Update dependencies and resolve npm vulnerabilities by <a
href="https://github.com/bigdaz"><code>@​bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/933">gradle/actions#933</a></li>
<li>Add open-source 'basic' cache provider and revamp licensing
documentation by <a
href="https://github.com/bigdaz"><code>@​bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/930">gradle/actions#930</a></li>
<li>Restructure caching documentation for basic and enhanced providers
by <a href="https://github.com/bigdaz"><code>@​bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/934">gradle/actions#934</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/gradle/actions/compare/v6.0.1...v6.1.0">https://github.com/gradle/actions/compare/v6.0.1...v6.1.0</a></p>
<h2>v6.0.1</h2>
<blockquote>
<p>[!IMPORTANT]
The release of <code>gradle/actions@v6</code> contains important changes
to the license terms. More details in <a
href="https://blog.gradle.org/github-actions-for-gradle-v6">this blog
post</a>.
<strong>TL;DR</strong>: By upgrading to v6, you accept the <a
href="https://gradle.com/legal/terms-of-use/">Terms of Use</a> for the
<code>gradle-actions-caching</code> component.</p>
</blockquote>
<h2>Summary</h2>
<p>The <a
href="https://blog.gradle.org/github-actions-for-gradle-v6">license
changes in v6</a> introduced a <code>gradle-actions-caching</code>
license notice that is printed in logs and in each job summary.</p>
<p>With this release, the license notice will be muted if build-scan
terms have been accepted, or if a Develocity access key is provided.</p>
<h2>What's Changed</h2>
<ul>
<li>Bump actions used in docs by <a
href="https://github.com/Goooler"><code>@​Goooler</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/792">gradle/actions#792</a></li>
<li>Add typing information for use by typesafegithub by <a
href="https://github.com/bigdaz"><code>@​bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/910">gradle/actions#910</a></li>
<li>Mute license warning when terms are accepted by <a
href="https://github.com/bigdaz"><code>@​bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/911">gradle/actions#911</a></li>
<li>Mention explicit license acceptance in notice by <a
href="https://github.com/bigdaz"><code>@​bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/912">gradle/actions#912</a></li>
<li>Bump com.fasterxml.jackson.dataformat:jackson-dataformat-smile from
2.21.1 to 2.21.2 in /sources/test/init-scripts in the gradle group
across 1 directory by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/gradle/actions/pull/907">gradle/actions#907</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/gradle/actions/compare/v6.0.0...v6.0.1">https://github.com/gradle/actions/compare/v6.0.0...v6.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/gradle/actions/commit/50e97c2cd7a37755bbfafc9c5b7cafaece252f6e"><code>50e97c2</code></a>
Link to docs for caching providers</li>
<li><a
href="https://github.com/gradle/actions/commit/f2e6298504c4b1f20294637059e1d0d89422409a"><code>f2e6298</code></a>
Restructure caching documentation for basic and enhanced providers (<a
href="https://redirect.github.com/gradle/actions/issues/934">#934</a>)</li>
<li><a
href="https://github.com/gradle/actions/commit/b294b1e2dbcf270bfe835590dedbbc7e2024618c"><code>b294b1e</code></a>
Really fix integ-test-full</li>
<li><a
href="https://github.com/gradle/actions/commit/83d3189aae3332f1b2235b42d8804258f2348213"><code>83d3189</code></a>
Revise license details for gradle-actions-caching</li>
<li><a
href="https://github.com/gradle/actions/commit/1d5db06d2662829845876553d61cf3df3cf997d1"><code>1d5db06</code></a>
Update license link for gradle-actions-caching component</li>
<li><a
href="https://github.com/gradle/actions/commit/1c809615505fae9768e2610dc6dbecdc3a796443"><code>1c80961</code></a>
Fix license link for Enhanced Caching component</li>
<li><a
href="https://github.com/gradle/actions/commit/9e99920b14b9dc5a9bf8c72e94ba47ebf5bbaee6"><code>9e99920</code></a>
Fix integ-test-full workflow</li>
<li><a
href="https://github.com/gradle/actions/commit/bb8aaaf9d56f25afd4a90925425facf294f31fcf"><code>bb8aaaf</code></a>
Fix workflow permissions</li>
<li><a
href="https://github.com/gradle/actions/commit/f5dfb43fc8c99c758ebf2324d102118e5faf6cb6"><code>f5dfb43</code></a>
[bot] Update dist directory</li>
<li><a
href="https://github.com/gradle/actions/commit/ff9ae24c39252301b448088d2c7d9f0a2d8066dd"><code>ff9ae24</code></a>
Add open-source 'basic' cache provider and revamp licensing
documentation (<a
href="https://redirect.github.com/gradle/actions/issues/930">#930</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gradle/actions/compare/v6...v6.1.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=gradle/actions&package-manager=github_actions&previous-version=6&new-version=6.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Summary
- Adds `name:` fields to both `actions/upload-artifact` steps in the E2E
workflow so they show up as "Upload container logs" and "Upload
Playwright report" in the Actions UI instead of being unlabeled.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
)

## Summary

The staging DB was recently reset, which caused all collection IDs to
shift. RSV resistance mutation collections ended up with low IDs (4–7,
owned by user 1), while COVID resistance collections landed at 1–3. The
previous config assumed staging mirrored prod's high RSV IDs (5001–5004,
which now return 404) and that IDs 4/5/6 were COVID — both were wrong,
causing staging to load the wrong collections entirely.

Also fixes the XFG variant filter default: `4961` was pointing to "XFK"
on staging — the correct XFG ID on staging is `4944`.

## Collection ID changes

| Purpose | Prod ID | Staging ID (old) | Staging ID (new) |
|---|---|---|---|
| COVID 3CLpro | [4](https://genspectrum.org/api/collections/4) | `4`
(was RSV-A Nirsevimab!) |
[1](https://staging.genspectrum.org/api/collections/1) |
| COVID RdRp | [5](https://genspectrum.org/api/collections/5) | `5` (was
RSV-A Palivizumab!) |
[2](https://staging.genspectrum.org/api/collections/2) |
| COVID Spike mAb | [6](https://genspectrum.org/api/collections/6) | `6`
(was RSV-B Nirsevimab!) |
[3](https://staging.genspectrum.org/api/collections/3) |
| RSV-A Nirsevimab |
[4983](https://genspectrum.org/api/collections/4983) | `5001` (404) |
[4](https://staging.genspectrum.org/api/collections/4) |
| RSV-A Palivizumab |
[4984](https://genspectrum.org/api/collections/4984) | `5002` (404) |
[5](https://staging.genspectrum.org/api/collections/5) |
| RSV-B Nirsevimab |
[4985](https://genspectrum.org/api/collections/4985) | `5003` (404) |
[6](https://staging.genspectrum.org/api/collections/6) |
| RSV-B Palivizumab |
[4986](https://genspectrum.org/api/collections/4986) | `5004` (404) |
[7](https://staging.genspectrum.org/api/collections/7) |
| COVID variant filter (XFG) |
[4943](https://genspectrum.org/api/collections/4943) | `4961` (was XFK!)
| [4944](https://staging.genspectrum.org/api/collections/4944) |

## Test plan

- [ ] E2E test action passes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…ance mutations (#1274)

resolves #1223 

## Summary

- Replaces the two-mode annotation system (`perVariant` /
`perCollection`) with a single unified approach, taking advantage of
per-mutation name support added in dashboard-components 1.18
- All resistance mutation collections now produce one
`MutationAnnotation` per collection, with each individual mutation
carrying its variant name via the new `{ mutation, name }` object form
- Removes the `annotationMode` field from
`ResistanceMutationCollectionConfig` and the `annotationMode` constant
entirely
- Simplifies the test suite from four tests across two `describe` blocks
down to two focused tests

## Test plan

- [x] `npm run check-types` passes
- [x] `resistanceData.spec.ts` passes (2 tests)
- [x] `WasapPageStateHandler.spec.ts` passes (26 tests)
- [x] Verified locally against COVID, RSV-A wastewater dashboards

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…e_data tree.json (#1268)

Closes #1256

## Summary

- Adds `RsvANextcladeLineagesSource` and `RsvBNextcladeLineagesSource`
that walk the Nextclade reference tree JSON to produce one collection
per RSV clade
- Shared base class `_RsvNextcladeLineagesBase` handles the HTTP fetch;
subclasses point at the hardcoded April 2026 snapshots from
`nextstrain/nextclade_data`
- Each collection gets four variants, mirroring the COVID Pango lineage
shape:
- **Nucleotide substitutions** — full set accumulated from the reference
root (1-based genomic coordinates), expressed as `REF_BASE + POSITION +
CURRENT_BASE` (e.g. `A982T`)
- **Amino acid substitutions** — full AA set from reference root,
expressed as `GENE:REF_AA + POSITION + CURRENT_AA` (e.g. `F:T8A`)
- **New nucleotide substitutions** — branch-only delta, what this clade
introduces relative to its parent
  - **New amino acid substitutions** — branch-only AA delta
- Accumulation handles multi-hop mutations (A→C→G collapses to A→G) and
reversions (A→C→A is dropped from the accumulated set)
- Both sources registered in `registry.py` and included in the default
run
- 45 new tests covering accumulation logic, tree extraction, collection
shape, source metadata, and HTTP fetch behaviour

## Test plan

- [x] `pixi run -e test test` — all 95 tests pass
- [x] Seeded against local backend — 45 RSV-A and 30 RSV-B collections
created/updated successfully

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to
6.0.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Update changelog by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2357">actions/checkout#2357</a></li>
<li>fix: expand merge commit SHA regex and add SHA-256 test cases by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2414">actions/checkout#2414</a></li>
<li>Fix checkout init for SHA-256 repositories by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2439">actions/checkout#2439</a></li>
<li>Update changelog for v6.0.3 by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2446">actions/checkout#2446</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/yaananth"><code>@​yaananth</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2414">actions/checkout#2414</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6...v6.0.3">https://github.com/actions/checkout/compare/v6...v6.0.3</a></p>
<h2>v6.0.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Add orchestration_id to git user-agent when ACTIONS_ORCHESTRATION_ID
is set by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2355">actions/checkout#2355</a></li>
<li>Fix tag handling: preserve annotations and explicit fetch-tags by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2356">actions/checkout#2356</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6.0.1...v6.0.2">https://github.com/actions/checkout/compare/v6.0.1...v6.0.2</a></p>
<h2>v6.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Update all references from v5 and v4 to v6 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2314">actions/checkout#2314</a></li>
<li>Add worktree support for persist-credentials includeIf by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2327">actions/checkout#2327</a></li>
<li>Clarify v6 README by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2328">actions/checkout#2328</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6...v6.0.1">https://github.com/actions/checkout/compare/v6...v6.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h2>v6.0.3</h2>
<ul>
<li>Fix checkout init for SHA-256 repositories by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2439">actions/checkout#2439</a></li>
<li>fix: expand merge commit SHA regex and add SHA-256 test cases by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2414">actions/checkout#2414</a></li>
</ul>
<h2>v6.0.2</h2>
<ul>
<li>Fix tag handling: preserve annotations and explicit fetch-tags by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2356">actions/checkout#2356</a></li>
</ul>
<h2>v6.0.1</h2>
<ul>
<li>Add worktree support for persist-credentials includeIf by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2327">actions/checkout#2327</a></li>
</ul>
<h2>v6.0.0</h2>
<ul>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
</ul>
<h2>v5.0.1</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
</ul>
<h2>v5.0.0</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
</ul>
<h2>v4.3.1</h2>
<ul>
<li>Port v6 cleanup to v4 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li>
</ul>
<h2>v4.3.0</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<h2>v4.2.2</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3"><code>@​jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li>
</ul>
<h2>v4.2.1</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li>
</ul>
<h2>v4.2.0</h2>
<ul>
<li>Add Ref and Commit outputs by <a
href="https://github.com/lucacome"><code>@​lucacome</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li>
<li>Dependency updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>- <a
href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>,
<a
href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li>
</ul>
<h2>v4.1.7</h2>
<ul>
<li>Bump the minor-npm-dependencies group across 1 directory with 4
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li>
<li>Bump actions/checkout from 3 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li>
<li>Check out other refs/* by commit by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li>
<li>Pin actions/checkout's own workflows to a known, good, stable
version. by <a href="https://github.com/jww3"><code>@​jww3</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/actions/checkout/compare/v6...v6.0.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=6&new-version=6.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…iew (#1273)

Closes #1271

## Summary

- Adds a segmented control (`[ Community ] [ Official ] [ All ]`) to the
collections overview page
- Filtering is done client-side based on `ownedBy`; "Community" is the
default, preserving current behavior
- Adds `getSystemUserId()` to `config.ts` (returns `1` on staging, `3`
on prod); called server-side in the Astro page and passed as a prop so
it doesn't reach the browser

## Screenshot


https://github.com/user-attachments/assets/39cd0d35-3f16-43e7-b4b1-8a410834da90

## Test plan

- [x] Community filter shows only non-system-user collections
- [x] Official filter shows only system-user collections
- [x] All filter shows everything
- [x] Default on page load is Community
- [x] Browser spec passes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
dependabot Bot added 2 commits June 24, 2026 09:18
Bumps [gradle/actions](https://github.com/gradle/actions) from 6.1.0 to
6.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/actions/releases">gradle/actions's
releases</a>.</em></p>
<blockquote>
<h2>v6.2.0</h2>
<h2>Highlights</h2>
<p>This release brings significant behaviour improvements to
<strong>Enhanced caching</strong>, improvements to the generated Job
Summary, and a number of correctness and security fixes.</p>
<ol>
<li><strong>Improved cache-cleanup mechanism.</strong> Cleanup of stale
files from the Gradle User Home is now faster, and no longer depends on
Gradle or a JVM. It works by inspecting the local file state directly,
removing the Gradle invocation from the post-build step.</li>
<li><strong>More granular, more stable caching.</strong> The local build
cache is stored as a separate cache entry, so it can be restored and
invalidated independently of the main Gradle User Home entry. Transient
Gradle housekeeping files are excluded from the cache, reducing its size
and improving stability.</li>
<li><strong>Hide obsolete Job summaries in PR commments</strong>: When a
new Job summary comment is added to a PR, previous outdated Job
summaries are now hidden.</li>
<li><strong>Improved caching report in the job summary.</strong> The
cache report now uses a single, consistent layout across all cache
states and providers. Provider information is integrated directly into
the report, and per-entry details are available in an expandable
section. (<a
href="https://redirect.github.com/gradle/actions/issues/985">#985</a>)</li>
<li><strong>Correctness and security fixes.</strong> A unique cache key
is now used per run attempt, so re-runs no longer collide; the job
summary shows the cache key string rather than an internal id; and
bundled dependencies have been updated, including a ReDoS fix and a
fast-xml CVE fix.</li>
</ol>
<h2>What's Changed</h2>
<ul>
<li>Remove unnecessary dependency overrides by <a
href="https://github.com/bigdaz"><code>@​bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/981">gradle/actions#981</a></li>
<li>Scope CI-integ-test concurrency groups per-branch by <a
href="https://github.com/bigdaz"><code>@​bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/983">gradle/actions#983</a></li>
<li>Improve typings by <a
href="https://github.com/Vampire"><code>@​Vampire</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/938">gradle/actions#938</a></li>
<li>Hide obsolete Job summaries by <a
href="https://github.com/SimonMarquis"><code>@​SimonMarquis</code></a>
in <a
href="https://redirect.github.com/gradle/actions/pull/902">gradle/actions#902</a></li>
<li>CI: add requireable aggregate/no-op checks for branch protection by
<a href="https://github.com/bigdaz"><code>@​bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/984">gradle/actions#984</a></li>
<li>Redesign the caching Job Summary by <a
href="https://github.com/bigdaz"><code>@​bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/985">gradle/actions#985</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Vampire"><code>@​Vampire</code></a> made
their first contribution in <a
href="https://redirect.github.com/gradle/actions/pull/938">gradle/actions#938</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/gradle/actions/compare/v6.1.1...v6.2.0">https://github.com/gradle/actions/compare/v6.1.1...v6.2.0</a></p>
<h2>v6.1.1</h2>
<p>This release updates various dependency versions, resolving several
reported security vulnerabilities.
No functional changes are included</p>
<h2>What's Changed</h2>
<ul>
<li>Bump Gradle Wrapper from 9.4.1 to 9.5.1 in
/sources/test/init-scripts by <a
href="https://github.com/bot-githubaction"><code>@​bot-githubaction</code></a>
in <a
href="https://redirect.github.com/gradle/actions/pull/961">gradle/actions#961</a></li>
<li>Bump Gradle Wrapper from 9.4.1 to 9.5.1 in
/.github/workflow-samples/gradle-plugin by <a
href="https://github.com/bot-githubaction"><code>@​bot-githubaction</code></a>
in <a
href="https://redirect.github.com/gradle/actions/pull/962">gradle/actions#962</a></li>
<li>Bump Gradle Wrapper from 9.4.1 to 9.5.1 in
/.github/workflow-samples/groovy-dsl by <a
href="https://github.com/bot-githubaction"><code>@​bot-githubaction</code></a>
in <a
href="https://redirect.github.com/gradle/actions/pull/963">gradle/actions#963</a></li>
<li>Bump Gradle Wrapper from 9.4.1 to 9.5.1 in
/.github/workflow-samples/java-toolchain by <a
href="https://github.com/bot-githubaction"><code>@​bot-githubaction</code></a>
in <a
href="https://redirect.github.com/gradle/actions/pull/964">gradle/actions#964</a></li>
<li>Bump Gradle Wrapper from 9.4.1 to 9.5.1 in
/.github/workflow-samples/kotlin-dsl by <a
href="https://github.com/bot-githubaction"><code>@​bot-githubaction</code></a>
in <a
href="https://redirect.github.com/gradle/actions/pull/965">gradle/actions#965</a></li>
<li>Update known wrapper checksums by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/gradle/actions/pull/937">gradle/actions#937</a></li>
<li>Bump the github-actions group across 2 directories with 8 updates by
<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/gradle/actions/pull/976">gradle/actions#976</a></li>
<li>Bump the npm-dependencies group across 1 directory with 14 updates
by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/gradle/actions/pull/970">gradle/actions#970</a></li>
<li>Bump references to Develocity Gradle plugin from 4.4.0 to 4.4.2 by
<a
href="https://github.com/bot-githubaction"><code>@​bot-githubaction</code></a>
in <a
href="https://redirect.github.com/gradle/actions/pull/973">gradle/actions#973</a></li>
<li>Bump the npm-dependencies group in /sources with 5 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/gradle/actions/pull/977">gradle/actions#977</a></li>
<li>Update <code>@​actions/cache</code> and
<code>@​actions/artifact</code>, stop ignoring them in Dependabot by <a
href="https://github.com/bigdaz"><code>@​bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/978">gradle/actions#978</a></li>
<li>Resolve npm security vulnerabilities via dependency overrides by <a
href="https://github.com/bigdaz"><code>@​bigdaz</code></a> in <a
href="https://redirect.github.com/gradle/actions/pull/980">gradle/actions#980</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/gradle/actions/compare/v6.1.0...v6.1.1">https://github.com/gradle/actions/compare/v6.1.0...v6.1.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/gradle/actions/commit/3f131e8634966bd73d06cc69884922b02e6faf92"><code>3f131e8</code></a>
[bot] Update dist directory</li>
<li><a
href="https://github.com/gradle/actions/commit/97715a29bc75b4c8eeea944dee111d567bb582b5"><code>97715a2</code></a>
Redesign the caching Job Summary (<a
href="https://redirect.github.com/gradle/actions/issues/985">#985</a>)</li>
<li><a
href="https://github.com/gradle/actions/commit/8b6cdb5f580ff6b19af985e0fa90cd86daf1d3e1"><code>8b6cdb5</code></a>
CI: add requireable aggregate/no-op checks for branch protection (<a
href="https://redirect.github.com/gradle/actions/issues/984">#984</a>)</li>
<li><a
href="https://github.com/gradle/actions/commit/5852e0e5d82ffa89e04ed56eb37c14028a1ce459"><code>5852e0e</code></a>
[bot] Update dist directory</li>
<li><a
href="https://github.com/gradle/actions/commit/318eed703815f0482a7498a267b758f78fe7bcb9"><code>318eed7</code></a>
Hide obsolete Job summaries (<a
href="https://redirect.github.com/gradle/actions/issues/902">#902</a>)</li>
<li><a
href="https://github.com/gradle/actions/commit/a7406612929c8997f724ceab900ed029936e3bf5"><code>a740661</code></a>
Improve typings (<a
href="https://redirect.github.com/gradle/actions/issues/938">#938</a>)</li>
<li><a
href="https://github.com/gradle/actions/commit/7ae0d0208cc8604463cd30cf64c54d08ac84d13f"><code>7ae0d02</code></a>
Update gradle-actions-caching library to v0.6.0 (<a
href="https://redirect.github.com/gradle/actions/issues/982">#982</a>)</li>
<li><a
href="https://github.com/gradle/actions/commit/e473973a5b07be6339cc6d3cf458bb1b30eb9b08"><code>e473973</code></a>
Scope CI-integ-test concurrency groups per-branch</li>
<li><a
href="https://github.com/gradle/actions/commit/35a4a3f355e0599a8af664843f0d1a683e5b2230"><code>35a4a3f</code></a>
Queue up integ-test runs</li>
<li><a
href="https://github.com/gradle/actions/commit/b6eebf33f1e928997bb7ff32e39933e3c015ccff"><code>b6eebf3</code></a>
[bot] Update dist directory</li>
<li>Additional commits viewable in <a
href="https://github.com/gradle/actions/compare/v6.1.0...v6.2.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=gradle/actions&package-manager=github_actions&previous-version=6.1.0&new-version=6.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…o 1.8.0 (#1282)

Bumps
[lewagon/wait-on-check-action](https://github.com/lewagon/wait-on-check-action)
from 1.7.0 to 1.8.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/lewagon/wait-on-check-action/releases">lewagon/wait-on-check-action's
releases</a>.</em></p>
<blockquote>
<h2>v1.8.0</h2>
<h3>Added</h3>
<ul>
<li>Add a <code>wait-for-duplicates</code> option to require every check
with a duplicate name to succeed (<a
href="https://redirect.github.com/lewagon/wait-on-check-action/issues/154">#154</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/lewagon/wait-on-check-action/blob/master/CHANGELOG.md">lewagon/wait-on-check-action's
changelog</a>.</em></p>
<blockquote>
<h2>v1.8.0 - 2026-06-09</h2>
<h3>Added</h3>
<ul>
<li>Add a <code>wait-for-duplicates</code> option to require every check
with a duplicate name to succeed</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/lewagon/wait-on-check-action/commit/96d9100b431964d10e0136aff8b9ccb92470505e"><code>96d9100</code></a>
Bump version: 1.7.0 → 1.8.0</li>
<li><a
href="https://github.com/lewagon/wait-on-check-action/commit/c65f0fca43b10434a55c7cc0ddeed5a8aed39143"><code>c65f0fc</code></a>
Add v1.8.0 changelog notes (<a
href="https://redirect.github.com/lewagon/wait-on-check-action/issues/155">#155</a>)</li>
<li><a
href="https://github.com/lewagon/wait-on-check-action/commit/b91bfa3dceac87872c0da7d3f415a8b697f41e72"><code>b91bfa3</code></a>
feat: add wait-for-duplicates option (<a
href="https://redirect.github.com/lewagon/wait-on-check-action/issues/154">#154</a>)</li>
<li>See full diff in <a
href="https://github.com/lewagon/wait-on-check-action/compare/v1.7.0...v1.8.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=lewagon/wait-on-check-action&package-manager=github_actions&previous-version=1.7.0&new-version=1.8.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ant explorer (#1285)

## Summary

- Adds `predefinedVariantsSource` to the RSV-A and RSV-B W-ASAP configs,
pointing at the Nextclade lineage collections already seeded into the
backend (tagged `#nextclade-lineage`)
- Renames `wastewaterOrganisms.rsvA/rsvB` from `'rsv-a'/'rsv-b'` to
`'rsvA'/'rsvB'` so `internalName` matches the backend organism key used
by the collections API — removes the need for any organism name override

Users can now select an RSV-A or RSV-B Nextclade lineage from the
"Predefined" tab in the Variant Explorer mode, the same way COVID Pango
lineages are selectable.

## Test plan

- [x] Open `/swiss-wastewater/rsv-a`, switch to Variant → Predefined —
dropdown of Nextclade lineage names (e.g. A.D.3, A.D.5.2) appears
- [x] Select a lineage and confirm the chart updates with the mutation
signature
- [x] Same for `/swiss-wastewater/rsv-b`
- [x] `/swiss-wastewater/covid` still works unchanged

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
@fhennig fhennig merged commit 625a84c into prod Jun 24, 2026
10 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant