Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
0d4eae7
feat: project reorg
mcansh Jan 12, 2026
0f1e655
chore(deps): bump to latest; add @vitest/coverage-v8
mcansh Jan 12, 2026
de788a6
fix: update .gitattributes to include all generated files
mcansh Jan 12, 2026
2c64add
feat: add build script to package.json
mcansh Jan 12, 2026
9182866
feat(mocks): update msw integration
mcansh Jan 12, 2026
8c88744
feat: add user authentication and management features
mcansh Jan 12, 2026
b2016a8
feat: enhance login and registration forms with improved styling and …
mcansh Jan 12, 2026
a04b523
fix: wrap loadEnvFile in try-catch to handle potential errors
mcansh Jan 12, 2026
f14b6bb
chore: add railway configuration for build and deployment
mcansh Jan 13, 2026
dfd2dde
feat(prisma): add prisma configuration file and datasource setup
mcansh Jan 13, 2026
6e3945e
feat: migrate from date-fns to temporal-polyfill for date handling
mcansh Jan 13, 2026
346352b
feat: add game history feature with user authentication and game retr…
mcansh Jan 13, 2026
b6529c3
fix(GameOverModal): update background opacity
mcansh Jan 13, 2026
2984484
Revert "feat: migrate from date-fns to temporal-polyfill for date han…
mcansh Jan 13, 2026
feb7df5
chore(deps): bump vite to beta
mcansh Jan 13, 2026
203df35
chore: update form action and refactor reveal word logic
mcansh Jan 13, 2026
3878113
feat: clean up redis after game ends
mcansh Jan 13, 2026
1030897
fix(GameOverModal): hydration issue
mcansh Jan 13, 2026
8e33c7e
chore: change interfaces to types
mcansh Jan 13, 2026
559198f
chore(deps): downgrade vite back to stable v7
mcansh Jan 13, 2026
7f44cc7
chore: enable oxfmt tailwind class sorting
mcansh Jan 13, 2026
87723b6
chore: remove old route files
mcansh Jan 13, 2026
96abbd7
chore: add healthcheck route, re-add missing markup classnames and ex…
mcansh Jan 13, 2026
dcb84ab
chore: remove left over file
mcansh Jan 14, 2026
3b95640
feat: add http-helmet
mcansh Jan 14, 2026
ac7a65d
chore(history): update route parameter
mcansh Jan 14, 2026
4610d33
chore: add dev script to package.json and configure server port in vi…
mcansh Jan 14, 2026
3c5c190
test: add initial tests
mcansh Jan 15, 2026
0227875
chore(deps): add override for hono dependency version
mcansh Jan 15, 2026
d80be9d
ci: update dependabot configuration for npm and add group patterns
mcansh Jan 15, 2026
5bceae2
ci: add test workflow
mcansh Jan 15, 2026
2a0687d
chore: bundle with tsdown, add dev exports
mcansh Jan 15, 2026
358f3e7
chore: remove package level packageManager field
mcansh Jan 15, 2026
2b70e1f
ci: add environment variables for testing in GitHub Actions workflow
mcansh Jan 15, 2026
40e68b1
test: remove exclusive flag from home page test and clean up contact …
mcansh Jan 15, 2026
eed02c3
feat: update game cleanup queue
mcansh Jan 15, 2026
fcebcf1
chore: remove unused imports and clean up game logic
mcansh Jan 15, 2026
86e8c63
chore: update oxfmt settings
mcansh Jan 15, 2026
f2ea4c0
chore: remove timeStyle from date formatter
mcansh Jan 15, 2026
de3c63d
chore: remove start_with_migrations.sh script and update deploy comma…
mcansh Jan 15, 2026
bab0769
chore: migrate tsconfigs to `@total-typescript/tsconfig`
mcansh Jan 15, 2026
0ef0f9e
chore: update plugin tsdown config
mcansh Jan 15, 2026
146d890
chore: disable attw for now
mcansh Jan 15, 2026
43d21f9
chore: add jsx option to compilerOptions in tsconfig
mcansh Jan 15, 2026
f4bd1a0
chore: update preDeployCommand to use pnpx for prisma migration
mcansh Jan 15, 2026
6a04e8d
chore: update preDeployCommand to use npx for prisma migration
mcansh Jan 15, 2026
56cc4b4
Revert "chore: remove start_with_migrations.sh script and update depl…
mcansh Jan 15, 2026
7265f39
test: add unit tests for boardToEmoji and enhance game logic tests
mcansh Jan 16, 2026
a765c95
fixup! test: add unit tests for boardToEmoji and enhance game logic t…
mcansh Jan 16, 2026
53f4252
test: add unit tests for safeRedirect function
mcansh Jan 16, 2026
017399e
chore: ensure secure flag is set based on environment
mcansh Jan 16, 2026
32cf282
fix: update build process and exports configuration for vite-plugin-r…
mcansh Jan 16, 2026
01c915a
feat: improve computeGuess function logic and error handling
mcansh Jan 16, 2026
cf1b967
chore(deps): bump to latest
mcansh Jan 19, 2026
234cddd
chore: replace className with class throughout codebase (#108)
Copilot Jan 23, 2026
1832109
chore: allowImportingTsExtensions
mcansh Jan 23, 2026
5a5b6ea
feat: implement graceful shutdown for server
mcansh Jan 23, 2026
d4ede1d
chore: use for...of
mcansh Jan 28, 2026
57473f6
chore(deps): use published remix vite plugin
mcansh Mar 25, 2026
16f59a8
feat: un-monorepo, update to latest remix package and conventions
mcansh Mar 25, 2026
0109505
feat: migrate to vite-plus
mcansh Mar 25, 2026
9b6597f
chore: update comment to ignore types
mcansh Mar 25, 2026
3ff326b
chore: update solo config
mcansh Mar 25, 2026
8532544
chore: update schema parsing
mcansh Mar 25, 2026
5fb36d1
chore: migrate controllers
mcansh Mar 25, 2026
c9cf8a3
feat: move jsx to own files
mcansh Mar 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 0 additions & 95 deletions .eslintrc.cjs

This file was deleted.

1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
packages/wordle/app/generated/** linguist-generated
1 change: 1 addition & 0 deletions .github/copilot-instructions.md
28 changes: 25 additions & 3 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,35 @@ updates:
directory: /
schedule:
interval: daily
assignees:
- "mcansh"

- package-ecosystem: npm
directory: /
schedule:
interval: weekly
day: "monday"
time: "10:00"
timezone: "America/Detroit"
labels:
- "dependencies"
assignees:
- "mcansh"
groups:
"remix":
patterns:
- "@remix-run/*"
- "remix"
"vitest":
patterns:
- "@vitest/*"
- "vitest"
"prisma":
patterns:
- "@prisma/*"
- "prisma"
"tailwindcss":
patterns:
- "@tailwindcss/*"
- "tailwindcss"
"oxc":
patterns:
- "oxlint"
- "oxfmt"
43 changes: 43 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: 🧪 Test

on:
push:
pull_request:

env:
DATABASE_URL: postgresql://postgres:password@localhost:5432/remix_wordle_test
REDIS_URL: redis://localhost:6379
SESSION_SECRET: thisisaverysecuresecret1234567890

Comment on lines +7 to +11
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# Locate and read the workflow file
find . -name "test.yml" -path ".github/workflows/*" -type f

Repository: mcansh/remix-wordle

Length of output: 45


🏁 Script executed:

# Read the workflow file to verify the env block
if [ -f ".github/workflows/test.yml" ]; then
  cat -n ".github/workflows/test.yml" | head -20
fi

Repository: mcansh/remix-wordle

Length of output: 595


🏁 Script executed:

# Check if there are any other security-related issues in the workflow
if [ -f ".github/workflows/test.yml" ]; then
  cat ".github/workflows/test.yml"
fi

Repository: mcansh/remix-wordle

Length of output: 1011


🏁 Script executed:

# Check if tests depend on database/redis services
grep -r "DATABASE_URL\|REDIS_URL\|postgres\|redis" . --include="*.ts" --include="*.tsx" --include="*.js" --include="*.jsx" --include="*.json" --max-count=10

Repository: mcansh/remix-wordle

Length of output: 2313


Move hardcoded secrets to GitHub Secrets.

SESSION_SECRET, DATABASE_URL, and REDIS_URL should not be hardcoded in the workflow. Use GitHub repository secrets instead to prevent credential exposure and reduce secret scanning noise.

🔧 Proposed fix
 env:
-  DATABASE_URL: postgresql://postgres:password@localhost:5432/remix_wordle_test
-  REDIS_URL: redis://localhost:6379
-  SESSION_SECRET: thisisaverysecuresecret1234567890
+  DATABASE_URL: ${{ secrets.TEST_DATABASE_URL }}
+  REDIS_URL: ${{ secrets.TEST_REDIS_URL }}
+  SESSION_SECRET: ${{ secrets.SESSION_SECRET }}
📝 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
env:
DATABASE_URL: postgresql://postgres:password@localhost:5432/remix_wordle_test
REDIS_URL: redis://localhost:6379
SESSION_SECRET: thisisaverysecuresecret1234567890
env:
DATABASE_URL: ${{ secrets.TEST_DATABASE_URL }}
REDIS_URL: ${{ secrets.TEST_REDIS_URL }}
SESSION_SECRET: ${{ secrets.SESSION_SECRET }}
🧰 Tools
🪛 Checkov (3.2.334)

[medium] 8-9: Basic Auth Credentials

(CKV_SECRET_4)


[low] 10-11: Base64 High Entropy String

(CKV_SECRET_6)

🤖 Prompt for AI Agents
In @.github/workflows/test.yml around lines 7 - 11, Replace the hardcoded
environment values in the workflow env block (SESSION_SECRET, DATABASE_URL,
REDIS_URL) with references to GitHub Secrets (e.g., use secrets.SESSION_SECRET,
secrets.DATABASE_URL, secrets.REDIS_URL) and add those secrets in the repository
Settings → Secrets before merging; update the env entries under env: to point to
the secret names and remove plaintext credentials so the workflow reads secret
values at runtime instead of storing them in the file.

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
name: 🧪 Test
if: github.repository == 'mcansh/remix-wordle'

runs-on: ubuntu-slim
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v5

- name: ⎔ Setup node
uses: actions/setup-node@v6
with:
node-version-file: ".node-version"

- uses: pnpm/action-setup@v4
name: 🟧 Install pnpm
with:
cache: true

- name: 🟧 Install dependencies
run: pnpm install --recursive --frozen-lockfile --strict-peer-dependencies

- name: 🛠️ Build
run: pnpm run build

- name: 🧪 Run Tests
run: pnpm run test
Comment on lines +16 to +43
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

cat -n .github/workflows/test.yml

Repository: mcansh/remix-wordle

Length of output: 1312


🏁 Script executed:

# Search for test configuration files
fd -e "jest.config" -e "vitest.config" -e "test.env" -e ".mocharc" -e ".babelrc" 2>/dev/null | head -20

Repository: mcansh/remix-wordle

Length of output: 45


🏁 Script executed:

# Look for any test files to understand what they test
fd -type f -name "*.test.*" -o -name "*.spec.*" 2>/dev/null | head -10

Repository: mcansh/remix-wordle

Length of output: 45


🏁 Script executed:

# Search for localhost references in the codebase
rg "localhost" --type-list | head -5

Repository: mcansh/remix-wordle

Length of output: 452


🏁 Script executed:

# Search for environment variables related to databases
rg "DATABASE_URL|REDIS_URL|POSTGRES|postgres" --type js --type ts --type json -i | head -20

Repository: mcansh/remix-wordle

Length of output: 2181


🏁 Script executed:

# Check for docker-compose or similar setup
fd docker-compose | head -10

Repository: mcansh/remix-wordle

Length of output: 81


🏁 Script executed:

# Check package.json for test script and any setup
rg "test" package.json -A 5 -B 5

Repository: mcansh/remix-wordle

Length of output: 388


🏁 Script executed:

# Look for any setup files or test initialization
fd -type f -name "setup*" -o -name "*.setup.*" 2>/dev/null | head -10

Repository: mcansh/remix-wordle

Length of output: 45


🏁 Script executed:

cat -n docker-compose.yml

Repository: mcansh/remix-wordle

Length of output: 647


🏁 Script executed:

# Check the actual test script in the wordle package
fd -type f package.json | xargs rg "test" -A 3 -B 1

Repository: mcansh/remix-wordle

Length of output: 14014


Add Postgres and Redis services to the workflow.

The environment variables DATABASE_URL and REDIS_URL are defined but the services aren't started. Tests will fail when trying to connect to localhost:5432 and localhost:6379. Add service containers to the job configuration:

🔧 Proposed fix (service containers)
 jobs:
   test:
     name: 🧪 Test
     if: github.repository == 'mcansh/remix-wordle'
+    services:
+      postgres:
+        image: postgres:15
+        env:
+          POSTGRES_USER: postgres
+          POSTGRES_PASSWORD: password
+          POSTGRES_DB: remix_wordle_test
+        options: >-
+          --health-cmd pg_isready
+          --health-interval 10s
+          --health-timeout 5s
+          --health-retries 5
+        ports:
+          - 5432:5432
+      redis:
+        image: redis:alpine
+        options: >-
+          --health-cmd "redis-cli ping"
+          --health-interval 10s
+          --health-timeout 5s
+          --health-retries 5
+        ports:
+          - 6379:6379
🤖 Prompt for AI Agents
In @.github/workflows/test.yml around lines 16 - 43, The test job is missing
Postgres and Redis service containers so DATABASE_URL and REDIS_URL point to
non-existent services; add a services block under the job named "test" that
starts a Postgres container (e.g., image postgres:15) with
POSTGRES_USER/POSTGRES_PASSWORD/POSTGRES_DB env and exposed port 5432 and a
Redis container (e.g., image redis:7) exposing 6379, set job-level env
DATABASE_URL (postgres://user:pass@localhost:5432/dbname) and REDIS_URL
(redis://localhost:6379) to match those credentials, and add a short pre-build
step (before "🛠️ Build"/before "🧪 Run Tests") to wait for service readiness
(simple retry loop or pg_isready) so the tests that run in the "Run Tests" step
can connect reliably.

4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
node_modules

/.cache
/build
**/build/**
**/dist/**
.env
.DS_Store
**/coverage/**
3 changes: 0 additions & 3 deletions .husky/pre-commit

This file was deleted.

1 change: 1 addition & 0 deletions .node-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
24
Loading
Loading