Skip to content

feat: GitHub webhook enhancements and fixes#14

Merged
zbigniewsobiecki merged 5 commits intomainfrom
dev
Jan 2, 2026
Merged

feat: GitHub webhook enhancements and fixes#14
zbigniewsobiecki merged 5 commits intomainfrom
dev

Conversation

@zbigniewsobiecki
Copy link
Copy Markdown
Member

Summary

Comprehensive improvements to GitHub webhook integration, including support for PR review submissions, automatic card movement, and better webhook handling.

Changes

GitHub Webhook Improvements

PR Review Submission Support (b1809e2)

  • Added PRReviewSubmittedTrigger to handle pull_request_review events
  • Triggers review agent when PR reviews are submitted (approve/request changes)
  • Enhanced webhook queue to store event types for proper routing
  • Previously only supported review comments, now supports full review submissions

Automatic Card Movement (61c84eb)

  • Cards now automatically move to "IN REVIEW" list after PR creation
  • Adds comment with PR URL to the card
  • Mirrors existing Trello webhook handler behavior
  • Ensures consistent card state regardless of webhook source

Post-Job Grace Period Fix (b2d274e)

  • Increased postJobGracePeriodMs from 5s to 45s in project config
  • Allows Trello webhooks (debug agent trigger) to arrive before shutdown
  • Fixes race condition where debug agent wasn't triggered after log upload

Documentation

GitHub Webhook Documentation (0fede46)

  • Added comprehensive GitHub webhook setup instructions
  • Documented supported GitHub triggers and their behavior
  • Updated API endpoints table with GitHub webhook endpoint
  • Enhanced features list to include GitHub integration

Files Changed

  • src/triggers/github/pr-review-submitted.ts - New PR review submission trigger
  • src/triggers/github/webhook-handler.ts - Card movement logic
  • src/triggers/github/index.ts - Export new trigger
  • src/triggers/index.ts - Register new trigger
  • src/utils/webhookQueue.ts - Event type storage
  • config/projects.json - Increased grace period
  • README.md - GitHub webhook documentation

Testing

  • All 62 tests pass ✅
  • Type checking passes ✅
  • Linting passes (2 pre-existing complexity warnings unrelated to changes)

Supported GitHub Triggers

After this PR, CASCADE supports:

  • ✅ PR review comments
  • ✅ PR review submissions (approve/request changes) NEW
  • ✅ Check suite failures
  • ✅ PR ready to merge (auto-move to DONE)
  • ✅ Automatic card movement to IN REVIEW NEW

🤖 Generated with Claude Code

zbigniewsobiecki and others added 5 commits January 2, 2026 14:34
Add Redis support alongside PostgreSQL, enabling agents to use in-memory
data storage for caching, queues, and session management.

Changes:
- Install redis-server and redis-tools in Docker image
- Configure Redis with AOF persistence, 256MB memory limit, and LRU eviction
- Add startRedis() function following the same pattern as startPostgres()
- Integrate Redis startup into agent lifecycle (base.ts, review.ts)
- Document Redis CLI commands and usage in agent prompts
- Both PostgreSQL and Redis are critical: agents fail if either service doesn't start

Redis configuration:
- Port: 6379 (standard)
- Bind: localhost only for security
- Persistence: AOF with everysec fsync
- Memory: 256MB with allkeys-lru eviction policy
- Access: via redis-cli through Tmux gadget

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
The debug agent wasn't triggering because CASCADE was shutting down too
quickly after uploading session logs. Trello webhooks for attachment uploads
take a few seconds to arrive, but we were only waiting 5 seconds before
shutting down the machine.

Increased postJobGracePeriodMs from 5s to 45s to ensure:
1. Agent uploads session log attachment
2. Trello webhook is delivered while machine is still running
3. Debug agent trigger processes the webhook
4. Debug agent runs before shutdown

This fixes the race condition where attachment webhooks arrived after
the machine had already shut down.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Both pull_request_review (review submission) and pull_request_review_comment
(review comments) now trigger the review agent for PRs with Trello card URLs.

Changes:
- Updated webhook queue to store event types alongside payloads
- Added PRReviewSubmittedTrigger for review submissions (approve/request changes)
- Fixed hardcoded event type in GitHub webhook dequeuing
- Both review types now trigger the review agent when PR has Trello card URL

Previously, only review comments triggered the agent. Now review submissions
(when someone clicks 'Approve' or 'Request Changes') also trigger it.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Adds automatic card movement logic to executeGitHubAgent that mirrors
the existing behavior in Trello webhook handler. When implementation
agent creates a PR, the card is now moved to the IN REVIEW list and
a comment with the PR URL is added.

This ensures consistent behavior regardless of whether the agent was
triggered by a Trello webhook or a GitHub webhook.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Adds comprehensive documentation for GitHub webhook setup:
- GitHub webhook endpoint in API endpoints section
- Detailed setup instructions with configuration steps
- List of supported GitHub triggers and their behavior
- Updated features list to include GitHub integration

This complements the recent GitHub webhook improvements including
PR review submission support and automatic card movement.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@zbigniewsobiecki zbigniewsobiecki merged commit a6b8f96 into main Jan 2, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant