Yu Yon
|
15fe2093c2
|
fix: Dockerfile添加curl支持健康检查
|
2026-01-08 17:59:14 +08:00 |
|
|
|
30b6e3144b
|
fix: database.py 添加缺失的 kdocs_row_start/row_end 参数
修复保存金山文档配置时报 500 错误的问题
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-08 01:03:19 +08:00 |
|
|
|
da71b0ac5e
|
docs: 修正 README 中截图引擎描述
- 截图使用 wkhtmltoimage(不是 Playwright)
- Playwright 仅用于金山文档表格操作
- 修正技术栈、项目结构、更新日志相关描述
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-08 01:00:08 +08:00 |
|
|
|
3c6799ce53
|
docs: 更新 README 文档至 v2.0
- 更新项目简介,添加新功能描述
- 更新技术栈(Vue 3, Playwright, Element Plus)
- 更新项目结构,添加新模块说明
- 添加更新日志章节,记录 v2.0 主要变更:
- 金山文档集成
- Vue 3 SPA 前端
- 用户自定义定时任务
- 安全防护系统
- 邮件通知系统
- 公告/反馈系统
- 截图引擎升级等
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-08 00:58:16 +08:00 |
|
|
|
a3060e4cd9
|
feat: Vue SPA 添加 KDocs 在线状态显示 + 清理废弃模板
功能更新:
- AccountsPage.vue: 工具栏显示 KDocs 在线状态(就绪/离线)
- settings.js: 添加 fetchKdocsStatus API 函数
- 每60秒自动刷新状态
代码清理:
- 删除废弃的 legacy 模板文件(约170KB)
- templates/index.html
- templates/login.html
- templates/register.html
- templates/reset_password.html
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-08 00:31:42 +08:00 |
|
|
|
be9ec5e9a2
|
feat: 用户端显示金山文档在线状态
- 新增 /api/kdocs/status 接口(用户端简化版)
- 工具栏显示"表格上传: ✅ 就绪"或"⚠️ 离线"
- 页面加载时获取状态,每60秒自动刷新
- 系统未启用时不显示
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-07 23:56:16 +08:00 |
|
|
|
b0fe325154
|
feat: KDocs 上传增强 + 离线监控 + Bug修复
KDocs 上传功能增强:
- 搜索优化:只用姓名搜索 + C列验证,避免匹配到错误单元格
- 有效行范围:支持配置起始行/结束行,限制上传区域
- 图片覆盖:支持覆盖单元格已有图片(Escape + Delete)
- 配置持久化:kdocs_row_start/row_end 保存到数据库(v18迁移)
二次登录功能:
- 登录后立即再次登录,让"上次登录时间"显示为刚刚
KDocs 离线监控:
- 每5分钟检测金山文档登录状态
- 离线时发送邮件通知管理员(每次掉线只通知一次)
- 恢复在线后重置通知状态
Bug 修复:
- 任务日志搜索账号关键词报错500:添加异常处理
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-01-07 23:40:46 +08:00 |
|
|
|
13544867aa
|
Fix clipboard permissions for KDocs
|
2026-01-07 17:46:28 +08:00 |
|
|
|
5fd13fa152
|
Read KDocs cells via clipboard
|
2026-01-07 17:40:29 +08:00 |
|
|
|
a36fa3370b
|
Show KDocs upload status
|
2026-01-07 17:31:50 +08:00 |
|
|
|
2ec0c7cb58
|
Speed up KDocs QR retrieval
|
2026-01-07 17:15:46 +08:00 |
|
|
|
3841358bc2
|
Add KDocs action feedback
|
2026-01-07 17:03:03 +08:00 |
|
|
|
6bd00021b8
|
Fix KDocs login detection
|
2026-01-07 16:53:44 +08:00 |
|
|
|
f2652af8fb
|
Fix kdocs upload status restore
|
2026-01-07 15:16:04 +08:00 |
|
|
|
950af0efda
|
Improve KDocs search matching
|
2026-01-07 15:03:51 +08:00 |
|
|
|
45cbdc51b4
|
Show upload status and log KDocs skips
|
2026-01-07 14:28:58 +08:00 |
|
|
|
703a62b6ad
|
Increase KDocs QR timeout
|
2026-01-07 14:17:01 +08:00 |
|
|
|
ad847888f8
|
Avoid live KDocs status on page load
|
2026-01-07 14:12:54 +08:00 |
|
|
|
8c150dcb7c
|
Auto poll KDocs login status
|
2026-01-07 14:04:09 +08:00 |
|
|
|
ec90404194
|
Validate and log QR capture
|
2026-01-07 13:56:16 +08:00 |
|
|
|
6af8f46129
|
Log and save KDocs QR screenshot
|
2026-01-07 13:49:37 +08:00 |
|
|
|
19f083df7b
|
Auto click KDocs login and confirm
|
2026-01-07 13:44:15 +08:00 |
|
|
|
a04cbfa55f
|
Broaden KDocs login click and modal capture
|
2026-01-07 13:33:26 +08:00 |
|
|
|
b78bc7935f
|
Trigger KDocs WeChat login flow
|
2026-01-07 13:26:31 +08:00 |
|
|
|
d8897f893a
|
Expand KDocs QR detection
|
2026-01-07 13:21:19 +08:00 |
|
|
|
95d7cbc825
|
Improve KDocs QR capture
|
2026-01-07 13:14:02 +08:00 |
|
|
|
6b416dc5f1
|
Force KDocs QR fetch and improve login detection
|
2026-01-07 13:07:57 +08:00 |
|
|
|
28e86b1147
|
Fix kdocs login status detection
|
2026-01-07 12:57:03 +08:00 |
|
|
|
1e216ea356
|
Fix kdocs runtime logger call
|
2026-01-07 12:49:54 +08:00 |
|
|
|
3bae759afc
|
Integrate KDocs auto-upload
|
2026-01-07 12:32:41 +08:00 |
|
|
|
5137addacc
|
Optimize scheduler status lookups
|
2026-01-06 15:58:23 +08:00 |
|
|
|
4c492122dd
|
feat: support announcement image upload
# Conflicts:
# database.py
# db/migrations.py
# routes/admin_api/core.py
# static/admin/.vite/manifest.json
# static/admin/assets/AnnouncementsPage-Btl9JP7M.js
# static/admin/assets/EmailPage-CwqlBGU2.js
# static/admin/assets/FeedbacksPage-B_qDNL3q.js
# static/admin/assets/LogsPage-DzdymdrQ.js
# static/admin/assets/ReportPage-Bp26gOA-.js
# static/admin/assets/SettingsPage-__r25pN8.js
# static/admin/assets/SystemPage-C1OfxrU-.js
# static/admin/assets/UsersPage-DhnABKcY.js
# static/admin/assets/email-By53DCWv.js
# static/admin/assets/email-ByiJ74rd.js
# static/admin/assets/email-DkWacopQ.js
# static/admin/assets/index-D5wU2pVd.js
# static/admin/assets/tasks-1acmkoIX.js
# static/admin/assets/update-DdQLVpC3.js
# static/admin/assets/users-B1w166uc.js
# static/admin/assets/users-CPJP5r-B.js
# static/admin/assets/users-CnIyvFWm.js
# static/admin/index.html
# static/app/.vite/manifest.json
# static/app/assets/AccountsPage-C48gJL8c.js
# static/app/assets/AccountsPage-D387XNsv.js
# static/app/assets/AccountsPage-DBJCAsJz.js
# static/app/assets/LoginPage-BgK_Vl6X.js
# static/app/assets/RegisterPage-CwADxWfe.js
# static/app/assets/ResetPasswordPage-CVfZX_5z.js
# static/app/assets/SchedulesPage-CWuZpJ5h.js
# static/app/assets/SchedulesPage-Dw-mXbG5.js
# static/app/assets/SchedulesPage-DwzGOBuc.js
# static/app/assets/ScreenshotsPage-C6vX2U3V.js
# static/app/assets/ScreenshotsPage-CreOSjVc.js
# static/app/assets/ScreenshotsPage-DuTeRzLR.js
# static/app/assets/VerifyResultPage-BzGlCgtE.js
# static/app/assets/VerifyResultPage-CN_nr4V6.js
# static/app/assets/VerifyResultPage-CNbQc83z.js
# static/app/assets/accounts-BFaVMUve.js
# static/app/assets/accounts-BYq3lLev.js
# static/app/assets/accounts-Bc9j2moH.js
# static/app/assets/auth-Dk_ApO4B.js
# static/app/assets/index-BIng7uZJ.css
# static/app/assets/index-CDxVo_1Z.js
# static/app/index.html
|
2026-01-06 12:15:16 +08:00 |
|
|
|
82acc3470f
|
Ensure menu expanded in screenshots
|
2025-12-31 21:28:28 +08:00 |
|
|
|
2e44afde30
|
Capture full-page wkhtmltoimage shots
|
2025-12-31 20:50:02 +08:00 |
|
|
|
28f4e807a9
|
Fix wkhtmltoimage viewport crop
|
2025-12-31 20:23:31 +08:00 |
|
|
|
3b04f04a31
|
feat: 全屏截图改用管理后台框架
|
2025-12-31 20:12:39 +08:00 |
|
|
|
ea1c7e8a00
|
feat: wkhtmltoimage支持自定义高度
|
2025-12-31 20:05:39 +08:00 |
|
|
|
d269a99d3c
|
fix: wkhtmltoimage使用安全cookie
|
2025-12-31 19:41:34 +08:00 |
|
|
|
7c3d0a0947
|
fix: wkhtmltoimage兼容UA参数
|
2025-12-31 19:13:20 +08:00 |
|
|
|
7cf39f80bc
|
fix: 兼容旧浏览器后台与截图开关
|
2025-12-31 19:04:42 +08:00 |
|
|
|
d108f3b51d
|
bust spa asset cache by build id
|
2025-12-31 18:22:03 +08:00 |
|
|
|
41ead4bead
|
replace screenshot pipeline and update admin
|
2025-12-31 16:50:35 +08:00 |
|
|
|
2d98ab66a3
|
fix: 修复公告关闭功能 - 当次关闭与永久关闭区分
问题:不管选择"当次关闭"还是"永久关闭",都会永久关闭公告
修复:
- 当次关闭:使用 sessionStorage + pageToken
- pageToken 基于 performance.timeOrigin 生成
- 刷新页面后 token 变化,公告重新显示
- 永久关闭:使用 localStorage
- 持久化存储,刷新/重开后不再显示
修改文件:
- app-frontend/src/layouts/AppLayout.vue
- templates/index.html
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-27 21:51:28 +08:00 |
|
|
|
70e09c83a8
|
fix: 修复浏览器池任务丢失和统计错误 bug
问题:
1. 当浏览器创建失败时,failed_tasks 增加但 total_tasks 不增加
导致统计显示 "0/5" 这种不合理数据
2. 浏览器创建失败时任务直接丢失,没有重新分配给其他 Worker
修复:
- 添加本地浏览器创建重试(最多2次)
- 失败任务根据 retry_count 决定是否重新入队
- retry_count < 1 时重新入队让其他 Worker 处理
- retry_count >= 1 时才真正失败并计入统计
- 任务字典新增 retry_count 字段初始化为 0
- 添加回归测试用例
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-27 21:26:56 +08:00 |
|
|
|
01ffaf96a3
|
fix: CPU显示修复 + 报表面板添加浏览器池状态
1. CPU 显示修复:
- routes/admin_api/core.py: 新增 _get_server_cpu_percent()
- 首次调用使用 interval=0.1 避免返回 0.0
- 后续调用使用缓存,TTL 1秒
2. 报表面板浏览器池状态:
- admin-frontend/src/api/browser_pool.js: 新增 API 调用
- ReportPage.vue: 添加浏览器池状态卡片
- 显示总/活跃/空闲 Worker 数和队列等待数
- Worker 表格带状态颜色标签(活跃/空闲/异常)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-27 20:15:48 +08:00 |
|
|
|
1b20478a08
|
feat: 风险分定时衰减 + 密码提示修复 + 浏览器池API + next回跳
1. 风险分衰减定时任务:
- services/scheduler.py: 每天 CST 04:00 自动执行 decay_scores()
- 支持 RISK_SCORE_DECAY_TIME_CST 环境变量覆盖
2. 密码长度提示统一为8位:
- app-frontend/src/pages/RegisterPage.vue
- app-frontend/src/layouts/AppLayout.vue
- admin-frontend/src/pages/SettingsPage.vue
- templates/register.html
3. 浏览器池统计API:
- GET /yuyx/api/browser_pool/stats
- 返回 worker 状态、队列等待数等信息
- browser_pool_worker.py: 增强 get_stats() 方法
4. 登录后支持 next 参数回跳:
- app-frontend/src/pages/LoginPage.vue: 检查 ?next= 参数
- 仅允许站内路径(防止开放重定向)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-27 18:28:21 +08:00 |
|
|
|
3d9dba272e
|
refactor: 删除版本更新功能 + 报表页自动刷新
删除版本与更新功能:
- routes/admin_api/update.py: 删除整个文件
- routes/admin_api/__init__.py: 移除 update 模块注册
- admin-frontend/src/pages/SystemPage.vue: 移除版本更新UI区块
- admin-frontend/src/api/update.js: 删除整个文件
- 删除 static/admin/assets/update-*.js
报表页自动刷新:
- admin-frontend/src/pages/ReportPage.vue: 添加 setInterval 每1秒刷新
- 在 onMounted 启动定时器,onUnmounted 清除
- 覆盖统计数据、运行中任务、系统信息等所有动态数据
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-27 12:41:26 +08:00 |
|
|
|
89f3fd9759
|
feat: 安全增强 + 删除密码重置申请功能 + 登录提醒开关
安全增强:
- 新增 SSRF、XXE、模板注入、敏感路径探测检测规则
- security/constants.py: 添加新的威胁类型和检测模式
- security/threat_detector.py: 实现新检测逻辑
删除密码重置申请功能:
- 移除 /api/password_resets 相关API
- 删除 password_reset_requests 数据库表
- 前端移除密码重置申请页面和菜单
- 用户只能通过邮��找回密码,未绑定邮箱需联系管理员
登录提醒全局开关:
- email_service.py: 添加 login_alert_enabled 字段
- routes/api_auth.py: 检查开关状态再发送登录提醒
- EmailPage.vue: 添加新设备登录提醒开关
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-27 12:08:36 +08:00 |
|
|
|
4ba933b001
|
feat: 添加安全仪表板前端页面
- 新增 SecurityPage.vue: 统计卡片、威胁事件表格、封禁管理、风险查询
- 新增 api/security.js: 安全相关API封装
- 路由添加 /security 页面
- 侧边栏添加"安全防护"菜单项
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-27 01:56:22 +08:00 |
|
|
|
759d99e8af
|
fix: add security module to Dockerfile
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-27 01:31:51 +08:00 |
|