Conversation
|
commit: |
🚀 Previews available on pkg.vc!📦
|
WalkthroughThis PR removes the entire Kitchensink subproject (HTML templates, partials, CSS, JS, Vite config, and package.json). It updates CI to Node.js 20 and migrates workflows to pnpm, adds a new publish workflow (.github/workflows/pkg-vc.yml) that publishes two packages, and broadens PR triggers. Repository configs added/changed: .dockerignore, .npmrc, .prettierrc, .gitignore; .stylelintrc.json was deleted. Numerous static Kitchensink assets and the kitchensink package manifest were deleted. Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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. Comment |
There was a problem hiding this comment.
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=hoistedFollow-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: 30Please 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.
⛔ Files ignored due to path filters (240)
apps/kitchensink/images/appwrite-footer-dark.svgis excluded by!**/*.svgapps/kitchensink/images/appwrite-footer-light.svgis excluded by!**/*.svgapps/kitchensink/images/appwrite-gray-light.svgis excluded by!**/*.svgapps/kitchensink/images/appwrite-nav.svgis excluded by!**/*.svgapps/kitchensink/images/appwrite-white.svgis excluded by!**/*.svgapps/kitchensink/images/appwrite.svgis excluded by!**/*.svgapps/kitchensink/images/empty-state/empty-state-illust-dark.svgis excluded by!**/*.svgapps/kitchensink/images/empty-state/empty-state-illust-light.svgis excluded by!**/*.svgapps/kitchensink/images/empty-state/empty-state-illust-magn-dark.svgis excluded by!**/*.svgapps/kitchensink/images/empty-state/empty-state-illust-magn-light.svgis excluded by!**/*.svgapps/kitchensink/images/getting-started/getting-started-dark.svgis excluded by!**/*.svgapps/kitchensink/images/getting-started/getting-started-light.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/amazon.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/android.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/angular.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/apple.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/auth0.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/behance.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/bitBucket.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/bitly.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/box.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/chrome.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/css3.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/dart.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/deno.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/discord.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/docker.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/dribbble.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/dropbox.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/facebook.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/figma.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/flutter.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/git.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/github.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/gitlab.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/google.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/html5.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/instagram.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/ios.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/java.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/js.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/kotlin.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/linkedin.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/linux.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/medium.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/microsoft.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/ms_yammer.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/node_js.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/notion.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/okta.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/paypal.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/php.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/pinterest.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/python.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/react.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/reddit.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/ruby.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/salesforce.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/skype.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/slack.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/spotify.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/stripe.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/swift.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/telegram.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/tiktok.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/tradeshift.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/tumbler.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/twitch.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/twitter.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/unity.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/vimeo.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/vk.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/vs_code.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/vue.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/whatsapp.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/wordpress.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/yahoo.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/yandex.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/ycombinator.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/youtube.svgis excluded by!**/*.svgapps/kitchensink/images/icons/color/zoom.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/amazon.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/android.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/angular.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/apple.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/auth0.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/behance.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/bitBucket.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/bitly.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/box.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/css3.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/dart.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/deno.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/discord.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/docker.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/dribbble.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/dropbox.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/facebook.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/figma.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/flutter.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/git-branch.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/git-commit.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/git.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/github.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/gitlab.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/google.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/html5.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/instagram.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/ios.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/java.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/js.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/kotlin.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/linkedin.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/linux.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/medium.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/microsoft.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/ms_yammer.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/node_js.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/notion.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/okta.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/paypal.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/php.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/pinterest.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/python.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/react.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/reddit.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/ruby.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/salesforce.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/skype.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/slack.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/spotify.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/stripe.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/swift.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/telegram.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/tiktok.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/tradeshift.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/tumbir.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/twitch.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/twitter.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/unity.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/vimeo.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/vk.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/vs_code.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/vue.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/whatsapp.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/wordpress.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/yahoo.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/yandex.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/ycombinator.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/youtube.svgis excluded by!**/*.svgapps/kitchensink/images/icons/grayscale/zoom.svgis excluded by!**/*.svgapps/kitchensink/images/login/login-dark-mode.svgis excluded by!**/*.svgapps/kitchensink/images/login/login-light-mode.svgis excluded by!**/*.svgapps/kitchensink/images/mode/dark-mode.svgis excluded by!**/*.svgapps/kitchensink/images/mode/light-mode.svgis excluded by!**/*.svgapps/kitchensink/images/mode/system-mode.svgis excluded by!**/*.svgapps/kitchensink/images/top-banner/bg-mint-desktop.pngis excluded by!**/*.pngapps/kitchensink/images/top-banner/bg-mint-desktop.svgis excluded by!**/*.svgapps/kitchensink/images/top-banner/bg-mint-desktop2.pngis excluded by!**/*.pngapps/kitchensink/images/top-banner/bg-mint-mobile.pngis excluded by!**/*.pngapps/kitchensink/images/top-banner/bg-pink-desktop.pngis excluded by!**/*.pngapps/kitchensink/images/top-banner/bg-pink-desktop.svgis excluded by!**/*.svgapps/kitchensink/images/top-banner/bg-pink-desktop2.pngis excluded by!**/*.pngapps/kitchensink/images/top-banner/bg-pink-mobile.pngis excluded by!**/*.pngapps/kitchensink/images/upgrade/upgrade-dark.pngis excluded by!**/*.pngapps/kitchensink/images/upgrade/upgrade-light.pngis excluded by!**/*.pngapps/kitchensink/images/wizard/demo.svgis excluded by!**/*.svgapps/pink/public/appwrite.svgis excluded by!**/*.svgapps/pink/public/articles/announcement.pngis excluded by!**/*.pngapps/pink/public/articles/css-layers.pngis excluded by!**/*.pngapps/pink/public/articles/getting-started.pngis excluded by!**/*.pngapps/pink/public/comparison/dark/alerts-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/alerts-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/avatar-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/avatar-do-2.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/avatar-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/avatar-dont-2.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/border-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/border-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/button-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/button-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/checkbox-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/checkbox-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/drop-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/drop-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/elevation-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/elevation-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/elevation-usage-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/icons-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/icons-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/icons-usage-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/modal-usage-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/pagination-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/pagination-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/radio-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/radio-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/switch-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/switch-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/tabs-usage-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/tabs-usage-2.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/tags-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/tags-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/typography-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/typography-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/dark/typography-usage-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/alerts-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/alerts-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/avatar-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/avatar-do-2.svgis excluded by!**/*.svgapps/pink/public/comparison/light/avatar-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/avatar-dont-2.svgis excluded by!**/*.svgapps/pink/public/comparison/light/border-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/border-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/button-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/button-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/checkbox-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/checkbox-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/drop-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/drop-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/elevation-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/elevation-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/elevation-usage-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/icons-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/icons-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/icons-usage-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/modal-usage-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/pagination-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/pagination-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/radio-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/radio-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/switch-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/switch-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/tabs-usage-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/tabs-usage-2.svgis excluded by!**/*.svgapps/pink/public/comparison/light/tags-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/tags-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/typography-do-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/typography-dont-1.svgis excluded by!**/*.svgapps/pink/public/comparison/light/typography-usage-1.svgis excluded by!**/*.svgapps/pink/public/empty-dark.svgis 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.
| on: | ||
| pull_request: | ||
|
|
There was a problem hiding this comment.
🛠️ Refactor suggestion
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.
| 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.
| - name: Use Node.js | ||
| uses: actions/setup-node@v2 | ||
| with: | ||
| node-version: 20 |
There was a problem hiding this comment.
🛠️ 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.
| - 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.
| - 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 }} |
There was a problem hiding this comment.
🛠️ 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.
| - 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).
| - uses: actions/checkout@v2 | ||
| - name: Use Node.js | ||
| uses: actions/setup-node@v2 | ||
| with: | ||
| node-version: 20 |
There was a problem hiding this comment.
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.
| - 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.
.github/workflows/tests.yml
Outdated
| - name: Run tests | ||
| run: | | ||
| pnpm dev & | ||
| pnpm run test |
There was a problem hiding this comment.
🛠️ 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_PIDIf 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.
| - 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.
update: escape key better handling at cell editor and root level. When editing, escape closes inline editor but maintains focus for nav. When not editing but a cell is still focused, escape removes the focus.
Feat: new canvas component
update: use a shared highlighter.
add: delete, insert tokens.
Fix directory picker
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
CI
Tests
✏️ Tip: You can customize this high-level summary in your review settings.