feat: Pro 买断门禁、SFTP 精简与批量多机改造

新增 entitlement/license IPC 与 Waffo 一次性结账服务骨架,挂载 AI/转发/代理/串口/广播/批量导入导出门禁;批量执行改为结果矩阵并复用连接池,SFTP 工具栏图标化并去掉已连接条,同时完善跨平台本地终端与窗口配置。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Logan.LiandCursor committed 2026-08-07 11:38:30 +08:00
1 parent 101d2164b4
commit fea6d8db04
72 files changed
+3307 -396

No files matched your search

@@ -6,6 +6,7 @@ import { useEffect, useRef, useState, useCallback } from 'react'
import { Laptop, ChevronDown } from 'lucide-react'
import { useTabStore } from '../../../stores/tabStore'
import { shellDisplayFromPath } from '../../../utils/shellName'
import { fallbackLocalShells } from '../../../utils/platformShells'
export interface ShellOption {
path: string
@@ -27,10 +28,7 @@ export default function LocalShellMenu({ compact = false, className = '' }: Loca
const rootRef = useRef<HTMLDivElement>(null)
useEffect(() => {
const fallback = () => setShells([
{ path: '/bin/zsh', name: 'Zsh', kind: 'zsh', isDefault: true },
{ path: '/bin/bash', name: 'Bash', kind: 'bash', isDefault: false },
])
const fallback = () => setShells(fallbackLocalShells() as ShellOption[])
void window.opsxApi?.localListShells?.().then((res) => {
if (res?.success && res.shells?.length) {
@@ -115,7 +113,7 @@ export default function LocalShellMenu({ compact = false, className = '' }: Loca
</div>
<div className="flex-1 min-w-0">
<div className="font-medium text-content-primary">本地 Shell</div>
<div className="text-xs text-txt-muted mt-0.5">选择 Zsh / Bash 打开本机终端</div>
<div className="text-xs text-txt-muted mt-0.5">打开本机终端</div>
</div>
<ChevronDown className={`w-4 h-4 text-txt-faint transition-transform ${open ? 'rotate-180' : ''}`} />
</button>