Skip to content

Conversation

ArmanNik
Copy link
Contributor

@ArmanNik ArmanNik commented May 19, 2025

What does this PR do?

(Provide a description of what this PR does.)

Test Plan

(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work.)

Related PRs and Issues

(If this PR is related to any other PR or resolves any issue or related to any issue link all related PR and issues here.)

Have you read the Contributing Guidelines on issues?

(Write your answer here.)

Summary by CodeRabbit

  • Chores

    • Added Docker ignore to slim build context.
    • Introduced npm and Prettier configurations; updated gitignore; removed Stylelint config.
    • Removed Kitchensink demo app and related static pages/assets.
  • CI

    • Added workflow to publish packages to pkg.vc.
    • Upgraded pipelines to Node 20 and pnpm; broadened PR triggers; upload test report artifacts.
  • Tests

    • Replaced “build” with “test” job; lint now blocks on failures; starts dev server before running tests.

Copy link

changeset-bot bot commented May 19, 2025

⚠️ No Changeset found

Latest commit: a7a9b5d

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.

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

💥 An error occurred when fetching the changed packages and changesets in this PR
Some errors occurred when validating the changesets config:
The package or glob expression "@appwrite.io/pink" specified in the `linked` option does not match any package in the project. You may have misspelled the package name or provided an invalid glob expression. Note that glob expressions must be defined according to https://www.npmjs.com/package/micromatch.
The package or glob expression "@appwrite.io/pink-icons" specified in the `linked` option does not match any package in the project. You may have misspelled the package name or provided an invalid glob expression. Note that glob expressions must be defined according to https://www.npmjs.com/package/micromatch.
The package or glob expression "@appwrite.io/kitchensink" is specified in the `ignore` option but it is not found in the project. You may have misspelled the package name or provided an invalid glob expression. Note that glob expressions must be defined according to https://www.npmjs.com/package/micromatch.
The package or glob expression "@appwrite.io/fonts" is specified in the `ignore` option but it is not found in the project. You may have misspelled the package name or provided an invalid glob expression. Note that glob expressions must be defined according to https://www.npmjs.com/package/micromatch.
The package or glob expression "@appwrite.io/pink-design" is specified in the `ignore` option but it is not found in the project. You may have misspelled the package name or provided an invalid glob expression. Note that glob expressions must be defined according to https://www.npmjs.com/package/micromatch.

Copy link

pkg-pr-new bot commented May 19, 2025

Open in StackBlitz

npm i https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@325
npm i https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@325

commit: d9ba720

@appwrite appwrite deleted a comment from github-actions bot May 22, 2025
@appwrite appwrite deleted a comment from github-actions bot May 27, 2025
@appwrite appwrite deleted a comment from github-actions bot May 27, 2025
ItzNotABug and others added 23 commits May 27, 2025 15:28
Fix disabled state on checkbox's hover
Add two-way binding between external value prop and internal pin
input state to ensure component stays in sync with parent updates.
The tooltip slot now renders unconditionally, relying on CSS/visibility
for show/hide behavior. Also removes unused wrapper element binding in
ComboBox component. This triggered an empty tooltip during transition.
Copy link
Contributor

github-actions bot commented Jun 2, 2025

🚀 Previews available on pkg.vc!

📦 @appwrite.io/pink-svelte

Install @appwrite.io/pink-svelte with:

pnpm install https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@a7a9b5d

Alternatively, you may specify a branch name or pull request number:

pnpm install https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte~next
pnpm install https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte!325

📦 @appwrite.io/pink-icons-svelte

Install @appwrite.io/pink-icons-svelte with:

pnpm install https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@a7a9b5d

Alternatively, you may specify a branch name or pull request number:

pnpm install https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte~next
pnpm install https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte!325

@appwrite appwrite deleted a comment from github-actions bot Jun 2, 2025
Copy link

coderabbitai bot commented Sep 1, 2025

Walkthrough

