Skip to content

Release/2025 09#282

Merged
SvenVw merged 224 commits into
mainfrom
release/2025-09
Sep 30, 2025
Merged

Release/2025 09#282
SvenVw merged 224 commits into
mainfrom
release/2025-09

Conversation

@SvenVw
Copy link
Copy Markdown
Collaborator

@SvenVw SvenVw commented Sep 29, 2025

Summary by CodeRabbit

  • New Features

    • Add fertilizer creation/management flows, including custom and based-on options.
    • Introduce interactive Fields table with selection, filtering (productive-only), and bulk fertilization.
    • Enable accepting/rejecting organization invitations via dedicated page and email links.
    • Add farm deletion confirmation dialog.
  • Improvements

    • Enhanced nitrogen balance: faster, batched deposition, refined emissions.
    • Richer norms logic with subtype handling and derogation-free zones; field error indicators.
    • Maps auto-fit to selected field/bounds.
    • Sign-in captures timezone; magic link valid for 15 minutes.
  • UI/UX

    • Fertilizer apps/cards, breadcrumbs, tooltips, and loading states.
  • Documentation

    • Update What’s New and CHANGELOG (v0.23.0).
  • Chores

    • Dependency updates and CI/tooling bumps.

SvenVw added 30 commits August 15, 2025 19:27
…ply of fertilizer application by interating only once over each fertilizer application
…onia emissions of fertilizer application by interating only once over each fertilizer application
…sition values by requesting more efficient the remote GeoTIFF
…many fields by organizing the calculations in batches
@SvenVw SvenVw self-assigned this Sep 29, 2025
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Sep 29, 2025

⚠️ No Changeset found

Latest commit: 3041976

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 Sep 29, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

Broad update across app and calculator: pnpm/tooling bumps; new fertilizer creation/management routes and components; field table/filter stores and UI; invitation email/response flow; farm dashboard and delete flow; nitrogen balance refactor with batched deposition; 2025 norms data/logic updates; map ref fitting; signin timezone capture; storage made SSR-safe; extensive tests added/adjusted; version/changelogs updated.

Changes

