* feat: Implement Claude orchestration provider for parallel session management
- Add ClaudeWebhookProvider implementing the webhook provider interface
- Create orchestration system for running multiple Claude containers in parallel
- Implement smart task decomposition to break complex projects into workstreams
- Add session management with dependency tracking between sessions
- Support multiple execution strategies (parallel, sequential, wait_for_core)
- Create comprehensive test suite for all components
- Add documentation for Claude orchestration API and usage
This enables super-charged Claude capabilities for the MCP hackathon by allowing
multiple Claude instances to work on different aspects of a project simultaneously,
with intelligent coordination and result aggregation.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: Add session management endpoints for MCP integration
- Add SessionHandler for individual session CRUD operations
- Create endpoints: session.create, session.get, session.list, session.start, session.output
- Fix Claude invocation in Docker containers using proper claude chat command
- Add volume mounts for persistent storage across session lifecycle
- Simplify OrchestrationHandler to create single coordination sessions
- Update documentation with comprehensive MCP integration examples
- Add comprehensive unit and integration tests for new endpoints
- Support dependencies and automatic session queuing/starting
This enables Claude Desktop to orchestrate multiple Claude Code sessions via MCP Server tools.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Update ClaudeWebhookProvider validation for session endpoints
- Make project fields optional for session management operations
- Add validation for session.create requiring session field
- Update tests to match new validation rules
- Fix failing CI tests
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Use Promise.reject for validation errors in parsePayload
- Convert synchronous throws to Promise.reject for async consistency
- Fixes failing unit tests expecting rejected promises
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Mock SessionManager in integration tests to avoid Docker calls in CI
- Add SessionManager mock to prevent Docker operations during tests
- Fix claude-webhook.test.ts to use proper test setup and payload structure
- Ensure all integration tests can run without Docker dependency
- Fix payload structure to include 'data' wrapper
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Mock child_process to prevent Docker calls in CI tests
- Mock execSync and spawn at child_process level to prevent any Docker commands
- This ensures tests work in CI environment without Docker
- Tests now pass both locally and in CI Docker build
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Address PR review comments and fix linter warnings
- Move @types/uuid to devDependencies
- Replace timestamp+Math.random with crypto.randomUUID() for better uniqueness
- Extract magic number into EXTRA_SESSIONS_COUNT constant
- Update determineStrategy return type to use literal union
- Fix unnecessary optional chaining warnings
- Handle undefined labels in GitHub transformers
- Make TaskDecomposer.decompose synchronous
- Add proper eslint-disable comments for intentional sync methods
- Fix all TypeScript and formatting issues
* fix: Mock SessionManager in integration tests to prevent Docker calls in CI
- Add SessionManager mocks to claude-session.test.ts
- Add SessionManager mocks to claude-webhook.test.ts
- Prevents 500 errors when running tests in CI without Docker
- All integration tests now pass without requiring Docker runtime
* fix: Run only unit tests in Docker builds to avoid Docker-in-Docker issues
- Change test stage to run 'npm run test:unit' instead of 'npm test'
- Skips integration tests that require Docker runtime
- Prevents CI failures in Docker container builds
- Integration tests still run in regular CI workflow
* fix: Use Dockerfile CMD for tests in Docker build CI
- Remove explicit 'npm test' command from docker run
- Let Docker use the CMD defined in Dockerfile (npm run test:unit)
- This ensures consistency and runs only unit tests in Docker builds
---------
Co-authored-by: Claude <noreply@anthropic.com>
- Implement self-hosted runner fallback via USE_SELF_HOSTED repository variable
- Add runner information logging for debugging
- Add timeout protection (30 minutes) to prevent hanging
- Update documentation to match actual implementation
- Fix npm permission context switching in Dockerfile
- Consolidate directory creation to minimize user context switches
## 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>
- Removed version pin from @anthropic-ai/claude-code to allow automatic updates
- Added hadolint ignore directive for DL3016 on this specific line
- This allows us to stay current with Claude Code updates while maintaining security for other packages
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed python3-pip version to 23.0.1+dfsg-1 (without +deb12u1 suffix)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated git version to 1:2.39.5-0+deb12u2
- Updated curl version to 7.88.1-10+deb12u12
- Use wildcard for Docker CLI version (5:27.*) for better compatibility
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Set SHELL with pipefail option (DL4006)
- Pin all apt package versions (DL3008)
- Add --no-install-recommends flag to apt-get (DL3015)
- Pin Claude Code npm package version to 1.0.3 (DL3016)
- Fix groupadd/usermod error handling pattern (SC2015)
- Consolidate RUN instructions for permission changes (DL3059)
These changes address all Hadolint warnings and improve container security.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>