**Problem:** - player-ownership.ts imported drizzle-orm and @/db at top level - When RoomMemoryPairsProvider imported client-safe utilities, Webpack bundled ALL imports including database code - This caused hydration error: "The 'original' argument must be of type Function" - Node.js util.promisify was being called in browser context **Solution:** 1. Created player-ownership.client.ts with ONLY client-safe utilities - No database imports - Safe to import from 'use client' components - Contains: buildPlayerOwnershipFromRoomData(), buildPlayerMetadata(), helper functions 2. Updated player-ownership.ts to re-export client utilities and add server-only functions - Re-exports everything from .client.ts - Adds buildPlayerOwnershipMap() (async, database-backed) - Safe to import from server components/API routes 3. Updated RoomMemoryPairsProvider to import from .client.ts **Result:** - No more hydration errors on /arcade/room - Client bundle doesn't include database code - Server code can still use both client and server utilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
53 lines
1.3 KiB
YAML
53 lines
1.3 KiB
YAML
name: Verify Examples
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
paths:
|
|
- "src/**"
|
|
- "templates/**"
|
|
- "docs/images/**"
|
|
- ".github/workflows/verify-examples.yml"
|
|
|
|
jobs:
|
|
verify-examples:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: "3.9"
|
|
|
|
- name: Install system dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y poppler-utils qpdf
|
|
|
|
- name: Install Typst
|
|
run: |
|
|
# Download and install Typst
|
|
wget https://github.com/typst/typst/releases/latest/download/typst-x86_64-unknown-linux-musl.tar.xz
|
|
tar -xf typst-x86_64-unknown-linux-musl.tar.xz
|
|
sudo mv typst-x86_64-unknown-linux-musl/typst /usr/local/bin/
|
|
typst --version
|
|
|
|
- name: Install Python dependencies
|
|
run: |
|
|
pip install pyyaml
|
|
|
|
- name: Verify examples are up to date
|
|
run: |
|
|
make verify-examples
|
|
|
|
- name: Upload example images if changed
|
|
if: failure()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: updated-examples
|
|
path: docs/images/
|