You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
codeSplitters: a visible branch switcher (Start a branch is only in ⌘K) #701
Split from #693, which #696 closed with the before → after git pictures but not this part. Owner, testing #491 (#609): "how do i branch it in the ui … some of this should just be real visible and easy like whatever git options you need".
Today Start a branch and Merge a branch exist only in the ⌘K palette (`apps/codesplitters/src/client.html`, the "This repo" commands), and editing on a branch means adding `?branch=` to the URL by hand (the toast says so).
a visible branch switcher on the repo and file pages (`main ▾`: your branches, "+ New branch", and upstream's for a mirror), the way GitHub and VS Code have one
Owner, after starting a branch from ⌘K in the desktop app (#609): "how do i visually tell I branched? … we should be very clear that we branched and are on the branch". Nothing on the page changes: the file view still shows main's lines, and nothing says a branch exists or which one you're on. Make it unmistakable: the switcher reads ⎇ cs-checks-test instead of main, a coloured bar across the file view says "On branch cs-checks-test · edits land here, not main · Merge · Back to main", and starting a branch drops you straight onto it. (The one place it's clear today is a Cut: its page says "A cut of owner/repo · " with Merge into main. Worth reusing that look.)
Owner (#609): "need to use the regex github does for naming branches so i dont fail on spaced out names".
Today a new branch's name must pass NAME (apps/codesplitters/src/env.ts:119, /^(?=.{1,39}$)[a-z0-9]+(-[a-z0-9]+)*$/), which is the handle rule: lowercase, hyphens only, 39 characters. So cs checks test, Fix-Login, feature/login and v1.2 all fail with a bare "bad branch name". RustyBuns' own branches (codesplitters/city-presence-576) wouldn't pass either.
Fix:
accept what git accepts (git check-ref-format --branch): slashes, dots, underscores, capitals, up to 255 bytes; refuse only the real git no-gos (spaces, .., ~^:?*[\, @{, a leading - or /, a trailing / or .lock or ., a bare @)
do what GitHub's new-branch box does: turn spaces into -as you type, and show the final name before you create it
a clear error that says which character is the problem
check that branches pulled from upstream (Open here) and pushed back keep their names
Activity
QuinnsCode commentedon Oct 11, 2026
Owner, after starting a branch from ⌘K in the desktop app (#609): "how do i visually tell I branched? … we should be very clear that we branched and are on the branch". Nothing on the page changes: the file view still shows main's lines, and nothing says a branch exists or which one you're on. Make it unmistakable: the switcher reads
⎇ cs-checks-testinstead ofmain, a coloured bar across the file view says "On branch cs-checks-test · edits land here, not main · Merge · Back to main", and starting a branch drops you straight onto it. (The one place it's clear today is a Cut: its page says "A cut of owner/repo · " with Merge into main. Worth reusing that look.)QuinnsCode commentedon Oct 11, 2026
Owner (#609): "need to use the regex github does for naming branches so i dont fail on spaced out names".
Today a new branch's name must pass
NAME(apps/codesplitters/src/env.ts:119,/^(?=.{1,39}$)[a-z0-9]+(-[a-z0-9]+)*$/), which is the handle rule: lowercase, hyphens only, 39 characters. Socs checks test,Fix-Login,feature/loginandv1.2all fail with a bare "bad branch name". RustyBuns' own branches (codesplitters/city-presence-576) wouldn't pass either.Fix:
git check-ref-format --branch): slashes, dots, underscores, capitals, up to 255 bytes; refuse only the real git no-gos (spaces,..,~^:?*[\,@{, a leading-or/, a trailing/or.lockor., a bare@)-as you type, and show the final name before you create itQuinnsCode commentedon Oct 11, 2026
Folded into #735, which bundles it with related work for one agent. The details here still apply.
🤖 Generated with Claude Code
codeSplitters: a visible branch switcher, and branch names as git all…
codeSplitters: a visible branch switcher, and branch names as git all…