v1.50.1
Hotfix for the v1.50.0 performance regression: on repositories with many branches, common CLI task commands could take minutes or hang on remote fetches.
Highlights
- Common CLI task commands are fast again:
task view, the task shorthand,task edit, andtask listresolve from the local working copy without loading the cross-branch corpus or fetching remotes. Measured on this repository:task view4.4s → 0.4s,task list4.2s → 0.2s, no-optask edit12.2s → 0.4s — and minutes-long worst cases on slow networks are gone entirely (#898) - Cross-branch loading is now incremental and cached for the long-lived surfaces that keep it (web UI, board, MCP): one immutable tip snapshot with shared commit/blob caches brings warm reads from ~394 git operations down to 3 or fewer, with a correctness-gated benchmark guarding the numbers (#899)
- Remote work is bounded: fetches are coalesced, capped at 10 seconds, and degrade gracefully offline instead of hanging (#899)
Behavior changes
- CLI task reads are local-only by design. A task that exists only on another branch is no longer resolvable from
task view,task edit,task list --parent,task create --parent, or--dep; misses print a hint that other-branch tasks are visible inbacklog browser. The web UI, board, and MCP keep the cross-branch view (#898) - Parent and dependency validation is local and consistent.
task create --parent,task list --parent, andtask viewnow agree about the same ID (completed parents are accepted everywhere), dependency validation no longer fetches inside the edit lock, and ambiguous local IDs still fail closed (#898)
Fixes
- Task-ID allocation always takes a fresh bounded remote snapshot before choosing a number, closing a duplicate-ID window in long-lived web/MCP processes (#899)
- Task creation no longer freezes cross-branch freshness in long-lived web/MCP processes; reads self-heal after missed watcher events (#899)
- Cancelled TUI loads no longer wait out an in-flight remote fetch (#899)
- Default web
/api/tasksrequests are served from the in-memory store again instead of re-reading all task files per request (#898)
Full Changelog: v1.50.0...v1.50.1