Commit Graph
355 Commits
Author SHA1 Message Date
Logan.Li 95066083bd feat(agentcli): Web 端运行中消息排队
忙时输入入队,支持立即(abort 后发)、编辑、撤销;
任务结束后自动 continue 排队内容。配套 docs/14。
2026-10-19 03:53:09 +08:00
Logan.Li 7a96381dc7 fix(version): 界面版本号改为动态读取,统一版本为 v1.0.2
界面侧栏与页脚硬编码 v1.0.0,发版后始终显示陈旧版本。

- 新增 useAppVersion hook:从后端 /version 读取并做模块级缓存
- Sidebar / MainLayout 改用该 hook
- /agent/arch 的 version 字段原先硬编码 "1.0.0",改由 main 注入 router.AppVersion
- Dockerfile 增加 AGENT_VERSION 构建参数,与镜像 VERSION 解耦,
  避免纯前端改动也触发全量 Agent 重推

统一版本:镜像 lghost/aiops:v1.0.2,内置 Agent v1.0.2。

// Logan.Li
2026-09-14 08:46:40 +00:00
Logan.Li 0996d8a839 feat(profile): 修改密码增加确认输入并强制重新登录
- 新增「确认新密码」输入框,实时提示两次输入是否一致
- 校验:新旧密码相同 / 两次输入不一致 均给出明确提示
- 修改成功后强制登出并跳转登录页,避免旧会话继续持有权限

// Logan.Li
2026-09-14 07:59:33 +00:00
Logan.Li 815c293b28 fix(dashboard): 修复资源趋势图取数变量未定义导致构建失败
e0cc547c 移除 generateMetricsData 时删掉了 `const data = ...`,
但 AreaChart 仍引用 `data`,触发 TS2304 "Cannot find name 'data'",
前端 tsc -b 无法通过。改为引用实际的 realData。

// Logan.Li
2026-09-14 07:33:28 +00:00
Logan.Li 6c82ca9031 refactor(frontend): 主题精简为双主题
- 移除与深海蓝视觉重复的 4 个开发者暗色主题(One Dark/Dracula/Tokyo Night/Catppuccin)
- 仅保留 跟随系统/深海蓝/明亮白;删除 5 段主题 CSS 与下架文案
- 旧主题存量值统一迁移到深海蓝,ThemePicker 改为扁平列表
2026-09-14 15:28:15 +08:00
Logan.Li 0563a29de1 fix(frontend): 终端窗口壳问题修复
- 详情抽屉打开终端/RDP/文件浏览前先关闭抽屉,修复同 z-index 遮挡冲突
- 删除语义不通的黄灯按钮,绿灯随全屏状态切换 aria-label
- 连接指示点补充 role=status 与 sr-only 文案,不再仅靠颜色区分
- LiveMonitorDialog 接入 i18n;修复 TerminalDialog 乱码注释;全屏文案迁至 common 命名空间
2026-09-14 15:28:15 +08:00
Logan.Li 115e8b451c fix(i18n): 清理语言包损坏 key 并补齐英文翻译
- 删除从 JSX 误切的损坏条目,4 处代码引用改用正常 key(空数据/内存目标/删除确认)
- en-US 补翻 32 条中文残留,修复空值 portUnit
- 修复后 zh/en 各 7655 个 key 完全对齐
2026-09-14 15:28:15 +08:00
Logan.Li 5cd7ea4a39 fix(frontend): 侧边栏滚动失效与 Jenkins 图标本地化
- ScrollArea 增加 min-h-0,修复 flex 子项不收缩导致导航超屏无法滚动
- Jenkins 品牌图标替换 simple-icons 单色红为仓库本地官方多色 SVG
2026-09-14 15:27:54 +08:00
Logan.Li e0cc547c8b fix(dashboard): 资源趋势图移除随机模拟数据
- 无主机/无指标时不再用 Math.random 生成假曲线,改为空状态提示
- 移除随之不再使用的 avgCpu/avgMemory props,新增中英文 noData 文案
2026-09-14 15:27:54 +08:00
Logan.Li 1ac0a34717 feat(frontend): 401 redirect 回跳与启动期诊断输出
- 401 统一携带 redirect 跳登录,登录成功后回到原页面(防开放跳转校验)
- 并发 401 只清理会话并跳转一次
- 开发环境输出 [HTTP] 请求日志,新增 bootLog 启动横幅(API Base/Domain/Mode)
2026-09-14 15:27:54 +08:00
Logan.Li 52e93316a7 fix(frontend): 修复提示不可见导致"保存没反应"
useToast 曾是只写局部 state 的 stub,返回的 toasts 数组无任何页面渲染,
而全局仅挂载 sonner 的 <Toaster />,导致 31 个组件的操作提示全部隐形
(用户表现为"点击保存没反应",实际请求已成功到达后端)。

- use-toast.tsx: useToast 统一转发到 sonner,保持返回值结构兼容
- ProfilePage.tsx: 密码修改去掉静默 return,校验失败给出明确提示;
  保存按钮改为始终可点,保证点击必有反馈

// Logan.Li
2026-09-14 02:13:34 +00:00
Logan.LiandCursor 4658812876 feat: 增加资产主机详情抽屉并统一终端窗口壳
服务器列表可从右侧查看规格、迷你曲线和进程 TOP;SSH 与审计终端改为 macOS 风格标题栏。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 09:43:20 +08:00
Logan.LiandCursor 2fd1624bec feat: 加固 Agent CLI 执行边界并更新模型目录
收紧 SSH 命令护栏、权限校验与远程执行会话,并同步主流大模型供应商列表。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 09:43:14 +08:00
Logan.Li fe07598039 fix: 修复整合后的前端类型契约
- 补齐账单币种与公共组件类型导出
- 修复 LDAP 和主机监控拆分组件类型
- 删除无后端接口且未引用的旧凭证弹窗
2026-08-05 20:18:48 +08:00
Logan.Li a0edab6569 chore: 移除误提交的依赖目录链接
- 删除 frontend/node_modules 符号链接
- 保持依赖目录由 .gitignore 排除
2026-08-05 20:05:42 +08:00
Logan.Li fd60361d93 chore: 统一本地服务器与远程仓库源码
- 合并 main 与 master 历史并以服务器结构为基线
- 保留迁移、数据保留、AWS 账单与部署安全能力
- 建立 SDD 规格和 CI 验证闭环
2026-08-05 20:03:25 +08:00
Logan.Li 99b5d94dc2 fix: 编码套餐默认启用深度推理
- 区分编码套餐与模型推理概念
- 编码套餐切换时默认开启深度推理
- 更新中英文提示文案
2026-07-30 23:35:00 +08:00
Logan.Li 4c02d7d352 fix: 完善大模型供应商下拉
- 移除当前协议不兼容的 Perplexity 预设
- 限制供应商与模型列表高度并支持滚动
2026-07-30 22:25:18 +08:00
Logan.Li d8b124fc7c feat: 更新主流大模型供应商目录
- 按云服务、Coding Plan、API 网关和本地模型分组

- 新增兼容模型发现与供应商协议校验
2026-07-30 21:34:33 +08:00
Logan.Li 01e4435f29 fix: 更新多云账单同步说明
- 展示当前支持的五个云厂商
- 统一多云出账时效与只读权限提示
2026-07-29 06:51:05 +08:00
Logan.Li 132fe9ba97 feat: 补全多云资产与账单同步
- 接入 AWS、华为云和 Azure 资产及账单 API

- 按原始币种隔离统计并修正账号服务器数

- 修复侧栏菜单展开后的滚动行为
2026-07-29 06:15:00 +08:00
Logan.Li dd3770a66c fix: 恢复腾讯云账单同步并完善成本预测
- 接入腾讯云单日账单、全局限频和指数退避

- 修正月末费用预测并增加账期提示和费用归因