Cohort / File(s) Summary
CI: pnpm bump
.github/workflows/deploy-docs*.yml, .github/workflows/release.yml, .github/workflows/tests.yml, fdm-app/package.json, fdm-calculator/package.json
Update pnpm/action-setup inputs and packageManager to 10.17.0; no flow changes.
Changelogs
fdm-app/CHANGELOG.md, fdm-app/app/routes/about.whats-new._index.tsx, fdm-calculator/CHANGELOG.md
Add new version entries (app 0.23.0, calculator 0.7.0) and “What’s new” content; text-only updates.
Invitations flow
fdm-app/app/components/blocks/email/invitation.tsx, fdm-app/app/routes/organization.$slug.tsx, fdm-app/app/routes/organization.invitations.$invitation_id.respond.tsx
Add invitationId to email props and accept/reject links; capture invitationId; new respond route with loader/action/UI and error boundary.
Signin and magic-link text
fdm-app/app/components/blocks/email/magic-link.tsx, fdm-app/app/routes/signin._index.tsx, fdm-app/app/routes/signin.check-your-email.tsx, fdm-app/app/routes/signin.invalid_token.tsx
Update validity text to 15 minutes; add hidden timeZone field and propagate via redirect; simplify cookie settings check via optional chaining.
Fertilizer management (new UI, routes, store)
fdm-app/app/components/blocks/fertilizer/* (new-.tsx, applications/), fdm-app/app/store/field-fertilizer-form.tsx, fdm-app/app/routes/farm.$b_id_farm.$calendar.field.fertilizer.*, fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.fertilizer.manage.new*, fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fertilizers*, fdm-app/app/routes/farm.$b_id_farm.fertilizers.new*
Add components and persistent store for fertilizer forms; new/manage routes and loaders/actions for creating custom/based-on fertilizers; integrate dialog state and navigation; refactor forms to composed blocks; pass new props and IDs.
Fields listing/table and filtering
fdm-app/app/components/blocks/fields/* (column-header, columns, table), fdm-app/app/components/custom/field-filter-toggle.tsx, fdm-app/app/store/field-filter.ts, fdm-app/app/routes/farm.$b_id_farm.$calendar.field._index.tsx, fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.tsx, fdm-app/app/components/blocks/cultivation/list-plan.tsx
Introduce DataTable, columns, and header; add productive-only filter store and toggle; loaders return extended field data; client-side filtering/sorting; cultivation plan aggregates area and sorts.
Norms and nitrogen balance UI updates
fdm-app/app/components/blocks/norms/*, fdm-app/app/routes/farm.$b_id_farm.$calendar.norms.tsx, fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx
Add field-level error indicators and tooltip; restructure loader to per-field Promise.allSettled with diagnostics; adopt productive-only filtering; insert FieldFilterToggle; adjust payload shapes.
Maps fit-to-bounds
fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.atlas.tsx, fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.$b_id._index.tsx
Add MapRef and useEffect to fit bounds on viewState/selection changes; pass ref to MapGL.
Farm dashboard and delete feature
fdm-app/app/routes/farm.$b_id_farm._index.tsx, fdm-app/app/components/blocks/farm/delete.tsx, fdm-app/app/routes/farm.$b_id_farm.settings.delete.tsx
New dashboard loader/component with totals; add delete dialog component; add delete route with permission checks and action.
Routing/structure tweaks
fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.tsx, fdm-app/app/components/blocks/header/create-farm.tsx, fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fertilizers.tsx, fdm-app/app/routes/farm.$b_id_farm.fertilizers._index.tsx, fdm-app/app/routes/farm.$b_id_farm.fertilizers.new.tsx
Conditional rendering based on path; breadcrumb adjustments; props typing updates; manage sub-routes bypass full layout.
File upload imports
fdm-app/app/routes/*soil.analysis*.tsx, fdm-app/app/routes/farm.create.$b_id_farm.$calendar.upload.tsx
Switch from @mjackson/* to @remix-run/* storage/form-data-parser imports; logic unchanged.
Cookie settings guards
fdm-app/app/components/blocks/sidebar/*, fdm-app/app/routes/welcome.tsx
Replace typeof window checks with optional chaining.
Storage (SSR-safe)
fdm-app/app/store/storage.ts, fdm-app/app/store/changelog.ts
Add ssrSafeJSONStorage; use it for persisted changelog store.
Nitrogen balance core refactor (calculator)
fdm-calculator/src/balance/nitrogen/index.ts, .../input.ts, .../supply/deposition.ts, .../supply/index.ts, related tests
Batch deposition via calculateAllFieldsNitrogenSupplyByDeposition; adjust function signatures (sync field calc, deposition passed in); remove fdmPublicDataUrl from inputs; update tests and add perf test.
Ammonia emissions consolidation (calculator)
fdm-calculator/src/balance/nitrogen/emission/ammonia/fertilizers.ts, remove .../mineral.ts, .../manure.ts, .../compost.ts, .../other.ts and tests
Replace per-type calculators with a single aggregated ammonia-by-fertilizers module; remove old modules and tests; add integrated tests.
Fertilizer supply consolidation (calculator)
fdm-calculator/src/balance/nitrogen/supply/fertilizers.ts, remove .../fertilizers/*.{ts,test.ts} per-type, plus index.ts
Add unified calculateNitrogenSupplyByFertilizers; remove per-type implementations and aggregator; update tests.
Norms 2025 updates (calculator)
fdm-calculator/src/norms/nl/2025/*.ts, *.test.ts, stikstofgebruiksnorm-data.ts, types.d.ts
Switch to GeoTIFF lookups (NV, GWBG, Natura2000, derogatievrije zones); add isFieldInDerogatieVrijeZone; introduce sub_types-based norms and subtype selection; expand tests and type comments.
Misc calculator tests
fdm-calculator/src/balance/nitrogen/index.test.ts, .../input.test.ts, .../performance.test.ts, .../supply/fertilizers.test.ts, .../supply/deposition.test.ts
Align with new APIs and data shapes; add performance coverage; adjust imports/fixtures.
Minor app import fix
fdm-app/app/routes/farm._index.tsx
Use alias import for calendar utility; behavior unchanged.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User
  participant AppRoute as Remix Route<br/>fertilizer.manage.new
  participant Server as Loader/Action
  participant Core as fdm-core/fdm-calculator
  participant Store as FieldFertilizerFormStore

  User->>AppRoute: Open "Add Fertilizer" UI
  AppRoute->>Server: loader(request, params)
  Server->>Core: getFarm/getFertilizers/getParameters
  Core-->>Server: loaderData
  Server-->>AppRoute: loaderData
  AppRoute->>Store: load(b_id_farm, id)
  alt Saved form exists
    AppRoute->>AppRoute: Open dialog with saved values
  end
  User->>AppRoute: Submit form
  AppRoute->>Server: action(formData, params)
  Server->>Core: addFertilizerToCatalogue -> addFertilizer
  Core-->>Server: new p_id
  Server-->>AppRoute: redirect with toast
  AppRoute->>Store: delete(b_id_farm, id)
Loading
sequenceDiagram
  autonumber
  actor User
  participant Email as Invitation Email
  participant Route as /organization.invitations/:id/respond
  participant Server as Loader/Action
  participant Org as Organization API

  User->>Email: Click Accept/Reject link (with invitationId)
  Email->>Route: GET ?intent=accept|reject
  Route->>Server: loader(invitation_id)
  Server->>Org: getPendingInvitation
  Org-->>Server: Invitation data
  Server-->>Route: loaderData
  alt intent=accept
    Route->>Server: action(intent=accept)
    Server->>Org: acceptInvitation
    Org-->>Server: OK
    Server-->>Route: redirect to organization
  else intent=reject
    User->>Route: Submit Reject form
    Route->>Server: action(intent=reject)
    Server->>Org: rejectInvitation
    Org-->>Server: OK
    Server-->>Route: redirect to invitations
  end
Loading
sequenceDiagram
  autonumber
  participant App as fdm-app Norms/N Balance
  participant Calc as fdm-calculator
  participant Public as Public Data (GeoTIFFs)

  App->>Calc: collectInputForNitrogenBalance(...)
  Calc->>Public: fetch GeoTIFFs (batch deposition, zones)
  Public-->>Calc: values per field
  Calc->>Calc: calculateAllFieldsNitrogenSupplyByDeposition
  Calc->>Calc: calculateNitrogenBalanceField (sync, per field)
  Calc-->>App: NitrogenBalance (numeric)
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~180 minutes

Possibly related PRs

Suggested labels

fdm-app, fdm-calculator, branch:main

Suggested reviewers

  • gerardhros

Poem

A rabbit taps the fields in rows,
Hops through norms where GeoTIFF flows.
New seeds of forms in fertile ground,
Invite replies with a joyful sound.
Tables sort, filters gleam—so neat!
Batch the clouds; the balance sweet.
Thump-thump: release 0.23—complete! 🥕✨

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch release/2025-09

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1c0b8fd and 3041976.

⛔ Files ignored due to path filters (3)
  • fdm-app/app/lib/config.ts is excluded by !fdm-app/app/lib/**
  • fdm-app/app/lib/email.server.ts is excluded by !fdm-app/app/lib/**
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (107)
  • .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)
  • fdm-app/CHANGELOG.md (1 hunks)
  • fdm-app/app/components/blocks/cultivation/list-plan.tsx (4 hunks)
  • fdm-app/app/components/blocks/email/invitation.tsx (4 hunks)
  • fdm-app/app/components/blocks/email/magic-link.tsx (1 hunks)
  • fdm-app/app/components/blocks/farm/delete.tsx (1 hunks)
  • fdm-app/app/components/blocks/fertilizer-applications/card.tsx (5 hunks)
  • fdm-app/app/components/blocks/fertilizer-applications/form.tsx (4 hunks)
  • fdm-app/app/components/blocks/fertilizer/new-custom-fertilizer-page.tsx (1 hunks)
  • fdm-app/app/components/blocks/fertilizer/new-fertilizer-page.tsx (1 hunks)
  • fdm-app/app/components/blocks/fertilizer/new-fertilizer.tsx (1 hunks)
  • fdm-app/app/components/blocks/fields/column-header.tsx (1 hunks)
  • fdm-app/app/components/blocks/fields/columns.tsx (1 hunks)
  • fdm-app/app/components/blocks/fields/table.tsx (1 hunks)
  • fdm-app/app/components/blocks/header/create-farm.tsx (1 hunks)
  • fdm-app/app/components/blocks/norms/farm-norms.tsx (1 hunks)
  • fdm-app/app/components/blocks/norms/field-norms.tsx (3 hunks)
  • fdm-app/app/components/blocks/sidebar/platform.tsx (1 hunks)
  • fdm-app/app/components/blocks/sidebar/user.tsx (1 hunks)
  • fdm-app/app/components/custom/field-filter-toggle.tsx (1 hunks)
  • fdm-app/app/routes/about.whats-new._index.tsx (3 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.balance.nitrogen._index.tsx (5 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.atlas.tsx (3 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.fertilizer.manage.new.$p_id.tsx (1 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.fertilizer.manage.new._index.tsx (1 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.fertilizer.manage.new.custom.tsx (1 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.$b_id.fertilizer.manage.new.tsx (1 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.$b_id_farm.$calendar.field.$b_id.tsx (2 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field._index.tsx (6 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.fertilizer._index.tsx (1 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.fertilizer.manage.new.$p_id.tsx (1 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.fertilizer.manage.new._index.tsx (1 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.fertilizer.manage.new.custom.tsx (1 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.field.fertilizer.manage.new.tsx (1 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.$calendar.norms.tsx (8 hunks)
  • fdm-app/app/routes/farm.$b_id_farm._index.tsx (1 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.fertilizers.$p_id.tsx (1 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.fertilizers._index.tsx (2 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.fertilizers.new.$p_id.tsx (2 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.fertilizers.new._index.tsx (2 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.fertilizers.new.custom.tsx (2 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.fertilizers.new.tsx (2 hunks)
  • fdm-app/app/routes/farm.$b_id_farm.settings.delete.tsx (2 hunks)
  • fdm-app/app/routes/farm._index.tsx (1 hunks)
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.access.tsx (1 hunks)
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fertilizers.$b_lu_catalogue.manage.new.$p_id.tsx (1 hunks)
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fertilizers.$b_lu_catalogue.manage.new._index.tsx (1 hunks)
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fertilizers.$b_lu_catalogue.manage.new.custom.tsx (1 hunks)
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fertilizers.$b_lu_catalogue.manage.new.tsx (1 hunks)
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fertilizers.tsx (2 hunks)
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.fields.$b_id._index.tsx (3 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.fields.tsx (8 hunks)
  • fdm-app/app/routes/farm.create.$b_id_farm.$calendar.upload.tsx (1 hunks)
  • fdm-app/app/routes/organization.$slug.tsx (2 hunks)
  • fdm-app/app/routes/organization.invitations.$invitation_id.respond.tsx (1 hunks)
  • fdm-app/app/routes/signin._index.tsx (6 hunks)
  • fdm-app/app/routes/signin.check-your-email.tsx (2 hunks)
  • fdm-app/app/routes/signin.invalid_token.tsx (2 hunks)
  • fdm-app/app/routes/welcome.tsx (1 hunks)
  • fdm-app/app/store/changelog.ts (2 hunks)
  • fdm-app/app/store/field-fertilizer-form.tsx (1 hunks)
  • fdm-app/app/store/field-filter.ts (1 hunks)
  • fdm-app/app/store/storage.ts (1 hunks)
  • fdm-app/package.json (4 hunks)
  • fdm-calculator/CHANGELOG.md (1 hunks)
  • fdm-calculator/package.json (2 hunks)
  • fdm-calculator/src/balance/nitrogen/emission/ammonia/fertilizers.test.ts (1 hunks)
  • fdm-calculator/src/balance/nitrogen/emission/ammonia/fertilizers.ts (1 hunks)
  • fdm-calculator/src/balance/nitrogen/emission/ammonia/fertilizers/compost.test.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/emission/ammonia/fertilizers/compost.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/emission/ammonia/fertilizers/index.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/emission/ammonia/fertilizers/manure.test.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/emission/ammonia/fertilizers/manure.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/emission/ammonia/fertilizers/mineral.test.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/emission/ammonia/fertilizers/mineral.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/emission/ammonia/fertilizers/other.test.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/emission/ammonia/fertilizers/other.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/index.test.ts (1 hunks)
  • fdm-calculator/src/balance/nitrogen/index.ts (10 hunks)
  • fdm-calculator/src/balance/nitrogen/input.test.ts (4 hunks)
  • fdm-calculator/src/balance/nitrogen/input.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/performance.test.ts (1 hunks)
  • fdm-calculator/src/balance/nitrogen/supply/deposition.test.ts (1 hunks)
  • fdm-calculator/src/balance/nitrogen/supply/deposition.ts (1 hunks)
  • fdm-calculator/src/balance/nitrogen/supply/fertilizers.test.ts (6 hunks)
  • fdm-calculator/src/balance/nitrogen/supply/fertilizers.ts (1 hunks)
  • fdm-calculator/src/balance/nitrogen/supply/fertilizers/compost.test.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/supply/fertilizers/compost.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/supply/fertilizers/index.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/supply/fertilizers/manure.test.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/supply/fertilizers/manure.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/supply/fertilizers/mineral.test.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/supply/fertilizers/mineral.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/supply/fertilizers/other.test.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/supply/fertilizers/other.ts (0 hunks)
  • fdm-calculator/src/balance/nitrogen/supply/index.ts (2 hunks)
  • fdm-calculator/src/balance/nitrogen/types.d.ts (3 hunks)
  • fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.test.ts (2 hunks)
  • fdm-calculator/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.ts (3 hunks)
  • fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm-data.ts (3 hunks)
  • fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.test.ts (2 hunks)
  • fdm-calculator/src/norms/nl/2025/stikstofgebruiksnorm.ts (8 hunks)
⛔ Files not processed due to max files limit (30)
  • fdm-calculator/src/norms/nl/2025/types.d.ts
  • fdm-calculator/src/shared/geotiff.ts
  • fdm-calculator/src/shared/public-data-url.ts
  • fdm-calculator/tsconfig.json
  • fdm-core/CHANGELOG.md
  • fdm-core/package.json
  • fdm-core/src/authentication.ts
  • fdm-core/src/cultivation.d.ts
  • fdm-core/src/cultivation.test.ts
  • fdm-core/src/cultivation.ts
  • fdm-core/src/derogation.ts
  • fdm-core/src/farm.test.ts
  • fdm-core/src/farm.ts
  • fdm-core/src/fertilizer.d.ts
  • fdm-core/src/field.d.ts
  • fdm-core/src/field.test.ts
  • fdm-core/src/field.ts
  • fdm-core/src/index.ts
  • fdm-core/src/principal.d.ts
  • fdm-core/src/soil.test.ts
  • fdm-data/CHANGELOG.md
  • fdm-data/package.json
  • fdm-data/src/fertilizers/catalogues/baat.json
  • fdm-data/src/fertilizers/catalogues/baat.ts
  • fdm-data/src/fertilizers/d.ts
  • fdm-data/src/fertilizers/hash.test.ts
  • fdm-docs/blog/2025-09-29-release-notes.mdx
  • fdm-docs/package.json
  • package.json
  • pnpm-workspace.yaml

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
🧪 Early access (Sonnet 4.5): enabled

We are currently testing the Sonnet 4.5 model, which is expected to improve code review quality. However, this model may lead to increased noise levels in the review comments. Please disable the early access features if the noise level causes any inconvenience.

Note:

  • Public repositories are always opted into early access features.
  • You can enable or disable early access features from the CodeRabbit UI or by updating the CodeRabbit configuration file.

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

@codecov
Copy link
Copy Markdown

codecov Bot commented Sep 29, 2025

Codecov Report

❌ Patch coverage is 95.24733% with 49 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.26%. Comparing base (1c0b8fd) to head (3041976).
⚠️ Report is 225 commits behind head on main.

Files with missing lines Patch % Lines
...lculator/src/norms/nl/2025/stikstofgebruiksnorm.ts 85.13% 22 Missing ⚠️
fdm-calculator/src/balance/nitrogen/index.ts 83.92% 9 Missing ⚠️
fdm-calculator/src/shared/geotiff.ts 88.13% 7 Missing ⚠️
...r/src/norms/nl/2025/dierlijke-mest-gebruiksnorm.ts 91.93% 5 Missing ⚠️
...c/balance/nitrogen/emission/ammonia/fertilizers.ts 99.08% 2 Missing ⚠️
...lculator/src/balance/nitrogen/supply/deposition.ts 94.11% 2 Missing ⚠️
fdm-core/src/farm.ts 99.30% 1 Missing ⚠️
fdm-core/src/field.ts 94.73% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #282      +/-   ##
==========================================
+ Coverage   92.78%   93.26%   +0.47%     
==========================================
  Files          87       81       -6     
  Lines       13045    13014      -31     
  Branches     1294     1306      +12     
==========================================
+ Hits        12104    12137      +33     
+ Misses        939      875      -64     
  Partials        2        2              
Flag Coverage Δ
fdm-calculator 95.16% <94.48%> (+0.99%) ⬆️
fdm-core 91.92% <98.87%> (+0.20%) ⬆️
fdm-data 94.40% <100.00%> (+0.03%) ⬆️

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 marked this pull request as ready for review September 30, 2025 07:08
@SvenVw SvenVw merged commit f39a5e5 into main Sep 30, 2025
9 of 10 checks passed
@coderabbitai coderabbitai Bot added branch:main An issue, affecting the main branch, that requires an hotfix fdm-app fdm-calculator labels Sep 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

branch:main An issue, affecting the main branch, that requires an hotfix fdm-app fdm-calculator

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants