Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ import {
Settings,
Info,
MoreVertical,
PictureInPicture2,
SquareTerminal,
Terminal,
Smartphone,
Globe,
ExternalLink,
BarChart3,
ChevronUp,
MessageSquare,
// LogIn,
} from 'lucide-react';
import { systemAPI } from '@/infrastructure/api';
Expand All @@ -20,7 +20,6 @@ import { useSceneManager } from '../../../hooks/useSceneManager';
import { useNavSceneStore } from '../../../stores/navSceneStore';
import { useSceneStore } from '../../../stores/sceneStore';
import { useCanvasStore } from '@/app/components/panels/content-canvas/stores';
import { useToolbarModeContext } from '@/flow_chat/components/toolbar-mode/ToolbarModeContext';
import { useNotification } from '@/shared/notification-system';
import { useAccountLoginState } from '@/infrastructure/account/useAccountLoginState';
// import { remoteConnectAPI } from '@/infrastructure/api/service-api/RemoteConnectAPI';
Expand Down Expand Up @@ -54,7 +53,6 @@ const PersistentFooterActions: React.FC = () => {
const activeTab = s.primaryGroup.tabs.find((t) => t.id === s.primaryGroup.activeTabId);
return activeTab?.content.type === 'browser';
});
const { enableToolbarMode } = useToolbarModeContext();
const { warning } = useNotification();
const { loggedIn: accountLoggedIn, deviceName: accountDeviceName } = useAccountLoginState();

Expand Down Expand Up @@ -155,11 +153,6 @@ const PersistentFooterActions: React.FC = () => {
void systemAPI.openExternal('https://gitcode.com/OpenHarmonyPCDeveloper/BitFun/issues');
}, [closeMenu]);

const handleFloatingMode = () => {
closeMenu();
enableToolbarMode();
};

