Skip to content

Vibe Kanban — lessons from failures

Repository: https://github.com/BloopAI/vibe-kanban

This note focuses on issue history because the most useful lessons for Forge are lifecycle edge cases.

Worktree representation

Issue #287: https://github.com/BloopAI/vibe-kanban/issues/287

A Git-worktree environment commonly has .git as a file that points to metadata elsewhere, not a directory. Code that assumes normal-checkout layout can break.

Forge lesson: use the real Git executable and test against real worktrees.

Branch checked out elsewhere

Issue #1897: https://github.com/BloopAI/vibe-kanban/issues/1897

Direct merge can fail when the target branch is checked out in another worktree.

Forge lesson: integration operations re-check Git reality and surface actionable conflicts; do not swallow failures.

Stable filesystem identity

Issue #2993: https://github.com/BloopAI/vibe-kanban/issues/2993

Changing a workspace/worktree path can invalidate provider session-resume state keyed to that path.

Forge lesson: use immutable Project/Task IDs for worktree paths, not mutable titles.

Long histories/memory

Issue #3352: https://github.com/BloopAI/vibe-kanban/issues/3352

Long-running agent/workspace use can create very large event/session memory pressure.

Forge lesson: raw logs stream to disk; history is paged; live deltas are coalesced; do not keep/replay the entire firehose in memory.

Migrations

Issue #2972: https://github.com/BloopAI/vibe-kanban/issues/2972

A migration failure around expected schema columns shows how upgrade paths can break startup.

Forge lesson: immutable migrations, old-DB fixtures, and upgrade tests from released schema states.

Forge is local-first. The docs are part of the product engineering system.