Kanbanminator
Kanban board for managing PR review comments with AI-assisted code changes.

01 Overview
Kanbanminator turns pull request review comments into a kanban workflow. It syncs unresolved Bitbucket PR comments onto a board (Comments → Todo → In Progress → Review → Done) so review feedback becomes trackable tasks instead of a scattered comment thread.
Accepting a task triggers an AI agent (Cursor Agent) that drafts a code fix in an isolated per-task git workspace; rejecting one drafts a reply instead. The human stays in the loop throughout: every diff is reviewed on the board before commit, push, and resolving the comment. The board supports drag-and-drop, undo/redo, real-time updates, and PR rebase/squash management with conflict detection.
The backend is a FastAPI (Python 3.11) service with SQLAlchemy on SQLite, deployed as a container-image AWS Lambda behind API Gateway and provisioned with Terraform. The React 19 / Vite frontend is deployed on Vercel. Because Lambda cannot hold WebSocket connections open, the hosted deployment uses an event buffer with an HTTP polling fallback: the client polls GET /api/events with a sequence cursor that detects Lambda cold starts and triggers a full refetch, while local/self-hosted mode keeps native WebSockets.
The hosted demo runs in demo mode: Bitbucket, OAuth, and the AI agent are mocked server-side, so the full workflow is explorable without any login or secrets. Seeded data resets automatically after 5 minutes of inactivity. Self-hosted mode supports multiple users with Google OAuth and per-user encrypted Bitbucket OAuth tokens.
02 Key Features
03 Architecture
System Architecture
The React/Vite frontend is deployed on Vercel. The FastAPI backend runs as a container-image AWS Lambda behind API Gateway, with the image stored in ECR and all resources provisioned with Terraform. In the hosted demo, Bitbucket, OAuth, and the AI agent are mocked server-side.
Real-Time Updates Without WebSockets
Lambda cannot hold WebSocket connections open, so the hosted deployment buffers board events server-side and the client polls GET /api/events with a sequence cursor. A cursor mismatch signals a Lambda cold start (empty buffer), triggering a full board refetch. Local/self-hosted mode keeps native WebSockets.
AI Task Workflow
Each accepted task gets an isolated git workspace where the AI agent drafts a fix. Nothing reaches the PR without human approval: the diff is reviewed on the board before commit, push, and resolving the original comment.