feat: v0.3.0 版本 - SSH终端、SFTP、端口转发功能实现

核心功能:
- SSH终端: 密码/密钥认证、XTerm.js终端、多主题配色、IP高亮
- SFTP管理: 双栏文件管理、上传下载、传输队列
- 端口转发: 本地/远程转发、SOCKS5动态代理、规则管理

架构改进:
- 拆分大型组件 (SFTPView/TabBar/Sidebar)
- 添加统一日志和错误处理
- 修复React严格模式下的终端黑屏问题

UI更新:
- 新增端口转发视图
- 更新UI预览文档
- 左侧栏右键菜单支持SFTP快捷打开
This commit is contained in:
Logan.Li committed 2026-04-06 01:20:47 +08:00
1 parent cf1c054381
commit 484d850abd
105 files changed
+25330 -64

No files matched your search

+46
View File
@@ -0,0 +1,46 @@
/**
* Electron 主进程日志工具
*
* 简化版,直接输出到控制台
*/
export enum LogLevel {
DEBUG = 0,
INFO = 1,
WARN = 2,
ERROR = 3,
}
const LOG_LEVEL = process.env.NODE_ENV === 'production' ? LogLevel.INFO : LogLevel.DEBUG
function shouldLog(level: LogLevel): boolean {
return level >= LOG_LEVEL
}
function formatMessage(level: string, module: string, message: string): string {
const timestamp = new Date().toISOString()
return `[${timestamp}] [${level}] [${module}] ${message}`
}
export function createLogger(module: string) {
return {
debug: (message: string, ...args: unknown[]) => {
if (!shouldLog(LogLevel.DEBUG)) return
console.debug(formatMessage('DEBUG', module, message), ...args)
},
info: (message: string, ...args: unknown[]) => {
if (!shouldLog(LogLevel.INFO)) return
console.info(formatMessage('INFO', module, message), ...args)
},
warn: (message: string, ...args: unknown[]) => {
if (!shouldLog(LogLevel.WARN)) return
console.warn(formatMessage('WARN', module, message), ...args)
},
error: (message: string, ...args: unknown[]) => {
if (!shouldLog(LogLevel.ERROR)) return
console.error(formatMessage('ERROR', module, message), ...args)
},
}
}
export const logger = createLogger('Main')