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
|
f22e575124
|
fix: 提供 SQLite 迁移故障恢复开关
|
2026-07-30 23:49:38 +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
|
9b895efee3
|
fix: 完善多云同步验证与实例统计
- 修复华为云签名、账单字段与区域映射缓存
- 按真实云实例更新账号服务器数并补充并发测试
|
2026-07-29 06:35:54 +08:00 |
|
Logan.Li
|
132fe9ba97
|
feat: 补全多云资产与账单同步
- 接入 AWS、华为云和 Azure 资产及账单 API
- 按原始币种隔离统计并修正账号服务器数
- 修复侧栏菜单展开后的滚动行为
|
2026-07-29 06:15:00 +08:00 |
|
Logan.Li
|
65e2f09b97
|
fix: 按业务时区同步昨日账单
- 固定按 Asia/Shanghai 计算账单昨日日期
- 补充 UTC 服务器时区回归测试
|
2026-07-29 05:57:07 +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
|
e831ec2eb1
|
fix: 统一 Agent 在线状态时区
|
2026-07-27 16:32:17 +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
|
7a1680884d
|
fix: 压缩RDP实时画面传输
- 将原始RGBA位图压缩为PNG后通过WebSocket发送
- 降低低带宽代理链路下的RDP首帧延迟
- 增加位图压缩与异常数据测试
|
2026-07-25 17:39:14 +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
|
7bc416d22a
|
fix: 修复Agent指标时区查询
- 统一Agent报告存储与查询的UTC时间边界
- 修复监控大屏、历史图表及离线判断取不到最新数据
- 增加UTC与UTC+8场景回归测试
|
2026-07-25 16:17:47 +08:00 |
|
Logan.Li
|
d9106dde6e
|
fix: 恢复Agent指标并修复时间弹层
- 使用按主键更新避免SQLite字段错误
- 自定义时间选择器改用Portal避免卡片遮挡
|
2026-07-25 15:51:12 +08:00 |
|
Logan.Li
|
af98940211
|
fix: 修复Agent按IP关联资产
- 统一系统主机名与云资产名称的指标归属
- 修复SQLite更新参数顺序和自动注册冲突错误
- 增加Agent上报关联回归测试
|
2026-07-25 15:46:08 +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
|
337fbff617
|
docs: ROADMAP U49 cost-predict.ts i18n 深度治理记录
|
2026-07-17 04:05:59 +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
|
d6ed1978ef
|
docs: ROADMAP U48 i18n locale 懒加载优化记录
|
2026-07-17 01:50:03 +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 |
|
attacker
|
39a4432f79
|
refactor(i18n): U43 深度残余硬编码中文 UI 文本清零 — 17 文件 ~40 处→0
趋势标签(上升/下降/平稳) + K8s 卡片标题(Pod级别/安全上下文/实例/详情) + data-table 默认值(搜索/暂无数据) + Deployment 编辑器标签(数据卷/挂载/只读写/manifest提示/镜像拉取凭证) + HostSettings 4 个命名空间描述 + 7 个 K8s 页面刷新按钮 + 资源编辑器新建/编辑 + Agent 执行命令描述 + 账单保存成功 toast + 容量预警标题
新增 common 30 语义化翻译键, zh/en 7898→7928 对齐
tsc -b=0, npm build✓ (16.55s), ESLint=0/43/any=0, go build=0, 17/17 测试通过
|
2026-07-14 05:27:49 +08:00 |
|
attacker
|
c6e0d6ca57
|
refactor(i18n): U42 残余硬编码中文彻底清零 — 33文件54处→0, zh/en 7847→7898对齐
全量 JSX children + toast/confirm + sr-only 描述硬编码中文清零:
- Kubernetes模块: UpdateStrategyCard maxSurge/maxUnavailable说明 + IngressCreateForm host域名/Service端口 + ServiceCreateForm 端口配置/selector + DeploymentEditService 无selector/个关联/暂无Service/Ingress + ClusterOverviewPage 核 + KubernetesClusterDialog 已配置 + KubectlTerminal/ResourceVisualEditor/CreateHPADialog/DeploymentEditContainers/Storage + PodInstancesTable/UpdateStrategySelectorCards
- AI模块: PredictiveCapacityTab AI深度解读/紧急/警告/7天预测/预计N天 + PredictiveCostTab AI深度解读 + event-handler.ts 高危操作确认toast
- Deploy模块: DeployCredentials 启用/禁用 + DeployRBAC 删除角色confirm + WorkspaceTermDialog + CredFormDialog Windows用户
- Monitor模块: AlertRulesTab 删除confirm/分钟 + PrometheusDatasourceManager/LogDatasourcePage 删除confirm + QueryHistoryPanel 条
- System模块: ServerFileBrowser/TerminalDialog/RdpAuditViewer sr-only + SystemManager/CredentialManager/TerminalSessionsTab 删除confirm + SecuritySettingsTab 30分钟/2小时
- Task模块: CronJobViewDialog 次
新增 61 翻译键 (k8s.editAdvanced 6 + k8s.editService 11 + k8s.cluster 2 + k8s.misc 9 + aiops.capacity 9 + aiops.cost 1 + aiops.cli 2 + deploy 4 + monitor 5 + system 10 + task 1 + common 2)
tsc -b=0, npm build✓ (17.71s), ESLint=0/43/any=0, go build=0, 17/17 测试通过
|
2026-07-14 00:51:36 +08:00 |
|
attacker
|
a7838aaf65
|
refactor(i18n): U41 残余硬编码中文清零 — 工具函数+审计RDP标签+AIOps分析+Monitor残余+审批选项
18 文件 ~35 处 UI 硬编码中文→t()/i18n.t() 调用:
- agent-utils.ts timeAgo() 秒前/分钟前/小时前
- utils.ts formatDistanceToNow() 分钟前/小时前/天前
- request.ts 响应解析失败错误消息
- ActiveSessionsPanel/HistorySessionsPanel RDP 在线/历史会话标签
- MetricsExplorer 清除/已选/最近1小时
- HostMonitor 当前主机 subtitle
- AIAnalysisResult 证据链 (新增 useTranslation hook)
- capacity-predict.ts 容量预测摘要模板
- ApprovalResourcePage 阿里云/腾讯云/华为云
- ApprovalPermissionPage 堡垒机
- site-monitor/helpers.ts 频率/时间/证书天数格式化
- site-monitor/analytics.ts 证书剩余/检查失败/延迟波动事件
- middleware-monitor MwTargetChartsPanel/MwTrendChart/helpers.ts
- snmp-monitor SnmpMetricTrendChart/SnmpDeviceChartsPanel
- host-monitor/utils.ts 图表点数标签 + PortPolicyDialog 系统进程说明
新增 34 翻译键 (common.duration.secAgo/hourAgo/dayAgo + common.selected/
responseParseError/rdpActiveSessions/rdpHistorySessions/rdpSessionCount/
evidenceChain/last1Hour/currentHost + monitor.lbl 10键 + monitor.siteMonitor
8键 + approval.provider 3键 + approval.permType 1键 +
monitor.portPolicyDialog.systemProcessDesc + aiops.capacity.summary)
zh/en 7813→7847 对齐; tsc -b=0, npm build✓ (17.31s), ESLint=0/43/any=0,
go build=0, 17/17 测试通过
|
2026-07-13 22:21:47 +08:00 |
|
attacker
|
4e2ba77aa8
|
refactor(i18n): U40 Monitor + Agent 子组件残余硬编码中文 i18n 补全 — 14 文件 ~50 处→0
- ContextSwitchCard: CTX/IRQ/次 → t()
- ProcessTable: agentWaitData/cpuUsagePercent → t()
- FDUsageCard: fdHandles → t()
- PortMonitorTab: 黑名单/白名单/策略配置/暂无端口数据 → t()
- PortPolicyDialog: 白名单全量上报/黑名单仅上报/端口列表/逗号分隔/白名单无需配置/已输入端口 → t()
- HostTimeRangePicker: 时间范围/自定义/取消/应用 → t()
- DualLineChart: 接收/发送 → t(), i18n.t→useTranslation hook
- ZoomableAreaChart: 暂无数据 → t()
- SiteResultsPanel: 选择任务/次/可用率/立即拨测/SSL证书预警/到期/剩余/阈值/天 → t()
- MiddlewareMonitor: Redis单机集群/上次更新/添加平台默认/暂无实例 → t()
- SiteMonitor: subtitle → t()
- SNMPMonitor: 标题/采集间隔/IP地址/OID模板/SNMP版本/确认/暂无设备/采集指标/暂无指标 → t()
- HealthProbeSection: TCP目标地址/TCP端口 → t()
- AgentAlerts: Agent告警/刷新/未恢复/已恢复/恢复/新建规则/创建第一条规则 → i18n.t()
新增 monitor.lbl 46 语义化翻译键 + agent.alerts 6 键
zh/en 7762→7814 对齐
tsc -b=0, npm build✓ (16.88s), ESLint=0/43/any=0, go build=0, 17/17 测试通过
|
2026-07-13 19:45:45 +08:00 |
|
attacker
|
70a7c2907c
|
docs: ROADMAP — U39 残余 JSX 属性/模板字面量中文清零
|
2026-07-13 13:13:26 +08:00 |
|