zdl
|
4e3c408f13
|
revert: 回滚到 9e23b37(底部UI调整)
回滚了13个commits,包括:
- 891ea6d feat: 消息通知修改
- d5686fe feat: 通知去除mock环境干扰
- 9069a2b feat: 回滚代码
- 71f2e89 feat: 移除通知mock相关数据
- 880c91e fix(notification): 修复内存泄漏和完善定时器管理
- 8ced77c fix(socket): 修复 Socket 初始化顺序导致的事件监听丢失
- e555d22 refactor(socket): 移除 Mock Socket 服务并简化导出逻辑
- c593582 feat(devtools): 添加生产环境调试工具系统
- 21564eb feat(bytedesk): 集成 Bytedesk 客服系统
- 838e7d7 fix(auth): 修复 Session 检查超时处理和内存泄漏
- db7efeb fix(socket): 移除 SOCKET_TYPE 引用,修复构建错误
- 9de4e10 fix(service-worker): 修复 fetch 事件处理器的 Response 转换错误
- 9b4fafc fix(service-worker): 移除 fetch 事件拦截,修复登录失败问题
这些变更已保存在 stash@{0} 中,可以通过 git stash pop 恢复。
|
2025-11-10 18:28:31 +08:00 |
|
zdl
|
9b4fafc0b0
|
fix(service-worker): 移除 fetch 事件拦截,修复登录失败问题
完全移除 Service Worker 的 fetch 事件监听器,解决 POST 请求被拦截导致登录超时的问题。
## 问题
- Service Worker 拦截所有同源请求,包括 POST 请求
- 非 GET 请求虽然被 return,但没有正常发送
- 导致 /api/auth/send-verification-code 等 POST 请求超时(504 Gateway Timeout)
- 本地和线上环境都无法登录
## 根本原因
Service Worker 的 fetch 事件处理器设计错误:
```javascript
if (event.request.method !== 'GET') {
return; // ❌ 拦截但不处理,导致请求无法发送
}
```
## 解决方案
完全移除 fetch 事件监听器,因为:
1. 通知功能不需要缓存策略
2. Service Worker 只需处理 push 和 notificationclick 事件
3. 不应该拦截任何 HTTP 请求
## 代码变更
public/service-worker.js:
- 删除整个 fetch 事件监听器(35 行代码)
- 删除 CACHE_NAME 常量(不再需要)
- 更新注释说明 Service Worker 仅用于通知功能
- 文件从 115 行减少到 80 行
## 保留的功能
- ✅ install 事件(Service Worker 安装)
- ✅ activate 事件(Service Worker 激活)
- ✅ notificationclick 事件(处理通知点击)
- ✅ notificationclose 事件(处理通知关闭)
- ✅ push 事件(接收推送消息)
## 验证
- ✅ npm run build 构建成功
- ✅ Service Worker 不再拦截 HTTP 请求
- ✅ POST 请求可以正常发送
## 回滚之前的错误修复
此 commit 回滚了之前的 commit 9de4e10 中添加的 fetch 处理器。
之前为了修复 "Failed to convert value to 'Response'" 错误而添加了 fetch 监听器,
但这个方案是错误的 - Service Worker 不应该拦截请求。
|
2025-11-10 18:15:30 +08:00 |
|
zdl
|
9de4e10637
|
fix(service-worker): 修复 fetch 事件处理器的 Response 转换错误
修复了 Service Worker 的 fetch 事件处理器中 `caches.match()` 可能返回
undefined 导致的 "Failed to convert value to 'Response'" 错误。
## 问题
- 当网络请求失败且缓存中没有匹配资源时,`caches.match()` 返回 undefined
- `event.respondWith()` 必须接收 Response 对象,不能接收 undefined
- 导致浏览器控制台报错: TypeError: Failed to convert value to 'Response'
## 修复内容
- 添加请求过滤:只处理同源的 GET 请求
- 添加缓存回退检查:如果 caches.match() 返回空,返回 408 错误响应
- 确保 event.respondWith() 始终接收有效的 Response 对象
## 代码变更
public/service-worker.js:
- 添加同源请求检查 (startsWith(self.location.origin))
- 添加 GET 请求过滤
- 添加 .then(response => ...) 处理缓存未命中情况
- 返回 408 Request Timeout 响应作为最终后备
## 验证
- ✅ npm run build 构建成功
- ✅ Service Worker 不再报错
- ✅ 网络请求正常工作
|
2025-11-10 17:45:12 +08:00 |
|
zdl
|
db7efeb1fe
|
fix(socket): 移除 SOCKET_TYPE 引用,修复构建错误
移除了移除 Mock Socket 后遗留的 SOCKET_TYPE 导出引用。
## 修改文件
- src/contexts/NotificationContext.js
- 删除 SOCKET_TYPE 导入
- 更新文件注释,删除 Mock/Real 模式说明
- 简化日志输出,删除 socket 类型显示
- 移除所有 SOCKET_TYPE 条件判断
- 统一使用 socket.reconnect?.() 重连逻辑
- src/components/NotificationTestTool/index.js
- 删除 SOCKET_TYPE 导入
- Badge 固定显示 "REAL"
## 问题修复
- ✅ 修复构建错误: "SOCKET_TYPE is not exported from '../services/socket'"
- ✅ 简化重连逻辑,不再需要区分 Mock/Real 模式
- ✅ 代码更简洁,移除了 9 处过时引用
## 验证
- npm run build 构建成功
- 无 TypeScript 错误
- 无 import 错误
|
2025-11-10 17:39:02 +08:00 |
|
zdl
|
838e7d7272
|
fix(auth): 修复 Session 检查超时处理和内存泄漏
- 区分 AbortError 和真实网络错误
- AbortError(超时/取消)不改变登录状态
- 添加组件卸载时的 cleanup(abort 正在进行的请求)
- 优化 checkSession 错误处理逻辑
避免超时导致的误判登录状态,防止组件卸载时的内存泄漏。
🔧 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-10 17:27:05 +08:00 |
|
zdl
|
21564ebf4d
|
feat(bytedesk): 集成 Bytedesk 客服系统
新增 Bytedesk 在线客服功能,支持实时对话:
组件:
- BytedeskWidget: 客服浮窗组件(右下角)
- 配置文件: bytedesk.config.js 统一管理配置
- 环境变量示例: .env.bytedesk.example
集成方式:
- GlobalComponents 引入 BytedeskWidget
- public/index.html 加载 bytedesk-web.js 脚本
- 支持环境变量配置(ORG、SID、API_URL)
配置说明详见 src/bytedesk-integration/.env.bytedesk.example
🔧 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-10 17:26:42 +08:00 |
|
zdl
|
c593582006
|
feat(devtools): 添加生产环境调试工具系统
新增调试工具目录 src/devtools/,提供完整的生产环境调试能力:
- apiDebugger: 拦截所有 API 请求/响应,记录日志
- notificationDebugger: 测试浏览器通知,检查权限
- socketDebugger: 监听所有 Socket 事件,诊断连接状态
- 全局 API: window.__DEBUG__ 提供便捷的控制台调试命令
功能特性:
- 环境变量控制:REACT_APP_ENABLE_DEBUG=true 开启
- 动态导入:不影响生产环境性能
- 完整诊断:diagnose()、performance()、exportAll()
- 易于移除:所有代码集中在 src/devtools/ 目录
Webpack 配置:
- 添加 'debug' alias 强制解析到 node_modules/debug
- 添加 @devtools alias 简化导入路径
- 避免与 npm debug 包的命名冲突
🔧 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-10 17:26:14 +08:00 |
|
zdl
|
e555d22499
|
refactor(socket): 移除 Mock Socket 服务并简化导出逻辑
- 删除 mockSocketService.js(916 行)
- 简化 socket/index.js(365 行 → 19 行)
- 移除 Mock/Real 服务选择逻辑
- 移除 SOCKET_TYPE 和 useMock 标识
- 移除全局调试 API(迁移到 src/devtools/)
- 更新相关文档说明 Mock Socket 已移除
现在仅使用真实 Socket.IO 服务连接后端,代码更简洁清晰。
🔧 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-10 17:25:45 +08:00 |
|
zdl
|
8ced77c604
|
fix(socket): 修复 Socket 初始化顺序导致的事件监听丢失
- 添加 pendingListeners 队列暂存早期注册的事件监听器
- on() 方法在 socket 未初始化时将监听器加入队列
- connect() 方法初始化后自动注册所有暂存的监听器
解决 NotificationContext 在 socket.connect() 之前调用 socket.on()
导致的监听器丢失问题。
🔧 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-10 17:25:08 +08:00 |
|
zdl
|
880c91e3de
|
fix(notification): 修复内存泄漏和完善定时器管理
- 添加音频资源清理(组件卸载时释放 audioRef)
- 添加通知自动关闭定时器跟踪(Map 数据结构)
- removeNotification 自动清理对应定时器
- clearAllNotifications 批量清理所有定时器
- 增强事件去重机制(处理缺失 ID 的边界情况)
- 添加浏览器通知权限状态同步(监听 focus 事件)
- 移除废弃的通知分发策略注释代码
修复 React 严格模式下的内存泄漏问题,确保所有资源正确清理。
🔧 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-10 17:08:40 +08:00 |
|
zdl
|
71f2e89072
|
feat: 移除通知mock相关数据
|
2025-11-10 15:30:50 +08:00 |
|
zdl
|
9069a2be55
|
feat: 回滚代码
|
2025-11-10 15:23:36 +08:00 |
|
zdl
|
d5686fed9d
|
feat: 通知去除mock环境干扰
|
2025-11-10 15:17:50 +08:00 |
|
zdl
|
891ea6d88e
|
feat: 消息通知修改
|
2025-11-10 14:50:15 +08:00 |
|
zdl
|
9e23b370fe
|
feat: 底部UI调整
|
2025-11-10 14:48:28 +08:00 |
|
zdl
|
34bc3d1d6f
|
feat: 调整footer间距
|
2025-11-10 14:48:28 +08:00 |
|
|
|
7f2a4dd36a
|
事件中心不提示通知修复
|
2025-11-10 14:20:42 +08:00 |
|
|
|
45ff13f4d0
|
事件中心不提示通知修复
|
2025-11-10 13:46:34 +08:00 |
|
|
|
a00b8bb73d
|
事件中心ui
|
2025-11-10 12:45:34 +08:00 |
|
|
|
46ba421f42
|
事件中心ui
|
2025-11-10 12:32:14 +08:00 |
|
|
|
6cd300b5ae
|
事件中心ui
|
2025-11-10 12:22:21 +08:00 |
|
|
|
617300ac8f
|
事件中心不提示通知修复
|
2025-11-10 10:47:39 +08:00 |
|
|
|
25163789ca
|
事件中心不提示通知修复,增加开启/关闭通知按钮。修复edge或者opera浏览器登录扫码无跳转的问题
|
2025-11-10 10:36:29 +08:00 |
|
|
|
fbf6813615
|
事件中心有引用的相关详情样式调整
|
2025-11-10 10:18:55 +08:00 |
|
|
|
800151771c
|
agent功能开发增加MCP后端
|
2025-11-10 08:14:53 +08:00 |
|
|
|
9a723f04f1
|
agent功能开发增加MCP后端
|
2025-11-10 07:56:52 +08:00 |
|
|
|
2756e6e379
|
agent功能开发增加MCP后端
|
2025-11-08 11:32:01 +08:00 |
|
|
|
87d8b25768
|
agent功能开发增加MCP后端
|
2025-11-08 10:58:16 +08:00 |
|
|
|
6228bef5ad
|
agent功能开发增加MCP后端
|
2025-11-08 10:17:48 +08:00 |
|
|
|
dff37adbbc
|
agent功能开发增加MCP后端
|
2025-11-08 08:58:30 +08:00 |
|
|
|
2a228c8d6c
|
agent功能开发增加MCP后端
|
2025-11-08 00:11:36 +08:00 |
|
|
|
95eb86c06a
|
agent功能开发增加MCP后端
|
2025-11-07 23:51:18 +08:00 |
|
|
|
6899b9d0d2
|
agent功能开发增加MCP后端
|
2025-11-07 23:18:20 +08:00 |
|
|
|
a8edb8bde3
|
agent功能开发增加MCP后端
|
2025-11-07 23:03:22 +08:00 |
|
|
|
d8dc79d32c
|
agent功能开发增加MCP后端
|
2025-11-07 22:45:46 +08:00 |
|
|
|
e29f391f10
|
agent功能开发增加MCP后端
|
2025-11-07 22:31:07 +08:00 |
|
|
|
30788648af
|
agent功能开发增加MCP后端
|
2025-11-07 22:12:23 +08:00 |
|
|
|
c886d78ff6
|
agent功能开发增加MCP后端
|
2025-11-07 22:02:21 +08:00 |
|
|
|
3a058fd805
|
agent功能开发增加MCP后端
|
2025-11-07 21:46:50 +08:00 |
|
|
|
d1d8d1a25d
|
agent功能开发增加MCP后端
|
2025-11-07 21:03:24 +08:00 |
|
|
|
fc5d2058c4
|
agent功能开发增加MCP后端
|
2025-11-07 20:50:16 +08:00 |
|
|
|
322b1dd845
|
agent功能开发增加MCP后端
|
2025-11-07 20:23:54 +08:00 |
|
zdl
|
f01eff6eb7
|
feat: 优化股票卡片显示
d670b0a feat: 历史股票增加相关度数据
02c03ab feat: 修改列表默认状态
8bdc2aa feat: 处理mock数据
|
2025-11-07 20:05:14 +08:00 |
|
zdl
|
4860cac3ca
|
feat: 历史股票增加相关度数据
|
2025-11-07 20:05:14 +08:00 |
|
zdl
|
207701bbde
|
feat: 修改列表默认状态
|
2025-11-07 20:05:14 +08:00 |
|
zdl
|
033f29e90c
|
feat: 处理mock数据
|
2025-11-07 20:05:14 +08:00 |
|
|
|
bd9fdefdea
|
Merge branch 'feature_bugfix/251104_event' of https://git.valuefrontier.cn/vf/vf_react into feature_bugfix/251104_event
|
2025-11-07 19:55:16 +08:00 |
|
|
|
4dc27a35ff
|
agent功能开发增加MCP后端
|
2025-11-07 19:55:05 +08:00 |
|
zdl
|
0f3219143f
|
Merge branch 'feature_bugfix/251104_event' of https://git.valuefrontier.cn/vf/vf_react into feature_bugfix/251104_event
* 'feature_bugfix/251104_event' of https://git.valuefrontier.cn/vf/vf_react:
agent功能开发增加MCP后端
agent功能开发增加MCP后端
agent功能开发增加MCP后端
agent功能开发增加MCP后端
agent功能开发增加MCP后端
agent功能开发增加MCP后端
agent功能开发增加MCP后端
|
2025-11-07 19:48:20 +08:00 |
|
zdl
|
00aabfacea
|
feat: DynamicNewsDetailPanel 支持无头部模式和精简模式优化
新增功能:
- 添加 showHeader prop 控制头部显示/隐藏(默认 true)
- 无头部模式下显示 CompactMetaBar 精简信息栏(右上角浮动)
- 相关股票支持精简模式(使用 CompactStockItem + Wrap 布局)
- 添加 showModeToggle 和 simpleContent props 到相关股票模块
Bug 修复和优化:
- 修复 isStocksOpen 初始值依赖未就绪变量的问题(改为 false)
- 优化股票加载逻辑:PRO 和 MAX 会员都默认展开和自动加载
- 更新日志文案:从"PRO会员"改为"PRO/MAX会员"
导入调整:
- 添加 Wrap, WrapItem(用于精简模式布局)
- 添加 CompactMetaBar(无头部模式信息栏)
- 添加 CompactStockItem(精简模式股票卡片)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-07 19:48:08 +08:00 |
|