- Add combined coverage script to merge lcov reports
- Update GitHub workflows to generate and upload combined coverage
- Install missing CLI dependencies (ora, yaml, cli-table3, mock-fs)
- Add initial tests for SessionManager and IssueHandler
- Exclude type-only files from coverage metrics
- Update jest config to exclude type files from coverage
This ensures Codecov receives coverage data from both the main project
and CLI subdirectory, providing accurate overall project coverage metrics.
* fix: Fix Claude integration tests by ensuring provider registration
The Claude webhook integration tests were failing because the provider
wasn't being registered before the routes were imported. This was due
to the conditional check that skips provider initialization in test mode.
Changes:
- Move environment variable setup before any imports
- Import Claude provider before importing webhook routes
- Remove duplicate provider registration from beforeAll hook
This ensures the Claude provider is properly registered with the webhook
registry before the tests run.
* fix: Add comprehensive test suite to PR checks
- Replace test:unit with test:ci to run full test suite (unit + integration)
- Add format:check for Prettier validation
- Add typecheck for TypeScript compilation checks
- Add codecov upload for PR coverage reporting
- Add TruffleHog secret scanning for PR changes
This ensures PRs catch all issues that would fail on main branch,
preventing post-merge failures.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* test: Remove obsolete Claude integration tests
These tests were for the deprecated /api/webhooks/claude endpoint
that was removed in commit dd5e6e6. The functionality is now covered
by unit tests for the new webhook provider architecture:
- ClaudeWebhookProvider.test.ts
- SessionHandler.test.ts
- OrchestrationHandler.test.ts
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
* 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>
* feat: Add CLI for managing autonomous Claude Code container sessions
This commit implements a new CLI tool 'claude-hub' for managing autonomous Claude Code container sessions. The CLI provides commands for:
- Starting autonomous sessions (start)
- Listing active/completed sessions (list)
- Viewing session logs (logs)
- Continuing sessions with new commands (continue)
- Stopping sessions (stop)
Each session runs in an isolated Docker container and maintains its state across interactions. The implementation includes session management, Docker container operations, and a comprehensive command-line interface.
Resolves#133🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: Complete autonomous CLI feature implementation
This commit adds the following enhancements to the autonomous Claude CLI:
- Add --issue flag to start command for GitHub issue context
- Implement start-batch command with tasks.yaml support
- Enhance PR flag functionality for better context integration
- Implement session recovery mechanism with recover and sync commands
- Add comprehensive documentation for all CLI commands
Resolves all remaining requirements from issue #133🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* test: Add comprehensive test coverage for CLI
- Add unit tests for SessionManager utility
- Add simplified unit tests for DockerUtils utility
- Add integration tests for start and start-batch commands
- Configure Jest with TypeScript support
- Add test mocks for Docker API and filesystem
- Add test fixtures for batch processing
- Document testing approach in README
- Add code coverage reporting
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* ci: Add CLI tests workflow and configure stable test suite
- Create dedicated GitHub workflow for CLI tests
- Update CLI test script to run only stable tests
- Add test:all script for running all tests locally
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Improve CLI with TypeScript fixes and CI enhancements
- Fix TypeScript Promise handling in list.ts and stop.ts
- Update CI workflow to add build step and run all tests
- Move ora dependency from devDependencies to dependencies
- Update Docker build path to use repository root
- Improve CLI script organization in package.json
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Skip Docker-dependent tests in CI
- Update test scripts to exclude dockerUtils tests
- Add SKIP_DOCKER_TESTS environment variable to CI workflow
- Remove dockerUtils.simple.test.ts from specific tests
This prevents timeouts in CI caused by Docker tests.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Refine test patterns to exclude only full Docker tests
- Replace testPathIgnorePatterns with more precise glob patterns
- Ensure dockerUtils.simple.test.ts is still included in the test runs
- Keep specific tests command with all relevant tests
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Update Jest test patterns to correctly match test files
The previous glob pattern '__tests__/\!(utils/dockerUtils.test).ts' was not finding any tests because it was looking for .ts files directly in the __tests__ folder, but all test files are in subdirectories. Fixed by using Jest's testPathIgnorePatterns option instead.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* test: Add tests for CLI list and continue commands
Added comprehensive test coverage for the CLI list and continue commands:
- Added list.test.ts with tests for all filtering options and edge cases
- Added continue.test.ts with tests for successful continuation and error cases
- Both files achieve full coverage of their respective commands
These new tests help improve the overall test coverage for the CLI commands module.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* test: Add comprehensive tests for CLI logs, recover, and stop commands
Added test coverage for remaining CLI commands:
- logs.test.ts - tests for logs command functionality (94.54% coverage)
- recover.test.ts - tests for recover and sync commands (100% coverage)
- stop.test.ts - tests for stop command with single and all sessions (95.71% coverage)
These tests dramatically improve the overall commands module coverage from 56% to 97%.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Align PR review prompt header with test expectations
The PR review prompt header in githubController.ts now matches what the test expects in
githubController-check-suite.test.js, fixing the failing test.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
- Updated all GitHub URLs and organization references across the codebase
- Updated documentation links to use claude-did-this.com
- Removed self-hosted runner related files as they are no longer used
- Updated test repository references
- Preserved Docker Hub references as requested
Note: .env files and .claude/settings.local.json were also updated but are gitignored
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Claude <noreply@anthropic.com>
* feat: Improve Claude authentication setup experience
- Replace 'claude login' with 'claude --dangerously-skip-permissions'
- Fix path references from /auth-output to actual authentication location
- Simplify user instructions to be more accessible
- Add automatic authentication execution (no manual typing required)
- Add comprehensive validation for authentication success
- Check file existence, size, and timestamp
- Provide clear error messages for different failure scenarios
- Remove deprecated setup-claude-auth.sh script
- Update CLAUDE.md to reference correct build script path
- Exclude todos directory from authentication capture
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* remove self-hosted runners from ci
---------
Co-authored-by: Claude <noreply@anthropic.com>
Use dynamic base/head detection to avoid BASE and HEAD being the same.
This restores the elegant fix from the previous security workflow.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: merge entrypoint scripts and fix auto-tagging tool permissions
- Merged duplicate claudecode-entrypoint.sh and claudecode-tagging-entrypoint.sh scripts
- Added dynamic tool selection based on OPERATION_TYPE environment variable
- Fixed auto-tagging permissions to include required Bash(gh:*) commands
- Removed 95% code duplication between entrypoint scripts
- Simplified claudeService.ts to use unified entrypoint
- Auto-tagging now uses: Read,GitHub,Bash(gh issue edit:*),Bash(gh issue view:*),Bash(gh label list:*)
- General operations continue to use full tool set
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: update Dockerfile to use unified entrypoint script
- Remove references to deleted claudecode-tagging-entrypoint.sh
- Update build process to use single unified entrypoint script
* fix: remove unnecessary async from promisify mock to fix lint error
* feat: add Husky pre-commit hooks with Prettier as primary formatter
- Added Husky for Git pre-commit hooks
- Configured eslint-config-prettier to avoid ESLint/Prettier conflicts
- Prettier handles all formatting, ESLint handles code quality only
- Pre-commit hooks: Prettier format, ESLint check, TypeScript check
- Updated documentation with pre-commit hook setup
- All code quality issues resolved
* feat: consolidate workflows and fix permission issues with clean Docker runners
- Replace 3 complex workflows with 2 lean ones (pull-request.yml, main.yml)
- Add Docker runner configuration for clean, isolated builds
- Remove file permission hacks - use ephemeral containers instead
- Split workload: GitHub-hosted for tests/security, self-hosted for Docker builds
- Add comprehensive pre-commit configuration for security
- Update documentation to be more pragmatic
- Fix credential file permissions and security audit
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: allow Husky prepare script to fail in production builds
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: update CI badge to reference new main.yml workflow
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Added workspace cleanup step to fix coverage file permissions before
checkout in the Docker Build and Publish workflow. This prevents the
"Permission denied" errors when GitHub Actions tries to clean the
workspace containing Jest-generated coverage files with restrictive
permissions.
The fix applies the same solution already used in CI and PR workflows:
- Pre-checkout: Fix permissions and remove coverage directory
- Checkout: Use clean mode to ensure fresh workspace
Fixes GitHub Actions error:
"File was unable to be removed Error: EACCES: permission denied,
rmdir 'coverage/lcov-report'"
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add explicit workspace cleanup step before checkout to handle coverage
directories with restrictive permissions that prevent GitHub Actions cleanup.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add clean checkout and permission fixes for Jest coverage reports to prevent
runner cleanup failures with restricted file permissions.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The workflow was using incorrect syntax that created a single string
"self-hosted, linux, x64, docker" instead of an array of individual
labels ["self-hosted", "linux", "x64", "docker"].
This caused jobs to queue indefinitely as GitHub couldn't find a runner
with the combined label string.
🤖 Generated with [Claude Code](https://claude.ai/code)
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
- Add :nightly tag when pushing to main branch for both images
- Keep :latest tag only for version tags (v*.*.*)
- Add full semantic versioning support to claudecode image
- Remove -staging suffix approach from claudecode image
This fixes the "tag is needed when pushing to registry" error that
occurs when pushing to main branch without any valid tags.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update workflow to use intelligenceassist/claude-hub instead of claude-github-webhook
- Update all README references to use new image name
- Update Docker Hub documentation with correct image names and links
- Remove complex branch/SHA tags that caused invalid tag format
- Use clean semver tags: 0.1.0, 0.1, 0, latest
- Follows standard Docker Hub conventions
- Update CI workflow Codecov step to use exact format requested in issue #108
- Add coverage reporting to PR workflow for better feedback on pull requests
- Simplify Codecov configuration to use repository slug format
- Include coverage job in PR summary and failure checks
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove Codecov upload from PR workflow to prevent hanging check suites
- Keep coverage upload only on main branch CI workflow
- Add CODECOV_TOKEN and verbose logging for better debugging
- Update codecov.yml to prevent check suites on non-main branches
- Replace npx jest with npm run test:ci in CI coverage job
- Update test:ci script to match original command pattern
- Ensures jest is properly available through npm scripts
Fixes#91🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix jest command not found in coverage job by using npx jest
- Fix lint command in CI/CD pipeline to use lint:check
- Fix E2E test helper conditionalDescribe function to properly skip tests when Docker images are missing
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The coverage job was failing because it was running E2E tests that require
Docker containers, but the coverage job only depends on unit tests, not the
docker job.
Changed the coverage generation to only run unit tests by using
testPathPattern to exclude E2E tests. This is appropriate since:
- E2E tests are primarily for workflow testing
- Unit tests provide sufficient code coverage metrics
- Docker containers are not available in the coverage job environment
Resolves CI pipeline failure after codecov badge merge.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove Node.js 18.x from PR workflow test matrix
- Update README.md to require Node.js 20+ instead of 16+
- Add engines field to package.json specifying Node.js >=20.0.0
- Fix linting issues (unused import and indentation)
This addresses the compatibility issue with @octokit/rest v22.0.0
which dropped support for Node.js 18, simplifying our CI/CD pipeline
and ensuring consistent Node.js version requirements.
Resolves#68🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add PR_REVIEW_TRIGGER_WORKFLOW environment variable for precise control
- Make automated PR reviews repository-independent
- Fix Docker security scan conditional logic in pr.yml
- Add security job dependencies to docker-build job
- Filter out CodeQL/analysis-only workflows from triggering PR reviews
- Update documentation with new configuration options
- Partial test fixes for new workflow filtering logic
This prevents multiple PR reviews from different check suites and makes
the system work across any repository with proper configuration.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create dedicated PR workflow (pr.yml) with comprehensive CI checks
- Remove pull_request triggers from ci.yml, security.yml, and deploy.yml
- Remove develop branch references for trunk-based development
- Include security scans, CodeQL analysis, and Docker builds in PR workflow
- Prevent automated PR review from triggering multiple times
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add explicit check to skip build job on pull requests
- Ensures Docker images are only built after merge to main or on version tags
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace all self-hosted runners with ubuntu-latest
- Docker builds now only run on main branch or version tags, not on PRs
- Reduces stress on self-hosted infrastructure
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Delete placeholder E2E test file that only tested mocked values
- Remove empty integration test directories (aws/, claude/, github/)
- Clean up package.json test scripts (removed test:integration and test:e2e)
- Update CI workflow to remove E2E test job
These placeholder tests provided no real value as they only verified
hardcoded mock responses. Real E2E and integration tests can be added
when there's actual functionality to test.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add path filtering to deploy.yml to match ci.yml pattern.
This should prevent Docker builds when only documentation changes.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Security scans run faster on GitHub runners than self-hosted
- E2E tests are minimal (1 scenario) so GitHub runners are sufficient
- Only keep Docker builds on self-hosted since they're resource intensive
- Results in faster CI execution and better cost efficiency
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Prevent malicious PRs from forks running on self-hosted infrastructure by
restricting self-hosted jobs to only run for:
- Direct pushes (not PRs from forks)
- PRs from intelligence-assist org members
This protects against potential security vulnerabilities while maintaining
functionality for trusted contributors.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Using standard ubuntu-latest (2-core) runners for light jobs to avoid
additional costs beyond GitHub Team plan. Heavy jobs still use self-hosted.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix label capitalization: linux,x64 → Linux,X64 to match actual runner
- Strategic job distribution: heavy tasks on self-hosted, light tasks on GitHub 4-core
- Ensures jobs are picked up by homeserver runner instead of queuing indefinitely
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Simplified runner labels from complex arrays to simple 'self-hosted' to match
actual runner configuration and ensure jobs are picked up properly.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Move all jobs from GitHub-hosted to self-hosted runners
- Leverage 16-core self-hosted infrastructure for all workloads
- Maintain parallel execution benefits with dedicated hardware
- Expected dramatic performance improvement across all pipelines
- Split test jobs into parallel units (lint, unit, integration, e2e, coverage)
- Move Docker builds to self-hosted runners for better performance
- Use ubuntu-latest-4-cores for faster GitHub-hosted CI jobs
- Add aggressive caching for npm dependencies and Docker layers
- Parallelize security scans with other jobs instead of sequential execution
- Optimize job dependencies to reduce pipeline wall-clock time
Expected performance improvements:
- CI Pipeline: ~60% faster due to parallel execution
- Docker Builds: ~40% faster on self-hosted infrastructure
- Overall pipeline: ~50% reduction in total execution time
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Security scanning requires pushed images, which are not available
in PR context. Only run security scans on push events.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Extract only the first tag from Docker metadata output to fix
"could not parse reference" error when multiple tags are present.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Only push Docker images when not in a pull request context. PRs don't have
permission to push to ghcr.io, so we should only build without pushing.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Remove branch prefix from sha-based tags to avoid invalid tag format
when branch name is empty. Tags cannot start with a hyphen.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The project is written in JavaScript, not TypeScript, so there's no
typecheck script in package.json. Removing this step prevents CI failures.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Only set base/head parameters for pull requests
- For scheduled runs and pushes, let TruffleHog scan entire repo
- Fixes "BASE and HEAD commits are the same" error
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>