Skip to content

feat: auto-populate templates language dropdown from published template languages#8973

Merged
jianwei1 merged 14 commits intomainfrom
26-03-JC-feat-templates-language-dropdown
Apr 10, 2026
Merged

feat: auto-populate templates language dropdown from published template languages#8973
jianwei1 merged 14 commits intomainfrom
26-03-JC-feat-templates-language-dropdown

Conversation

@jianwei1
Copy link
Copy Markdown
Contributor

@jianwei1 jianwei1 commented Apr 8, 2026

Summary

  • Replaces hardcoded 26-language ID list in HeaderAndLanguageFilter with dynamic two-step fetch using the new journeyTemplateLanguageIds query
  • Uses useQuery with skip to prevent transient unfiltered fetch of all ~5000 languages while language IDs are loading
  • Updates getStaticProps in templates page to fetch language IDs sequentially, then languages/tags/journeys in parallel
  • Removes duplicated hardcoded language ID lists from both frontend component and SSR pre-fetch
  • Updates all test mocks and stories to use dynamic language IDs mock

Depends on: #8976 (backend: journeyTemplateLanguageIds query) — merge that first, then rebase this PR to main.

NES-1537

Test plan

  • HeaderAndLanguageFilter component tests pass (2 tests with updated mocks)
  • TemplateGallery integration tests pass (4 tests with updated mocks)
  • Manual QA: verify language dropdown shows languages matching published templates
  • Verify ISR revalidation picks up new languages within ~60 seconds

Post-Deploy Monitoring & Validation

  • Expected healthy signal: Language dropdown populates with the same languages as before (existing published templates already cover the 26 previously hardcoded languages)
  • Failure signal: Empty language dropdown or templates page fails to load
  • Rollback trigger: If language dropdown is empty
  • Validation window: First 24 hours post-deploy

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Template gallery language filter now auto-populates from available template languages (replacing the previous hardcoded list), keeping the dropdown in sync with published templates.
    • Admin templates page prefetches these language IDs for consistent server-side rendering.
  • Documentation

    • Added plan describing the end-to-end approach and verification steps for this behavior.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 8, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 05aa161e-21d4-48c6-8d31-1a46e8b91fe6

📥 Commits

Reviewing files that changed from the base of the PR and between 59f6d8f and f0d6554.

📒 Files selected for processing (2)
  • apps/journeys-admin/pages/templates/index.tsx
  • libs/journeys/ui/src/components/TemplateGallery/HeaderAndLanguageFilter/HeaderAndLanguageFilter.tsx
🚧 Files skipped from review as they are similar to previous changes (2)
  • apps/journeys-admin/pages/templates/index.tsx
  • libs/journeys/ui/src/components/TemplateGallery/HeaderAndLanguageFilter/HeaderAndLanguageFilter.tsx

Walkthrough

Fetch of template language IDs is dynamic: a new GET_JOURNEY_TEMPLATE_LANGUAGE_IDS query is introduced and used by the admin page (getStaticProps) and the HeaderAndLanguageFilter component to drive a subsequent GET_LANGUAGES call instead of a hardcoded ID list. Tests, stories, mocks, and docs were updated accordingly.

Changes

Cohort / File(s) Summary
Admin Templates Page
apps/journeys-admin/pages/templates/index.tsx
Prefetches GET_JOURNEY_TEMPLATE_LANGUAGE_IDS in getStaticProps, derives templateLanguageIds (warns if empty), and passes them into GET_LANGUAGES instead of a hardcoded where.ids. GET_JOURNEYS left unchanged.
Language Filter Component
libs/journeys/ui/src/components/TemplateGallery/HeaderAndLanguageFilter/HeaderAndLanguageFilter.tsx, libs/journeys/ui/src/components/TemplateGallery/HeaderAndLanguageFilter/index.ts
Replaced single hardcoded useLanguagesQuery with two queries: GET_JOURNEY_TEMPLATE_LANGUAGE_IDS then GET_LANGUAGES (uses where.ids: templateLanguageIds), adds skip while IDs load, logs first-query errors, exports GET_JOURNEY_TEMPLATE_LANGUAGE_IDS and re-exports it in barrel.
Language Filter Tests
libs/journeys/ui/src/components/TemplateGallery/HeaderAndLanguageFilter/HeaderAndLanguageFilter.spec.tsx
Added getJourneyTemplateLanguageIdsMock to Apollo mocks and adjusted initial async wait to assert translated “All Languages” heading.
Language Filter Stories
libs/journeys/ui/src/components/TemplateGallery/HeaderAndLanguageFilter/HeaderAndLanguageFilter.stories.tsx
Included getJourneyTemplateLanguageIdsMock in story mocks; moved artificial delay to the template-IDs mock for the Loading story.
Template Gallery Tests & Stories
libs/journeys/ui/src/components/TemplateGallery/TemplateGallery.spec.tsx, libs/journeys/ui/src/components/TemplateGallery/TemplateGallery.stories.tsx
Added getJourneyTemplateLanguageIdsMock to test and story Apollo mock arrays so child components receive template language IDs.
Mock Data
libs/journeys/ui/src/components/TemplateGallery/data.ts
Added getJourneyTemplateLanguageIdsMock returning ['529','496','1106']; narrowed getLanguagesMock.request.variables.where.ids to the same three IDs.
Documentation
docs/plans/2026-04-07-003-feat-templates-language-dropdown-auto-populate-plan.md
New plan doc describing backend journeyTemplateLanguageIds query, frontend two-query flow, admin SSR changes, testing and verification criteria.

Sequence Diagram(s)

sequenceDiagram
    participant Admin as Admin Page (getStaticProps)
    participant Apollo as Apollo Client
    participant API as api-journeys GraphQL
    participant DB as Database

    Admin->>Apollo: query GET_JOURNEY_TEMPLATE_LANGUAGE_IDS
    Apollo->>API: GET_JOURNEY_TEMPLATE_LANGUAGE_IDS
    API->>DB: findMany(distinct: ['languageId'], filter: templates & published)
    DB-->>API: languageId list
    API-->>Apollo: { journeyTemplateLanguageIds }
    Apollo-->>Admin: { journeyTemplateLanguageIds }
    Admin->>Apollo: query GET_LANGUAGES(where.ids: templateLanguageIds)
    Apollo->>API: GET_LANGUAGES
    API->>DB: fetch languages by ids
    DB-->>API: languages
    API-->>Apollo: { languages }
    Apollo-->>Admin: { languages }
Loading
sequenceDiagram
    participant Client as HeaderAndLanguageFilter (Client)
    participant Apollo as Apollo Client
    participant API as api-journeys GraphQL
    participant DB as Database

    Client->>Apollo: query GET_JOURNEY_TEMPLATE_LANGUAGE_IDS
    Apollo->>API: GET_JOURNEY_TEMPLATE_LANGUAGE_IDS
    API->>DB: findMany(...)
    DB-->>API: languageId list
    API-->>Apollo: { journeyTemplateLanguageIds }
    Apollo-->>Client: { journeyTemplateLanguageIds }
    alt templateLanguageIds present
        Client->>Apollo: query GET_LANGUAGES(where.ids: templateLanguageIds)
        Apollo->>API: GET_LANGUAGES
        API->>DB: fetch languages
        DB-->>API: languages
        API-->>Apollo: { languages }
        Apollo-->>Client: { languages }
    else loading/error
        Client-->>Client: show loading / handle error
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: auto-populating the templates language dropdown from published template languages instead of using a hardcoded list.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 26-03-JC-feat-templates-language-dropdown

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@nx-cloud
Copy link
Copy Markdown

nx-cloud Bot commented Apr 8, 2026

🤖 Nx Cloud AI Fix Eligible

An automatically generated fix could have helped fix failing tasks for this run, but Self-healing CI is disabled for this workspace. Visit workspace settings to enable it and get automatic fixes in future runs.

To disable these notifications, a workspace admin can disable them in workspace settings.


View your CI Pipeline Execution ↗ for commit 2cb29fb

Command Status Duration Result
nx run journeys-admin-e2e:e2e ❌ Failed 6m 17s View ↗
nx run journeys-e2e:e2e ❌ Failed 3m 19s View ↗
nx run resources-e2e:e2e ✅ Succeeded 8s View ↗
nx run videos-admin-e2e:e2e ✅ Succeeded 4s View ↗
nx run watch-e2e:e2e ✅ Succeeded 17s View ↗
nx run-many --target=vercel-alias --projects=jo... ✅ Succeeded 2s View ↗
nx run-many --target=upload-sourcemaps --projec... ✅ Succeeded 9s View ↗
nx run-many --target=deploy --projects=journeys... ✅ Succeeded 2m 28s View ↗
Additional runs (12) ✅ Succeeded ... View ↗

☁️ Nx Cloud last updated this comment at 2026-04-10 04:22:11 UTC