- 补充腾讯云限频及账单归因回归测试
2026-07-29 05:44:40 +08:00
Logan.Li 88c41f0b2b fix: 恢复腾讯云主机发现 2026-07-27 17:09:25 +08:00
Logan.Li e557782176 fix: 修复 Agent 状态与监控大屏 2026-07-27 15:56:03 +08:00
Logan.Li 83662487cb fix: 接通服务器V2排序链路
- 将排序参数从V2 Handler传递至Service与Repository

- 增加仓储分页排序与参数白名单测试
2026-07-26 23:38:06 +08:00
Logan.Li 09e6271bb4 feat: 支持服务器主机名排序
- 服务器列表默认按主机名升序并支持表头切换

- 后端按白名单排序并区分分页缓存键
2026-07-26 23:21:10 +08:00
Logan.Li 6b5fc6a5c3 fix: 双层捕获并去重转发Escape
- Radix与终端容器共同覆盖Escape事件路径
- 对同一次按键去重后仅发送一个控制字符
2026-07-26 19:22:21 +08:00
Logan.Li 82d1b8de10 fix: 在终端容器捕获Escape按键
- 在xterm容器捕获阶段转发Escape控制字符
- 阻止Radix与xterm继续重复处理同一事件
2026-07-26 19:09:18 +08:00
Logan.Li 57e51ba1cd fix: 从xterm直接转发Escape按键
- 在xterm自定义键处理器中发送Vim Escape控制字符
- Radix弹框仅负责阻止Escape关闭窗口
2026-07-26 18:45:36 +08:00
Logan.Li d666840ed0 fix: 修复SSH终端Escape按键
- 将弹框捕获的Escape控制字符直接转发到远端
- 阻止xterm对同一次Escape事件重复发送
2026-07-26 18:21:55 +08:00
Logan.Li 82b53c043b fix: 修复SSH终端还原布局溢出
- 约束xterm容器最小宽度并隐藏旧画布溢出
- 在布局绘制前同步终端与远端PTY尺寸
2026-07-26 18:03:33 +08:00
Logan.Li 198139648d fix: 修复RDP最大化画面模糊
- 最大化时按浏览器可用尺寸重建RDP会话
- 隔离分辨率切换过程中的旧连接事件
2026-07-26 17:26:07 +08:00
Logan.Li 699560a270 fix: 完善Agent系统信息上报
- 持续上报系统元数据并动态更新运行时长
- 兼容旧版心跳补齐资产运行时长
- 修复监控指标当前值重复显示单位
2026-07-25 17:14:55 +08:00
Logan.Li 0c7c63017c docs: 更新腾讯云账单同步提示
- 标明阿里云与腾讯云均支持账单同步
- 补充腾讯云DescribeBillDetail权限说明
2026-07-25 16:41:19 +08:00
Logan.Li 3a3f77ea62 fix: 优化腾讯云账单同步限频
- 全局限制腾讯云API调用频率为每秒4次以内
- 对RequestLimitExceeded增加指数退避重试
- 补充限频回归测试并更新账单同步支持说明
2026-07-25 16:36:02 +08:00
Logan.Li d9106dde6e fix: 恢复Agent指标并修复时间弹层
- 使用按主键更新避免SQLite字段错误
- 自定义时间选择器改用Portal避免卡片遮挡
2026-07-25 15:51:12 +08:00
Logan.Li 827d9a31cd fix: 正确识别 Agent 安装与审计失败
- 下载脚本失败时立即终止安装并提示 WAF 拦截
- Agent 服务未运行时不再计为安装成功
- 审计列表兼容后端 status 成功失败字段
2026-07-25 15:08:04 +08:00
Logan.Li 7553ef54de fix: 使用访问域名安装 Agent 并发布下载文件
- 前端提交当前访问 origin,避免反向代理内网地址泄漏
- 校验并安全转义 Agent 服务地址
- 主程序构建时同步生成多平台 Agent 二进制
2026-07-25 15:00:02 +08:00
Logan.Li 0b785da8ae feat: 完善多云资产与腾讯云账单同步
- 接入 AWS、腾讯云、华为云和 Azure 区域及主机发现
- 接入腾讯云账单分页、限流与组件费用汇总
- 批量账单仅同步已支持厂商并优化云账号操作
2026-07-25 14:45:19 +08:00
Logan.Li 74fa122319 fix: 修复 Agent 安装向导布局
- 限制弹窗尺寸并支持内容滚动
- Tabs 等分宽度并截断长文案,避免越界
2026-07-25 14:28:21 +08:00
attacker 5a427e02d4 fix(lint): 清理 EventsTab 冗余 eslint-disable 指令 — F7 (ca036a8) 提交时引入的 react-hooks/set-state-in-effect 标注,规则版本演进后不再触发,保留反而引入 ESLint Unused disable warning
- ESLint warnings 43→42 (-1)
- 剩余 42 warnings 全部为 react-refresh/only-export-components 架构性约束
- tsc -b=0, npm build✓ (23.04s), 17/17 集成测试通过
2026-07-19 18:11:32 +08:00
attacker 083f4477db fix(i18n): cost-predict.ts hash key 清理 + 硬编码中文清零 + 错误 key 引用修复
- 23 个 predictutilsts.s* hash-style 键重命名为 costPredict.* 语义化键
- 7 处 buildCostInsightPrompt 硬编码中文模板字面量→i18n.t() 插值调用
- 修复 costRecommendation 函数引用错误 key (predictMemLeak→costPredict.rec*)
- 修复 dimension 字段引用 predictDiskFull→costPredict.allProviders
- 修复 providerLabel 引用 predictIn24h→costPredict.allProviders
- 新增 34 个语义化翻译键 (aiops.costPredict.*), zh/en 8102→8113 对齐
- tsc -b=0, npm build✓ (19.29s), ESLint=0/43/any=0, go build=0
- 17/17 集成测试通过
2026-07-17 04:05:32 +08:00
attacker 8e211b64af perf(frontend): U48 i18n locale 懒加载 — en-US JSON 动态导入拆分为独立 chunk
问题: src/i18n/index.ts 静态导入 zh-CN.json (200KB compact) + en-US.json
(292KB compact),两者共 486KB 全部内联到主 index chunk,致主 chunk 696KB
超过 Vite 600KB 警告阈值。

