* fix(#1526): auto-mode worktree commits land on main instead of milestone branch
GitServiceImpl.getMainBranch() was designed to detect manual /worktree worktrees
(worktree/<name> branches) but incorrectly applied the same logic to auto-mode
worktrees (milestone/<MID> branches). When no worktree/<name> branch existed,
it fell back to the current branch, which in certain contexts could be main,
causing slice commits to land on main instead of the milestone branch.
Fix: Detect if currently on a milestone/* branch first (auto-mode case) and
return it, before checking for worktree/* branches (manual worktree case).
- Modify getMainBranch() to detect milestone branches first
- Add test verifying getMainBranch() returns correct branch in auto-worktree
- All tests pass, build succeeds
Fixes#1526
* fix: cmux library directory incorrectly loaded as extension
The extension auto-discovery in resolveExtensionEntries() finds
index.js files in subdirectories and treats them as extensions.
The cmux directory has an index.js but it's a utility library
(imported by gsd and subagent extensions), not an extension itself.
Two changes:
1. When a package.json has a "pi" manifest, treat it as authoritative
and don't fall through to index.ts/index.js auto-detection. This
lets library directories opt out with "pi": {}.
2. Add package.json to cmux directory with empty pi manifest.