@github-actions github-actions Bot temporarily deployed to Preview - watch April 8, 2026 00:25 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - journeys April 8, 2026 00:25 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - videos-admin April 8, 2026 00:25 Inactive
@github-actions github-actions Bot requested a deployment to Preview - resources April 8, 2026 00:25 Pending
@github-actions github-actions Bot had a problem deploying to Preview - journeys-admin April 8, 2026 00:25 Failure
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 8, 2026

The latest updates on your projects.

Name Status Preview Updated (UTC)
journeys ✅ Ready journeys preview Fri Apr 10 16:11:46 NZST 2026

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 8, 2026

The latest updates on your projects.

Name Status Preview Updated (UTC)
videos-admin ✅ Ready videos-admin preview Fri Apr 10 16:12:20 NZST 2026

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 8, 2026

The latest updates on your projects.

Name Status Preview Updated (UTC)
watch ✅ Ready watch preview Fri Apr 10 16:12:47 NZST 2026

@github-actions github-actions Bot temporarily deployed to Preview - watch April 8, 2026 00:30 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - videos-admin April 8, 2026 00:30 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - resources April 8, 2026 00:30 Inactive
@github-actions github-actions Bot had a problem deploying to Preview - journeys-admin April 8, 2026 00:30 Failure
@github-actions github-actions Bot temporarily deployed to Preview - journeys April 8, 2026 00:30 Inactive
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 8, 2026

The latest updates on your projects.

Name Status Preview Updated (UTC)
resources ✅ Ready resources preview Fri Apr 10 16:12:23 NZST 2026

@jianwei1 jianwei1 self-assigned this Apr 8, 2026
@linear
Copy link
Copy Markdown

linear Bot commented Apr 8, 2026

@github-actions github-actions Bot temporarily deployed to Preview - videos-admin April 8, 2026 03:13 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - resources April 8, 2026 03:13 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - journeys April 8, 2026 03:13 Inactive
@github-actions github-actions Bot had a problem deploying to Preview - journeys-admin April 8, 2026 03:13 Failure
@github-actions github-actions Bot temporarily deployed to Preview - watch April 8, 2026 03:13 Inactive
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (3)
apps/journeys-admin/pages/templates/index.tsx (1)

112-129: LGTM! Sequential-then-parallel fetch pattern is correct.

The implementation correctly fetches language IDs first (as the result is needed for the GET_LANGUAGES filter), then runs the remaining queries in parallel. The null-coalescing fallback to [] handles edge cases gracefully.

Consider using a generated type instead of the inline type annotation for better type safety and maintainability:

♻️ Optional: Use generated type

If a type is generated for GET_JOURNEY_TEMPLATE_LANGUAGE_IDS, you could import and use it:

+import { GetJourneyTemplateLanguageIds } from '../../__generated__/GetJourneyTemplateLanguageIds'

