**/*.log
**/*.tsbuildinfo
**/.*
/apps/rayrun-web/build
/apps/rayrun-web/dist
/apps/rayrun-web/playwright-report
/apps/rayrun-web/server
/apps/rayrun-web/storybook-static
/apps/rayrun-web/test-results
/apps/rayrun-web/app/styled-system/
/coverage
node_modules
!**/.dockerignore
!**/.envrc.example
!**/.gitignore
!**/.oxfmtrc.json
# `**/`, not `/`: the Storybook config lives in the workspace (apps/rayrun-web/.storybook), so a
# root-anchored exception leaves it untracked and a fresh clone has no Storybook at all.
!**/.storybook
!**/.storybook/**
!/.claude
# Claude Code's Workflow worktrees — full checkouts of this repository, created under `.claude/`
# and therefore un-ignored by the line above. Four tools walk them and all four break: `oxfmt`
# formats 8,000 files instead of 1,500, `oxlint` dies on a duplicate plugin registration in a
# worktree's own config so `--fix` never runs, `knip` reports every worktree file as unused
# (7,350 of them), and `git status` carries a `??` line that never clears.
/.claude/worktrees
!/.github
!/.husky
!/.nvmrc
!/.vscode
!/apps/rayrun-web/.env.ci.encrypted
!/apps/rayrun-web/.env.production.encrypted
# The certificate itself is gitignored below, but the directory has to exist for the mkcert
# command in certs/README.md to write into.
!/certs/local.ray.run/.gitkeep
!/pnpm-lock.yaml
/apps/rayrun-web/vite.config.ts.*

/apps/rayrun-web/app/types/safe-routes.d.ts
/tilt_modules

# mkcert-generated; tied to each developer's local CA, see certs/README.md
/certs/local.ray.run/fullchain.pem
/certs/local.ray.run/private.key

# GitHub App private keys are downloaded into the repository root by GitHub's setup flow.
/*.private-key.pem
