- 23 7月, 2026 7 次提交
-
-
由 陈泽健 提交于
阶段九 P2 功能增强: Excel 导出(openpyxl): - Sheet 1:汇总信息(目标、套件、时间、统计) - Sheet 2:检测明细(全量表格) - 状态列条件格式(正常=绿、警告=黄、严重=红) - 表头冻结 PDF 导出(weasyprint): - 使用 weasyprint 将 HTML 转 PDF - 降级策略:不可用时返回可打印 HTML - @page 分页规则 + 中文字体支持 - 打印按钮提示(降级模式) 路由改进: - api_export_report() 重构避免重复代码 - 支持 format=excel/pdf 参数 前端: - report.html 导出菜单新增两个选项 文档: - PRD_需求文档_导出PDF_Excel格式.md - PRD_计划执行_导出PDF_Excel格式.md 测试:167 个测试全绿
✅ Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
阶段九功能增强(P1 级): 报告对比功能: - 新增 compare_service.py 对比服务(5 类差异分类) - 新增 API:对比 /reports/{id1}/compare/{id2} - 新增 API:导出 /reports/{id1}/compare/{id2}/export - 新增 compare.html 对比结果页模板 - report.html 新增"对比历史报告"按钮 + 弹窗 - 值变化阈值:默认 > 20% 异常项趋势告警: - report_service.py 新增 check_consecutive_abnormal() - runner_service.py 集成连续异常告警 - notification.html 新增告警配置区(阈值/级别/渠道) - 冷却期机制:24 小时内不重复告警 文档: - PRD_需求文档_报告对比功能.md - PRD_需求文档_异常项趋势告警.md - PRD_计划执行_报告对比功能.md - PRD_计划执行_异常项趋势告警.md 测试:167 个测试全绿✅ Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
阶段九规划(下次会话执行): - P1: 报告对比功能(对比两次巡检结果,差异高亮展示) - P1: 异常项趋势告警(连续N次异常自动通知) - P2: 导出 PDF/Excel 格式 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
阶段八完成: - 新增 480px 超小屏幕断点(9 个页面) - 修正 statistics.html 筛选栏溢出 - 修正 notification.html 端口输入框溢出 - 修正 report.html 模块标题溢出 - run.html 进度条响应式高度 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
9 个页面全面优化移动端响应式样式: - base.html: 新增 480px 断点,顶栏/侧边栏/用户名紧凑化 - index.html: 480px 断点,卡片/按钮缩小,目标管理按钮全宽 - reports.html: 480px 断点,筛选框/报告行/批量栏紧凑化 - report.html: 480px 断点,汇总卡片/异常项/检测项紧凑化, 模块标题 word-break 防溢出 - statistics.html: 修正 768px 筛选栏完全纵向堆叠(原 flex-wrap 仍可溢出),趋势选择器纵向堆叠;新增 480px 断点 - schedule.html: 480px 断点,弹窗/星期按钮/时间选择器紧凑化 - targets.html: 480px 断点,表格行/操作按钮/弹窗紧凑化 - notification.html: 修正 768px 端口输入框固定宽度溢出问题, 改为自适应;新增 480px 断点,开关/表单紧凑化 - run.html: 进度条高度响应式(12→10→8px),480px 断点巡检 卡片紧凑化,完成横幅长文字 word-break 验证:218 个单元测试全绿,已部署到 5.60 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 新增 PRD_需求文档_服务管理模块.md(页面结构、功能设计、交互流程) - 新增 PRD_计划执行_服务管理模块.md(静态页面开发执行计划) - 新增 HANDOFF_服务管理.md(模块交接文档,记录已完成项与下一步) Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
检测项丰富化移植(阶段五): - 新增 56_fastdfs_check.sh FastDFS功能验证检测(重构版,仅状态检测) - 新增 57_android_check.sh Android设备检测 - 新增 59_log_export_check.sh 配置日志导出检测 - 新增 60_repair_capability_check.sh 修复能力检测 - check_modules.py 注册 4 个新模块,移除 58_data_backup_check - display_names.py 追加 85 个 KEY 映射 - parser.py 追加 7 个状态词映射 巡检防重复触发优化(阶段六): - runner_service.py 新增 get_running_for_target() 查询运行中巡检 - routes.py 新增 /api/service-monitor/run/status/<id> 端点 - routes.py SSE 流接口增加 409 防重检查 - run.html 前端检查运行状态,阻止重复触发 - index.html 巡检按钮增加预检查逻辑 移动端响应式优化(阶段七): - 9 个页面全面优化移动端布局 - base.html: 顶部栏/侧边栏紧凑化,用户名溢出省略 - index.html: 目标卡片/按钮布局优化 - report.html: 报告头纵向排列,状态文字防竖向换行 - reports/schedule/targets: 筛选栏纵向,表格卡片化 - run.html: 巡检卡片紧凑化,取消按钮全宽 - statistics.html: 概览卡片缩小,趋势筛选纵向 验证:218 个单元测试全绿,5.44 full 套件实测通过 Co-Authored-By:Claude <noreply@anthropic.com>
-
- 22 7月, 2026 6 次提交
-
-
由 陈泽健 提交于
检测项丰富化移植全部完成(阶段一至四,共 10 个新模块): - full 套件模块数 30 → 36 - display_names.py 672 条映射 - 218 个单元测试全绿 - 已部署到 5.60 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
新增 2 个检测模块(阶段四): - 54_file_permission_check.sh:文件权限检测(检查关键文件可执行权限) - 55_cron_expected.sh:定时任务预期检测(检查预期crontab条目存在) 配套更新: - check_modules.py 追加 2 个模块注册 - display_names.py 追加 10 个 KEY 映射 文档:PRD_需求文档_P3级移植.md + PRD_计划执行_P3级移植.md Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
新增 4 个检测模块(阶段三): - 50_system_profile.sh:系统类型识别(平台/容器/ujava变体) - 51_service_check.sh:平台服务检测(服务进程+端口监听) - 52_config_ip_check.sh:配置IP检测(未授权IP扫描) - 53_config_console_check.sh:Console配置检测(只检测不修复) 配套更新: - check_modules.py 追加 4 个模块注册 - display_names.py 追加 35 个 KEY 映射 - parser.py 追加 2 个状态词映射 - config.sh.template 追加服务匹配模式+端口列表配置 文档:PRD_需求文档_P2级移植.md + PRD_计划执行_P2级移植.md + HANDOFF更新 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
新增第 6 节「Git 提交记录」,记录: - c0200115: 新增安全合规/中间件检测模块并修复状态等级误判 - 3f48af4c: 报告免登访问 + 监测统计模块 + 多项修复 包含完整 commit message 和分支状态说明 Co-Authored-By:
Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
检测项丰富化移植(阶段二): - 新增 39_middleware_conn.sh 中间件连接检测(Redis/MySQL/EMQX/FastDFS) - 新增 46_security_deep.sh 安全合规深度检测(9类:弱密码/基线/可疑文件等) - check_modules.py 注册 2 个新模块 - display_names.py 追加 36 个 KEY 映射 - thresholds.py 追加 6 个安全阈值 - config.sh.template 追加安全白名单 + EMQX 端口配置 状态等级误判修复: - 39/46 脚本 LEVEL KEY 对齐为 <值KEY>_LEVEL 格式(与 _resolve_status 约定一致) - 23_mysql_depth / 25_redis_depth 重构为 output_result 格式 - parser.py _VALUE_STATUS_MAP 补充 11 个异常状态词映射(兜底) 中间件端口检测逻辑重构: - 改用服务自带工具 ping 优先(redis-cli/mysqladmin/curl API) - 避免容器内无 ss/netstat 导致误判"端口未监听" 服务管理模块(附带): - routes/service_manage.py 新增授权/升级/信息页面路由 - templates/service_manage/ 新增 4 个模板 文档:更新 HANDOFF_服务监测.md 记录修复全过程 + 检测项丰富化 PRD Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 报告免登访问:通知链接携带 token,免登录直接查看报告 - 操作鉴权:访客模式下点击其他模块跳转登录 - 监测统计模块:新增统计页面,ECharts 可视化图表 - 检测项趋势修复:状态类检测项显示友好提示 - 登录回跳:next 参数支持登录后回到原始页面 - 新增 8 个 PRD 文档:需求/计划执行/问题处理 Co-Authored-By:Claude <noreply@anthropic.com>
-
- 21 7月, 2026 16 次提交
-
-
由 陈泽健 提交于
- 更新 HANDOFF.md 记录本轮所有改动(钉钉通知优化、toggle 修复、时区问题、FLASK_DEBUG 修复) - 新增 Toggle 开关样式优化需求文档和计划执行文档 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
增大尺寸(52x28)、加深禁用色(#d1d5db)、添加边框、 圆点阴影、hover 外发光,提升视觉对比度和可点击暗示。 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
变更:移除 onpaste 限制,保留 oncopy/oncut 限制。 用户可以粘贴密钥,但无法从输入框复制出来。 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
toggle-slider 的 pointer-events 默认为 auto,遮挡了 label 的点击传递。修复: - slider 和 slider:before 加 pointer-events: none - toggle-switch 加 cursor: pointer - input 加 position: absolute 点击现在穿透 slider 到达 label,再由 label 传递到内部 checkbox input,toggle 正常工作。 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 配置字段 webhook -> webhook_url,兼容旧字段加载 - 通知格式改为 Markdown,重点展示异常项详情 - 严重项最多 5 项,警告项最多 3 项 - 格式:模块:指标名 = 值(阈值:xxx) - 报告链接可点击跳转 - secret 输入框安全控制:禁止粘贴/复制/右键 - 测试消息同步改为 Markdown 格式 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
_now() 和 _run_job_body 中的 datetime.now() 改为 datetime.now(SHANGHAI_TZ),确保 last_run_at / created_at 等字段显示北京时间而非服务器 UTC 时间。 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
根因:5.60 服务器系统时区为 UTC,CronTrigger.from_crontab() 默认使用本地时区解析 cron,导致用户配的'每天 18:15'实际 在 UTC 18:15(北京时间凌晨 02:15)才触发。 修复: - schedule_service.py 新增 SHANGHAI_TZ 常量 - _add_job() 的 CronTrigger 显式指定 Asia/Shanghai 时区 - _calc_next_run() 用北京时间作为基准计算下次执行 - start_date/end_date 用 SHANGHAI_TZ.localize() 转换 - 三处依赖同步声明 pytz(requirements / skill/requirements / upload_to_server) 验证:_calc_next_run('30 18 * * *') 返回北京时间 18:30; 5.60 next_run_at 现显示北京时间;51 用例全绿。 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
根因:schedule_service.py:383 的 FLASK_DEBUG 默认值为 '1', 而 server.py:151 的默认值为 '0'。systemd 启动时未设 FLASK_DEBUG 环境变量,导致 init_scheduler() 判定为 debug 模式 + 非 reloader 父进程,直接 return 不初始化 APScheduler —— 定时任务永远不执行。 修复:默认值改为 '0',与 server.py 保持一致。 systemd 服务文件也补充 Environment=FLASK_DEBUG=0 双保险。 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- schedule.html: 表格新增「上次执行」列(时间+成功/失败/运行中徽章+报告链接) - schedule.html: 操作列新增「执行」按钮,点击后后台线程执行、3秒轮询自动刷新 - schedule_service.py: 抽 _run_job_body 共享执行体、新增 run_now() 手动触发 - schedule_service.py: create_schedule 初始化 current_status:idle - schedule_service.py: 异常路径 last_run_status 与 current_status 统一为 error - routes.py: page_schedule 注入 run_badge/run_label;新增 POST .../schedules/<id>/run - 响应式适配:平板端隐藏套件/上次执行/下次执行列 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
修复: - server.py FLASK_DEBUG 默认值改为 0(避免 reloader 导致 APScheduler 失效) - schedule_service init_scheduler 增加 WERKZEUG_RUN_MAIN reloader 防护 - health 接口增加 scheduler 状态字段便于诊断 - requirements.txt 补充 apscheduler + croniter 依赖声明 - upload_to_server.py 启动命令加 FLASK_DEBUG=0 新增: - 巡检报告批量删除(checkbox + batch API) - 定时任务编辑保存成功提示 - PRD 问题处理与计划执行文档 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 左侧菜单新增「通知配置」(仅管理员可见) - 新增 notification_service.py:三种渠道配置/测试发送/巡检后通知 - 新增 notification.html:配置卡片 + 触发条件 + 测试按钮 - runner_service.py:run_inspection_sync 完成后调用通知服务 - 敏感字段用 Fernet 加密存储 - 新增 PRD 文档 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 删除 Cron 表达式输入,改为重复周期单选组(每天/工作日/每周) - 新增时:分下拉选择器 + 星期多选按钮组 - 新增生效日期/失效日期选择器 - 列表显示自然语言描述(如'工作日 09:30')替代 Cron 表达式 - 后端新增 _build_cron/_describe_schedule 自动转换 - 数据模型新增 repeat_mode/hour/minute/weekdays/start_date/end_date 字段 - 新增 PRD 文档 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 新增 schedule_service.py:定时任务 CRUD + APScheduler BackgroundScheduler 集成 - 支持 cron 表达式校验(croniter)+ 下次执行时间计算 - 新增 runner_service.run_inspection_sync() 同步执行函数 - 新增 schedule.html 定时任务管理页:表格展示 + 新增/编辑弹窗 + Cron 预设 - 新增 API 路由:schedules CRUD + toggle 启停 - server.py 初始化 APScheduler - upload_to_server.py 增加 apscheduler 依赖 - PRD 需求文档 + 计划执行文档 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- 新增 base.html 共享基础模板:左侧固定侧边栏 + 顶部条 + 内容区 - 侧边栏 4 个菜单项:监测目标/巡检报告/定时任务/目标管理 - 移动端 768px 以下汉堡菜单滑出 - index.html 继承 base.html,只保留目标卡片 - 新增 reports.html 巡检报告独立页,支持按目标筛选 - targets.html / run.html / report.html 继承 base.html - routes.py 新增 page_reports 路由,所有路由增加 active_menu 参数 Co-Authored-By:Claude <noreply@anthropic.com>
-
- 20 7月, 2026 7 次提交
-
-
由 陈泽健 提交于
- PRD_问题处理_SSH连接测试失败.md: SSH 连接问题分析与处理记录 - PRD_计划执行_SSH连接测试失败修复.md: SSH 修复执行计划 - PRD_问题处理_检测项折叠展示.md: 报告折叠展示问题处理记录 - PRD_计划执行_检测项折叠展示修复.md: 折叠展示修复执行计划 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- report.html: 模块默认折叠,仅异常模块自动展开;进程列表表格化展示;长值截断可展开 - 21_docker_deep.sh: 容器进程检测从硬编码 4 个改为遍历所有已配置容器 - check_modules.py: 模块清单 17→30 - display_names.py: 新增 ~250 个检测 KEY 中文显示名 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- P1 核心服务: EMQX 基础/深度、Java 应用检测(含进程列表)、Nginx 深度 - P2 辅助服务: Python 应用检测(含进程列表)、Nginx/Nacos 基础、Nacos 深度、应用日志分析 - P3 系统深度: 综合诊断、安全合规、系统日志、时间同步 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- parser.py: 新增 _INVALID_VALUES 过滤 N/A、无法获取、未知等无效值 - 01_system_basic.sh: 修复 check_command 函数不存在,改用 command -v - 02_cpu_check.sh: 修复 SCHEDULER_RUNQUEUE 取值逻辑,适配新版内核 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
系统检测(5 个): - 05_oom_check: OOM 和内核异常检测 - 06_process_check: 进程检测 - 07_network_check: 网络检测 - 11_scheduled_tasks: 计划任务检测 - 12_port_check: 端口检测 服务深度检测(3 个): - 21_docker_deep: Docker 深度检测 - 23_mysql_depth: MySQL 深度检测 - 25_redis_depth: Redis 深度检测 业务容器监测(2 个): - 37_ustorage_check: UStorage 容器监测 - 38_utracker_check: UTracker 容器监测 - check_modules.py: ALL_MODULES 从 7→17 个 - display_names.py: 新增 ~150 个 KEY 中文显示名 - config.sh.template: 新增 ustorge/utracker 容器匹配模式 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- executor.py: 新增 SSHConnectionError/DependencyError 异常类,classify_ssh_error() 返回 6 种错误码 - target_service.py: test_connection() 返回 detail + error_code 字段 - routes.py: API 返回完整错误结果 - targets.html: 显示详细错误信息,鼠标悬停查看详情 - upload_to_server.py: 新增 _check_and_install_deps() 自动检查 paramiko/cryptography - upload_to_server.py: 新增 _sftp_put_unix_lines() 自动转换 .sh/.template 换行符 Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
- 17 7月, 2026 2 次提交
-
-
由 陈泽健 提交于
Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
- trouble_handoff.md:问题排查助手模块交接(离线 Q&A 模式 + 容器化落地,含关键设计决策/坑点/隔离边界/T6-T7 待办) - Docs/需求文档/服务监测/monitor_handoff.md:服务监测模块交接 Co-Authored-By:Claude <noreply@anthropic.com>
-
- 16 7月, 2026 2 次提交
-
-
由 陈泽健 提交于
新增 service_monitor/ 自包含子包(与问题排查助手代码物理隔离): - routes/services/utils 三层 + 7 个 bash 检测模块(system 01-04 + docker/mysql/redis basic) - 本机 subprocess / 远程 paramiko SSH 双模式执行器 - SSE 实时进度 + 取消 + 报告异常置顶分模块折叠 + MD/JSON 导出 - Fernet 加密 SSH 凭据,容器名模糊匹配,快速/全量两套件 - 角色控制:普通用户仅查看,管理员可操作 - 4 个前端模板(index/targets/run/report),移动端适配 - 55 个私有测试,全套 218 绿,未破坏现有测试 配套变更: - deploy/upload_to_server.py: 新增递归目录上传(service_monitor 多层子目录) - requirements.txt: +paramiko +cryptography - pytest.ini: testpaths 追加 web/service_monitor/tests - .gitignore: 忽略运行时数据(targets.json/reports) - CLAUDE.md: 更新项目结构说明 文档:Docs/需求文档/服务监测/(PRD + 计划执行 + HANDOFF)+ 项目根 HANDOFF.md Co-Authored-By:Claude <noreply@anthropic.com>
-
由 陈泽健 提交于
离线模式:OFFLINE_MODE 环境变量控制,跳过 Claude API 直接返回 TF-IDF 匹配结果 容器化:Dockerfile + docker-compose.yml + requirements.txt + .dockerignore 同进程依赖:补 cryptography/paramiko(service_monitor 子包依赖,PRD §4.6) 详细变更: - utils/offline_config.py:离线开关读取(env OFFLINE_MODE → bool,进程级缓存) - services/ai_service.py:新增 build_offline_response(),兼容原始/格式化两种输入 - routes/troubleshoot.py:troubleshoot/analyze/analyze_stream/health 四处离线分支 - 离线流式保留 SSE 协议,单帧推送后 close(前端无需改动) - 离线跳过缓存读写(<1s 无需缓存) - health 响应新增 offline_mode 字段 - tests/test_offline_mode.py:22 用例全绿(离线配置/响应构建/路由/回归) - Dockerfile:python:3.10-slim,gunicorn 多 worker,WORKDIR /app/web - docker-compose.yml:restart always,records/users/config 只读挂载,logs 持久化 - .dockerignore:排除 搜索向量.json(强制 TF-IDF),排除测试/缓存/临时文件 - requirements.txt:flask/gunicorn/scikit-learn/scipy/numpy/jieba/werkzeug/requests + cryptography/paramiko(同进程 service_monitor 硬依赖) - .env.example:补 OFFLINE_MODE 说明 - PRD v2.2 + 计划执行文档(增加 §4.6 同进程依赖耦合说明 + T8 任务) 测试:新增 22 用例全绿,回归 218 全绿(问题排查助手 167 + service_monitor 51) 隔离:未改 service_monitor / service_manage 代码,仅补其依赖到 requirements Co-Authored-By:Claude <noreply@anthropic.com>
-