Skip to content

Chore/20251218#382

Merged
SvenVw merged 11 commits into
developmentfrom
chore/20251218
Dec 19, 2025
Merged

Chore/20251218#382
SvenVw merged 11 commits into
developmentfrom
chore/20251218

Conversation

@SvenVw
Copy link
Copy Markdown
Collaborator

@SvenVw SvenVw commented Dec 18, 2025

Summary by CodeRabbit

  • New Features

    • Expanded welcome email content with more guidance on exploring the Atlas and soil analysis capabilities.
  • Chores

    • Upgraded many dependencies and dev tools; package manager bumped to pnpm 10.26.0 across repos and CI workflows.
    • Refined email templates for improved spacing, typography and layout.
    • Switched file upload/storage backend implementation (no user-facing workflow changes).

✏️ Tip: You can customize this high-level summary in your review settings.

@SvenVw SvenVw self-assigned this Dec 18, 2025
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Dec 18, 2025

⚠️ No Changeset found

Latest commit: c9fe717

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Dec 18, 2025

Warning

Rate limit exceeded

@SvenVw has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 17 minutes and 46 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 2393500 and c9fe717.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (1)
  • fdm-app/package.json (4 hunks)

Walkthrough

Updates pnpm from 10.23.0 to 10.26.0 across CI workflows and package manifests; replaces LocalFileStorage with createFsFileStorage in three upload routes; adjusts email component styling/content using Tailwind utilities; and bumps many dependencies in fdm-app and workspace manifests.

Changes

Cohort / File(s) Summary
CI Workflow pnpm version bumps
​.github/workflows/deploy-docs-test.yml, ​.github/workflows/deploy-docs.yml, ​.github/workflows/release.yml, ​.github/workflows/tests.yml, ​.github/workflows/typecheck.yml
Update pnpm setup action version from 10.23.010.26.0 in workflow files.
Email component Tailwind styling & content
fdm-app/app/components/blocks/email/invitation.tsx, fdm-app/app/components/blocks/email/magic-link.tsx, fdm-app/app/components/blocks/email/welcome.tsx
Replace pixel-based classes with Tailwind utilities, reintroduce Tailwind wrapper in magic-link.tsx, adjust spacing/typography, and add new content/list items in welcome.tsx.
File storage migration
fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.soil.analysis.new.upload.tsx, fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.$b_id.soil.analysis.upload.tsx, fdm-app/app/routes/farm.create.$b_id_farm.$calendar.upload.tsx
Replace import/usage of LocalFileStorage from @remix-run/file-storage/local with createFsFileStorage from @remix-run/file-storage/fs and call createFsFileStorage("./uploads/...") instead of new LocalFileStorage(...).
Package manager & workspace dependency bumps
fdm-app/package.json, fdm-calculator/package.json, fdm-core/package.json, fdm-data/package.json, fdm-docs/package.json, package.json, pnpm-workspace.yaml
Bump packageManager entries from pnpm@10.23.0pnpm@10.26.0; update workspace/catalog dev dependency versions (various packages).
fdm-app dependency upgrades (large)
fdm-app/package.json
Upgrade 20+ dependencies (e.g., React 19.2.119.2.3, React Router 7.10.07.11.0, Tailwind 4.1.174.1.18, @remix-run/file-storage 0.10.00.13.0, @react-email/* upgrades) and remove @types/maplibre-gl.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Files/areas needing extra attention:
    • fdm-app/package.json: broad dependency bumps — verify compatibility between React, React Router, Remix/file-storage, and Tailwind-related packages.
    • fdm-app/app/components/blocks/email/welcome.tsx: new content + layout changes — confirm rendering across email clients.
    • File-storage migration files: confirm createFsFileStorage has equivalent behavior (paths, permissions, error semantics) compared to LocalFileStorage.
    • Workspace-level changes in pnpm-workspace.yaml: verify onlyBuiltDependencies addition and catalog version alignment.

Possibly related PRs

Suggested reviewers

  • BoraIneviNMI
  • gerardhros

Poem

🐰 A hop of versions, light and quick,
pnpm climbs — ten-twenty-six!
Tailwind trims and lists expand,
Files find new homes on firmer land.
The warren hums — dependencies knit. 🥕

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The title 'Chore/20251218' is vague and non-descriptive, using only a date suffix without conveying the actual purpose or scope of the changes. Replace with a descriptive title that summarizes the main changes, such as 'Chore: bump pnpm to 10.26.0 and update dependencies' or 'Chore: update dependencies and email component styling'.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

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.

@coderabbitai coderabbitai Bot added branch:development Issue only affecting development, not the main branch (yet) dependencies Pull requests that update a dependency file fdm-app fdm-calculator fdm-core fdm-data fdm-docs labels Dec 18, 2025
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.

Actionable comments posted: 0

♻️ Duplicate comments (1)
fdm-app/app/components/blocks/email/welcome.tsx (1)

54-73: Same non-standard Tailwind utilities pattern as invitation.tsx.

This file uses the same non-standard fractional values (w-116.25, my-7.5, my-6.5). Ensure these are validated alongside the invitation.tsx review.

🧹 Nitpick comments (1)
fdm-app/package.json (1)

31-32: Inconsistent version pinning for @react-email/tailwind.

@react-email/tailwind is pinned to exact version 2.0.2 without a caret (^), while @react-email/components uses ^1.0.2. If this is intentional (e.g., due to known compatibility issues), consider adding a comment. Otherwise, align the version specifier style.

🔎 Suggested change for consistency:
-        "@react-email/tailwind": "2.0.2",
+        "@react-email/tailwind": "^2.0.2",
📜 Review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between adcdecc and 2a71ddc.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (18)
  • .github/workflows/deploy-docs-test.yml (1 hunks)
  • .github/workflows/deploy-docs.yml (1 hunks)
  • .github/workflows/release.yml (1 hunks)
  • .github/workflows/tests.yml (3 hunks)
  • .github/workflows/typecheck.yml (1 hunks)
  • fdm-app/app/components/blocks/email/invitation.tsx (1 hunks)
  • fdm-app/app/components/blocks/email/magic-link.tsx (2 hunks)
  • fdm-app/app/components/blocks/email/welcome.tsx (3 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.soil.analysis.new.upload.tsx (2 hunks)
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.$b_id.soil.analysis.upload.tsx (2 hunks)
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.upload.tsx (2 hunks)
  • fdm-app/package.json (4 hunks)
  • fdm-calculator/package.json (1 hunks)
  • fdm-core/package.json (1 hunks)
  • fdm-data/package.json (1 hunks)
  • fdm-docs/package.json (1 hunks)
  • package.json (1 hunks)
  • pnpm-workspace.yaml (1 hunks)
🧰 Additional context used
🧠 Learnings (18)
📓 Common learnings
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 6
File: fdm-app/vite.config.ts:5-9
Timestamp: 2024-11-25T12:42:32.783Z
Learning: In the `fdm-app` project, SvenVw is preparing for migration to Remix v3 and may include type declarations or configurations for v3 features in advance, such as in `vite.config.ts`.
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 279
File: fdm-app/app/routes/farm.$b_id_farm.$calendar.norms.tsx:277-283
Timestamp: 2025-09-26T08:34:50.413Z
Learning: In the fdm project, fdm-core and fdm-app are updated together as part of a monorepo structure, which eliminates legacy data concerns when new fields like b_isproductive are introduced. Both packages are synchronized, so there's no need for defensive coding against undefined values for newly introduced database fields.
📚 Learning: 2025-09-26T08:34:50.413Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 279
File: fdm-app/app/routes/farm.$b_id_farm.$calendar.norms.tsx:277-283
Timestamp: 2025-09-26T08:34:50.413Z
Learning: In the fdm project, fdm-core and fdm-app are updated together as part of a monorepo structure, which eliminates legacy data concerns when new fields like b_isproductive are introduced. Both packages are synchronized, so there's no need for defensive coding against undefined values for newly introduced database fields.

Applied to files:

  • fdm-core/package.json
  • fdm-data/package.json
  • fdm-calculator/package.json
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.upload.tsx
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.$b_id.soil.analysis.upload.tsx
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.soil.analysis.new.upload.tsx
  • fdm-docs/package.json
  • fdm-app/package.json
📚 Learning: 2025-08-13T10:33:05.313Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 0
File: :0-0
Timestamp: 2025-08-13T10:33:05.313Z
Learning: In the fdm project, fdm-calculator integration for new features like b_lu_variety is handled in separate updates from the core data model changes. When fdm-core functions are updated to support new fields, fdm-calculator can consume these enhanced APIs without requiring changes in the same PR that introduces the core functionality.

Applied to files:

  • fdm-core/package.json
  • fdm-data/package.json
  • fdm-calculator/package.json
  • fdm-docs/package.json
📚 Learning: 2025-01-31T15:05:14.310Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 67
File: fdm-app/app/routes/farm.create.$b_id_farm.fields.$b_id.tsx:601-610
Timestamp: 2025-01-31T15:05:14.310Z
Learning: The `updateField` function in fdm-core has optional parameters after `fdm` and `b_id`. The TypeScript definitions might show 8 required parameters due to a potential version mismatch.

Applied to files:

  • fdm-core/package.json
📚 Learning: 2025-05-28T07:57:19.217Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 147
File: fdm-docs/package.json:39-39
Timestamp: 2025-05-28T07:57:19.217Z
Learning: In pnpm workspaces, the syntax `"typescript": "catalog:"` is valid and correct. It references the version defined in the workspace's catalog section in pnpm-workspace.yaml, allowing consistent dependency versions across packages in a monorepo.

Applied to files:

  • fdm-data/package.json
  • fdm-calculator/package.json
  • pnpm-workspace.yaml
  • fdm-app/package.json
📚 Learning: 2025-05-28T07:57:19.217Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 147
File: fdm-docs/package.json:39-39
Timestamp: 2025-05-28T07:57:19.217Z
Learning: In pnpm workspaces, the syntax `"typescript": "catalog:"` is valid and correct. It references the version defined in the workspace's catalog section in pnpm-workspace.yaml, allowing consistent dependency versions across packages in a monorepo. The catalog: syntax without a package name is the shorthand for referencing the default catalog.

Applied to files:

  • fdm-data/package.json
  • fdm-calculator/package.json
  • pnpm-workspace.yaml
  • fdm-app/package.json
📚 Learning: 2025-01-09T16:03:37.764Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 42
File: fdm-app/app/routes/farm/_b_id_farm/layout.tsx:46-95
Timestamp: 2025-01-09T16:03:37.764Z
Learning: A shared layout component `FarmLayoutBase` has been created in `components/custom/farm-layout-base.tsx` to maintain consistency across farm-related pages. The component handles farm selection dropdown, breadcrumb navigation, and provides a common layout structure.

Applied to files:

  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.upload.tsx
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.$b_id.soil.analysis.upload.tsx
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.soil.analysis.new.upload.tsx
📚 Learning: 2025-09-25T15:10:59.708Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 272
File: fdm-app/app/store/field-fertilizer-form.tsx:45-47
Timestamp: 2025-09-25T15:10:59.708Z
Learning: In the FDM application, Zustand stores with persist middleware using sessionStorage/localStorage don't require SSR hardening guards. The existing store patterns in fdm-app work without typeof window checks or memory storage fallbacks, as evidenced by the changelog store using createJSONStorage(() => localStorage) directly.

Applied to files:

  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.upload.tsx
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.$b_id.soil.analysis.upload.tsx
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.soil.analysis.new.upload.tsx
📚 Learning: 2025-12-15T12:19:47.858Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 376
File: fdm-app/app/routes/farm.$b_id_farm.$calendar.atlas.elevation.tsx:187-213
Timestamp: 2025-12-15T12:19:47.858Z
Learning: When reviewing code, prefer storing only non-sensitive UI/state data in sessionStorage. For map viewState (e.g., longitude/latitude), ensure it represents non-personal business data and that persistence across sessions is justified, documented, and respects user privacy. If persisting, use a clearly scoped, namespaced key, guard access with try/catch, and avoid syncing with servers or exposing data to third-party scripts. Apply this guideline to all TSX files that manage client-side UI state.

Applied to files:

  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.upload.tsx
  • fdm-app/app/components/blocks/email/welcome.tsx
  • fdm-app/app/components/blocks/email/magic-link.tsx
  • fdm-app/app/components/blocks/email/invitation.tsx
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.$b_id.soil.analysis.upload.tsx
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.soil.analysis.new.upload.tsx
📚 Learning: 2024-11-25T12:42:32.783Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 6
File: fdm-app/vite.config.ts:5-9
Timestamp: 2024-11-25T12:42:32.783Z
Learning: In the `fdm-app` project, SvenVw is preparing for migration to Remix v3 and may include type declarations or configurations for v3 features in advance, such as in `vite.config.ts`.

Applied to files:

  • pnpm-workspace.yaml
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.$b_id.soil.analysis.upload.tsx
  • fdm-app/package.json
📚 Learning: 2025-11-04T13:46:46.432Z
Learnt from: BoraIneviNMI
Repo: SvenVw/fdm PR: 0
File: :0-0
Timestamp: 2025-11-04T13:46:46.432Z
Learning: In the FDM app, file upload validation uses a two-layer approach: client-side Zod schemas (e.g., in fdm-app/app/components/blocks/soil/form-upload.tsx) provide early user-facing error feedback before upload, while server-side upload handlers enforce the same limits for security.

Applied to files:

  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.$b_id.soil.analysis.upload.tsx
📚 Learning: 2024-12-11T12:09:35.540Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 20
File: fdm-app/tsconfig.json:8-9
Timestamp: 2024-12-11T12:09:35.540Z
Learning: In the `fdm-app/tsconfig.json` file, the include path `.react-router/types/**/*` refers to a build-time generated directory which is intentionally not included in the repository.

Applied to files:

  • fdm-app/package.json
📚 Learning: 2025-01-14T16:06:21.832Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 45
File: fdm-app/app/routes/farm.$b_id_farm.settings._index.tsx:1-1
Timestamp: 2025-01-14T16:06:21.832Z
Learning: In the fdm project, `redirect` and other routing utilities should be imported from `react-router` instead of `react-router-dom`.

Applied to files:

  • fdm-app/package.json
📚 Learning: 2025-01-14T16:06:24.294Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 45
File: fdm-app/app/routes/farm.$b_id_farm._index.tsx:1-1
Timestamp: 2025-01-14T16:06:24.294Z
Learning: In the fdm-app codebase, the `redirect` function should be imported from `react-router`, not `react-router-dom`.

Applied to files:

  • fdm-app/package.json
📚 Learning: 2025-04-18T13:49:17.029Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 124
File: fdm-app/app/components/custom/farm/farm-title.tsx:3-3
Timestamp: 2025-04-18T13:49:17.029Z
Learning: In the fdm project, NavLink and other routing components can be imported from either "react-router" or "react-router-dom" as react-router-dom is included in react-router.

Applied to files:

  • fdm-app/package.json
📚 Learning: 2025-10-15T08:11:10.649Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 299
File: fdm-docs/package.json:22-35
Timestamp: 2025-10-15T08:11:10.649Z
Learning: Docusaurus versions 3.7 and later support both React 18 and React 19. The peerDependencies are specified as "react": "^18.0.0 || ^19.0.0" and "react-dom": "^18.0.0 || ^19.0.0".

Applied to files:

  • fdm-app/package.json
📚 Learning: 2025-05-09T14:41:43.484Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 138
File: fdm-app/app/components/custom/fertilizer-applications/form.tsx:6-6
Timestamp: 2025-05-09T14:41:43.484Z
Learning: The project uses React Router v7 which exports a Form component directly from the "react-router" package, making importing from "remix-run/react" unnecessary.

Applied to files:

  • fdm-app/package.json
📚 Learning: 2025-05-09T14:41:43.484Z
Learnt from: SvenVw
Repo: SvenVw/fdm PR: 138
File: fdm-app/app/components/custom/fertilizer-applications/form.tsx:6-6
Timestamp: 2025-05-09T14:41:43.484Z
Learning: The project uses React Router v7 which exports a Form component directly from the "react-router" package, not from "remix-run/react".

Applied to files:

  • fdm-app/package.json
🔇 Additional comments (27)
fdm-docs/package.json (1)

58-58: LGTM!

The pnpm version bump to 10.26.0 is consistent with the monorepo-wide upgrade across all workspace packages and CI workflows.

package.json (1)

27-32: LGTM!

Standard maintenance updates for dev tooling (biome, changesets, turbo) and the pnpm version bump are appropriate. These are minor/patch version bumps with no expected breaking changes.

fdm-calculator/package.json (1)

64-64: LGTM!

The pnpm version bump is consistent with the monorepo-wide upgrade.

fdm-core/package.json (1)

77-77: LGTM!

The pnpm version bump is consistent with the monorepo-wide upgrade.

fdm-data/package.json (1)

59-59: LGTM!

The pnpm version bump is consistent with the monorepo-wide upgrade.

pnpm-workspace.yaml (3)

14-14: Verify @types/node major version bump.

The @types/node version has been bumped from v24 to v25, which is a major version change. While typically type definition updates are backward-compatible, major versions can introduce breaking changes to type signatures.

Ensure TypeScript compilation passes across all packages. The CI typecheck workflow should catch any incompatibilities.


18-18: Note the drizzle-orm minor version bump.

The drizzle-orm update from ^0.44.7 to ^0.45.1 is a minor version bump. Drizzle ORM occasionally introduces API changes in minor versions given it's pre-1.0.

Verify that existing database queries and schema definitions work correctly with this version. The test suite should cover this.


8-27: Catalog dependency updates look reasonable.

The remaining version bumps are minor/patch updates for tooling and dependencies. These align with the broader maintenance effort in this PR.

fdm-app/app/components/blocks/email/magic-link.tsx (5)

14-14: Good addition of @react-email/tailwind.

The Tailwind wrapper enables proper Tailwind CSS processing for email components.


47-48: Verify custom spacing values work with @react-email/tailwind.

Classes like w-116.25, mt-7.5, my-7.5, and mt-1.25 use non-standard Tailwind spacing values. Standard Tailwind uses integer or half-step values (e.g., mt-7, mt-8), not arbitrary decimals like 7.5 or 116.25.

These may either:

  1. Be interpreted as arbitrary values (though syntax would typically be w-[465px])
  2. Require a custom Tailwind config within @react-email/tailwind
  3. Be silently ignored, resulting in no styling

Please verify these classes render correctly in the email output. Consider using standard Tailwind spacing or explicit arbitrary value syntax:

-<Container className="border border-solid border-[#eaeaea] rounded my-10 mx-auto p-5 w-116.25">
-    <Section className="mt-7.5 text-center">
+<Container className="border border-solid border-[#eaeaea] rounded my-10 mx-auto p-5 w-[465px]">
+    <Section className="mt-[30px] text-center">

56-56: Same concern with my-7.5.

This non-standard spacing class may not render as expected without custom Tailwind configuration.


85-85: Same concern with mt-1.25.

The mt-1.25 class uses a non-standard spacing value. Standard Tailwind would be mt-1 (4px) or mt-1.5 (6px), but mt-1.25 (5px) is not a default utility.


66-73: Button styling looks good.

The button has appropriate padding, color contrast, and includes an aria-label for accessibility.

fdm-app/app/components/blocks/email/invitation.tsx (2)

66-112: Styling updates look consistent and well-structured.

The migration from pixel-based arbitrary values (e.g., leading-[24px]) to Tailwind scale utilities (e.g., leading-6) improves maintainability. The button styling with proper padding, borders, and colors is clean.


57-58: Replace non-standard Tailwind utility classes with arbitrary values.

The classes w-116.25, my-7.5, and mt-7.5 are not valid Tailwind utilities. Standard width and spacing utilities use the spacing scale (like w-64) or fractions/percentages with arbitrary values (like w-[465px]). @react-email/tailwind uses Tailwind CSS 4.1.12, which does not support bare fractional class names like these without explicit theme configuration.

Use square brackets to generate properties on the fly using arbitrary values: w-[465px], my-[30px], mt-[30px].

fdm-app/app/components/blocks/email/welcome.tsx (2)

75-131: Content expansion and layout improvements look good.

The expanded feature lists under "Wat kun je nu doen?" and "De Atlas verkennen" provide helpful onboarding information. The new list item about microreliëf (Line 120-122) complements the existing Atlas features.


134-152: Footer section styling is consistent.

The button and closing text styling align with the invitation email component, maintaining design consistency across email templates.

fdm-app/package.json (4)

70-77: React 19 and react-router 7.11.0 updates look good.

These versions align with the latest stable releases. React 19.2.3 is current, and react-router 7.11.0 is compatible. Based on learnings, this project uses React Router v7 with imports from "react-router" package.


107-116: Tailwind CSS v4.1.18 and pnpm 10.26.0 updates are consistent.

The Tailwind version aligns with the v4 utility syntax used in the email components. The pnpm version matches the updates in the workflow files.


61-61: maplibre-gl v5.15.0 includes built-in TypeScript declarations—removing @types/maplibre-gl is correct.

MapLibre-gl provides its own type definitions, making @types/maplibre-gl a stub package that is not needed. Type safety is maintained with this change.


35-36: @remix-run/file-storage v0.13.0 migration is complete.

All usages of LocalFileStorage have been successfully updated to createFsFileStorage across the file upload routes. The new API is properly implemented in three route handlers with correct import paths.

.github/workflows/typecheck.yml (1)

27-30: pnpm version update is consistent with package.json.

The version bump to 10.26.0 aligns with the packageManager field in fdm-app/package.json, ensuring CI uses the same pnpm version as local development.

.github/workflows/release.yml (1)

29-32: pnpm version update maintains consistency across workflows.

The update to 10.26.0 aligns with typecheck.yml and the package.json packageManager field, ensuring consistent tooling across all CI pipelines.

fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.soil.analysis.new.upload.tsx (1)

1-1: LGTM - Consistent migration pattern.

The file-storage migration follows the same pattern as other upload routes in this PR. The storage initialization and usage are consistent.

Also applies to: 121-121

fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.$b_id.soil.analysis.upload.tsx (1)

1-1: LGTM - Consistent migration pattern.

The file-storage migration is consistent with other upload routes. The implementation correctly replaces LocalFileStorage with createFsFileStorage.

Also applies to: 122-122

.github/workflows/tests.yml (1)

56-56: pnpm 10.26.0 is the latest stable version with no known issues.

The version 10.26.0 is the latest pnpm version and was published 2 days ago. It introduces stricter security defaults for git-hosted dependencies, adds allowBuilds for granular script permissions, and includes a new setting to block exotic transitive dependencies. No security advisories or critical problems have been identified with this version.

fdm-app/app/routes/farm.create.$b_id_farm.$calendar.upload.tsx (1)

1-1: The @remix-run/file-storage v0.13.0 migration to createFsFileStorage is correctly implemented.

The import from @remix-run/file-storage/fs, the API usage with createFsFileStorage("./uploads/shapefiles"), and the storage operations (set, get, remove) all align with v0.13.0 specifications. The code properly implements resource cleanup with a try-finally block that calls storage.remove(key) for all uploaded files.

@codecov
Copy link
Copy Markdown

codecov Bot commented Dec 18, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.20%. Comparing base (adcdecc) to head (c9fe717).
⚠️ Report is 12 commits behind head on development.

Additional details and impacted files
@@             Coverage Diff              @@
##           development     #382   +/-   ##
============================================
  Coverage        87.20%   87.20%           
============================================
  Files               91       91           
  Lines             4542     4542           
  Branches          1385     1385           
============================================
  Hits              3961     3961           
  Misses             581      581           
Flag Coverage Δ
fdm-calculator 87.05% <ø> (ø)
fdm-core 86.99% <ø> (ø)
fdm-data 92.12% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@SvenVw SvenVw merged commit d8506db into development Dec 19, 2025
11 checks passed
@coderabbitai coderabbitai Bot mentioned this pull request Jan 5, 2026
@coderabbitai coderabbitai Bot mentioned this pull request Mar 11, 2026
@coderabbitai coderabbitai Bot mentioned this pull request Apr 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

branch:development Issue only affecting development, not the main branch (yet) dependencies Pull requests that update a dependency file fdm-app fdm-calculator fdm-core fdm-data fdm-docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant