MCPcopy
hub / github.com/stravu/crystal / CreateSessionDialog

Function CreateSessionDialog

frontend/src/components/CreateSessionDialog.tsx:78–1372  ·  view source on GitHub ↗
({
  isOpen,
  onClose,
  projectName,
  projectId,
  initialPrompt,
  initialSessionName,
  initialToolType,
  initialBaseBranch,
  initialFolderId,
  initialClaudeConfig,
  initialCodexConfig,
  onSessionCreated
}: CreateSessionDialogProps)

Source from the content-addressed store, hash-verified

76}
77
78export function CreateSessionDialog({
79 isOpen,
80 onClose,
81 projectName,
82 projectId,
83 initialPrompt,
84 initialSessionName,
85 initialToolType,
86 initialBaseBranch,
87 initialFolderId,
88 initialClaudeConfig,
89 initialCodexConfig,
90 onSessionCreated
91}: CreateSessionDialogProps) {
92 const [sessionName, setSessionName] = useState<string>(initialSessionName || '');
93 const [sessionCount, setSessionCount] = useState<number>(1);
94 const [selectedTools, setSelectedTools] = useState<{ claude: boolean; codex: boolean }>({
95 claude: initialToolType === 'claude' || !!initialPrompt,
96 codex: initialToolType === 'codex'
97 });
98 const [sharedPrompt, setSharedPrompt] = useState<string>(initialPrompt || '');
99 const [claudeConfig, setClaudeConfig] = useState<ClaudeCodeConfig>({
100 prompt: initialPrompt || '',
101 model: initialClaudeConfig?.model || 'auto',
102 permissionMode: initialClaudeConfig?.permissionMode || 'ignore',
103 ultrathink: initialClaudeConfig?.ultrathink || false,
104 attachedImages: [],
105 attachedTexts: []
106 });
107 const [codexConfig, setCodexConfig] = useState<CodexConfig>({
108 prompt: initialPrompt || '',
109 model: (initialCodexConfig?.model as OpenAICodexModel) || DEFAULT_CODEX_MODEL,
110 modelProvider: initialCodexConfig?.modelProvider || 'openai',
111 approvalPolicy: 'auto', // Always 'auto' - manual mode not implemented
112 sandboxMode: initialCodexConfig?.sandboxMode || 'workspace-write',
113 webSearch: initialCodexConfig?.webSearch || false,
114 thinkingLevel: initialCodexConfig?.thinkingLevel || 'medium',
115 attachedImages: [],
116 attachedTexts: []
117 });
118 const [formData, setFormData] = useState<CreateSessionRequest>({
119 prompt: initialPrompt || '',
120 worktreeTemplate: '',
121 count: 1,
122 permissionMode: 'ignore',
123 baseBranch: initialBaseBranch
124 // Model is now managed at panel level, not session level
125 });
126 const [isSubmitting, setIsSubmitting] = useState(false);
127 const [worktreeError, setWorktreeError] = useState<string | null>(null);
128 const [isGeneratingName, setIsGeneratingName] = useState(false);
129 const [hasApiKey, setHasApiKey] = useState(false);
130 const [branches, setBranches] = useState<Array<{ name: string; isCurrent: boolean; hasWorktree: boolean }>>([]);
131 const [isLoadingBranches, setIsLoadingBranches] = useState(false);
132 const [commitModeSettings, setCommitModeSettings] = useState<CommitModeSettingsType>({
133 mode: 'checkpoint',
134 checkpointPrefix: 'checkpoint: '
135 });

Callers

nothing calls this directly

Calls 14

attachmentListsEqualFunction · 0.85
generateTextIdFunction · 0.85
validateWorktreeNameFunction · 0.85
errorMethod · 0.80
getAllMethod · 0.80
toStringMethod · 0.80
detectBranchMethod · 0.80
warnMethod · 0.80
generateNameMethod · 0.80
generateImageIdFunction · 0.70
processFileFunction · 0.50
getMethod · 0.45

Tested by

no test coverage detected