diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 9662f98..9695122 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,7 +5,8 @@ updates: - package-ecosystem: "npm" directory: "/" schedule: - interval: "daily" + interval: "weekly" + day: "monday" time: "09:00" timezone: "Asia/Seoul" open-pull-requests-limit: 5 @@ -30,12 +31,18 @@ updates: - dependency-name: "ai-v6" - dependency-name: "@ai-sdk/provider-v5" - dependency-name: "@ai-sdk/provider-v6" + # 4.0.41 reintroduces undici 5.29.0 with unfixed high-severity advisories. + # Skip only that release so a later patched provider-utils can be adopted. + - dependency-name: "@ai-sdk/provider-utils" + versions: + - "4.0.41" # GitHub Actions - package-ecosystem: "github-actions" directory: "/" schedule: - interval: "daily" + interval: "weekly" + day: "monday" time: "09:00" timezone: "Asia/Seoul" open-pull-requests-limit: 5 diff --git a/.github/workflows/architecture-blueprint.yml b/.github/workflows/architecture-blueprint.yml index 625132e..a12a436 100644 --- a/.github/workflows/architecture-blueprint.yml +++ b/.github/workflows/architecture-blueprint.yml @@ -21,6 +21,6 @@ jobs: validate: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - name: Validate cloud and AI architecture blueprint run: python3 scripts/validate_architecture_blueprint.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2dbfee1..8093e4b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,11 +16,11 @@ jobs: name: Biome Lint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: fetch-depth: 0 - - uses: pnpm/action-setup@v6 - - uses: actions/setup-node@v6 + - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 20 cache: pnpm @@ -33,11 +33,11 @@ jobs: name: TypeScript runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: fetch-depth: 0 - - uses: pnpm/action-setup@v6 - - uses: actions/setup-node@v6 + - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 20 cache: pnpm @@ -53,11 +53,11 @@ jobs: env: DO_NOT_TRACK: true steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: fetch-depth: 0 - - uses: pnpm/action-setup@v6 - - uses: actions/setup-node@v6 + - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 20 cache: pnpm @@ -66,7 +66,7 @@ jobs: - name: Run vitest run: pnpm test -- --coverage - name: Upload coverage to Codecov - uses: codecov/codecov-action@v6 + uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v6 with: token: ${{ secrets.CODECOV_TOKEN }} continue-on-error: true @@ -78,11 +78,11 @@ jobs: env: DO_NOT_TRACK: true steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: fetch-depth: 0 - - uses: pnpm/action-setup@v6 - - uses: actions/setup-node@v6 + - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 20 cache: pnpm @@ -93,12 +93,12 @@ jobs: - name: Generate benchmark test artifact run: pnpm bench:stagepilot - name: Upload dist artifact - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: name: dist path: dist - name: Upload benchmark test artifact - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: name: stagepilot-benchmark-proof path: docs/benchmarks/stagepilot-latest.json diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 0749fe0..db19340 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -25,15 +25,15 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: fetch-depth: 0 - name: Setup pnpm - uses: pnpm/action-setup@v6 + uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6 - name: Use Node.js 22 - uses: actions/setup-node@v6 + uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22 cache: pnpm @@ -52,15 +52,15 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: fetch-depth: 0 - name: Setup pnpm - uses: pnpm/action-setup@v6 + uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6 - name: Use Node.js 22 - uses: actions/setup-node@v6 + uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22 cache: pnpm @@ -80,15 +80,15 @@ jobs: DO_NOT_TRACK: true steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: fetch-depth: 0 - name: Setup pnpm - uses: pnpm/action-setup@v6 + uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6 - name: Use Node.js 22 - uses: actions/setup-node@v6 + uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22 cache: pnpm @@ -102,7 +102,7 @@ jobs: # https://docs.codecov.com/docs/environment-specific-requirements#github-actions - name: Upload coverage to Codecov - uses: codecov/codecov-action@v6 + uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v6 with: use_oidc: ${{ secrets.CODECOV_TOKEN == '' }} token: ${{ secrets.CODECOV_TOKEN }} @@ -112,5 +112,5 @@ jobs: # https://docs.sentry.io/product/test-analytics/ - name: Upload test results to Sentry Prevent if: ${{ !cancelled() }} - uses: getsentry/prevent-action@v0.1.3 + uses: getsentry/prevent-action@3172898fbd55f32b84ea3464cc07d4e38b48bb52 # v0.1.3 continue-on-error: true diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 3637dde..0b3ad85 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -18,10 +18,10 @@ jobs: timeout-minutes: 10 steps: - name: Check out repository - uses: actions/checkout@v6 + uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - name: Review dependency diff - uses: actions/dependency-review-action@v5.0.0 + uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0 with: fail-on-severity: high comment-summary-in-pr: always diff --git a/.github/workflows/pages-auto-deploy.yml b/.github/workflows/pages-auto-deploy.yml index 678dfd6..5113946 100644 --- a/.github/workflows/pages-auto-deploy.yml +++ b/.github/workflows/pages-auto-deploy.yml @@ -22,7 +22,7 @@ jobs: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - name: Skip deploy when Cloudflare secrets are missing if: ${{ env.CLOUDFLARE_API_TOKEN == '' || env.CLOUDFLARE_ACCOUNT_ID == '' }} run: echo "Cloudflare secrets are not configured; skipping Pages deploy." diff --git a/.github/workflows/repository-health.yml b/.github/workflows/repository-health.yml index a07fc73..25abaa6 100644 --- a/.github/workflows/repository-health.yml +++ b/.github/workflows/repository-health.yml @@ -20,7 +20,7 @@ jobs: timeout-minutes: 10 steps: - name: Check out repository - uses: actions/checkout@v6 + uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - name: Check required maintenance files shell: bash diff --git a/.github/workflows/repository-surface.yml b/.github/workflows/repository-surface.yml index 9cb2925..6ebc96b 100644 --- a/.github/workflows/repository-surface.yml +++ b/.github/workflows/repository-surface.yml @@ -13,6 +13,6 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - name: Validate repository surface run: python3 scripts/validate_repository_surface.py diff --git a/.github/workflows/secret-scan.yml b/.github/workflows/secret-scan.yml index 3a33a8c..91e44ff 100644 --- a/.github/workflows/secret-scan.yml +++ b/.github/workflows/secret-scan.yml @@ -22,7 +22,7 @@ jobs: timeout-minutes: 15 steps: - name: Check out repository - uses: actions/checkout@v6 + uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - name: Install gitleaks shell: bash diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cc0f245..0f1c44e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,10 +8,11 @@ overrides: '@grpc/grpc-js': ^1.14.4 '@opentelemetry/core': ^2.8.0 '@opentelemetry/propagator-jaeger@<2.9.0': 2.9.0 - brace-expansion@<1.1.16: 1.1.16 - brace-expansion@>=2.0.0 <2.1.2: 2.1.2 - brace-expansion@>=3.0.0 <5.0.8: 5.0.8 - js-yaml@>=4.0.0 <4.3.0: 4.3.0 + brace-expansion@<1.1.18: 1.1.18 + brace-expansion@>=2.0.0 <2.1.4: 2.1.4 + brace-expansion@>=3.0.0 <5.0.9: 5.0.9 + js-yaml@>=4.0.0 <4.3.1: 4.3.1 + nanoid@<3.3.17: 3.3.17 protobufjs: ^7.6.5 shell-quote: ^1.9.0 vite: ^8.0.16 @@ -1526,10 +1527,6 @@ packages: bignumber.js@9.3.1: resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} - brace-expansion@5.0.8: - resolution: {integrity: sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==} - engines: {node: 20 || >=22} - brace-expansion@5.0.9: resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} engines: {node: 20 || >=22} @@ -1933,8 +1930,8 @@ packages: js-tokens@10.0.0: resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} - js-yaml@4.3.0: - resolution: {integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==} + js-yaml@4.3.1: + resolution: {integrity: sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==} hasBin: true json-bigint@1.0.0: @@ -2125,8 +2122,8 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoid@3.3.16: - resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} + nanoid@3.3.17: + resolution: {integrity: sha512-xQLf0A3HOMlgHq0n247/LRuAOYmB7dXJ/DvAxGvsSBij45XtBSmQycu+F8ODbHwns/XyFZagyL1+J0Offw1E0g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -2884,7 +2881,7 @@ snapshots: '@changesets/parse@0.4.3': dependencies: '@changesets/types': 6.1.0 - js-yaml: 4.3.0 + js-yaml: 4.3.1 '@changesets/pre@2.0.2': dependencies: @@ -4201,10 +4198,6 @@ snapshots: bignumber.js@9.3.1: {} - brace-expansion@5.0.8: - dependencies: - balanced-match: 4.0.4 - brace-expansion@5.0.9: dependencies: balanced-match: 4.0.4 @@ -4605,7 +4598,7 @@ snapshots: js-tokens@10.0.0: {} - js-yaml@4.3.0: + js-yaml@4.3.1: dependencies: argparse: 2.0.1 @@ -4734,7 +4727,7 @@ snapshots: minimatch@10.2.5: dependencies: - brace-expansion: 5.0.8 + brace-expansion: 5.0.9 minimatch@10.2.6: dependencies: @@ -4761,7 +4754,7 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nanoid@3.3.16: {} + nanoid@3.3.17: {} natural-compare@1.4.0: {} @@ -4891,7 +4884,7 @@ snapshots: postcss@8.5.18: dependencies: - nanoid: 3.3.16 + nanoid: 3.3.17 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -4936,7 +4929,7 @@ snapshots: read-yaml-file@2.1.0: dependencies: - js-yaml: 4.3.0 + js-yaml: 4.3.1 strip-bom: 4.0.0 readdirp@4.1.2: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 5421d0c..b743361 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -5,15 +5,16 @@ allowBuilds: protobufjs: true minimumReleaseAgeExclude: - esbuild@0.28.1 - - js-yaml@4.3.0 + - js-yaml@4.3.1 overrides: '@grpc/grpc-js': ^1.14.4 '@opentelemetry/core': ^2.8.0 '@opentelemetry/propagator-jaeger@<2.9.0': 2.9.0 - 'brace-expansion@<1.1.16': 1.1.16 - 'brace-expansion@>=2.0.0 <2.1.2': 2.1.2 - 'brace-expansion@>=3.0.0 <5.0.8': 5.0.8 - 'js-yaml@>=4.0.0 <4.3.0': 4.3.0 + 'brace-expansion@<1.1.18': 1.1.18 + 'brace-expansion@>=2.0.0 <2.1.4': 2.1.4 + 'brace-expansion@>=3.0.0 <5.0.9': 5.0.9 + 'js-yaml@>=4.0.0 <4.3.1': 4.3.1 + 'nanoid@<3.3.17': 3.3.17 protobufjs: ^7.6.5 shell-quote: ^1.9.0 vite: ^8.0.16