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
Logan
1acb0c49af
feat: Agent CLI 与终端审计回放全面优化
...
- Agent CLI: 多轮对话、SSH 长连接、流式推理、Evolver 按用户隔离、历史侧栏
- 终端审计: 回放播放器、命令书签、筛选分页导出、命令输出统计、录制落盘修复
- 修复 session_commands 表迁移、Kill 竞态导致录制丢失、无录制会话回放提示
- 审计历史页只读(移除删除),移除回放弹框录制搜索
2026-07-01 12:13:53 +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 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
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
83e1978ab0
chore: gitignore 排除二进制构建产物 (.aiops.args, aiops.bak.*)
2026-06-26 15:31:08 +00:00
Logan.Li
e8d79e409f
chore(gitignore): 明确忽略 SQLite WAL 附属文件与根目录 config.yaml
...
sqlite3.db-shm/wal、redka.db-shm/wal 为 WAL 模式临时文件,非独立数据库。
2026-06-26 18:53:55 +08:00
Logan.Li
73fb8578bc
chore(gitignore): 忽略 deb/rpm 安装包与 aiops-* 编译产物
...
防止 zabbix-release 等 .deb 及 aiops-mac 等二进制再次误提交。
2026-06-26 18:52:02 +08:00
Logan.Li
8be51ac514
feat(build): 支持 build tag 版本注入并清理历史二进制
...
- ./run.sh build 仅输出项目根目录 ./aiops,构建前清理 backend/aiops-*
- 新增 ./run.sh build tag v1.0.1,通过 ldflags 注入 Version/BuildTime/GitCommit
- 支持 ./aiops version 子命令查看编译版本
- 删除误提交的 backend/aiops-cgo,gitignore 忽略 backend/aiops-*
2026-06-26 16:27:08 +08:00
Logan.Li
d27a2e6cbe
fix(local): sqlite3.db/redka.db 与 aiops 二进制同级存放
...
- local 模式默认库文件改为 ./sqlite3.db,不再使用 data/ 子目录
- redka 缓存改为 ./redka.db,与可执行文件同目录
2026-06-26 16:16:51 +08:00
Logan.Li
e7a479ccf5
fix(build): 独立二进制输出到根目录并修复 local 模式 SQLite 路径
...
- SQLite/redka 数据目录相对可执行文件解析,自动创建 data/ 父目录
- ./run.sh build 产物改为 ./aiops(与 run.sh 同级),数据/日志在 ./data ./logs
- 解决从项目根执行时 data/ 不存在导致的 SQLite CANTOPEN 报错
2026-06-26 16:16:02 +08:00
attacker
77c234b060
feat(audit): F1+F2 告警静默规则标记完成 + 审计日志CSV导出实现
...
F1 告警静默规则 [done]:
- 后端 alert_silence.go: CRUD + Toggle (onetime/daily/weekly 三模式)
- 告警引擎 isSilenced 集成 (alert_engine.go)
- 前端 SilenceRuleTab + SilenceDialog
- 路由 /alerts/silences 已注册
F2 审计日志导出 [done]:
- 重写 ExportAuditLogs: 真正的 CSV 导出 (encoding/csv + UTF-8 BOM)
- 支持 module/action/username/startTime/endTime 筛选
- 导出限制 10000 条防溢出,自动记录审计日志
- JSON 格式向后兼容 (format=json)
- 前端 exportLogs 传递查询参数
同时包含累积的前期工作:
- 目录重构 internal/ -> controller/model/router (v0.55-v0.57)
- 后端分层架构 dto/repository/service/utils
- 审计模块全功能 (终端审计/操作审计/登录日志)
- asciicast v2 录制格式
- SFTP 文件浏览器
- StatStrip 紧凑统计条
- 在线会话自动刷新
- LiveMonitor WebSocket 诊断修复
验证: go build ✅ | npm run build ✅ | Docker 部署 ✅ | 10 回归端点 ✅ | CSV 导出 ✅ | 静默 CRUD ✅
2026-06-25 20:16:30 +08:00
attacker
60934277ac
fix: kubectl本地打包避docker下载超时; Service关联用spec.selector而非metadata.labels; 数据源兼容SvcSummary/IngSummary格式
2026-06-23 02:37:33 +00:00
attacker
69df073d42
chore: 隐藏.hermes目录、删除docker-compose.embed.yml、优化CLAUDE.md和README.md
...
- .gitignore 新增 .hermes/ 目录,git rm --cached 已追踪的 plan 文件
- 删除 docker-compose.embed.yml(embed 部署统一走 K8s 或独立二进制)
- Makefile 移除 docker-embed 目标
- CLAUDE.md 全面重写:三种部署方式详解、技术栈修正(Go1.24+MySQL/Redis)、架构完善、新增工具懒加载/凭证v2/远程执行/流水线/PTY终端等章节
- README.md 重写:三种部署快速开始、项目结构对齐实际目录、核心功能更新
2026-06-22 17:19:54 +00:00
Logan
4631b02f13
feat: 三种部署方式 — embed单容器 + 二进制部署 + K8s
...
新增三种部署方式(原有 docker-compose 不受影响):
1. Docker embed 单容器 (docker-compose.embed.yml):
- go:embed 前端嵌入后端二进制
- 不需要 nginx 容器,3容器→2容器
- 镜像仅 54.8MB (vs 原来 1.16GB)
- 用法: make docker-embed
2. 二进制部署 (deploy/binary/):
- make build-binary 生成单二进制
- install.sh 自动创建 systemd 服务
- 适合无 Docker 环境
- 用法: scp aiops + install.sh, bash install.sh install
3. Kubernetes 部署 (deploy/k8s/):
- devops 命名空间全套 yaml
- MySQL StatefulSet + Redis StatefulSet + Backend Deployment
- ConfigMap + Secret + Ingress
- 用法: kubectl apply -f deploy/k8s/
核心改动:
- backend/cmd/embed.go: go:embed 前端 + SPA fallback 路由
- backend/Dockerfile.embed: 四阶段构建 (前端→后端embed→agent→runtime)
- Makefile: build-binary + docker-embed 目标
- deploy/README.md: 四种部署方式对比文档
2026-06-21 14:20:29 +08:00
attacker
ac0b8e75c0
feat: add monitoring agent (Go) + agent report API + cloud billing UI
...
- Go agent: CPU/mem/disk/port collectors, HTTP report, static binary
- Cross-compile: linux/amd64 + linux/arm64 (statically linked)
- One-line install script for all Linux distros
- Backend: POST /api/v1/agent/report (no JWT) + GET /agent/latest,history (JWT)
- CloudBilling.tsx: fixed syntax errors, stats/trends/records/alerts
- K8s menu renamed to Kubernetes管理
Signed-off-by: Logan.Li
2026-06-14 21:27:14 +08:00
attacker
97c4207ff8
refactor: 标准化项目结构 frontend/ + backend/ + SQLite + run.sh
...
- 目录重构: app/ -> frontend/,与 backend/ 并列
- 数据库: 默认 SQLite(零配置),修复 DSN() bug
- run.sh: 一键启动前后端,支持 start/stop/restart/status
- Makefile: install/dev/build/lint/clean 快捷命令
- vite.config.ts: 配置 dev server 端口 5173 + API 代理到 8080
- config.yaml: SQLite 默认配置,开箱即用
- docs/: 完整开发文档(项目结构/API/数据库/规范/部署)
- 修复: GORM foreign key 关联声明
- 修复: go get gorm.io/driver/sqlite 依赖
2026-06-13 23:34:23 +08:00
attacker
7d6674bddd
init: EZOps AIOps 智能运维平台
...
- 前端: React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui
- 后端: Go + Gin + GORM + JWT (golang-jwt/jwt/v5)
- 功能: 服务器管理、K8s集群、监控告警、CI/CD、自动化运维、审批流程、审计日志
- 文档: 设计文档(ROADMAP/PDD/架构/模块)
2026-06-13 23:09:47 +08:00