feat: add multi-gateway management with auto port detection
- Add GatewayManager for multi-profile gateway lifecycle management - Auto-detect running gateways on startup via PID + health check - Port conflict detection: check managed gateways, allocated ports, and system-level port availability (TCP bind test) - Two-phase startup: sequential port resolution, parallel process launch - Use `gateway start/restart` on normal systems, `gateway run --replace` on WSL/Docker - Wait for health check before returning start/stop responses - Add Gateways page with card-based layout showing profile status - Reorganize sidebar navigation into collapsible groups - Hide API server settings (now auto-managed by GatewayManager) - Profile switch reloads page; Ctrl+C no longer stops gateways - Remove redundant ensureApiServerConfig from index.ts and profiles.ts Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -35,6 +35,8 @@ export default {
|
||||
confirm: 'Confirm',
|
||||
expand: 'Expand',
|
||||
collapse: 'Collapse',
|
||||
start: 'Start',
|
||||
stop: 'Stop',
|
||||
},
|
||||
|
||||
// Sidebar
|
||||
@@ -48,7 +50,14 @@ export default {
|
||||
logs: 'Logs',
|
||||
usage: 'Usage',
|
||||
channels: 'Channels',
|
||||
gateways: 'Gateways',
|
||||
terminal: 'Terminal',
|
||||
groupConversation: 'Conversation',
|
||||
groupPlatform: 'Platform',
|
||||
groupAgent: 'Agent',
|
||||
groupSystem: 'System',
|
||||
groupMonitoring: 'Monitoring',
|
||||
groupTools: 'Tools',
|
||||
settings: 'Settings',
|
||||
connected: 'Connected',
|
||||
disconnected: 'Disconnected',
|
||||
@@ -65,6 +74,8 @@ export default {
|
||||
inputPlaceholder: 'Type a message... (Enter to send, Shift+Enter for new line)',
|
||||
attachFiles: 'Attach files',
|
||||
stop: 'Stop',
|
||||
start: 'Start',
|
||||
stopGateway: 'Stop Gateway',
|
||||
send: 'Send',
|
||||
contextUsed: 'Context used:',
|
||||
sessions: 'Sessions',
|
||||
@@ -218,6 +229,14 @@ export default {
|
||||
},
|
||||
|
||||
// Profiles
|
||||
gateways: {
|
||||
title: 'Gateways',
|
||||
running: 'Running',
|
||||
stopped: 'Stopped',
|
||||
started: 'Started',
|
||||
startFailed: 'Failed to start gateway',
|
||||
stopFailed: 'Failed to stop gateway',
|
||||
},
|
||||
profiles: {
|
||||
title: 'Profiles',
|
||||
create: 'Create Profile',
|
||||
|
||||
@@ -35,6 +35,8 @@ export default {
|
||||
confirm: '确定',
|
||||
expand: '展开',
|
||||
collapse: '收起',
|
||||
start: '启动',
|
||||
stop: '停止',
|
||||
},
|
||||
|
||||
// 侧边栏
|
||||
@@ -48,7 +50,14 @@ export default {
|
||||
logs: '日志',
|
||||
usage: '用量',
|
||||
channels: '频道',
|
||||
gateways: '网关',
|
||||
terminal: '终端',
|
||||
groupConversation: '对话',
|
||||
groupPlatform: '平台',
|
||||
groupAgent: '代理',
|
||||
groupSystem: '系统',
|
||||
groupMonitoring: '监控',
|
||||
groupTools: '工具',
|
||||
settings: '设置',
|
||||
connected: '已连接',
|
||||
disconnected: '未连接',
|
||||
@@ -65,6 +74,8 @@ export default {
|
||||
inputPlaceholder: '输入消息... (Enter 发送,Shift+Enter 换行)',
|
||||
attachFiles: '添加附件',
|
||||
stop: '停止',
|
||||
start: '启动',
|
||||
stopGateway: '停止网关',
|
||||
send: '发送',
|
||||
contextUsed: '上下文已用:',
|
||||
sessions: '会话',
|
||||
@@ -417,6 +428,16 @@ export default {
|
||||
qrScanedHint: '已扫描,请在手机上确认...',
|
||||
},
|
||||
|
||||
// 网关
|
||||
gateways: {
|
||||
title: '网关',
|
||||
running: '运行中',
|
||||
stopped: '已停止',
|
||||
started: '已启动',
|
||||
startFailed: '启动失败',
|
||||
stopFailed: '停止失败',
|
||||
},
|
||||
|
||||
// 语言
|
||||
language: {
|
||||
label: '语言',
|
||||
|
||||
Reference in New Issue
Block a user