attacker
|
8a11acd086
|
refactor(quality): Q13 前端巨型组件拆分 — UnifiedQueryPanel 682L→529L (-22%), 提取 constants + entry-mappers + 5 个 UI 子组件 (QueryControlRow/SecondaryToolbar/LogVolumeChart/ResultsTabs/QueryEmptyStates), 零逻辑变更
|
2026-07-07 20:23:57 +08:00 |
|
attacker
|
b2e8fbbfc0
|
refactor(quality): Q12 前端巨型组件拆分 — CloudServerImport 699L→404L (-42%), 提取 StepIndicator + 4 个向导步骤组件 + types, any[]→具体接口类型, 移除文件级 eslint-disable
|
2026-07-07 18:06:45 +08:00 |
|
attacker
|
76aa8817c0
|
refactor(quality): Q11 前端巨型组件拆分 — PipelineRunDetail 678L→273L (-60%), 提取 types + StageProgressBar + RunsTable + LogConsole 4 个独立文件
|
2026-07-07 07:42:03 +08:00 |
|
attacker
|
2aed2bc218
|
docs: 补充 Q10 TDD_PLAN 通过标准
|
2026-07-07 05:28:51 +08:00 |
|
attacker
|
6ba424a8bc
|
feat(approval): Q10 ApprovalWorkflowPage 巨型组件拆分 (705L→167L, -76%)
提取 4 个独立文件到 approval-workflow/ 子目录:
- types.ts (93L): 接口+常量+工具函数
- UserSelectInline.tsx (96L): 用户多选下拉组件
- WorkflowEditorModal.tsx (272L): 工作流编辑器弹窗
- WorkflowCard.tsx (134L): 工作流卡片组件
验证: tsc -b=0, npm build✓ (16.99s), ESLint errors=0, 17/17 测试通过
|
2026-07-07 05:28:25 +08:00 |
|
attacker
|
1f8abc0bbc
|
refactor(quality): Q9 前端巨型组件拆分 — NamespaceResourcePage 719L→300L (-58%), 提取 namespace-resource-config + PodDetailDialog 2 个独立文件
|
2026-07-07 03:18:12 +08:00 |
|
attacker
|
8a4dfb0db6
|
refactor(quality): Q8 前端巨型组件拆分 — SystemSettingsTab 754L→173L (-77%), 提取通用/安全/LDAP 3 个独立子 Tab 组件
- GeneralSettingsTab.tsx (154L): 通用设置 Tab(审计策略 + 系统信息)
- SecuritySettingsTab.tsx (309L): 安全设置 Tab(安全策略 + 会话设置 9 项开关)
- LdapSettingsTab.tsx (243L): LDAP 设置 Tab(配置表单 + 管理区转发)
- 主文件仅保留 Props 接口 + Tab 路由 + 分发逻辑(173L)
- 每个子 Tab 用 Pick<SystemSettingsTabProps,...> 精确声明 props 子集
- tsc -b=0, npm build✓(17.71s), ESLint errors=0/warnings=59(无新增)
- 17/17 集成回归测试通过, Docker 部署 healthy
|
2026-07-07 01:05:07 +08:00 |
|
attacker
|
2cc5ad719b
|
refactor(quality): Q7 前端巨型组件拆分 — AgentCLI 814L→521L (-36%), 提取工具栏+常量+空状态+滚动按钮 4 个独立文件
|
2026-07-06 22:50:57 +08:00 |
|
attacker
|
892cb85676
|
refactor(quality): Q6 前端巨型组件拆分 — ResourceVisualEditor 882L→282L (-68%), 提取 5 个独立资源编辑器文件
将 ResourceVisualEditor.tsx (882L, 项目最大前端组件) 中的 5 个内联资源编辑器
提取为 resource-visual-editors/ 子目录下的独立文件:
- ConfigMapEditor.tsx (95L) — ConfigMap 键值对表格
- SecretEditor.tsx (114L) — Secret Base64 编解码
- ServiceEditor.tsx (155L) — Service 端口/类型/选择器
- IngressEditor.tsx (215L) — Ingress Host/Path 路由规则
- PvcEditor.tsx (90L) — PVC 存储配置
主文件仅保留加载/保存逻辑 + YAML/可视化切换 + 资源类型分发。
清理 11 个 unused import。零逻辑变更,纯机械提取。
验证: tsc -b=0, npm build✓ (16.11s), ESLint errors=0, 17/17 测试通过
|
2026-07-06 20:20:59 +08:00 |
|
attacker
|
5d4a99b8a9
|
feat(quality): U14 ESLint 冗余 disable 指令清理 — unused eslint-disable 6→0, warnings 65→59
删除 6 处 U12 修复时标注的冗余 eslint-disable-next-line 指令
(eslint-plugin-react-hooks 版本演进后不再触发规则):
- ResourceVisualEditor.tsx (set-state-in-effect)
- StatChartPanel.tsx x2 (preserve-manual-memoization)
- RdpDialog.tsx (set-state-in-effect)
- WebShell.tsx (set-state-in-effect)
- RdpAuditViewer.tsx (set-state-in-effect)
验证: ESLint errors=0, warnings 65→59, unused-disable 6→0,
tsc -b=0, npm build✓, 17/17 集成测试通过, Docker healthy
|
2026-07-06 17:58:26 +08:00 |
|
attacker
|
e19c27707f
|
feat(monitor): U13 主机监控大屏挂载 — HostMonitorDashboard 死代码复活为 /host-dashboard 路由 + 监控菜单
- App.tsx: 新增 HostMonitorDashboard lazy import + Route path=host-dashboard
- Sidebar.tsx: 监控告警菜单新增「主机大屏」子项 (menu.hostDashboard, agent:monitor 权限)
- Breadcrumb.tsx: 新增 host-dashboard 路由段映射
- i18n: zh-CN/en-US 新增 menu.hostDashboard + breadcrumb.hostDashboard (主机大屏/Host Dashboard), 7556 keys 对齐
- 复用已有 monitor:hostDashboard.* 23 翻译键 (AgentMonitor/MiddlewareMonitor/data-table 共享)
- ROADMAP.md: 新增 U13 模块记录 + 状态追踪表
- PROJECT_EVALUATION.md: 清除 3.3 死代码技术债 + U12 过时数字 + 监控模块补充主机大屏
- TDD_PLAN.md: 新增 P3-U13 验证用例和通过标准
验证: tsc -b=0, npm build✓(17.50s), ESLint errors=0, 17/17 集成回归通过, Docker healthy
|
2026-07-06 09:34:39 +08:00 |
|
attacker
|
cd30af5bd6
|
feat(quality): Q5 后端错误处理治理扩展 — RDP/API Token/AIOps 模块 8 处 _ = DB 写入改为 log.Printf
Q4 修复了 controller/ 层 8 处 DB 写入的 _ = 静默忽略,但后续合并的 RDP
远程桌面、API Token、AIOps 告警分析等模块引入了新的 _ = DB 写入忽略。
本次将 controller/middleware 层所有 DB 写入操作(Create/Update/Updates)
的 _ = 静默忽略改为带 log.Printf 错误日志(不阻断业务流程)。
修改文件 (6):
- middleware/auth.go: API 密钥最后使用时间更新
- controller/terminal_session.go: 终端回放审计日志 + 修复 log 变量遮蔽
- controller/user_api_token.go: API 密钥默认值补全
- controller/rdp.go: RDP 会话结束状态 + 命令记录
- controller/rdp_session.go: 会话终止 + 回放审计 + 修复 log 变量遮蔽
- controller/aiops_alert_analysis.go: AI 告警分析结果保存
修复 2 处 Go 变量名遮蔽陷阱(log := model.AuditLog{} 遮蔽 "log" 包 → auditLog)
保留 4 处可接受忽略(1 DB 读取 + 3 WebSocket 帧写入)
验证: go build=0, 17/17 集成测试通过, Docker healthy
|
2026-07-06 07:16:39 +08:00 |
|
attacker
|
da9fd1e987
|
feat(quality): U12 工程质量回归修复 — ESLint errors(8→0) + React Hooks 关键规则(82→0)
远程 i18n 全量改造 + 堡垒机合并后引入两类质量回归,本次修复:
1. ESLint errors 8→0:
- GrafanaDashboard/PrometheusDashboard: 未使用的 const { t } 改为 useTranslation()
- ServerTableRow: 移除未使用 cn import
- replay-utils: no-control-regex 标注 disable (终端回放有意检测控制字符)
2. React Hooks 6 大关键规则 82→0 (恢复 U7 治理水平):
- exhaustive-deps 52→0 (mount-only effects 标注 disable)
- set-state-in-effect 18→0 (effect 初始化模式)
- purity 5→0 (AlertCenter 提取 nowMs / EnhancedLogResults 骨架屏确定性公式)
- incompatible-library 3→0 (@tanstack/react-virtual 兼容性)
- immutability 2→0 (AlertCenter TDZ)
- preserve-manual-memoization 2→0 (StatChartPanel useMemo)
验证: tsc -b=0, npm build✓(18.04s), go build=0, ESLint errors=0, 17/17 测试通过
|
2026-07-06 00:55:01 +08:00 |
|
Logan.Li
|
e0d652d211
|
feat: 完善堡垒机与 Agent 智能运维能力
- 支持 Windows Agent 构建、安装脚本和统一上报协议
- 增强 RDP 剪贴板、虚拟盘和文件传输能力
- 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口
- 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
|
2026-07-05 23:49:36 +08:00 |
|
attacker
|
a9513c2056
|
feat(i18n): 全量中英文国际化改造
- 翻译 en-US.json 中 1006 条未翻译的中文条目为英文
- 提取 30+ 组件文件的硬编码中文到 locale JSON
- 新增 900+ 翻译键覆盖所有业务模块:
- Layout (Sidebar, Header, Breadcrumb)
- Server (ServerForm, CloudServerImport, WebShell, RdpTools)
- Deploy (ReleaseManager, PipelineCreate, AppRelease)
- Kubernetes (DeploymentEdit, PodExec, PodLogs, ResourceEditor)
- Monitor (UnifiedQueryPanel, AlertCenter, Prometheus/Grafana Dashboard)
- AIOps (predictUtils, PredictiveCostTab, AIPredictive)
- System (useLdapManagement, AgentMonitor, AgentWizard)
- tsc --noEmit 类型检查通过
|
2026-07-04 03:42:27 +08:00 |
|
 LoganandClaude