This change removes the Kitchensink app and related assets (HTML/CSS/JS templates, partials, Vite config, package.json), effectively deleting that subproject. Repository tooling is updated: Node.js version standardized to 20 and package manager switched to pnpm across CI. A new GitHub Actions workflow publishes two packages to pkg.vc; the tests workflow now runs on all PR branches, starts a dev server before tests, and uploads an artifact. Repository configs added/updated include .dockerignore, .npmrc, .prettierrc, and .gitignore; the Stylelint config is removed.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch next

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@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: 5

🧹 Nitpick comments (13)
.prettierrc (1)

2-6: Consider aligning Prettier rules with ecosystem defaults and adding EOL policy.

  • trailingComma "none" deviates from Prettier default "es5" and may increase diffs. Optional: switch to "es5".
  • Add "endOfLine": "lf" (or "auto") to avoid cross-OS churn.

Apply:

 {
     "useTabs": false,
     "tabWidth": 4,
     "singleQuote": true,
-    "trailingComma": "none",
-    "printWidth": 100
+    "trailingComma": "es5",
+    "printWidth": 100,
+    "endOfLine": "lf"
 }
.dockerignore (1)

1-2: Tighten Docker build context and add missing newline.

  • Add common junk/CI dirs to reduce context size.
  • Ensure file ends with a newline.
 node_modules/
 !dist
+.git
+.github
+.vscode
+.idea
+.DS_Store
+.turbo
+.vercel
+.pnpm-store
+coverage
+*.log
+
.gitignore (1)

1-10: Optional: ignore env files and lock down local artifacts.

Add common env patterns to avoid accidental secrets commits.

 node_modules/
 dist
 .DS_Store
 icons-dist/
 *.local
 .turbo
 .vercel
 .idea
 .zed
 .vscode
+*.env
+.env
+.env.*
.npmrc (1)

1-4: Remove npm-only flag; add package manager pinning and engines.

  • legacy-peer-deps is npm-specific and ignored by pnpm; keeping it is confusing.
  • Consider pinning pnpm via package.json "packageManager" and declaring "engines".
 engine-strict=true
 auto-install-peers=true
-legacy-peer-deps=true
 node-linker=hoisted

Follow-ups:

  • In package.json add: "packageManager": "pnpm@", "engines": { "node": ">=20" }.
.github/workflows/pkg-vc.yml (5)

6-8: Right-size permissions.

Drop pull-requests: write; grant only what’s needed. If the publish action doesn’t need repo writes, keep contents: read; otherwise bump just that scope.

 permissions:
-    pull-requests: write
-    contents: read
+  contents: read

10-13: Add concurrency to avoid duplicate publishes.

Prevents multiple runs for same ref from racing.

 jobs:
     publish:
+        concurrency:
+            group: pkg-vc-${{ github.ref }}
+            cancel-in-progress: false
         runs-on: ubuntu-latest

21-23: Pin pnpm version for reproducibility.

Explicit version avoids implicit upgrades breaking the build.

-            - name: Install pnpm
-              uses: pnpm/action-setup@v4
+            - name: Install pnpm
+              uses: pnpm/action-setup@v4
               # optionally pin pnpm:
+              with:
+                  version: 9

26-33: Step name vs directory mismatch; verify target package path.

Name says pink-svelte, path is ./v2/pink-sb. Fix the name or the directory.

-            - name: Publish @appwrite.io/pink-svelte
+            - name: Publish @appwrite.io/pink-sb
               uses: pkg-vc/publish-action@main
               with:
                   organization: appwrite
-                  directory: ./v2/pink-sb
+                  directory: ./v2/pink-sb
                   secret: ${{ secrets.TRY_MODULE_SECRET }}
                   github-token: ${{ secrets.GITHUB_TOKEN }}

26-39: Optional robustness: set CI env and verify secrets presence.

Fail fast with a clear message if secrets are missing.

         steps:
+            - name: Set CI
+              run: echo "CI=true" >> $GITHUB_ENV
+            - name: Verify secrets
+              if: ${{ env.TRY_MODULE_SECRET == '' }}
+              run: |
+                echo "TRY_MODULE_SECRET is not set." >&2
+                exit 1
.github/workflows/tests.yml (4)

30-36: Harden artifact upload and avoid false failures when report is absent.

             - uses: actions/upload-artifact@v4
               if: ${{ !cancelled() }}
               with:
                   name: genauigkeit-report