修复:
- src/i18n/index.ts: 移除 en-US.json 静态导入,改为 ensureLocaleLoaded()
  动态导入 + i18n.addResourceBundle() 按需加载
- zh-CN (默认/回退语言) 保持静态内联,无行为变化
- en-US 仅在用户切换英文时按需 fetch (290KB 独立 chunk)
- 已选英文的用户刷新页面时异步加载 en-US (短暂中文闪烁,可接受)
- src/store/index.ts: setLanguage 调用 ensureLocaleLoaded 确保目标语言包
  加载完成后再切换

结果:
- 主 index chunk: 696KB → 423KB (-39%, -273KB)
- en-US chunk: 290KB 独立懒加载 (仅英文用户首次切换时 fetch)
- Vite 600KB chunk 警告消除
- tsc -b=0, npm build✓ (18.18s), ESLint=0/43/any=0, go build=0
- 17/17 集成测试通过, Docker healthy
2026-07-17 01:49:25 +08:00
attacker ca036a85ca feat(k8s): F7 集群详情EventsTab真实后端对接 + go vet修复
1. EventsTab.tsx: DEMO_EVENTS硬编码→kubernetesApi.getEvents真实K8s事件
   - 复用 normalizeK8sEvent/formatEventRelative 工具(与 EventsPage 一致)
   - 新增 loading/empty 状态 + 刷新按钮
   - Warning事件优先排序 + 限100条防溢出
   - KubernetesClusterDetail 传入 clusterCode prop
   - 修复 Q28 组件拆分时遗留的 demo 数据未对接缺口

2. aiops_alert_analysis.go: log.Printf %s→%d 修复 go vet 失败
   - AlertID 类型为 uint, %s 格式符不匹配致 go test 构建失败
   - go vet ./... 全量零错误

