- Update package.json name and repo URL - Update README.md, CONTRIBUTING.md branding and links - Update UI components (Header, Chat) display names - Update gateway user-agent string - Rename GitHub repo via API - Mark FEEDBACK.md item #1 as done
2.1 KiB
2.1 KiB
Contributing to PinchChat
Thanks for your interest in contributing! 🦞
Getting Started
- Fork the repository
- Clone your fork:
git clone https://github.com/<your-username>/pinchchat.git cd pinchchat - Install dependencies:
npm install - Set up your environment:
cp .env.example .env # Edit .env with your OpenClaw gateway details - Start the dev server:
npm run dev
Development
- Build:
npm run build— must pass with 0 errors before submitting a PR - Dev server:
npm run dev— starts Vite with hot reload - Preview:
npx vite preview— serve the production build locally
Project Structure
src/
├── components/ # React components
│ ├── chat/ # Chat area (messages, input, streaming)
│ └── sidebar/ # Session list sidebar
├── hooks/ # Custom React hooks (WebSocket, sessions)
├── lib/ # Utilities (markdown, formatting)
├── types/ # TypeScript type definitions
├── App.tsx # Root component
└── main.tsx # Entry point
Making Changes
- Create a feature branch:
git checkout -b feat/my-feature - Make your changes
- Ensure
npm run buildpasses with no errors - Commit using Conventional Commits:
feat:— new featurefix:— bug fixdocs:— documentation onlyrefactor:— code change that neither fixes a bug nor adds a featurestyle:— formatting, missing semicolons, etc.perf:— performance improvementci:— CI/CD changes
- Push and open a Pull Request
Reporting Issues
When filing an issue, please include:
- Browser and version
- Steps to reproduce
- Expected vs actual behavior
- Console errors (if any)
Code Style
- TypeScript strict mode
- Tailwind CSS v4 for styling (no inline styles)
- Functional React components with hooks
- Keep components focused and small
License
By contributing, you agree that your contributions will be licensed under the MIT License.