-                  path: |
-                      v2/pink-sb/.genauigkeit/report/index.html
+                  path: |
+                      v2/pink-sb/.genauigkeit/report/**
+                  if-no-files-found: warn
                   retention-days: 30

Please confirm the path exists after the test run. If this report is conditional, the warn behavior prevents red CI.


10-12: Add a job timeout to fail fast on hung servers.

     test:
         runs-on: ubuntu-latest
+        timeout-minutes: 30

3-7: Minimize token permissions and cancel superseded runs.

 on:
     push:
         branches: [main]
     pull_request:
         branches: ["**"]
+
+permissions:
+  contents: read
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true

18-21: Pin pnpm to exact version from package.json
Use the exact version declared in package.json (9.15.4) and disable the action’s auto-install for deterministic builds.

- name: Install pnpm
  uses: pnpm/action-setup@v4
+ name: Install pnpm
+ uses: pnpm/action-setup@v4
+ with:
+   version: 9.15.4
+   run_install: false
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between bfc9ba1 and 52e6f45.

⛔ Files ignored due to path filters (240)
  • apps/kitchensink/images/appwrite-footer-dark.svg is excluded by !**/*.svg
  • apps/kitchensink/images/appwrite-footer-light.svg is excluded by !**/*.svg
  • apps/kitchensink/images/appwrite-gray-light.svg is excluded by !**/*.svg
  • apps/kitchensink/images/appwrite-nav.svg is excluded by !**/*.svg
  • apps/kitchensink/images/appwrite-white.svg is excluded by !**/*.svg
  • apps/kitchensink/images/appwrite.svg is excluded by !**/*.svg
  • apps/kitchensink/images/empty-state/empty-state-illust-dark.svg is excluded by !**/*.svg
  • apps/kitchensink/images/empty-state/empty-state-illust-light.svg is excluded by !**/*.svg
  • apps/kitchensink/images/empty-state/empty-state-illust-magn-dark.svg is excluded by !**/*.svg
  • apps/kitchensink/images/empty-state/empty-state-illust-magn-light.svg is excluded by !**/*.svg
  • apps/kitchensink/images/getting-started/getting-started-dark.svg is excluded by !**/*.svg
  • apps/kitchensink/images/getting-started/getting-started-light.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/amazon.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/android.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/angular.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/apple.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/auth0.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/behance.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/bitBucket.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/bitly.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/box.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/chrome.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/css3.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/dart.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/deno.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/discord.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/docker.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/dribbble.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/dropbox.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/facebook.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/figma.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/flutter.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/git.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/github.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/gitlab.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/google.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/html5.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/instagram.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/ios.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/java.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/js.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/kotlin.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/linkedin.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/linux.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/medium.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/microsoft.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/ms_yammer.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/node_js.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/notion.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/okta.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/paypal.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/php.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/pinterest.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/python.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/react.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/reddit.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/ruby.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/salesforce.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/skype.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/slack.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/spotify.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/stripe.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/swift.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/telegram.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/tiktok.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/tradeshift.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/tumbler.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/twitch.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/twitter.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/unity.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/vimeo.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/vk.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/vs_code.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/vue.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/whatsapp.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/wordpress.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/yahoo.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/yandex.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/ycombinator.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/youtube.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/color/zoom.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/amazon.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/android.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/angular.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/apple.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/auth0.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/behance.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/bitBucket.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/bitly.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/box.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/css3.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/dart.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/deno.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/discord.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/docker.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/dribbble.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/dropbox.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/facebook.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/figma.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/flutter.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/git-branch.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/git-commit.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/git.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/github.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/gitlab.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/google.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/html5.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/instagram.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/ios.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/java.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/js.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/kotlin.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/linkedin.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/linux.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/medium.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/microsoft.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/ms_yammer.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/node_js.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/notion.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/okta.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/paypal.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/php.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/pinterest.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/python.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/react.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/reddit.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/ruby.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/salesforce.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/skype.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/slack.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/spotify.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/stripe.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/swift.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/telegram.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/tiktok.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/tradeshift.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/tumbir.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/twitch.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/twitter.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/unity.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/vimeo.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/vk.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/vs_code.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/vue.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/whatsapp.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/wordpress.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/yahoo.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/yandex.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/ycombinator.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/youtube.svg is excluded by !**/*.svg
  • apps/kitchensink/images/icons/grayscale/zoom.svg is excluded by !**/*.svg
  • apps/kitchensink/images/login/login-dark-mode.svg is excluded by !**/*.svg
  • apps/kitchensink/images/login/login-light-mode.svg is excluded by !**/*.svg
  • apps/kitchensink/images/mode/dark-mode.svg is excluded by !**/*.svg
  • apps/kitchensink/images/mode/light-mode.svg is excluded by !**/*.svg
  • apps/kitchensink/images/mode/system-mode.svg is excluded by !**/*.svg
  • apps/kitchensink/images/top-banner/bg-mint-desktop.png is excluded by !**/*.png
  • apps/kitchensink/images/top-banner/bg-mint-desktop.svg is excluded by !**/*.svg
  • apps/kitchensink/images/top-banner/bg-mint-desktop2.png is excluded by !**/*.png
  • apps/kitchensink/images/top-banner/bg-mint-mobile.png is excluded by !**/*.png
  • apps/kitchensink/images/top-banner/bg-pink-desktop.png is excluded by !**/*.png
  • apps/kitchensink/images/top-banner/bg-pink-desktop.svg is excluded by !**/*.svg
  • apps/kitchensink/images/top-banner/bg-pink-desktop2.png is excluded by !**/*.png
  • apps/kitchensink/images/top-banner/bg-pink-mobile.png is excluded by !**/*.png
  • apps/kitchensink/images/upgrade/upgrade-dark.png is excluded by !**/*.png
  • apps/kitchensink/images/upgrade/upgrade-light.png is excluded by !**/*.png
  • apps/kitchensink/images/wizard/demo.svg is excluded by !**/*.svg
  • apps/pink/public/appwrite.svg is excluded by !**/*.svg
  • apps/pink/public/articles/announcement.png is excluded by !**/*.png
  • apps/pink/public/articles/css-layers.png is excluded by !**/*.png
  • apps/pink/public/articles/getting-started.png is excluded by !**/*.png
  • apps/pink/public/comparison/dark/alerts-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/alerts-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/avatar-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/avatar-do-2.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/avatar-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/avatar-dont-2.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/border-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/border-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/button-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/button-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/checkbox-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/checkbox-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/drop-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/drop-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/elevation-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/elevation-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/elevation-usage-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/icons-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/icons-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/icons-usage-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/modal-usage-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/pagination-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/pagination-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/radio-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/radio-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/switch-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/switch-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/tabs-usage-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/tabs-usage-2.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/tags-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/tags-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/typography-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/typography-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/dark/typography-usage-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/alerts-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/alerts-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/avatar-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/avatar-do-2.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/avatar-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/avatar-dont-2.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/border-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/border-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/button-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/button-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/checkbox-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/checkbox-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/drop-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/drop-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/elevation-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/elevation-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/elevation-usage-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/icons-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/icons-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/icons-usage-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/modal-usage-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/pagination-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/pagination-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/radio-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/radio-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/switch-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/switch-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/tabs-usage-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/tabs-usage-2.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/tags-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/tags-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/typography-do-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/typography-dont-1.svg is excluded by !**/*.svg
  • apps/pink/public/comparison/light/typography-usage-1.svg is excluded by !**/*.svg
  • apps/pink/public/empty-dark.svg is excluded by !**/*.svg
📒 Files selected for processing (53)
  • .dockerignore (1 hunks)
  • .github/workflows/pkg-vc.yml (1 hunks)
  • .github/workflows/tests.yml (1 hunks)
  • .gitignore (1 hunks)
  • .npmrc (1 hunks)
  • .prettierrc (1 hunks)
  • .stylelintrc.json (0 hunks)
  • apps/kitchensink/.gitignore (0 hunks)
  • apps/kitchensink/README.md (0 hunks)
  • apps/kitchensink/auth.html (0 hunks)
  • apps/kitchensink/auth2.html (0 hunks)
  • apps/kitchensink/billCollapseDemo.html (0 hunks)
  • apps/kitchensink/bucket.html (0 hunks)
  • apps/kitchensink/bucketSettings.html (0 hunks)
  • apps/kitchensink/buckets.html (0 hunks)
  • apps/kitchensink/collection.html (0 hunks)
  • apps/kitchensink/cover-frame-2.html (0 hunks)
  • apps/kitchensink/cover-frame-light-mode-2.html (0 hunks)
  • apps/kitchensink/cover-frame-light-mode.html (0 hunks)
  • apps/kitchensink/cover-frame.html (0 hunks)
  • apps/kitchensink/create-org-modal.html (0 hunks)
  • apps/kitchensink/dashboard.html (0 hunks)
  • apps/kitchensink/dashboard2.html (0 hunks)
  • apps/kitchensink/empty-state-cards.html (0 hunks)
  • apps/kitchensink/error-console-page.html (0 hunks)
  • apps/kitchensink/error-not-found-modal.html (0 hunks)
  • apps/kitchensink/filters.html (0 hunks)
  • apps/kitchensink/full-screen-modal.html (0 hunks)
  • apps/kitchensink/functions.html (0 hunks)
  • apps/kitchensink/getting-started.html (0 hunks)
  • apps/kitchensink/index.html (0 hunks)
  • apps/kitchensink/layout-1-2.html (0 hunks)
  • apps/kitchensink/login-1.html (0 hunks)
  • apps/kitchensink/login-2.html (0 hunks)
  • apps/kitchensink/login.html (0 hunks)
  • apps/kitchensink/main.css (0 hunks)
  • apps/kitchensink/main.js (0 hunks)
  • apps/kitchensink/modal-demo.html (0 hunks)
  • apps/kitchensink/no-side.html (0 hunks)
  • apps/kitchensink/package.json (0 hunks)
  • apps/kitchensink/partials/sideNav.hbs (0 hunks)
  • apps/kitchensink/partials/topNav.hbs (0 hunks)
  • apps/kitchensink/startups-program.html (0 hunks)
  • apps/kitchensink/teamActivity.html (0 hunks)
  • apps/kitchensink/top-banner.html (0 hunks)
  • apps/kitchensink/user.html (0 hunks)
  • apps/kitchensink/userSecurity.html (0 hunks)
  • apps/kitchensink/users.html (0 hunks)
  • apps/kitchensink/vite.config.js (0 hunks)
  • apps/kitchensink/wizard-1-1.html (0 hunks)
  • apps/kitchensink/wizard-form.html (0 hunks)
  • apps/kitchensink/wizard-with-modal-empty.html (0 hunks)
  • apps/kitchensink/wizard-with-modal.html (0 hunks)
💤 Files with no reviewable changes (47)
  • apps/kitchensink/error-console-page.html
  • apps/kitchensink/collection.html
  • apps/kitchensink/dashboard2.html
  • apps/kitchensink/full-screen-modal.html
  • apps/kitchensink/layout-1-2.html
  • apps/kitchensink/wizard-with-modal-empty.html
  • apps/kitchensink/bucketSettings.html
  • apps/kitchensink/dashboard.html
  • apps/kitchensink/error-not-found-modal.html
  • apps/kitchensink/wizard-form.html
  • apps/kitchensink/login-2.html
  • apps/kitchensink/README.md
  • apps/kitchensink/modal-demo.html
  • apps/kitchensink/wizard-with-modal.html
  • apps/kitchensink/no-side.html
  • apps/kitchensink/cover-frame-2.html
  • apps/kitchensink/filters.html
  • apps/kitchensink/buckets.html
  • apps/kitchensink/users.html
  • apps/kitchensink/user.html
  • apps/kitchensink/top-banner.html
  • apps/kitchensink/billCollapseDemo.html
  • apps/kitchensink/empty-state-cards.html
  • apps/kitchensink/auth.html
  • .stylelintrc.json
  • apps/kitchensink/partials/sideNav.hbs
  • apps/kitchensink/main.js
  • apps/kitchensink/cover-frame.html
  • apps/kitchensink/auth2.html
  • apps/kitchensink/bucket.html
  • apps/kitchensink/cover-frame-light-mode.html
  • apps/kitchensink/vite.config.js
  • apps/kitchensink/login.html
  • apps/kitchensink/package.json
  • apps/kitchensink/index.html
  • apps/kitchensink/userSecurity.html
  • apps/kitchensink/functions.html
  • apps/kitchensink/getting-started.html
  • apps/kitchensink/teamActivity.html
  • apps/kitchensink/create-org-modal.html
  • apps/kitchensink/wizard-1-1.html
  • apps/kitchensink/main.css
  • apps/kitchensink/login-1.html
  • apps/kitchensink/.gitignore
  • apps/kitchensink/cover-frame-light-mode-2.html
  • apps/kitchensink/startups-program.html
  • apps/kitchensink/partials/topNav.hbs
🧰 Additional context used
🪛 actionlint (1.7.7)
.github/workflows/pkg-vc.yml

17-17: the runner of "actions/setup-node@v2" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

.github/workflows/tests.yml

13-13: the runner of "actions/checkout@v2" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)


15-15: the runner of "actions/setup-node@v2" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

🔇 Additional comments (1)
.github/workflows/tests.yml (1)

21-25: LGTM on pnpm + Node 20 migration and making lint fail the build.

Comment on lines +3 to +5
on:
pull_request:

Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

⚠️ Potential issue

Do not publish on pull_request. Restrict to main/tags (prevents accidental releases).

Publishing on PRs risks unmerged or fork code attempting to publish. Trigger on push to main/tags and allow manual runs.

-on:
-    pull_request:
+on:
+  push:
+    branches: [main]
+    tags: ['v*']
+  workflow_dispatch:
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
on:
pull_request:
on:
push:
branches: [main]
tags: ['v*']
workflow_dispatch:
🤖 Prompt for AI Agents
.github/workflows/pkg-vc.yml lines 3-5: the workflow is currently triggered on
pull_request which can cause accidental publishes from unmerged or forked PRs;
remove the pull_request trigger and instead configure the workflow to run on
push to main and on tag pushes (e.g., tags matching your release pattern) and
add workflow_dispatch for manual runs so releases occur only from main/tags or
when manually invoked.

Comment on lines +16 to +19
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: 20
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Upgrade setup-node to v4 and enable pnpm cache.

actionlint flags v2 as too old; caching speeds CI.

-            - name: Use Node.js
-              uses: actions/setup-node@v2
-              with:
-                  node-version: 20
+            - name: Use Node.js
+              uses: actions/setup-node@v4
+              with:
+                  node-version: '20'
+                  cache: 'pnpm'
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: 20
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'pnpm'
🧰 Tools
🪛 actionlint (1.7.7)

17-17: the runner of "actions/setup-node@v2" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

🤖 Prompt for AI Agents
.github/workflows/pkg-vc.yml around lines 16 to 19: update the GitHub Action to
use actions/setup-node@v4 and enable pnpm caching; replace uses:
actions/setup-node@v2 with actions/setup-node@v4 and add the with: cache: 'pnpm'
(keeping node-version: 20) so the workflow uses the newer action and speeds CI
by caching pnpm dependencies.

Comment on lines +26 to +39
- name: Publish @appwrite.io/pink-svelte
uses: pkg-vc/publish-action@main
with:
organization: appwrite
directory: ./v2/pink-sb
secret: ${{ secrets.TRY_MODULE_SECRET }}
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Publish @appwrite.io/pink-icons-svelte
uses: pkg-vc/publish-action@main
with:
organization: appwrite
directory: ./v2/pink-icons
secret: ${{ secrets.TRY_MODULE_SECRET }}
github-token: ${{ secrets.GITHUB_TOKEN }}
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Guard publish steps or job against PR events.

If you keep PR triggers for dry-runs, ensure secrets aren’t required. Otherwise gate the job.

-    publish:
+    publish:
+        if: github.event_name != 'pull_request'
         runs-on: ubuntu-latest
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Publish @appwrite.io/pink-svelte
uses: pkg-vc/publish-action@main
with:
organization: appwrite
directory: ./v2/pink-sb
secret: ${{ secrets.TRY_MODULE_SECRET }}
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Publish @appwrite.io/pink-icons-svelte
uses: pkg-vc/publish-action@main
with:
organization: appwrite
directory: ./v2/pink-icons
secret: ${{ secrets.TRY_MODULE_SECRET }}
github-token: ${{ secrets.GITHUB_TOKEN }}
publish:
if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Publish @appwrite.io/pink-svelte
uses: pkg-vc/publish-action@main
with:
organization: appwrite
directory: ./v2/pink-sb
secret: ${{ secrets.TRY_MODULE_SECRET }}
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Publish @appwrite.io/pink-icons-svelte
uses: pkg-vc/publish-action@main
with:
organization: appwrite
directory: ./v2/pink-icons
secret: ${{ secrets.TRY_MODULE_SECRET }}
github-token: ${{ secrets.GITHUB_TOKEN }}
🤖 Prompt for AI Agents
.github/workflows/pkg-vc.yml lines 26-39: the publish steps currently use
repository secrets and will fail or leak secrets when run on pull_request
events; guard the job or steps to avoid running when github.event_name ==
'pull_request' (or only run on push to protected branches) or alternatively
conditionally pass secrets so they are only used when not a PR (e.g., add an if
condition at the job or step level to skip publishing on pull_request and ensure
secrets are never referenced for PR runs).

Comment on lines +13 to +17
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: 20
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Upgrade core actions to v4 (v2 is EOL on modern runners).

checkout@v2 and setup-node@v2 will fail on current GitHub-hosted runners. Move to v4 and enable pnpm cache.

-            - uses: actions/checkout@v2
+            - uses: actions/checkout@v4
             - name: Use Node.js
-              uses: actions/setup-node@v2
+              uses: actions/setup-node@v4
               with:
                   node-version: 20
+                  cache: 'pnpm'
+                  cache-dependency-path: pnpm-lock.yaml
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: 20
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
cache-dependency-path: pnpm-lock.yaml
🧰 Tools
🪛 actionlint (1.7.7)

13-13: the runner of "actions/checkout@v2" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)


15-15: the runner of "actions/setup-node@v2" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

🤖 Prompt for AI Agents
.github/workflows/tests.yml around lines 13 to 17: the workflow is using
actions/checkout@v2 and actions/setup-node@v2 which are EOL; update them to
actions/checkout@v4 and actions/setup-node@v4 (keeping node-version: 20) and
enable pnpm caching by adding the setup-node cache configuration (e.g., cache:
"pnpm" and appropriate cache-dependency-path pointing at pnpm-lock.yaml or
workspace lockfile) so the job runs on modern GitHub runners and benefits from
pnpm cache.

Comment on lines +26 to +29
- name: Run tests
run: |
pnpm dev &
pnpm run test
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Wait for dev server to be ready to avoid flaky tests.

Start server, wait on a health URL, then run tests and clean up.

-            - name: Run tests
-              run: |
-                  pnpm dev &
-                  pnpm run test
+            - name: Run tests
+              run: |
+                  pnpm dev & SERVER_PID=$!
+                  npx wait-on http://localhost:5173
+                  pnpm run test
+                  kill $SERVER_PID

If the URL/port differs, replace it accordingly.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Run tests
run: |
pnpm dev &
pnpm run test
- name: Run tests
run: |
pnpm dev & SERVER_PID=$!
npx wait-on http://localhost:5173
pnpm run test
kill $SERVER_PID
🤖 Prompt for AI Agents
In .github/workflows/tests.yml around lines 26 to 29, the workflow starts the
dev server and immediately runs tests which can cause flakes; modify the step to
start the server in the background while capturing its PID, poll a health URL
(e.g., http://localhost:3000/health) with a timeout and exponential/backoff
retry until it returns a successful status, then run the test command, and
finally kill the background server using the captured PID in a cleanup/finally
style to ensure it is stopped; replace the health URL/port if your app exposes a
different endpoint.

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.

5 participants