验证: tsc -b=0, npm build✓ (18.00s), go build=0, go vet=0, 17/17测试通过
Events API 返回5条真实事件 (type=Normal, reason=Pulled, count=5487)
2026-07-16 21:23:19 +08:00
attacker a874832f10 fix(lint): 补全 AuditOperationsTab react-hooks/incompatible-library 抑制指令 — U12 遗漏的 TanStack Virtual 兼容性标注 (同 useVirtualRows/PodsTab), ESLint warnings 43→42 (仅剩 react-refresh 架构性约束), tsc -b=0, npm build✓, 17/17测试通过 2026-07-16 12:57:22 +08:00
attacker 96ed39d122 feat(i18n): U47 最后3处残余硬编码中文清零 — 全前端非注释CJK=0 (cloud-server-import阿里云/腾讯云/华为云→i18n.t + TerminalSessionsTab批量删除→t + PreviewTable类型→t), 复用已有翻译键零新增, zh/en 8102=8102对齐, tsc -b=0, npm build✓ (18.02s), ESLint=0/43/any=0, go build=0, 17/17测试通过 2026-07-16 04:42:09 +08:00
attacker 21728be445 feat(i18n): U46 残余UI硬编码中文清零 — 6文件12处→0 (UserFormDialog/CredentialManager/RdpAuditViewer/LiveMonitorDialog/ServerFileBrowser/context-loaders) +17翻译键 zh/en 8085→8102对齐 2026-07-16 02:29:47 +08:00
attacker 6288fa0071 feat(i18n): U45 AI告警分析模块i18n补全 — analyzerHelpers 25处硬编码中文→i18n.t()插值 + 预测图标双语兼容 2026-07-15 07:47:45 +08:00
attacker 05ee051879 refactor(i18n): U44 残余硬编码中文清零 — 终端审计状态+凭证类型+流水线阶段+时间格式+CSV导出
20 文件 ~70 处 UI 硬编码中文清零:
- credential-manager/constants.ts: 8 凭证类型 label/desc → labelKey/descKey + i18n.t()
- pipeline-run-detail/types.ts: 6 阶段 label → i18n.t('deploy.stage.*') + labelKey
- pipeline-manager/constants.ts + pipeline-editor/types.ts: 分秒 duration → i18n.t('common.duration.minSec')
- LiveMonitorDialog: 6 终端状态消息 → t()
- RdpAuditViewer: 6 RDP审计状态 → i18n.t('monitor.rdp.*')
- WorkspaceTermDialog: 2 终端连接状态 → t()
- TerminalSessionsTab: 4 时长格式+状态标签 → i18n.t()/t()
- k8s-event-utils + QueryHistoryPanel: 6 相对时间 → i18n.t('common.duration.*Ago')
- export-audit.ts: 9 CSV导出表头 → i18n.t('system.auditExport.*')
- useAuditSettings: 4 审计保留策略消息 → i18n.t('system.auditSettings.*')
- event-handler.ts: 4 AgentCLI事件消息 → i18n.t('aiops.cli.*')
- 其他 9 文件: NotifyPolicyTab/RoleFormDialog/CronJobViewDialog/TerminalOutput/shared-components/prometheus-ds/helpers/CloudServerImport/AdvancedSettingsPanel/releaseManagerHelpers

新增 75 翻译键, zh/en 7987→8059 对齐
tsc -b=0, npm build✓ (17.13s), ESLint=0/43/any=0, go build=0, 17/17 测试通过
2026-07-14 23:13:32 +08:00
attacker bd1ccefa7f fix(k8s): 修复 shared-components.tsx JSX 结构错误致前端构建失败 + 补全残余 i18n 硬编码中文
- fix: shared-components.tsx ContainerInfo 端口区块多余 <div> 标签致 JSX 闭合错误 (TS17008)
- i18n: EventsPage/DeploymentDetail/DeploymentEditAdvanced/Containers/Storage 等 K8s 组件残余硬编码中文→t() 调用
- i18n: zh/en 7987 键完全对齐, 新增 k8s.eventsPage/k8s.workload 等语义化键
- tsc -b=0, npm build✓ (17.48s), ESLint errors=0/warnings=43/any=0, go build=0
- 17/17 集成测试通过, Docker 部署 healthy
2026-07-14 20:07:46 +08:00