feat(vscode): 设置面板可配置 Claude profiles 目录并修正探测顺序

This commit is contained in:
2026-07-23 21:52:53 +08:00
parent a3e557f9ee
commit 7c67d220db
13 changed files with 335 additions and 35 deletions
@@ -34,6 +34,7 @@ interface SubmitValues {
conflictResolutionProfilePath: string
codexModel: string
codexReasoningEffort: string
profilesDirectory: string
youtrackBaseUrl: string
youtrackProjectShortName: string
youtrackCloseCommand: string
@@ -76,6 +77,7 @@ export interface SettingsModalProps {
initialConflictResolutionProfilePath: string
initialCodexModel: string
initialCodexReasoningEffort: string
initialProfilesDirectory: string
initialYoutrackBaseUrl: string
initialYoutrackProjectShortName: string
initialYoutrackCloseCommand: string
@@ -152,6 +154,7 @@ export function SettingsModal({
initialConflictResolutionProfilePath,
initialCodexModel,
initialCodexReasoningEffort,
initialProfilesDirectory,
initialYoutrackBaseUrl,
initialYoutrackProjectShortName,
initialYoutrackCloseCommand,
@@ -182,6 +185,7 @@ export function SettingsModal({
const [conflictResolutionProfilePath, setConflictResolutionProfilePath] = useState(initialConflictResolutionProfilePath)
const [codexModel, setCodexModel] = useState(initialCodexModel)
const [codexReasoningEffort, setCodexReasoningEffort] = useState(initialCodexReasoningEffort)
const [profilesDirectory, setProfilesDirectory] = useState(initialProfilesDirectory)
const [youtrackBaseUrl, setYoutrackBaseUrl] = useState(initialYoutrackBaseUrl)
const [youtrackProjectShortName, setYoutrackProjectShortName] = useState(initialYoutrackProjectShortName)
const [youtrackCloseCommand, setYoutrackCloseCommand] = useState(initialYoutrackCloseCommand)
@@ -214,6 +218,7 @@ export function SettingsModal({
setConflictResolutionProfilePath(initialConflictResolutionProfilePath)
setCodexModel(initialCodexModel)
setCodexReasoningEffort(initialCodexReasoningEffort)
setProfilesDirectory(initialProfilesDirectory)
setYoutrackBaseUrl(initialYoutrackBaseUrl)
setYoutrackProjectShortName(initialYoutrackProjectShortName)
setYoutrackCloseCommand(initialYoutrackCloseCommand)
@@ -300,6 +305,8 @@ export function SettingsModal({
// codex 模型 / 思考级别:trim 后留空 = 用 codex config.toml 默认
codexModel: codexModel.trim(),
codexReasoningEffort: codexReasoningEffort.trim(),
// profiles 目录:trim 后留空 = 自动探测
profilesDirectory: profilesDirectory.trim(),
youtrackBaseUrl: youtrackBaseUrl.trim(),
youtrackProjectShortName: youtrackProjectShortName.trim(),
youtrackCloseCommand: youtrackCloseCommand.trim(),
@@ -559,6 +566,29 @@ export function SettingsModal({
<span className="opacity-80"></span>
</label>
</Field>
<Field
label="Claude profiles 目录"
hint={(
<>
claude --settings .json
{' '}
<code>~/Sources/cruldra-profile/claude-config/profiles</code>
{' '}
<code>~</code>
</>
)}
>
<input
type="text"
value={profilesDirectory}
onChange={e => setProfilesDirectory(e.target.value)}
placeholder="~/Sources/cruldra-profile/claude-config/profiles"
className={inputClass}
/>
</Field>
</>
)}