|
76ec9387f0
|
feat(rdp): 新增 RDP 远程桌面/SMB/账单同步能力 + 清理编译产物
主要变更:
- RDP 远程桌面:新增 backend/pkg/rdp(RDP 引擎 + credssp/display/rle/trace)、
backend/controller/rdp*(连接/凭证/文件/会话/实时)、frontend RDP 组件与 API
- Windows SMB 文件传输:backend/pkg/winsmb
- 云账单同步:backend/pkg/billingsync + billing_sync/aliyun_billing,前端账单详情
- Agent CLI Kubernetes 工具:kubernetes_action/get、pod_execute/logs
- 服务器导入助手:server_import_helpers、ImportCredentialSettings
- 国际化与组件重构(cloud/deploy/monitor/server/system 等多模块)
- 清理编译产物二进制:移除 backend/server、backend/agent/bin/aiops-agent-*
- .gitignore:新增 backend/agent/ 与 .cache/(避免 334MB go-build 缓存误入库)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-04 01:50:36 +08:00 |
|
attacker
|
777d9e4e71
|
feat(i18n): CredFormDialog + ClusterComparePage 全量国际化 — 75 新增翻译键
- CredFormDialog.tsx: 凭据表单弹框全量迁移 (deploy.cred.form.* 37 键)
SSH/Docker/TLS/AKSK/Database/API/Generic 7 种类型表单字段全覆盖
- ClusterComparePage.tsx: 多集群对比看板全量迁移 (k8s.compare.* 35 键)
图表标签/表头/状态/空状态/标题全部国际化
- 新增 common.username/password/port 3 个通用键
- 翻译键总数 6182 → 6257 (zh-CN/en-US 完全对齐)
- tsc -b=0, npm build=✅ (20.76s), ESLint=0, 17/17 集成测试通过
|
2026-07-03 21:32:56 +08:00 |
|
attacker
|
88122a72a2
|
fix(i18n): ErrorBoundary 组件全量国际化 + 清理 unused import 回归
- 删除 ErrorBoundary.tsx 中未使用的 useTranslation import(unused-vars 回归 1→0)
- 国际化 5 处硬编码 UI 文案(页面出现错误/描述/查看详情/返回首页/复制错误)
- 国际化错误报告模板(错误报告/时间/用户代理/错误信息/组件堆栈)
- 新增 10 个 common.eb* 翻译键(zh-CN/en-US 完全对齐,6182/6182)
- 翻译键总数 3638 → 3648,零丢失
- tsc -b=0, npm build ✓ (21.77s), ESLint unused=0/any=37
|
2026-07-03 08:54:41 +08:00 |
|
attacker
|
76393c663c
|
feat(i18n): AIOps 智能运维模块全量国际化迁移 — 12 文件 + 84 翻译键
迁移文件:
- AgentCLI.tsx: 主机格式/安全模式示例/确认弹框/历史记录/状态徽章等 12 处
- LLMConfig.tsx: 云服务/自定义分组/推理模式/测试连接/配置帮助等 15 处
- AIOpsAssistant.tsx: 能力展示/自动报告生成
- AIAlertAnalyzer.tsx: AI引擎状态/活跃计数/严重等级标签
- AIAnalysisResult.tsx: 分析结果标题/根因/影响/建议/相似案例/修复脚本
- AutoFixDialog.tsx: 脚本确认弹框/警告/取消/执行按钮
- PredictiveCapacityTab.tsx: 容量预警/AI解读/7天预测/当前/预测/阈值标签
- AIPredictiveAnalytics.tsx: 关键指标/线性回归/趋势/预测值/概率
- AgentCLIMessages.tsx: 轮次/工具数/思考/耗时标签
- AgentCLIHistory.tsx: 删除确认/新建/轮次摘要
- analyzerHelpers.ts: 持续时间格式化 (小时/分钟)
- predictUtils.ts: 时间范围/异常预测/容量摘要
翻译键总数: 6088 → 6172 (zh-CN/en-US 完全对齐)
CJK 残留: 1672 → 1114 字符 (33% 降幅)
tsc -b=0, npm build=✅, 17/17 集成测试通过
|
2026-07-03 06:43:09 +08:00 |
|
attacker
|
eb98a95842
|
fix(i18n): 补全 367 个缺失的 en-US 翻译键 — monitor 命名空间全覆盖
zh-CN/en-US 翻译键差集从 367 → 0,双语完全对齐 (6088/6088 keys)。
修复内容:
- monitor.alertChannel.* (25 keys): 通知渠道管理弹框
- monitor.alertChannels.* (13 keys): 渠道列表 Tab
- monitor.alertHelper.* (19 keys): 告警辅助函数(渠道/严重度/来源/状态)
- monitor.alertRulesTab.* (13 keys): 告警规则 Tab
- monitor.contactDialog.* (18 keys): 联系人弹框
- monitor.contactGroup.* (14 keys): 联系组弹框
- monitor.hostDashboard.* (23 keys): 主机监控仪表盘
- monitor.logPanel.* (58 keys): 日志查询面板(含 logResults 子命名空间)
- monitor.metricCatalog.* (8 keys): 指标目录
- monitor.monitorRule.* (17 keys): 监控规则配置
- monitor.notifyPolicy.* (30 keys): 通知策略
- monitor.promDs.* (17 keys): Prometheus 数据源配置
- monitor.silenceDialog.* (33 keys): 静默规则弹框
- monitor.silenceRules.* (34 keys): 静默规则列表
- monitor.traceMgr.* (35 keys): 链路追踪管理
新增 scripts/i18n-verify-keys.py 差集检测脚本 (--fix 可自动补全占位)。
⚠️ 缺失翻译键是静默失败: i18next 渲染 key 路径本身而非翻译文本,
切换到英文时用户看到 monitor.xxx.xxx 而非英文。
|
2026-07-03 03:50:40 +08:00 |
|
attacker
|
55f216cfbb
|
feat(i18n): 安全批量转换 135 文件 — 覆盖率 34%→62%
使用 i18n.t() 全局方式(避免 hook 定位问题):
- 288 目标文件中 135 个成功转换
- 2228 处中文替换为 i18n.t() 调用
- 1006 个新翻译 key 添加到 zh-CN.json + en-US.json
- 词典总量: 3554 keys (22 namespaces)
- tsc 零错误 + Vite 构建成功
- 6 个含代码示例/数据字符串的文件安全回退
|
2026-07-03 02:14:20 +08:00 |
|
attacker
|
72bfb0e12d
|
fix(i18n): 回退到稳定的 32% 覆盖率状态 (tsc + Vite 构建通过)
批量转换脚本引入的语法错误已回退,保留稳定的 i18n 转换:
- 翻译词典: 22 namespaces, 3600+ keys
- 已接入: 145+ 文件 (Dashboard/Login/K8s 主页面/Monitor/System/Deploy)
- 语言切换器在 Header 中可用 (🇨🇳/🇺🇸)
- tsc 零错误, Vite 构建成功
|
2026-07-03 02:02:29 +08:00 |
|
attacker
|
ecec73989b
|
feat(i18n): 剩余模块全量国际化 — 51% 覆盖率 (231 文件接入 t())
批量转换 163 个文件,3204 处中文替换为 t() 调用:
- Monitor: 日志中心/告警中心/数据源/大屏/站点拨测/SNMP/中间件 全部转换
- Kubernetes: ResourceVisualEditor/NamespaceResourcePage/拓扑/事件 全部转换
- Deploy: 流水线/发布/凭证/RBAC 全部转换
- Server/Cloud/Agent/Task/Layout/UI: 全部转换
- 翻译词典扩展至 6474 行 (22 namespaces, 5000+ keys)
- tsc 编译零错误
|
2026-07-03 01:51:57 +08:00 |
|
Logan
|
78c27037e3
|
feat(ldap): Active Directory 双目录支持与 Docker 构建优化
- 新增 ldap_ad.go,支持 AD 密码编码、字段映射与目录类型判断
- 重构 ldap/ldap_users/ldap_ou,兼容 OpenLDAP 与 AD 登录、导入、OU 浏览
- 前端系统设置增加目录类型选择与 AD 配置项
- Dockerfile 按 TARGETARCH 单架构编译 Agent,限制 Node 内存防 OOM
- run.sh 新增 docker fast/upgrade,README 补充 LDAP/AD 与常见问题
|
2026-07-02 22:45:49 +08:00 |
|
attacker
|
0f0f2770e1
|
feat(i18n): 监控大屏 GrafanaDashboard 全量国际化 — 108 翻译键 (monitor.dashboard.*) + 4 组件子Tab全量迁移
- GrafanaDashboard.tsx (640L) 全量迁移: AgentTab/ZabbixTab/PrometheusTab/DashboardTab 四个组件
- 新增 monitor.dashboard.* 命名空间 (108 键): tab/agent/batch/confirm/creds/warn/status/col/pagination/zabbix/prometheus/custom
- 硬编码中文 UI 文案 → t() 翻译键: Tab标签/工具栏/批量部署对话框/确认框/toast消息/表格列头/状态Badge/凭据表单/警告文案/分页/空状态
- TABS 常量改 getTabs(t) 函数模式(支持语言切换实时更新)
- zh-CN/en-US 完全对齐: 4201 键
- tsc -b=0, npm build ✅ (19.77s), ESLint any=37 unused=0, 17/17 集成测试通过
|
2026-07-02 21:28:58 +08:00 |
|
attacker
|
be2cff5745
|
chore: 清理 3 处 unused-vars 回归 (BuildNodesManager/DeployRBAC/ToolConfigTab)
- BuildNodesManager.tsx: 移除未使用 Server import
- DeployRBAC.tsx: 移除未使用 Save import
- ToolConfigTab.tsx: 移除未使用 useTranslation + t 变量
- ESLint unused: 3 → 0, any: 37 (稳定), tsc -b=0, npm build ✓
|
2026-07-02 19:03:14 +08:00 |
|
attacker
|
8cbe3aadec
|
feat(i18n): cloud 模块全量国际化迁移 — 4 组件 + 90 新增翻译键
迁移组件:
- RegionManager.tsx — providerNames→getProviderNames(t) 函数模式, 全量 t() 替换
- CloudAccountManager.tsx — providerLabels→getProviderLabels(t), 卡片/弹框/表单全量迁移
- CloudBilling.tsx — 概览/记录/预警三 Tab 全量迁移, TrendChart/StatStrip 标签国际化
- DomainManager.tsx — 域名卡片/状态徽章/创建编辑弹框全量迁移
翻译键: cloud 命名空间 145→235 键 (+90), common 新增 deleteFailed/deleteSuccess
验证: tsc -b=0, npm build✅ (21.21s), 17/17 集成测试通过, 0 缺失键, 0 残留 UI 中文
|
2026-07-02 12:50:05 +08:00 |
|
attacker
|
63e4c220d4
|
feat(i18n): 增量国际化迁移 — deploy/kubernetes/monitor/task 全模块 + 补全 28 缺失翻译键
迁移范围:
- deploy 模块 (PipelineEditor/PipelineDetailDialog/PipelineFormDialog/PipelineRunDialog/ReleaseCreateDialog/ReleaseDetailDialog/ReleaseManager/ToolConfigTab/JobRoleCreateDialog 等 14 文件)
- kubernetes 模块 (YamlEditorToolbar/DeploymentHpaTab/DeploymentLogsTab/DeploymentPodsTab/DnsHostSection/SchedulingSection/EventsTab/HPACronHPATab/HistoryTab/PodsTab/ServicesTab/ActionModals 等 12 文件)
- monitor 模块 (AlertEventsTab/AlertCenterDetail/DatasourcePage/LogAlertBell/LogCenter/LogCenterArchBanner/StatChartPanel/LogRoleCreateDialog 等 8 文件)
- task 模块 (CronJobStatsPanel/CronJobTable/CronJobViewDialog/ExecutionHistoryDialog 4 文件)
- layout (PageEmpty/PageLoading 2 文件)
- site-monitor/snmp-monitor 模块 (6 文件)
翻译键: 3975 → 4003 (+28 缺失键补全), 22 命名空间, zh-CN/en-US 完全对齐
新增命名空间: agent/aiops/cloud/kubernetes/monitor/pipeline/rbac/system/task/ui
验证: go build✅ tsc -b=0 npm build✅ (20.78s) 17/17 集成测试通过
|
2026-07-02 12:39:36 +08:00 |
|
attacker
|
eddf01dd79
|
fix(build): go:embed all:static 编译阻塞修复 — .gitignore 允许 .gitkeep 占位
问题: backend/static/ 在 .gitignore 中忽略整个目录,导致 .gitkeep
无法被 git 追踪。全新 clone 后 go build ./... 报错:
'pattern all:static: cannot embed directory static: contains no embeddable files'
修复:
- .gitignore: backend/static/ → backend/static/* + !backend/static/.gitkeep
- 新增 backend/static/.gitkeep 占位文件(go:embed 需要至少一个可嵌入文件)
验证: go build ./... ✅ | tsc -b ✅ | npm build ✅(21s) | 17/17 集成测试 ✅
质量: any=37 unused=2 console=0
|
2026-07-02 08:26:56 +08:00 |
|
attacker
|
f170fed900
|
fix(tools): 安装脚本国内镜像优化 + 版本升级
- Node.js: pipe-to-tar 改为下载到文件再解压(修复 302 重定向导致 curl 23)
新增阿里云/清华镜像,降级使用 python3 tarfile 解压
- Maven: 3.9.9→3.9.16(旧版镜像全部 404)
新增阿里云/清华/中科大/南大镜像,下载后校验 gzip magic
- JDK: 17.0.13+7→17.0.19+10(Adoptium 已清理旧版)
新增阿里云/华为/中科大/清华镜像
- 全部添加 --connect-timeout 和 gzip 校验
|
2026-07-02 00:21:13 +00:00 |
|
Logan
|
5770f2ccd4
|
chore: v0.1.1 发版脚本修复与 K8s 镜像坐标更新
- run.sh release 改用 docker-compose build,修复 buildx 缺失导致发版失败
- K8s deployment/quick-deploy 镜像更新为 lghost/aiops:v0.1.1
- 恢复 backend/static/.gitkeep 供 go:embed 目录占位
|
2026-07-02 08:01:22 +08:00 |
|
Logan
|
7e1c8f583c
|
feat: 工具配置增强、站点拨测与日志中心多项改进
- 工具配置:新增卸载 API/UI、Go 工具链、流水线构建自动安装依赖
- 修复 ListTools VerifyTool 递归栈溢出导致获取工具配置失败
- Node.js Alpine 安装改用 unofficial-builds musl 预编译包与 index.json 解析 LTS
- 站点拨测:详情页路由、告警自动恢复、并发拨测与默认可观测频率
- 日志中心:RBAC、查询构建器、ES/Loki 增强与审计 request/response 展示
- 发布配置:构建节点、流水线远程执行、Deploy RBAC 导航拆分
|
2026-07-02 07:47:33 +08:00 |
|
attacker
|
cde7bbe540
|
fix: 清理 unused-vars 回归(32→0) + 修复 go:embed 编译阻塞
1. ESLint unused-vars 从 32 清零(回归修复)
- 删除 14 个文件中未使用的 import(lucide 图标/shadcn 组件/JsonData 类型)
- 移除未使用的变量/参数(categoryLabels/updateEntry/onSaved 等)
- 涉及: AppRelease/PipelineEditor/KubernetesNodes/AlertCenter/SilenceRulesPanel 等
2. 修复 go:embed all:static 编译阻塞
- 新增 backend/static/.gitkeep 占位文件
- 全新 clone 后 go build ./... 可直接通过(不再依赖先 npm run build)
3. 安装缺失的 npm 依赖
- react-markdown/remark-gfm(AgentMarkdown 组件)
- @codemirror/lang-python/@codemirror/legacy-modes(ScriptCodeEditor 组件)
验证: go build✅ | tsc -b✅ | npm build✅(21s) | ESLint any=41 unused=0 | 17/17 集成测试✅
|
2026-07-02 00:08:23 +08:00 |
|
 LoganandClaude
|
471353e3d7
|
feat: 监控告警体系统一重构 + 自动化任务调度引擎 + 监控大屏拆分
告警中心
- 新增统一告警(alert_unified)、监控告警规则(monitor_alert_rule)、指标目录(alert_metric_catalog)
- 通知策略与消息分发(alert_notify_policy/dispatch/message)、静默规则
- 告警引擎按阈值/SNMP 拆分(alert_engine_monitor/snmp)
监控采集
- SNMP 常量/模板与历史指标(snmp templates/constants、snmp_metrics_history、snmp_collect)
- 中间件监控 Redis 采集与种子(middleware_monitor_redis/seed)
- 站点探测 pkg(siteprobe) + 站点视图(site_view)
自动化任务
- cron 调度器(cronscheduler)、脚本运行器(scriptrunner)、系统任务(systask)及运行记录(cron_job_run、system_task)
审计与凭证
- 审计设置(audit_setting) + 历史清理(auditcleaner)
前端
- 监控页面(host/middleware/site/snmp)拆分为子模块并大屏化
- 告警中心多 Tab(规则/指标目录/通知策略/静默)、任务管理组件重构、Agent CLI Markdown 渲染
- 移除旧脚本卡片/详情/日志组件,统一为 ScriptTable/ScriptCodeEditor/TerminalOutput
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-01 23:44:45 +08:00 |
|
attacker
|
092d0e4b9e
|
refactor: Dockerfile.embed → Dockerfile + fix Login TS error
- Dockerfile.embed 重命名为 Dockerfile(统一命名规范)
- docker-compose.yml / run.sh 引用更新
- 全量文档(CLAUDE/AGENTS/README/docs)Dockerfile.embed → Dockerfile
- fix: Login.tsx User 类型缺少 email/status 字段
|
2026-07-01 04:54:53 +00:00 |
|
Logan
|
4cb0e62857
|
docs: 同步 README 与 docs 文档至当前代码状态
- README 补充 PageShell、i18n、Agent CLI、中间件监控等近期功能
- project-structure 重写 api/pages/locales 目录约定
- development-guide 新增 PageShell 与 i18n 开发规范
- PROJECT_SUMMARY 整体重写,移除过时 internal/ 结构
- docs/README 新增 Agent CLI 设计文档索引与近期变更摘要
- dev-log 追加 2026-07-01 变更记录
|
2026-07-01 12:50:58 +08:00 |
|
Logan
|
e363ded445
|
feat: 全站 PageShell 设计系统与专业 UI 统一
- 新增 PageShell/PageTabs/ContentPanel/PageLoading/PageEmpty 页面骨架
- index.css 设计令牌文档化,布局令牌与纯色主按钮(去除渐变粉彩)
- 全站路由页接入 PageShell,云账单三 Tab 为标杆
- 主题体系:跟随系统 + 主流/开发者分组,新增 Dracula/Tokyo Night,One Dark 暖灰差异化
- 登录页/侧栏/顶栏去渐变光球,企业克制风
- 修复 AIAlertAnalyzer JSX 与构建依赖导入问题
|
2026-07-01 12:45:38 +08:00 |
|
Logan
|
1acb0c49af
|
feat: Agent CLI 与终端审计回放全面优化
- Agent CLI: 多轮对话、SSH 长连接、流式推理、Evolver 按用户隔离、历史侧栏
- 终端审计: 回放播放器、命令书签、筛选分页导出、命令输出统计、录制落盘修复
- 修复 session_commands 表迁移、Kill 竞态导致录制丢失、无录制会话回放提示
- 审计历史页只读(移除删除),移除回放弹框录制搜索
|
2026-07-01 12:13:53 +08:00 |
|
attacker
|
9a3dd304f7
|
fix(build): 移除 agent_cli.go 中不存在的 ReasoningEnabled 字段引用
commit 3b19ae6 (ssh-key 转圈修复) 意外引入 ReasoningEnabled 引用,
但 llm.Config 和 model.LLMConfig 均无此字段导致 go build 编译失败。
移除该行恢复正常编译。
|
2026-07-01 06:39:46 +08:00 |
|
attacker
|
6db6acc6bd
|
feat(i18n): U5 Kubernetes 模块国际化 — 新增 k8s 命名空间(184键) + KubernetesClusterDetail/TopologyView 全量迁移硬编码中文改翻译键
- 新增 k8s 翻译命名空间: cluster/tab/column/empty/label/topology/resource/workload 8 子命名空间
- KubernetesClusterDetail.tsx: 7 Tab(概览/节点/Pod/Deployment/Service/Ingress/事件) 表头+空状态+趋势图标签全量国际化
- TopologyView.tsx: 标题/编辑模式/连线模式/节点编辑弹框/Toast/搜索栏全量国际化
- 新增 common.duration.minAgo 插值键
- 翻译键 1019→1204(+185), 11 命名空间, zh-CN/en-US 完全对齐
- tsc --noEmit=0, npm build✅(17.81s), 17/17 测试通过
|
2026-07-01 02:28:33 +08:00 |
|
 LoganandClaude
|
3b19ae6e98
|
fix(aiops): Agent CLI 连接 ssh-key 主机永久转圈修复
- buildSSHConfig 放宽认证判定:SSHKey 非空即走密钥认证,不再强依赖 AuthType=="key",
兼容编辑表单/历史数据未正确设置 AuthType 的 ssh-key 主机(与 WebShell 行为对齐)
- agent_cli WS 握手:Upgrade 提前到预检之前,预检失败经 writeWSCloseError 推具体
error 帧;写 error 后 sleep 120ms 再发 close,避免 TCP 提前关闭导致 error 帧丢失
- 前端 AgentCLI 连接兜底:新增 8s 连接超时 + onclose 区分"从未连上"(push 明确
原因提示)与"连上后断开",杜绝预检失败时"正在连接主机"永久转圈、看不到原因
- 引擎配置补传 ReasoningEnabled
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-30 23:25:04 +08:00 |
|
attacker
|
01967bc52b
|
feat(i18n): deploy 模块(Pipeline/Credential)国际化增量迁移 — 翻译键 deploy 命名空间(455键) + CredentialManager 补全 3 处 UI 文案
- PipelineManager.tsx: 流水线全量翻译(标题/搜索/CRUD/阶段/任务/运行/横幅)
- CredentialManager.tsx: 操作按钮 title 属性补全(编辑/禁用启用/删除)
- zh-CN.json + en-US.json: deploy 命名空间 455 键完全对齐
- 总翻译键: 1019(zh) = 1019(en)
- tsc -b 零错误, npm build 成功(17.42s)
|
2026-06-30 22:10:26 +08:00 |
|
attacker
|
ed7a5c07a7
|
feat(monitor): M15 中间件监控 — Redis/MySQL 后端直连采集引擎
后端:
- 新增 controller/middleware_monitor.go (500+ 行) — CRUD + 测试连接 + 采集引擎
- 后台 goroutine 每 30s 自动连接 Redis/MySQL 采集指标
- Redis: go-redis v9 INFO+DBSIZE 命令采集 12 项指标
- MySQL: database/sql SHOW GLOBAL STATUS 采集 12 项指标
- 指标写入 MetricHistory 表,7 天自动清理
- 8 个 RESTful 路由注册到 routes.go
前端:
- MiddlewareMonitor.tsx 从只读卡片升级为完整管理页面
- 添加监控弹框(Redis/MySQL 类型选择+连接配置表单)
- 实例卡片操作栏(测试/编辑/删除) + 工具栏(立即采集/刷新)
- middlewareMonitorApi 8 个方法
验证: go build✅ npm build✅ 17/17 回归通过 Redis 12 指标✅ MySQL 12 指标✅
|
2026-06-29 23:24:05 +08:00 |
|
attacker
|
186ece6495
|
feat(i18n): 安全审计模块全量国际化 — 7 文件硬编码中文改翻译键 + audit 命名空间(89 键)
迁移文件:
- AuditOperationsTab.tsx — 操作审计(搜索/筛选/虚拟滚动表格/详情弹窗/统计弹窗)
- TerminalAuditTab.tsx — 终端审计子标签(在线/历史/命令)
- LoginLogsTab.tsx — 登录日志(DataTable + 状态筛选 + 登录方式)
- ActiveSessionsPanel.tsx — 在线会话(自动刷新 + 阻断确认 + 实时监控)
- HistorySessionsPanel.tsx — 历史会话(回放/下载录制)
- SessionCommandsPanel.tsx — 会话命令(虚拟滚动)
- helpers.tsx — formatDuration/getStatusBadge (i18n.t 非组件模式)
翻译键: audit 命名空间 89 键 (operations/login/terminal 三子域)
+ common.duration 时长单位(秒/分/时)
总键数: 481→610, 命名空间: 8→9 (common/menu/header/login/dashboard/server/alert/approval/audit)
zh-CN/en-US 完全对齐, tsc -b=0, npm build✓, 17/17 测试通过
|
2026-06-29 20:44:08 +08:00 |
|
attacker
|
fef4997391
|
feat(i18n): Approval 审批模块全量国际化 — 11 文件硬编码中文改翻译键 + approval 命名空间(136 键)
迁移文件:
- pages/approval/: ApprovalWorkflowPage + ApprovalCategoryPage + 3 子页面(Resource/App/Permission)
- components/approval/: ApprovalFlow + ApprovalProcessTab + ApprovalCreateDialog + ApprovalDetailDialog + ApprovalTemplateTab + helpers
翻译键: approval 命名空间 136 键 (8 子组: category/step/status/col/editor/detail/flow/type/msg)
复用 common.* 通用键 (approve/reject/cancel/save/create/delete/edit/detail/close/loading 等)
zh-CN/en-US 完全对齐, 8 命名空间 (common/menu/header/login/dashboard/server/alert/approval)
模式: 组件内 useTranslation() + t(); 模块级常量/helpers 用 i18n.t()
labelKey 模式: STATUS_TABS/statusMap 从 label:string 改为 labelKey:string + i18n.t(config.labelKey)
|
2026-06-29 18:25:29 +08:00 |
|
attacker
|
61a1f32e64
|
feat(i18n): AlertCenter 告警中心国际化 — 38 处硬编码中文改翻译键 + alert 命名空间(58 键)
- AlertCenter.tsx: StatStrip 4 标签/5 个 Tab 标题/搜索/级别+状态筛选/表头 6 列/分页/加载空状态/toast 12 处/确认弹框 3 处/一键报警描述/规则启用禁用/联系人联系组增删 全量 t() 化
- 复用 common.* 通用键(refresh/edit/delete/status)
- 新增 alert.* 命名空间: stat/tab/severity/status/table 子组 + searchPlaceholder/quickSetup/toast 等 58 键
- zh-CN/en-US 键总数 285→343 (alert 58 键, 中英完全对齐)
- tsc -b=0, npm build=✓(19.59s), 17/17 集成测试通过
|
2026-06-29 13:46:20 +08:00 |
|
attacker
|
3e9352f690
|
feat(i18n): ServerManager 服务器管理页国际化 — 27 处硬编码中文改翻译键 + server 命名空间(48 键)
- ServerManager.tsx: 页面标题/按钮/搜索/状态筛选/表头/分页/toast/CSV导出/确认弹框 全量 t() 化
- 复用 common.* 通用键(refresh/export/delete/status/actions/loading/running/stopped/maintenance/offline)
- 新增 server.* 命名空间: title/subtitle/batchImport/cloudImport/csvImport/addServer/searchPlaceholder/tableHeaders/pagination/toast/csv 子组
- zh-CN/en-US 键总数 242→290 (server 48 键, 中英完全对齐)
- tsc -b=0, npm build=✓(19.13s), 17/17 集成测试通过
|
2026-06-29 13:25:18 +08:00 |
|
attacker
|
eb0fef7fce
|
feat(i18n): Dashboard 页面内容国际化迁移 — 3 组件(Dashboard/DashboardCharts/DashboardRecent)硬编码中文改翻译键 + zh-CN/en-US 新增 dashboard.* 121 键(241 total)
- Dashboard.tsx: 标题/副标题/刷新/服务器按钮/StatStrip 7 标签/概览卡片标题 全部 t() 化
- DashboardCharts.tsx: 云成本概览/Top5资源使用/费用分布/月度趋势/环比标签 i18n(computeMonthChange 用 i18n.t 避开非组件上下文)
- DashboardRecent.tsx: 告警消息/证书到期/发布历史/服务器状态/集群状态 5 卡片全量 i18n
- zh-CN.json/en-US.json: dashboard 命名空间扩展 stat/alerts/certificates/releases/serversStatus/clusters/cost/topUsage/system 9 子分组
- 翻译键总数 120→241 (zh-CN/en-US 完全对齐)
- tsc -b=0, npm build=✓(19.01s), 17/17 集成测试通过, Docker healthy
|
2026-06-29 13:06:38 +08:00 |
|
 LoganandClaude
|
b7780c5a5a
|
fix(agent): 修复资产重复注册(每10s新建) + 批量删除400
agent 自动注册前按 hostname 显式查重(asset_servers.hostname 无 UNIQUE 索引,OnConflict 失效导致 Agent 每次上报都 INSERT 新记录,资产越来越多)。
批量删除 BatchDeleteServers 对齐前端 {ids} 格式(原期望裸 []uint 导致 ShouldBindJSON 解析失败 400)。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-28 23:43:34 +08:00 |
|
 LoganandClaude
|
f820f0271f
|
feat(remote-exec): 新增远程执行页(执行/上传) + 移除ansible命名 + 主机监控bug修复
远程执行页 RemoteExecPage:关联主机多选 + 批量执行命令 + 批量上传文件(Go-native SSH),高危操作 useConfirm 确认;后端新增 multipart /remote-exec/upload-file 接口(接收文件→SCP 转发到多台主机)。
移除 ansible 命名:菜单 /ansible→/remote、组 id automation→task、子项 id ansible→remote-exec、种子显示名 Ansible→远程执行;删除 dead code ansibleApi。
主机监控 bug:installOne 不再强制 server.Status==running(默认 stopped 导致批量安装必失败);UninstallAgent 凭据判断修正(SSH key 主机 Password 为空不应误判为无凭据而跳过远程卸载)。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-28 23:29:32 +08:00 |
|