feat: Media Generation Plugin Suite + GitHub Integration (Issue #20)#198
Open
om952 wants to merge 5 commits into
Open
feat: Media Generation Plugin Suite + GitHub Integration (Issue #20)#198om952 wants to merge 5 commits into
om952 wants to merge 5 commits into
Conversation
- Auto-create GitHub issues from Paperclip issues - Sync status changes bidirectionally (Paperclip ↔ GitHub) - Mirror comments with user attribution [GitHub @username] - Auto-create PRs when issues marked done (empty branch) - Webhook signature verification (HMAC-SHA256) - Timestamp-based conflict resolution (last-write-wins) - Rate limit handling with exponential backoff - State persistence for issue mappings across restarts Closes OpenScanAI#15
- Add README.md with setup, config, and manual testing instructions - Add comprehensive test suite (plugin.test.ts) covering: - Configuration validation - Event handling (issue.created, issue.updated, issue.comment.created) - Status mapping and reverse mapping - Conflict resolution (timestamp-based) - Webhook signature verification - State management - PR creation (branch naming) - Rate limiting - Error handling - Manifest capabilities - Add vitest config and test scripts to package.json
- Add plugins/* to pnpm-workspace.yaml - Fix @paperclipai/plugin-sdk dependency to use workspace:* - Fix rate limiting test to use future timestamp - All 30 tests passing - Typecheck and build passing
- Add integration tests with mocked Octokit (15 tests) - GitHub issue CRUD operations - Branch and PR creation - Webhook signature verification - Sync job batch processing - Rate limit handling - State persistence - Error handling (401, 404, network) - Add ARCHITECTURE.md with: - System overview diagram - Data flow diagrams (push/pull) - State storage schema - Conflict resolution logic - Security model - Rate limiting strategy - Component diagram - Troubleshooting guide - All 45 tests passing
…nScanAI#20) Add comprehensive media generation capabilities to Levi/Paperclip: Core Infrastructure (media-core): - Asset storage with actual file persistence (local_disk, S3-ready) - Job queue with status tracking (queued/running/succeeded/failed/cancelled) - Cost tracking integration with Levi metrics/activity log - Retry logic with exponential backoff and jitter for API resilience - Download support for stored assets - Cleanup support for old assets Image Generation (media-image): - Stable Diffusion backend (self-hosted, free) - DALL-E backend (OpenAI API, paid) - Auto backend selection - Input validation (prompt length, dimensions, steps) - Retry on network errors Video Generation (media-video): - ComfyUI backend (SVD workflows) - FFmpeg backend (slideshows/placeholders) - Runway ML backend (high-quality API) - Input validation (duration, fps, frames) Audio/TTS Generation (media-audio): - ElevenLabs backend (high-quality voices) - Edge TTS backend (free, system-based) - Input validation (text length, voice format, rate/pitch) Dashboard UI (media-dashboard): - GalleryWidget with filtering and search - GenerationStatus with job monitoring - Conditional UI registration for compatibility Testing: - 6 end-to-end tests covering storage, queue, cost, retry - All tests pass - TypeScript compilation clean across all packages Closes OpenScanAI#20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
generate_imagetoolgenerate_videotoolgenerate_audiotoolpackages/plugins/media-suite-INTEGRATION.mdwith setup, configuration, and usage instructionsdoc/plans/2026-06-18-media-generation-plugin-suite.mddocumenting the 6-phase approachAlso includes: GitHub integration plugin (Issue #15).
Verification
Manual verification steps:
POST /api/plugins/installwith{"pluginId": "paperclip.media-image"}tools: ["generate_image"]Risks
Closes #20