Skip to content

Add batch URL submission for evaluating up to 50 repos sequentially (Vibe Kanban)#2

Merged
cteyton merged 2 commits intomainfrom
vk/58ba-support-batch
Feb 9, 2026
Merged

Add batch URL submission for evaluating up to 50 repos sequentially (Vibe Kanban)#2
cteyton merged 2 commits intomainfrom
vk/58ba-support-batch

Conversation

@cteyton
Copy link
Contributor

@cteyton cteyton commented Feb 6, 2026

Summary

  • Adds a batch evaluation mode to the web UI that allows users to submit up to 50 Git repository URLs at once for sequential evaluation
  • The batch feature is only available in self-hosted mode (when --cloud is not set at runtime), keeping the cloud experience unchanged
  • URLs are processed strictly one at a time — the next evaluation starts only after the previous one completes or fails

Why

Evaluating multiple repositories one-by-one through the UI is tedious. Users running the evaluator locally or on their own infrastructure need a way to queue up a batch of repos and let the tool work through them without manual intervention.

What changed

Backend

  • BatchManager (src/api/jobs/batch-manager.ts): New orchestration class that manages batch lifecycle — validates URLs, rate-limits upfront, submits jobs sequentially using JobManager.onJobFinished callbacks, and auto-cleans stale batches after 2 hours
  • JobManager hooks (src/api/jobs/job-manager.ts): Added onJobFinished callback mechanism so BatchManager gets notified when each job reaches a terminal state
  • Batch API routes (src/api/routes/evaluation.ts, src/api/index.ts): POST /api/evaluate/batch to create a batch, GET /api/evaluate/batch/:batchId to poll status. Routes are wired before /api/evaluate/:id to avoid route collision
  • Shared types (src/shared/types/api.ts): BatchEntryStatus, IBatchEvaluateRequest, IBatchEvaluateResponse, IBatchStatusResponse
  • Git URL validation (src/shared/file-system/git-url-validation.ts): Backend mirror of the frontend URL validator (separate build targets prevent sharing)

Frontend

  • Input mode toggle (frontend/src/components/RepositoryUrlInput.tsx): Single/Batch button group (hidden in cloud mode) with a textarea for pasting URLs one-per-line, real-time validation, and count feedback
  • Batch status page (frontend/src/components/BatchStatusPage.tsx): New route at /batch/:batchId with 3-second polling, progress bar, status badges per job, and links to completed evaluation results
  • API hook (frontend/src/hooks/useEvaluationApi.ts): Added submitBatch() and getBatchStatus() methods
  • App integration (frontend/src/App.tsx): Batch submit handler, route registration (conditionally excluded in cloud mode)

Tests

  • 16 new tests (src/api/jobs/batch-manager.test.ts): Covers batch creation, URL validation, sequential processing flow, status computation, and error handling

Implementation details


This PR was written using Vibe Kanban

When --cloud is not set, users can now toggle between single URL and batch
mode on the homepage. Batch mode accepts up to 50 Git URLs (one per line)
and processes them strictly one at a time via a new BatchManager that
listens for job completion callbacks before submitting the next URL.

Backend: BatchManager orchestration, POST/GET batch API routes, JobManager
onJobFinished hooks, shared git-url-validation, rate limit pre-check.
Frontend: Single/Batch toggle in RepositoryUrlInput, BatchStatusPage with
polling, batch API methods in useEvaluationApi hook.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@cteyton cteyton changed the title Support batch (vibe-kanban) Add batch URL submission for evaluating up to 50 repos sequentially (Vibe Kanban) Feb 6, 2026
@cteyton cteyton merged commit 6cd6283 into main Feb 9, 2026
2 of 3 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