You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gcgj-dify-1.7.0/CLAUDE.md

2.8 KiB

Claude Code Rules for Dify Project

Docker Commands

  1. Always rebuild containers when changes are made

    • Use docker-compose up [container-name] --build -d when:
      • Web container code is changed
      • API container code is changed
      • Environment variables (.env) are modified
      • Dependencies are updated
    • Example: docker-compose up web --build -d
  2. Nginx proxy restart may be required

    • After significant configuration changes, restart the nginx proxy:
      • cd ../nginx-proxy && docker-compose up -d
    • This is especially important for:
      • Port mapping changes
      • SSL certificate updates
      • Proxy configuration modifications

Testing Commands

  1. Run linting and type checking
    • API (Python): cd api && ruff check .
    • Web (TypeScript): cd web && npm run lint && npm run type-check

Git Workflow

  1. Never commit unless explicitly asked
    • Only create commits when the user specifically requests it
    • Always check git status before committing

File Management

  1. Prefer editing over creating
    • Always edit existing files when possible
    • Only create new files when absolutely necessary
    • Never create documentation files unless explicitly requested

MFA (Multi-Factor Authentication) Implementation Issues

  1. Modal vs Dialog Component Usage

    • Problem: Using Dialog component (z-index: 40) instead of Modal (z-index: 70) can cause click-blocking issues
    • Solution: Always use Modal component for account settings and similar UI interactions
    • Pattern:
      • Modal: For settings, configurations, and single-purpose interactions
      • Dialog: Reserved for multi-step wizards and critical actions
  2. MenuDialog Structure Fix

    • Problem: Fixed overlay inside DialogPanel blocks all clicks
    • Solution: Separate overlay and content layers with proper structure:
      <Dialog>
        <TransitionChild>
          <div className="fixed inset-0 bg-overlay pointer-events-none" />
        </TransitionChild>
        <div className="fixed inset-0 overflow-y-auto pointer-events-none">
          <DialogPanel className="pointer-events-auto">
            {content}
          </DialogPanel>
        </div>
      </Dialog>
      
  3. 502 Error Resolution

    • Problem: Nginx-proxy caches old container IPs after restart
    • Solution:
      • Restart all containers: docker-compose down && docker-compose up -d
      • Reload nginx configuration: docker exec nginx-proxy nginx -s reload
      • May need to restart nginx-proxy separately
  4. Debug Tips for Click Issues

    • Add debug styling with distinct colors and borders
    • Use console.log for hover and click events
    • Check z-index layering with browser developer tools
    • Verify pointer-events CSS property