// const handleAccountLogin = () => {
// closeMenu();
// setShowAccountLogin(true);
Expand Down Expand Up @@ -244,17 +237,6 @@ const PersistentFooterActions: React.FC = () => {
)}
</button>
<div className="bitfun-nav-panel__footer-menu-divider" />
<button
type="button"
className="bitfun-nav-panel__footer-menu-item"
role="menuitem"
onClick={handleFloatingMode}
style={{ display: 'none'}}
>
<PictureInPicture2 size={14} />
<span>{t('header.switchToToolbar')}</span>
</button>
<div className="bitfun-nav-panel__footer-menu-divider" />
<button
type="button"
className="bitfun-nav-panel__footer-menu-item"
Expand All @@ -280,18 +262,18 @@ const PersistentFooterActions: React.FC = () => {
role="menuitem"
onClick={handleFeedback}
>
<Info size={14} />
<span>{t('header.about')}</span>
<MessageSquare size={14} />
<span>{t('header.feedback')}</span>
</button>
<button
type="button"
className="bitfun-nav-panel__footer-menu-item"
role="menuitem"
onClick={handleShowAbout}
>
<Info size={14} />
<span>{t('header.about')}</span>
</button>
<button
type="button"
className="bitfun-nav-panel__footer-menu-item"
role="menuitem"
onClick={handleShowAbout}
>
<Info size={14} />
<span>{t('header.about')}</span>
</button>
</div>
</>
)}
Expand Down
2 changes: 1 addition & 1 deletion src/web-ui/src/app/scenes/agents/AgentsScene.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1297,7 +1297,7 @@ const AgentsHomeView: React.FC = () => {
variant="secondary"
size="small"
onClick={() => {
setSettingsTab('external-sources');
setSettingsTab('mcp-tools');
closeAgentDetails();
openScene('settings');
}}
Expand Down
16 changes: 8 additions & 8 deletions src/web-ui/src/app/scenes/settings/SettingsScene.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,15 @@ import {
ArchivedSessionsConfig,
BasicsConfig,
EditorConfig,
ExternalSourcesConfig,
// ExternalSourcesConfig, // temporarily hidden from config center
KeyboardShortcutsTab,
McpToolsConfig,
MemoriesConfig,
QuickActionsConfig,
ReviewConfig,
SessionPermissionsConfig,
SessionPersonalizationConfig,
VoiceInputConfig,
// SessionPersonalizationConfig, // temporarily hidden from config center
// VoiceInputConfig, // temporarily hidden from config center
} from './settingsContentRegistry';
import './SettingsScene.scss';

Expand All @@ -54,14 +54,14 @@ function resolveSettingsContent(tab: ConfigTab): React.ComponentType | null {
case 'appearance': return AppearanceConfig;
case 'models': return AIModelConfig;
case 'archived-sessions': return ArchivedSessionsConfig;
case 'session-personalization': return SessionPersonalizationConfig;
// case 'session-personalization': return SessionPersonalizationConfig; // temporarily hidden
case 'session-permissions': return SessionPermissionsConfig;
case 'quick-actions': return QuickActionsConfig;
case 'voice-input': return VoiceInputConfig;
// case 'voice-input': return VoiceInputConfig; // temporarily hidden
case 'review': return ReviewConfig;
case 'memories': return MemoriesConfig;
case 'mcp-tools': return McpToolsConfig;
case 'external-sources': return ExternalSourcesConfig;
// case 'external-sources': return ExternalSourcesConfig; // temporarily hidden
// case 'acp-agents': return AcpAgentsConfig; // temporarily hidden from config center
case 'editor': return EditorConfig;
case 'keyboard': return KeyboardShortcutsTab;
Expand All @@ -74,14 +74,14 @@ const SettingsScene: React.FC = () => {
const setActiveTab = useSettingsStore(s => s.setActiveTab);

const resolvedTab: ConfigTab =
(activeTab as string) === 'session-config' ? 'session-personalization' : activeTab;
(activeTab as string) === 'session-config' ? 'session-permissions' : activeTab;
const [outgoingTab, setOutgoingTab] = useState<ConfigTab | null>(null);
const previousTabRef = useRef<ConfigTab>(resolvedTab);

useEffect(() => {
/** Legacy merged session settings tab removed in favor of two panels. */
if ((activeTab as string) === 'session-config') {
setActiveTab('session-personalization');
setActiveTab('session-permissions');
}
}, [activeTab, setActiveTab]);

Expand Down
81 changes: 42 additions & 39 deletions src/web-ui/src/app/scenes/settings/settingsConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ export type ConfigTab =
| 'appearance'
| 'models'
| 'archived-sessions'
| 'session-personalization'
// | 'session-personalization' // temporarily hidden from config center
| 'session-permissions'
| 'quick-actions'
| 'voice-input'
// | 'voice-input' // temporarily hidden from config center
| 'review'
| 'memories'
| 'mcp-tools'
| 'external-sources'
// | 'external-sources' // temporarily hidden from config center
// | 'acp-agents' // temporarily hidden from config center
// | 'lsp' // temporarily hidden from config center
| 'editor'
Expand Down Expand Up @@ -133,19 +133,20 @@ export const SETTINGS_CATEGORIES: ConfigCategoryDef[] = [
id: 'smartCapabilities',
nameKey: 'configCenter.categories.smartCapabilities',
tabs: [
{
id: 'session-personalization',
labelKey: 'configCenter.tabs.sessionPersonalization',
descriptionKey: 'configCenter.tabDescriptions.sessionPersonalization',
keywords: [
'session',
'companion',
'agent',
'pixel',
'pet',
'partner',
],
},
// session-personalization temporarily hidden from config center
// {
// id: 'session-personalization',
// labelKey: 'configCenter.tabs.sessionPersonalization',
// descriptionKey: 'configCenter.tabDescriptions.sessionPersonalization',
// keywords: [
// 'session',
// 'companion',
// 'agent',
// 'pixel',
// 'pet',
// 'partner',
// ],
// },
{
id: 'session-permissions',
labelKey: 'configCenter.tabs.sessionPermissions',
Expand Down Expand Up @@ -184,12 +185,13 @@ export const SETTINGS_CATEGORIES: ConfigCategoryDef[] = [
'shortcut',
],
},
{
id: 'voice-input',
labelKey: 'configCenter.tabs.voiceInput',
descriptionKey: 'configCenter.tabDescriptions.voiceInput',
keywords: ['voice', 'speech', 'microphone', 'dictation', 'transcription', 'audio'],
},
// voice-input temporarily hidden from config center
// {
// id: 'voice-input',
// labelKey: 'configCenter.tabs.voiceInput',
// descriptionKey: 'configCenter.tabDescriptions.voiceInput',
// keywords: ['voice', 'speech', 'microphone', 'dictation', 'transcription', 'audio'],
// },
{
id: 'review',
labelKey: 'configCenter.tabs.review',
Expand Down Expand Up @@ -221,22 +223,23 @@ export const SETTINGS_CATEGORIES: ConfigCategoryDef[] = [
'knowledge',
],
},
{
id: 'external-sources',
labelKey: 'configCenter.tabs.externalSources',
descriptionKey: 'configCenter.tabDescriptions.externalSources',
beta: true,
keywords: [
'external ai applications',
'import work',
'extensions',
'commands',
'opencode',
'claude code',
'codex',
'compatibility',
],
},
// external-sources temporarily hidden from config center
// {
// id: 'external-sources',
// labelKey: 'configCenter.tabs.externalSources',
// descriptionKey: 'configCenter.tabDescriptions.externalSources',
// beta: true,
// keywords: [
// 'external ai applications',
// 'import work',
// 'extensions',
// 'commands',
// 'opencode',
// 'claude code',
// 'codex',
// 'compatibility',
// ],
// },
{
id: 'mcp-tools',
labelKey: 'configCenter.tabs.mcpTools',
Expand Down Expand Up @@ -299,7 +302,7 @@ export function normalizeSettingsTab(section: string): ConfigTab {
if (section === 'theme' || section === 'font' || section === 'fonts') return 'appearance';
if (section === 'logging' || section === 'terminal') return 'basics';
if (section === 'lsp') return DEFAULT_SETTINGS_TAB;
if (section === 'session-config') return 'session-personalization';
if (section === 'session-config') return 'session-permissions';
if (section === 'deep-review' || section === 'code-review' || section === 'review-team') return 'review';
if (section === 'shortcuts' || section === 'keybindings' || section === 'hotkeys') return 'keyboard';
if ((KNOWN_TABS as readonly string[]).includes(section)) return section as ConfigTab;
Expand Down
6 changes: 3 additions & 3 deletions src/web-ui/src/app/scenes/settings/settingsContentRegistry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,14 @@ const SETTINGS_CONTENT_LOADERS: Partial<Record<ConfigTab, () => Promise<unknown>
appearance: loadAppearanceConfig,
models: loadAIModelConfig,
'archived-sessions': loadArchivedSessionsConfig,
'session-personalization': loadSessionConfig,
// 'session-personalization': loadSessionConfig, // temporarily hidden from config center
'session-permissions': loadSessionConfig,
'quick-actions': loadQuickActionsConfig,
'voice-input': loadVoiceInputConfig,
// 'voice-input': loadVoiceInputConfig, // temporarily hidden from config center
review: loadReviewConfig,
memories: loadMemoriesConfig,
'mcp-tools': loadMcpToolsConfig,
'external-sources': loadExternalSourcesConfig,
// 'external-sources': loadExternalSourcesConfig, // temporarily hidden from config center
// 'acp-agents': loadAcpAgentsConfig, // temporarily hidden from config center
editor: loadEditorConfig,
keyboard: loadKeyboardShortcutsTab,
Expand Down
46 changes: 23 additions & 23 deletions src/web-ui/src/app/scenes/settings/settingsTabSearchContent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,12 @@ export const SETTINGS_TAB_SEARCH_CONTENT: Record<ConfigTab, readonly SettingsTab
{ ns: 'common', key: 'nav.sessions.deleteAllArchived' },
],

'session-personalization': [
{ ns: 'settings/session-config', key: 'personalizationPage.title' },
{ ns: 'settings/session-config', key: 'personalizationPage.subtitle' },
{ ns: 'settings/session-config', key: 'features.agentCompanion.title' },
{ ns: 'settings/session-config', key: 'features.agentCompanion.subtitle' },
],
// 'session-personalization': [
// { ns: 'settings/session-config', key: 'personalizationPage.title' },
// { ns: 'settings/session-config', key: 'personalizationPage.subtitle' },
// { ns: 'settings/session-config', key: 'features.agentCompanion.title' },
// { ns: 'settings/session-config', key: 'features.agentCompanion.subtitle' },
// ],

'session-permissions': [
{ ns: 'settings/session-config', key: 'permissionsPage.title' },
Expand Down Expand Up @@ -128,14 +128,14 @@ export const SETTINGS_TAB_SEARCH_CONTENT: Record<ConfigTab, readonly SettingsTab
{ ns: 'settings/mcp', key: 'section.serverList.description' },
],

'external-sources': [
{ ns: 'settings/external-sources', key: 'title' },
{ ns: 'settings/external-sources', key: 'subtitle' },
{ ns: 'settings/external-sources', key: 'sources.title' },
{ ns: 'settings/external-sources', key: 'sources.description' },
{ ns: 'settings/external-sources', key: 'conflicts.title' },
{ ns: 'settings/external-sources', key: 'conflicts.description' },
],
// 'external-sources': [
// { ns: 'settings/external-sources', key: 'title' },
// { ns: 'settings/external-sources', key: 'subtitle' },
// { ns: 'settings/external-sources', key: 'sources.title' },
// { ns: 'settings/external-sources', key: 'sources.description' },
// { ns: 'settings/external-sources', key: 'conflicts.title' },
// { ns: 'settings/external-sources', key: 'conflicts.description' },
// ],

// 'acp-agents': [
// { ns: 'settings/acp-agents', key: 'title' },
Expand Down Expand Up @@ -182,15 +182,15 @@ export const SETTINGS_TAB_SEARCH_CONTENT: Record<ConfigTab, readonly SettingsTab
{ ns: 'settings/quick-actions', key: 'sections.custom.title' },
],

'voice-input': [
{ ns: 'settings/voice-input', key: 'title' },
{ ns: 'settings/voice-input', key: 'subtitle' },
{ ns: 'settings/voice-input', key: 'sections.composer' },
{ ns: 'settings/voice-input', key: 'sections.model' },
{ ns: 'settings/voice-input', key: 'composer.enabled.label' },
{ ns: 'settings/voice-input', key: 'composer.language.label' },
{ ns: 'settings/voice-input', key: 'model.download' },
],
// 'voice-input': [
// { ns: 'settings/voice-input', key: 'title' },
// { ns: 'settings/voice-input', key: 'subtitle' },
// { ns: 'settings/voice-input', key: 'sections.composer' },
// { ns: 'settings/voice-input', key: 'sections.model' },
// { ns: 'settings/voice-input', key: 'composer.enabled.label' },
// { ns: 'settings/voice-input', key: 'composer.language.label' },
// { ns: 'settings/voice-input', key: 'model.download' },
// ],

// lsp: [ ... ], // nav entry temporarily hidden; omit from search index
};
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import {
import { useAIExperienceSettings } from '@/infrastructure/config/hooks';
import { isTauriRuntime } from '@/infrastructure/runtime';
import { useSceneStore } from '@/app/stores/sceneStore';
import { useSettingsStore } from '@/app/scenes/settings/settingsStore';
import { notificationService } from '@/shared/notification-system';
import { createLogger } from '@/shared/utils/logger';
import {
Expand Down Expand Up @@ -116,7 +115,7 @@ export function useComposerVoiceInput({
}, []);

const openVoiceInputSettings = useCallback(() => {
useSettingsStore.getState().setActiveTab('voice-input');
// voice-input settings tab is temporarily hidden; open default settings tab.
useSceneStore.getState().openScene('settings');
}, []);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ const ExternalMcpOverview: React.FC = () => {
<IconButton
variant="ghost"
size="small"
onClick={() => setSettingsTab('external-sources')}
onClick={() => setSettingsTab('mcp-tools')}
tooltip={t('external.manage')}
aria-label={t('external.manage')}
>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,6 @@
position: relative;
}

.bitfun-config-page-section__body {
border: 0;
border-radius: 0;
background: transparent;
}

.bitfun-config-page-row {
padding: 12px 0;
}
Expand Down
Loading
Loading