version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    groups:
      production:
        update-types:
          - "minor"
          - "patch"
      development:
        dependency-type: "development"
    open-pull-requests-limit: 10
    ignore:
      # Keep @types/* aligned with the runtime major. Mismatched type
      # packages (e.g. @types/jest 30 while jest is still 29) break
      # typecheck without buying us anything.
      - dependency-name: "@types/jest"
        update-types: ["version-update:semver-major"]
      - dependency-name: "@types/node"
        update-types: ["version-update:semver-major"]
      # These packages are version-pinned by the Expo SDK (see
      # expo/bundledNativeModules.json) — upgrade them via an Expo SDK
      # bump / `npx expo install --fix`, never on their own. Dependabot
      # bumping them past the SDK's expected version broke the native
      # build (expo-modules-core macro mismatch, June 2026) because CI
      # never compiles native code. `react` stays unignored: the web
      # apps own its version via the workspace catalog, and apps/mobile
      # excludes it from expo version checks.
      - dependency-name: "react-native"
      - dependency-name: "react-native-gesture-handler"
      - dependency-name: "react-native-reanimated"
      - dependency-name: "react-native-safe-area-context"
      - dependency-name: "react-native-screens"
      - dependency-name: "react-native-worklets"
      - dependency-name: "@sentry/react-native"
      - dependency-name: "jest-expo"

  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"
    open-pull-requests-limit: 5

  - package-ecosystem: "docker"
    directory: "/apps/journal"
    schedule:
      interval: "monthly"

  - package-ecosystem: "docker"
    directory: "/apps/planner"
    schedule:
      interval: "monthly"
