* fix: Improve production deployment configuration
- Update default port from 3003 to 3002 for consistency
- Make port configurable via environment variable in docker-compose
- Add .env file loading support in start-api.sh
- Optimize startup.sh for production (skip builds, expect pre-built dist)
- Make Claude Code image build conditional on Dockerfile availability
- Fix rate limiting configuration for proxy environments
- Remove jest types from tsconfig (not needed in production)
These changes improve deployment flexibility and production readiness.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Address PR review feedback
- Fix port inconsistency: Change hardcoded 3003 to 3002 in src/index.ts
- Fix security risk: Replace unsafe export command with set -a/source/set +a
- Remove unnecessary Dockerfile.claudecode volume mount from docker-compose
(The Dockerfile already copies all necessary files during build)
These changes address all critical issues identified in the PR review.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
- Remove unnecessary conditional checks in githubController.ts that caused TypeScript lint warnings
- Fix ESLint configuration to properly handle mixed JavaScript and TypeScript test files
- Update Jest configuration to remove deprecated isolatedModules option
- Add isolatedModules: true to tsconfig.json as recommended by ts-jest
- Ensure all tests pass and build succeeds
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add comprehensive tests for index.ts (91.93% coverage)
- Add tests for routes/claude.ts (91.66% coverage)
- Add tests for routes/github.ts (100% coverage)
- Add tests for utils/startup-metrics.ts (100% coverage)
- Add tests for utils/sanitize.ts with actual exported functions
- Add tests for routes/chatbot.js
- Update test configuration to exclude test files from TypeScript build
- Fix linting issues in test files
- Install @types/supertest for TypeScript test support
- Update .gitignore to exclude compiled TypeScript test artifacts
Overall test coverage improved from ~65% to 76.5%
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
## Overview
Establishes comprehensive TypeScript infrastructure and tooling for
the claude-github-webhook project as specified in issue #101.
## Dependencies Added
- Core TypeScript: typescript, @types/node, @types/express, @types/body-parser
- Development: ts-node for dev execution
- ESLint: @typescript-eslint/parser, @typescript-eslint/eslint-plugin
- Testing: ts-jest, babel-jest for Jest TypeScript support
## Configuration Files
- tsconfig.json: Strict TypeScript config targeting ES2022/CommonJS
- eslint.config.js: Updated with TypeScript support and strict rules
- jest.config.js: Configured for both .js and .ts test files
- babel.config.js: Babel configuration for JavaScript transformation
## Build Scripts
- npm run build: Compile TypeScript to dist/
- npm run build⌚ Watch mode compilation
- npm run typecheck: Type checking without compilation
- npm run clean: Clean build artifacts
- npm run dev: Development with ts-node
- npm run dev⌚ Development with nodemon + ts-node
## Infrastructure Verified
✅ TypeScript compilation works
✅ ESLint supports TypeScript files
✅ Jest runs tests with TypeScript support
✅ All existing tests pass (67 tests, 2 skipped)
✅ Docker build process updated for TypeScript
## Documentation
- CLAUDE.md updated with TypeScript build commands and architecture
- Migration strategy documented (Phase 1: Infrastructure, Phase 2: Code conversion)
- TypeScript coding guidelines added
## Backward Compatibility
- Existing JavaScript files continue to work during transition
- Support for both .js and .ts files in tests and linting
- No breaking changes to existing functionality
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>