-  const { data: languageIdsData } = await apolloClient.query<{
-    journeyTemplateLanguageIds: string[]
-  }>({
+  const { data: languageIdsData } = await apolloClient.query<GetJourneyTemplateLanguageIds>({
     query: GET_JOURNEY_TEMPLATE_LANGUAGE_IDS
   })
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/journeys-admin/pages/templates/index.tsx` around lines 112 - 129,
Replace the inline response type used in the apolloClient.query for
GET_JOURNEY_TEMPLATE_LANGUAGE_IDS with the generated GraphQL type for that query
(e.g., the generated GetJourneyTemplateLanguageIds or similar); locate the query
call that assigns languageIdsData and the constant templateLanguageIds, import
the corresponding generated type from your GraphQL types file, and use it as the
generic type parameter to apolloClient.query to improve type safety and
maintainability.
apis/api-journeys/src/app/modules/journey/journey.resolver.ts (1)

212-224: LGTM! Clean resolver implementation.

The query correctly uses distinct for deduplication and select for minimal data transfer. Since languageId is non-nullable in the schema, the mapping is type-safe.

One optional consideration: the magic string 'jfp-team' is duplicated here and in the seed file. A shared constant could improve maintainability, but this matches the existing codebase pattern.

🔧 Optional: Extract magic string to a shared constant
// In a shared constants file (e.g., src/app/lib/constants.ts)
export const JFP_TEAM_ID = 'jfp-team'

Then use it in both the resolver and seed file.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apis/api-journeys/src/app/modules/journey/journey.resolver.ts` around lines
212 - 224, Replace the duplicated magic string 'jfp-team' in the
journeyTemplateLanguageIds resolver with a shared constant: create or reuse a
exported constant (e.g., JFP_TEAM_ID) and import it into journey.resolver.ts,
then use JFP_TEAM_ID in the where.teamId clause of the
journeyTemplateLanguageIds method so both resolver and seed file reference the
same value.
libs/journeys/ui/src/components/TemplateGallery/HeaderAndLanguageFilter/HeaderAndLanguageFilter.tsx (1)

183-202: Consider adding error handling for query failures.

The two-step query flow is well-implemented with the skip pattern preventing transient unfiltered requests. However, neither query has error handling. If GET_JOURNEY_TEMPLATE_LANGUAGE_IDS fails, users will see an indefinite loading state with no feedback.

♻️ Proposed enhancement for error visibility
- const { data: languageIdsData, loading: languageIdsLoading } = useQuery<{
+ const { data: languageIdsData, loading: languageIdsLoading, error: languageIdsError } = useQuery<{
    journeyTemplateLanguageIds: string[]
  }>(GET_JOURNEY_TEMPLATE_LANGUAGE_IDS)

  const templateLanguageIds = languageIdsData?.journeyTemplateLanguageIds

- const { data, loading: languagesLoading } = useQuery<
+ const { data, loading: languagesLoading, error: languagesError } = useQuery<
    GetLanguages,
    GetLanguagesVariables
  >(GET_LANGUAGES, {
    variables: {
      languageId: '529',
      where: {
        ids: templateLanguageIds
      }
    },
    skip: templateLanguageIds == null
  })

  const loading = languageIdsLoading || languagesLoading
+ const error = languageIdsError ?? languagesError
+
+ // Log errors for monitoring (per PR objectives: "log query errors for journeyTemplateLanguageIds")
+ useEffect(() => {
+   if (error != null) {
+     console.error('Language filter query error:', error)
+   }
+ }, [error])
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@libs/journeys/ui/src/components/TemplateGallery/HeaderAndLanguageFilter/HeaderAndLanguageFilter.tsx`
around lines 183 - 202, The component currently omits error handling for the two
GraphQL queries (GET_JOURNEY_TEMPLATE_LANGUAGE_IDS and GET_LANGUAGES) causing
indefinite loading on failure; update the useQuery destructurings to capture
errors (e.g., languageIdsError and languagesError), incorporate those into the
combined loading/ready logic (so loading becomes false when an error exists),
and render or surface an error state (a user-facing message or fallback UI) when
either languageIdsError or languagesError is set; also consider logging the
errors for diagnostics and keep the existing skip logic around
templateLanguageIds.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@apis/api-journeys/src/app/modules/journey/journey.resolver.ts`:
- Around line 212-224: Replace the duplicated magic string 'jfp-team' in the
journeyTemplateLanguageIds resolver with a shared constant: create or reuse a
exported constant (e.g., JFP_TEAM_ID) and import it into journey.resolver.ts,
then use JFP_TEAM_ID in the where.teamId clause of the
journeyTemplateLanguageIds method so both resolver and seed file reference the
same value.

In `@apps/journeys-admin/pages/templates/index.tsx`:
- Around line 112-129: Replace the inline response type used in the
apolloClient.query for GET_JOURNEY_TEMPLATE_LANGUAGE_IDS with the generated
GraphQL type for that query (e.g., the generated GetJourneyTemplateLanguageIds
or similar); locate the query call that assigns languageIdsData and the constant
templateLanguageIds, import the corresponding generated type from your GraphQL
types file, and use it as the generic type parameter to apolloClient.query to
improve type safety and maintainability.

In
`@libs/journeys/ui/src/components/TemplateGallery/HeaderAndLanguageFilter/HeaderAndLanguageFilter.tsx`:
- Around line 183-202: The component currently omits error handling for the two
GraphQL queries (GET_JOURNEY_TEMPLATE_LANGUAGE_IDS and GET_LANGUAGES) causing
indefinite loading on failure; update the useQuery destructurings to capture
errors (e.g., languageIdsError and languagesError), incorporate those into the
combined loading/ready logic (so loading becomes false when an error exists),
and render or surface an error state (a user-facing message or fallback UI) when
either languageIdsError or languagesError is set; also consider logging the
errors for diagnostics and keep the existing skip logic around
templateLanguageIds.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: c02d5d1e-3303-4d94-8ee9-8daba62ba943

📥 Commits

Reviewing files that changed from the base of the PR and between 9f0f429 and 18618a5.

📒 Files selected for processing (11)
  • apis/api-journeys/src/app/modules/journey/journey.graphql
  • apis/api-journeys/src/app/modules/journey/journey.resolver.spec.ts
  • apis/api-journeys/src/app/modules/journey/journey.resolver.ts
  • apps/journeys-admin/pages/templates/index.tsx
  • libs/journeys/ui/src/components/TemplateGallery/HeaderAndLanguageFilter/HeaderAndLanguageFilter.spec.tsx
  • libs/journeys/ui/src/components/TemplateGallery/HeaderAndLanguageFilter/HeaderAndLanguageFilter.stories.tsx
  • libs/journeys/ui/src/components/TemplateGallery/HeaderAndLanguageFilter/HeaderAndLanguageFilter.tsx
  • libs/journeys/ui/src/components/TemplateGallery/HeaderAndLanguageFilter/index.ts
  • libs/journeys/ui/src/components/TemplateGallery/TemplateGallery.spec.tsx
  • libs/journeys/ui/src/components/TemplateGallery/TemplateGallery.stories.tsx
  • libs/journeys/ui/src/components/TemplateGallery/data.ts

@jianwei1 jianwei1 force-pushed the 26-03-JC-feat-templates-language-dropdown branch from 18618a5 to e4272a0 Compare April 8, 2026 03:28
@github-actions github-actions Bot requested a deployment to Preview - journeys-admin April 8, 2026 03:29 Pending
@github-actions github-actions Bot requested a deployment to Preview - videos-admin April 8, 2026 03:29 Pending
@github-actions github-actions Bot requested a deployment to Preview - journeys April 8, 2026 03:29 Pending
Surface warnings/errors when the language IDs query returns empty, null,
or errors — aids debugging during ISR revalidation and client-side
rendering without changing the user-facing behavior.

Made-with: Cursor
@jianwei1
Copy link
Copy Markdown
Contributor Author

jianwei1 commented Apr 8, 2026

Review feedback addressed (f0d6554)

Fixed:

  • apps/journeys-admin/pages/templates/index.tsx:118 — Added console.warn when journeyTemplateLanguageIds returns empty or null in getStaticProps, making silent ISR failures visible
  • libs/journeys/ui/.../HeaderAndLanguageFilter.tsx:202 — Extracted error from the useQuery(GET_JOURNEY_TEMPLATE_LANGUAGE_IDS) call and added console.error so client-side query failures are logged instead of silently producing an empty dropdown

Challenged:

  • docs/plans/...-plan.md:116 — Plan doc wording is accurate as-is; "single consumer" refers to where the gql constant is defined, and the same sentence already acknowledges the getStaticProps import. See inline reply.

@github-actions github-actions Bot temporarily deployed to Preview - videos-admin April 8, 2026 21:24 Inactive
@github-actions github-actions Bot had a problem deploying to Preview - journeys-admin April 8, 2026 21:24 Failure
@github-actions github-actions Bot temporarily deployed to Preview - journeys April 8, 2026 21:24 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - resources April 8, 2026 21:24 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - watch April 8, 2026 21:24 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - videos-admin April 10, 2026 03:05 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - resources April 10, 2026 03:05 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - journeys April 10, 2026 03:05 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - journeys-admin April 10, 2026 03:05 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - watch April 10, 2026 03:05 Inactive
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 10, 2026

The latest updates on your projects.

Name Status Preview Updated (UTC)
journeys-admin ✅ Ready journeys-admin preview Fri Apr 10 16:13:12 NZST 2026

@jianwei1 jianwei1 enabled auto-merge April 10, 2026 03:10
@jianwei1 jianwei1 disabled auto-merge April 10, 2026 03:10
@jianwei1 jianwei1 enabled auto-merge April 10, 2026 04:08
@github-actions github-actions Bot temporarily deployed to Preview - journeys-admin April 10, 2026 04:09 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - watch April 10, 2026 04:09 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - journeys April 10, 2026 04:09 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - videos-admin April 10, 2026 04:09 Inactive
@github-actions github-actions Bot temporarily deployed to Preview - resources April 10, 2026 04:09 Inactive
@jianwei1 jianwei1 added this pull request to the merge queue Apr 10, 2026
Merged via the queue into main with commit c2e7fef Apr 10, 2026
28 of 30 checks passed
@jianwei1 jianwei1 deleted the 26-03-JC-feat-templates-language-dropdown branch April 10, 2026 04:18
@blacksmith-sh
Copy link
Copy Markdown
Contributor

blacksmith-sh Bot commented Apr 10, 2026

Found 3 test failures on Blacksmith runners:

Failures

Test View Logs
src/e2e/journeys.spec.ts/journeys View Logs
src/smoke/create-journey.spec.ts/admin can create a journey View Logs
src/smoke/login.spec.ts/admin can log in View Logs

Fix in Cursor

tanflem pushed a commit that referenced this pull request Apr 13, 2026
…te languages (#8973)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
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.

2 participants