Skip to content

[Feature]: Allow configuring the default base branch for new worktree threads #5279

Description

@MatejSkarka

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I am describing a concrete problem or use case, not just a vague idea.

Area

apps/web

Problem or use case

I use T3 Code with New threads → New worktree and Start from origin enabled.

When I create a new thread while viewing an existing thread on a feature branch, the base branch picker inherits that thread's branch, for example:

From agent/month-view-all-day-default

For unrelated tasks, I want each new worktree thread to start from the repository's default branch, usually main. Today I must manually select main for every new thread. This makes it easy to accidentally base an unrelated task on a previous feature branch.

Proposed solution

Add a setting for the default base branch used by new worktree threads.

Suggested options:

  • Repository default branch (origin/HEAD, usually main)
  • Current branch
  • Remember the last selected branch
  • A specific branch configured per project

My preferred default is Repository default branch.

This should be independent of the existing settings:

  • New threads → New worktree controls where the thread runs.
  • Default base branch controls which ref the worktree starts from.
  • Start from origin controls whether the latest remote version of that branch is used.

The branch picker should remain available for one-off overrides.

Why this matters

A new thread often represents a new, unrelated task. Inheriting the currently viewed feature branch is useful for follow-up work, but surprising and potentially unsafe for independent work.

A predictable workflow would be:

  • New thread starts from the configured default base branch.
  • Fork or continue from an existing thread inherits that thread's branch.
  • The user can explicitly select another branch when needed.

This would reduce accidental branch dependencies.

Smallest useful scope

Add a global setting with two options:

  • Repository default branch
  • Current branch

Use it to initialize the base-branch picker for a new worktree draft. A per-project override could be added later.

Alternatives considered

  • Manually selecting main works, but is repetitive and easy to forget.
  • Keeping the local checkout on main does not fully solve the problem because the picker can inherit the branch of the currently viewed thread.
  • Start from origin updates the selected branch from its remote counterpart, but does not choose the branch.

Risks or tradeoffs

Some users intentionally create new threads as follow-ups to the active feature branch. Changing the behavior unconditionally could disrupt that workflow.

Making it configurable preserves both workflows.

Examples or references

Observed on T3 Code Alpha 0.0.31 on macOS.

Current settings:

  • New thread mode: New worktree
  • Start from origin: Enabled

Related but distinct: #1111 discusses syncing a selected base branch from origin. This request concerns which base branch is selected by default.

Contribution

  • I would be open to helping implement this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementRequested improvement or new capability.needs-triageIssue needs maintainer review and initial categorization.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions