Logan.Li
d8b124fc7c
feat: 更新主流大模型供应商目录
...
- 按云服务、Coding Plan、API 网关和本地模型分组
- 新增兼容模型发现与供应商协议校验
2026-07-30 21:34:33 +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
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
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
Logan.Li
e0d652d211
feat: 完善堡垒机与 Agent 智能运维能力
...
- 支持 Windows Agent 构建、安装脚本和统一上报协议
- 增强 RDP 剪贴板、虚拟盘和文件传输能力
- 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口
- 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
2026-07-05 23:49:36 +08:00
Logan and Claude
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
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
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
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
Logan and Claude
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
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
Logan and Claude
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
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
Logan and Claude
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
Logan and Claude
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
Logan and Claude
0b2e43ea9e
feat(llm): 大模型双协议(OpenAI+Anthropic)接入 + SSH凭证修复 + 容量预测AI解读
...
后端双协议: 新增 anthropic.go(Complete/Stream/工具转换) + client.go 工厂按 Protocol 路由; llm.Client 加 Stream; llm_chat 三方法收敛复用 llm.Client; resolveProtocol 按 provider 路由; Agent CLI 注入协议。编码套餐(GLM-5.2/Kimi/MiMo/Anthropic)走 Anthropic /v1/messages。
SSH凭证修复: applyCredential 正确解析凭证 JSON 的 private_key(旧实现把整个 JSON 当私钥 → ssh.ParsePrivateKey 失败 → ssh-key 登录不通); AssignCredential/批量导入/单台 CRUD 三处统一; 单台补齐 credential_id 字段(原被忽略)。
容量预测: 新增 AI 深度解读(buildCapacityInsightPrompt + PredictiveCapacityTab 按钮, 复用 aiApi.chat)。
其他: DeepSeek 模型名更新为 deepseek-v4-flash/pro; 智能助手去掉重复模型配置按钮; LLMConfig 精简生成参数(Claude Code 式)。
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-28 22:37:46 +08:00
attacker
7ed4ce8d3a
fix(log): log-datasources List 返回 {list,total} 格式对齐前端期望
...
前端 logCenterApi.listDatasources 期望 res.list 数组,但后端 List handler
返回裸数组导致前端取 res?.list 为 undefined。改为 model.ListResponse 对齐
项目其他列表端点的惯例格式。
2026-06-28 10:11:23 +08:00
attacker
5fb74a787a
fix(log): F6 polish — log datasource create error log + schema patches for auth_type/token/headers + ES default index sync on datasource select
2026-06-28 06:04:18 +08:00
attacker
6bba6144f3
feat(monitor): F6 日志告警引擎 — AlertEngine 支持 type=log 规则查询Loki/ES+触发/恢复 + 数据源认证升级(none/basic/bearer/custom) + 从查询创建告警真实API对接
2026-06-28 04:00:38 +08:00
attacker
894cb16a05
feat(monitor): F5 链路追踪后端对接 — traceApi mock桩改真实Jaeger/Tempo代理+demo兜底
...
- 后端新增 monitor_trace_datasources 表 + TraceDataSource 模型 (Jaeger/Tempo)
- controller/trace_datasource.go — CRUD + TestConnection + SetDefault (7 路由)
- controller/trace_proxy.go — Jaeger API 代理 + 响应格式转换 (Trace/服务/Span)
- GET /traces — Trace 列表 (代理 Jaeger /api/traces)
- GET /traces/services — 服务列表 + P95/P99/errorRate 聚合
- GET /traces/:traceId — Trace 详情 (Span 树转换)
- Demo 数据兜底: 无数据源时返回模拟数据 (6 Trace + 5 服务 + 5 Span)
- 前端 traceApi 从 mock 改真实 HTTP 调用
- 前端新增 trace-datasource.ts 数据源管理 API
- ROADMAP/TDD_PLAN/PROJECT_EVALUATION 文档同步更新
- 综合评分 90→91, 功能完整性 92→94 (mock API 清零)
2026-06-28 01:51:00 +08:00
attacker
f725ca7cac
feat(monitor): F4 自定义监控仪表盘 — mock 桩改真实 CRUD + PromQL 查询渲染
...
后端:
- 新增 model/custom_dashboard.go (monitor_custom_dashboards 表)
- 新增 controller/custom_dashboard.go (CRUD + 设默认, 6 路由)
- routes.go 注册 /custom-dashboards 路由组
- database.go AutoMigrate 注册 CustomDashboard
前端:
- grafana.ts: dashboardApi 从 mock 返回空改为真实 HTTP 调用
- metrics.ts: prometheusProxyApi 新增 query/queryRange 方法
- GrafanaPanelContent.tsx: 从随机 mock 数据改为执行 PromQL 查询
+ Recharts LineChart 渲染 graph 类型
+ SVG gauge 渲染 gauge 类型
+ 数值卡片渲染 stat 类型
+ 表格渲染 table 类型
+ 30s 自动刷新 + loading/error 状态
+ 自动发现默认 Prometheus 数据源
- GrafanaDashboard.tsx: 传递 datasourceUrl 到 GrafanaPanelContent
验证: go build✅ npm build✅ 17/17 集成测试通过 E2E CRUD 全通过
2026-06-27 23:28:04 +08:00
attacker
7af10097c9
fix(log): input text visibility + space-in-date 502
...
- UnifiedQueryPanel: fix JS operator precedence — .replace(' ','T') was
called on '.000Z' suffix instead of concatenated string, resulting in
'2026-06-27 12:46:28.000Z' (space not replaced) → ES 502
- normalizeTime: add space→T fallback for backward compat
- SyntaxHighlightInput: fix z-index layering (textarea z=2 was covering
pre z=1, making highlighted text invisible). Move bg/border to parent,
textarea bg→transparent, pre above textarea
2026-06-27 12:54:31 +00:00
attacker
17059bff98
fix(log): normalizeTime — auto-append .000ms for ES 7.2.0 date_time compat
...
Frontend may send dates without milliseconds (e.g. 2026-06-27T09:09:17Z),
which ES 7.2.0 strict_date_optional_time rejects. Backend now detects missing
milliseconds and inserts .000 before timezone suffix.
2026-06-27 10:28:41 +00:00
attacker
a04d815efe
fix(log): ES 7.2.0 time format .SSSZ + index dropdown + demo always visible
...
- ES query 502 fix: remove +00:00 conversion, use native .SSSZ format
(ES 7.2.0 date_time = strict_date_optional_time only, rejects +00:00/epoch)
- parseLogTime: use time.RFC3339Nano for fractional seconds
- new API GET /log-datasources/indices to list ES indices via proxy
- LogDatasourceDialog: add '获取索引' button + Select dropdown for ES
- LogDatasourcePage: always show demo sources alongside real ones
2026-06-27 09:45:21 +00:00
attacker
084a3be2cf
fix(log-center): ES 时间戳双字段兼容 + AI助手按钮去重清理
2026-06-27 16:31:06 +08:00
attacker
36bd0a6155
fix(log-center): 修复 demo 数据源、ES 502、查询页关联
2026-06-27 07:14:54 +00:00
attacker
c624ca5b4a
feat(ops): U4 后端镜像瘦身 282MB→107MB (62%降幅)
...
- 移除 git/docker-cli/docker-cli-buildx (~100MB) 改为懒加载
- PipelineHandler 注入 ToolInstaller, runCheckout/runImageBuild 调 EnsureAvailable
- UpgradeTools 自动升级 DB 中 git/docker-cli preinstall→lazy
- 仅内置 linux-amd64 agent (~12MB节省), arm64/darwin 通过下载API
- kubectl 改用 install-kubectl.sh 下载 stripped 版本
- .dockerignore 排除 backend/kubectl 60MB 二进制
- Dockerfile.embed + backend/Dockerfile 同步更新
- 17/17 集成测试通过
2026-06-27 14:28:09 +08:00
attacker
bdf3c2daf4
feat(log-center): 日志中心 v4 全量组件 — 统一查询面板/时间选择器/统计图表/聚类/数据源管理
2026-06-27 11:41:50 +08:00
attacker and Claude
92a2247390
feat: 新增 Agent CLI — Web 版 AI 运维 Agent(参考 opsxcli 移植)
...
后端引擎 backend/pkg/agentcli/(纯引擎库,零业务依赖,剥离 CLI/TUI 外壳):
- llm: OpenAI 兼容客户端,复用 model.LLMConfig
- tools: ssh_execute(复用 pkg/remoteexec)+ analyze_output + 风险评估黑名单
- safety: 三级安全模式 + 五级风险 + WebSocket 异步确认
- prompt: 五层 System Prompt
- core: ReAct 16 轮循环 + 自适应检查点 + 循环检测
- evolver: 四层记忆 + 进化循环,data/agentcli/ 文件存储
集成层:
- controller/agent_cli.go: WebSocket 控制器(事件流推流 + 高危确认 + 会话持久化)
- model/agent_cli.go: agent_cli_sessions/messages 表 + AutoMigrate
- 路由 /ws/agent-cli + /api/v1/aiops/agent-cli/sessions
- seed 权限 aiops:agent-cli / aiops:llm-config
前端:
- AgentCLI.tsx: 对话流 + 工具块 + 高危确认 + 四模块 tips 面板
- LLMConfig.tsx: 大模型设置独立页
- api/agentCli.ts + Sidebar/App 菜单路由
文档:
- docs/agent/ 11 篇(opsxcli 同名文档适配改写 + 00-README 映射总览)
其他:
- CLAUDE.md 补充 agent-cli 模块说明
- 修正 .gitignore 根级二进制规则(前导 /,避免误伤 frontend/src/components/aiops/)
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-27 09:55:17 +08:00
attacker
e4f1018ca1
feat(ws): A3 WebSocket 统一连接管理 — 心跳/注册表/监控/优雅关闭
...
- 新增 pkg/wshub/manager.go 统一 WebSocket 连接管理器 (WSManager)
- 6 个 WebSocket handler 全部迁移: WebShell/kubectl/PodExec/Audit/Metrics/Pipeline
- 心跳机制: ping(30s) + pong handler + read deadline(60s) 自动检测死连接
- 连接注册表: 元数据(类型/用户/远程地址/连接时间/最后活跃)
- 每用户连接限制 MaxConnsPerUser=15 防资源耗尽
- 监控端点: GET /api/v1/ws/stats + GET /api/v1/ws/connections
- 优雅关闭: CloseAll() 发送 CloseGoingAway 帧并关闭所有连接
- 消除 3 个重复 websocket.Upgrader 变量统一为 WSManager 内部 upgrader
- 6/6 A3 测试通过, 17/17 回归测试通过
2026-06-27 07:20:11 +08:00
attacker
00a98e210d
feat(k8s): A1 K8s 双路由体系统一 — code 路由为主, ID 路由标记 deprecated
...
后端:
- 新增 4 条 all-NS code 路由: services/ingresses/cronjobs/nodes
- ListNodes 改用 getK8sClientByCode (兼容 ID+code)
- ID 域资源路由标记 // Deprecated
前端:
- clusterApi/nodeApi/workloadApi 资源方法迁移到 code 路由
- KubernetesClusterDetail/TopologyView/KubernetesNodes 组件从 cluster.id 迁移到 cluster.code
- 修复潜在 bug: ClusterOverviewPage 曾将 code 传给 ID-based getNodes
验证: 16/16 API 测试通过 (7 新 code 路由 + 3 旧 ID 兼容 + 6 回归)
go build=✅ tsc -b=✅ npm build=✅
2026-06-27 04:50:58 +08:00
attacker
09d3f5b6e8
chore: 排除前端构建产物,不再追踪 backend/static 生成文件
2026-06-26 23:48:44 +08:00
attacker
310196a791
chore: gitignore 排除前端构建产物 backend/static/ (111 hash 文件)
2026-06-26 15:31:34 +00:00
attacker
4e384ca401
chore: 重新编译前端产物(补装CodeMirror依赖)
2026-06-26 23:29:08 +08:00
Logan
23e9e3da62
merge: 合并远程 A2 告警引擎分布式安全更新,保留本地日志中心等最新改动
2026-06-26 23:19:42 +08:00
Logan
8d46e8f352
feat: 新增日志中心、功能优化与代码重构
...
- 新增 log_datasource.go / log_proxy.go / user_api_token.go 后端控制器
- 新增 log_datasource.go model
- 新增 monitor/log-center.ts API 模块
- 新增 LogCenter 前端组件及页面
- 重构 deployment 相关组件 (HPDA/UpdateImageModal/bundle-yaml 等)
- 新增 ResetPasswordDialog / code-snippet-block / copy-button 等 UI 组件
- 重构多个 k8s 相关组件 (TopologyView/ResourceVisualEditor/PodFileBrowser 等)
- 更新多个 API 和工具函数 (auth.ts/monitor/index.ts/request.ts 等)
- 更新静态资源 (index.html + 新 JS/CSS bundle)
- 删除废弃静态资源文件
2026-06-26 23:18:05 +08:00
attacker
c68aef4444
feat(alert): A2 告警引擎分布式安全 — Redis 分布式锁(SetNX)
...
- Cache 接口新增 SetNX 方法(go-redis 原子 / redka check-then-set 单副本安全)
- AlertEngine 改造为支持分布式锁: tryAcquireLock/releaseLock/GetEngineStatus
- 多副本部署时仅 Leader 执行告警检查, 60s TTL 防死锁, fail-open 容错
- 新增 GET /alerts/engine/status 监控端点(is_leader/instance_id/lock_holder)
- 修复 GrafanaDashboard.tsx Panel.options 类型不匹配导致构建中断
- 同步未提交的前端类型安全迁移(140+ 文件)
- ROADMAP/TDD_PLAN/PROJECT_EVALUATION 三文档同步更新
验证: go build 零错误, Docker 部署 healthy, 引擎状态端点正常,
锁竞争测试通过(非 Leader 跳过检查), 5/5 核心 API 回归通过
2026-06-26 21:13:15 +08:00
Logan.Li
5ca0e6d83a
fix(docker): Alpine apk 镜像源 403 时自动回退阿里云/官方
...
- 新增 scripts/setup-alpine-mirrors.sh 探测可用镜像
- 移除硬编码清华源,runtime 固定 alpine:3.20 避免 latest 漂移
2026-06-26 19:12:38 +08:00
Logan.Li
9215cd9b8c
fix(docker): 构建时按 TARGETARCH 下载 kubectl,移除 backend/kubectl 依赖
...
- 新增 scripts/install-kubectl.sh,支持 linux amd64/arm64
- Dockerfile.embed 后端 CGO 编译跟随 TARGETARCH,修复 Mac ARM 构建失败
- backend/Dockerfile 同步改为构建时下载 kubectl
2026-06-26 19:06:57 +08:00