Date: 2026-03-01
Split the feature/personal-enhancements branch (32 commits ahead of main) into independent, focused PRs for the upstream repository siteboon/claudecodeui.
| Remote | URL | Purpose |
|---|---|---|
origin |
github.com/shikihane/claudecodeui |
Personal fork |
upstream |
github.com/siteboon/claudecodeui |
Main repository |
- Local
mainat597e9c5, behind upstream/main by 19 commits (upstream at v1.21.0) feature/personal-enhancementshas 32 commits on top of local main- 4 unstaged working tree changes
- Upstream merged a major refactor (#402: Settings, FileTree, GitPanel, Shell, CodeEditor) plus Gemini integration
- 18 files modified by both feature branch and upstream
- 27 files modified only by feature branch (no upstream conflict)
- High-conflict files:
server/claude-sdk.js,server/index.js,ChatInterface.tsx,useChatRealtimeHandlers.ts
Merge upstream/main into local main and push to origin/main. This gives all feature branches a clean, up-to-date base.
Each module becomes an independent branch off main and a separate PR.
Scope: Full background task lifecycle — spawn, monitor, display, complete.
New files (no conflict):
server/ws-clients.js— WebSocket broadcast helperssrc/components/app/BackgroundTasksPage.tsx— full-page task viewsrc/components/app/BackgroundTasksPopover.tsx— popover task listsrc/i18n/locales/*/backgroundTasks.json— i18n (4 languages)
Files requiring upstream adaptation:
server/claude-sdk.js— background task spawning, subagent monitoring, fd-based pollingserver/index.js— route registration for background task endpointsserver/routes/commands.js— task status/output API endpointssrc/components/chat/hooks/useChatRealtimeHandlers.ts— WS event handling for task updatessrc/components/app/AppContent.tsx— routing for background tasks pagesrc/components/sidebar/view/subcomponents/SidebarContent.tsx— sidebar nav entry
Commits to include (squashed, excluding debug): c73489f, c762977, 4ff0d53, 48787e3, f5b3aab, be64cfc, 52b74d0, 532a285, 5f1d3b9, 4d7fe5d
Scope: Enable slash command/skill detection, loading, and execution in chat input.
Files:
src/components/chat/hooks/useSlashCommands.tssrc/components/chat/hooks/useChatComposerState.tssrc/components/chat/view/ChatInterface.tsxserver/claude-sdk.js(appendSystemPrompt integration)
Commits: 547ee5e, 3966f81, 9479876, 6466464, c64617d, 1e685ec, abee2a0
Scope: Fix permission requests lost on WebSocket reconnection.
Files:
src/contexts/WebSocketContext.tsxserver/claude-sdk.js(server-side permission state)src/components/chat/hooks/useChatRealtimeHandlers.ts
Commits: 42c8437, 589af13, 4a6b04e
Scope: Fix message disappearing and Thinking indicator stuck due to React 18 batching.
Files:
src/components/chat/hooks/useChatSessionState.tssrc/components/chat/view/subcomponents/MessageComponent.tsxsrc/components/chat/utils/messageTransforms.ts
Commits: 9a84153, f71a2f8, ceaa704, c9fa0fc, 2ff419e
Scope: Collapsible UI for system-injected messages.
Commits: eaaf3ac
Scope: Extract getToolInputSummary helper.
Commits: 631f3f7
For each feature branch:
git checkout -b feat/<name> main- Cherry-pick or manually port relevant commits
- Remove all
debug:commits - Squash related fix commits into clean logical commits
- Resolve conflicts against upstream's latest code
- Verify
npm run buildpasses - Push to
originand open PR againstupstream/main - Add screenshots for UI changes per CONTRIBUTING.md
The following commits are debug-only and should NOT appear in any PR:
85c9577debug: add logging to trace background bash monitoring087e465debug: add logging to trace subagent progress input datab375752debug: add console logs for permission request handlingb64dec5debug: add logs to PermissionRequestsBanner componente019dc2fix: add detailed logging for permission request flow
- PR 4 (React 18 Message Sync) — smallest scope, highest chance of clean merge
- PR 3 (Permission Requests) — focused fix, moderate conflict
- PR 6 (Tool Display Refactor) — single commit, trivial
- PR 2 (Slash Commands) — medium scope
- PR 1 (Background Tasks) — largest scope, most conflict, most value
- PR 5 (System Messages) — optional
- Each PR passes
npm run buildindependently - Each PR contains only related changes (no cross-feature leakage)
- No debug logging commits in any PR
- All commits follow Conventional Commits format
- UI change PRs include screenshots