533 Commits

Author SHA1 Message Date
Neo Vern
197c65d700 Add language setting for Chinese in workflow
Signed-off-by: Neo Vern <22141172+Silentely@users.noreply.github.com>
2026-08-24 19:32:42 +08:00
Abner
c6bf3a0238 🔧 chore: 升级 js-yaml 依赖并优化测试环境的加密随机数生成
- `tests/setup.js` 中 `getRandomValues` 模拟改用 Node.js `crypto.randomBytes` 填充,替代基于 `Math.random` 的不安全随机源,确保测试环境使用 CSPRNG 生成随机值
- 新增 `crypto` 模块导入,移除手动循环填充逻辑,简化代码实现并降低随机数偏差风险
- 将 `js-yaml@3` 补丁版本从 3.15.0 升级至 3.15.1,`js-yaml@4` 从 4.3.0 升级至 4.3.1
- 同步更新 `package-lock.json`,保持依赖锁文件与 `package.json` 声明一致
2026-08-18 18:33:01 +08:00
Abner
c5f5e4602e feat: 添加 Firefox 相关噪音过滤规则
- 在 Sentry 错误过滤列表中新增 `__firefox__` 和 `reader.checkReadability` 字符串匹配规则
- 在正则过滤规则中增加 `/__firefox__/i`、`/reader\.checkReadability/i` 和 `/window\.__firefox__/i` 模式
- 同步更新 `sentry-loader.js` 和 `sentry-init.js` 两处过滤配置,保持行为一致
- 有效减少 Firefox 浏览器扩展注入脚本及阅读模式检查产生的误报错误上报
2026-08-17 20:45:57 +08:00
Abner
7b4617f7ab 🔥 remove: 移除 AI Issue 自动回复工作流并新增垃圾信息检测工作流
- 删除 `.github/workflows/ai-issue-smart-reply.yml`,该文件包含约 1469 行的复杂 AI 分诊逻辑
- 新增 `.github/workflows/nomore-spam.yml`,在 issue 打开和 PR 打开时自动检测并关闭垃圾信息
- 新工作流支持通过仓库 secrets 配置自定义 AI 端点、API 密钥和模型名称
- 新工作流启用文件变更分析,可设置分析深度、标签白名单和用户黑名单
2026-08-10 21:03:21 +08:00
Abner
093310d25e ♻️ refactor: 优化通知与性能监控模块,加固通知消息 XSS 防护
- 通知服务新增页面可见性监听:标签页隐藏时暂停轮询,回到前台后恢复定时,离开期间超过检查周期则立即补查,节省 Netlify Function 配额
- 性能监控改为批量缓冲写入 sessionStorage,达到 1 秒间隔或 20 条上限自动落盘,并在页面隐藏/卸载时冲刷剩余缓冲,避免逐条读写开销
- 通知管理器改用原生 DOM API 构建节点并以 textContent 渲染消息,移除 innerHTML 与 escapeHtml 方法,从结构上杜绝 XSS 注入
- 新增 notification-service、notification-manager、performance-monitor 三组单元测试,覆盖后台暂停恢复、缓冲落盘、XSS 防护与空消息容错等场景
- 合并共享 Toast 样式至 design-system.css 并支持主题色定制,入场动画改为渐进增强,清理废弃请求日志中间件、SW 预缓存路径等冗余代码
2026-08-09 18:33:34 +08:00
Abner
f119a0cc4f 🐛 fix(simyo): 移除 X-Device-ID 生成中的 Math.random 不安全回退 2026-08-06 14:50:57 +08:00
Abner
c29c5d92c0 🧹 chore(ci): 移除持续超时挂起的 Codacy 安全扫描工作流 2026-08-06 14:45:07 +08:00
dependabot[bot]
84f8857bec build(deps-dev): bump fast-uri from 3.1.4 to 3.1.5 (#102)
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.4 to 3.1.5.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.4...v3.1.5)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-06 14:40:19 +08:00
dependabot[bot]
8487eb3d56 build(deps): bump undici from 7.28.0 to 7.29.0 (#101)
Bumps [undici](https://github.com/nodejs/undici) from 7.28.0 to 7.29.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v7.28.0...v7.29.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 7.29.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-06 14:40:14 +08:00
Abner
c754dca22f 📝 docs(readme): README 增加 GitHub FAQ Issue #88 链接 2026-08-06 14:26:06 +08:00
Abner
dfa5ea2801 Merge remote-tracking branch 'origin/main' 2026-08-02 20:34:23 +08:00
Abner
6337ebc7c5 🐛 fix: 修复扩展错误信息截断导致 DOM 操作异常的问题
- 在 sentry-init.js 和 sentry-loader.js 中新增 safeTruncate 函数,按 Unicode 码点安全截断字符串,避免 substring 截断代理对产生孤立代理项
- 将原有的 substring(0, 160) 和 substring(0, 240) 调用替换为 safeTruncate,统一处理消息、文件名及序列化内容的截断逻辑
- 修复截断后可能引发的 "Failed to execute 'appendChild' on 'Node': Invalid or unexpected token" 异常
- 对 null/undefined 值保持返回空字符串的兼容行为,确保逻辑一致性
2026-08-02 20:34:06 +08:00
Neo Vern
b41294b5d7 Merge pull request #100 from Silentely/dependabot/npm_and_yarn/postcss-8.5.25
build(deps-dev): bump postcss from 8.5.10 to 8.5.25
2026-08-01 08:48:04 +08:00
dependabot[bot]
8cb84ef0ef build(deps-dev): bump postcss from 8.5.10 to 8.5.25
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.10 to 8.5.25.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.10...8.5.25)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.25
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-31 20:35:22 +00:00
Abner
5f18282fb8 🔧 chore: 添加EvoMap/Evolver相关忽略规则
- 将EvoMap/Evolver工具生成的目录和文件加入忽略列表,避免意外提交
- 忽略.evomer/目录及其锁文件,防止开发环境配置被提交
- 忽略memory/和assets/gep/目录,避免模型数据进入版本库
- 忽略设备标识和环境配置文件,保护敏感信息
- 忽略编码轨迹日志文件,保持仓库整洁
2026-07-26 16:28:09 +08:00
Abner
adbd86666e feat: 为 Simyo 增加工具使用提示,统一 Giffgaff 提示文本
- 在 Simyo 页面新增“本工具仅支持已有 Simyo 号码的用户”提示框,支持中英文显示
- 为 Simyo 提示框添加渐变背景、橙色边框等样式,提升视觉一致性
- 移除 Giffgaff 提示框中文和英文文本末尾的句号,保持与 Simyo 提示风格统一
- 统一两款工具的新用户提示文案结构,增强维护性
2026-07-22 21:16:34 +08:00
Abner
49be510892 feat(simyo): 支持登录 MFA 双路径并统一会话守卫
新用户默认 MFA 时经 v2 verifyOTP 换正式会话;老用户未开启 MFA 时跳过步骤 2。
补齐 v2 代理、5 步 UI、i18n 与单元测试,抽取 requireSessionToken 避免业务接口遗漏守卫。
2026-07-22 21:12:59 +08:00
Abner
f41b21ab02 📝 docs: 规范 Simyo 测试注释表述
统一测试文件中的客户端身份与请求头相关描述。
2026-07-22 19:26:13 +08:00
Abner
4c8ab4b916 📝 docs: 规范 Simyo 客户端与接口注释表述
将注释与测试描述改为中性技术说明,仅保留接口路径与配置语义。
2026-07-22 19:26:13 +08:00
Abner
0a70ce47cb feat(simyo): 完善 eSIM 更换流程(仅 EMAIL)
- 修 handleApiResponse:登录/查询体无 result.success 时正确判定成功
- 设备更换:先 GET settings/simcard,再 POST EMAIL 申请;等待验证码时跳过重复下单
- 登录识别 mfaStatus,未关闭 MFA 时明确阻断
- bad session 单独文案;UA 更新为 iOS 18.2 / iPhone12,8
2026-07-22 19:26:12 +08:00
Abner
70766c3a32 fix: 以 spawnSync 与路径边界校验加固 quality-check
将 node -c 从 shell 字符串 execSync 改为参数数组 spawnSync,
并用 path.resolve + projectRoot 前缀校验替代脆弱的 .. 正则与
手写路径拼接;非法扫描路径改为显式失败,避免假绿。
2026-07-22 19:26:12 +08:00
Abner
b042a47807 🐛 fix: 控制台 copyEsimDiagnostics 失焦时降级复制并不再抛 rejection
DevTools 调用时 Document is not focused 会导致 clipboard.writeText 失败。
Clipboard 失败后降级 execCommand;诊断导出始终打印全文,避免 unhandledrejection 与 Sentry 弹窗。
2026-07-22 19:26:12 +08:00
Abner
704d385d8a feat(simyo): 将 HTTP 426 等错误映射为用户可读文案
避免界面直接展示「HTTP 426」「missing X-Device-ID」等原始信息,
按状态码与已知业务短语输出中英文友好提示。
2026-07-22 19:26:12 +08:00
Abner
2bbe2f9bc4 ♻️ refactor(simyo): 统一客户端版本与 User-Agent 配置
抽取 client-identity 作为版本、设备型号与 User-Agent 的单一事实来源;
本地与 Netlify 代理强制使用配置的 User-Agent,不再透传浏览器 UA。
2026-07-22 19:26:12 +08:00
Abner
5a65dd3d01 🐛 fix(simyo): 补齐请求头 X-Device-ID
Simyo 4.28+ 要求每个请求携带 UUID 形态的 X-Device-ID,
缺失会返回 400 missing X-Device-ID。前端生成并持久化设备 ID,
本地与代理同步转发该请求头,并将上游 API 路径切换为 webapi。
2026-07-22 19:26:12 +08:00
Abner
71ca8538f7 🔒 security: 通过 overrides 升级 js-yaml 修复 Dependabot 告警
将传递依赖 js-yaml@3 固定到 3.15.0、js-yaml@4 固定到 4.3.0,
消除 YAML merge-key 二次方复杂度 DoS(#106/#107)。
2026-07-22 18:03:39 +08:00
Neo Vern
cd23cea87c Merge pull request #98 from Silentely/dependabot/npm_and_yarn/svgo-3.3.4
build(deps-dev): bump svgo from 3.3.3 to 3.3.4
2026-07-22 18:02:06 +08:00
Neo Vern
78c64989f9 Merge pull request #97 from Silentely/dependabot/npm_and_yarn/fast-uri-3.1.4
build(deps-dev): bump fast-uri from 3.1.2 to 3.1.4
2026-07-22 18:02:02 +08:00
Neo Vern
bf81262434 Merge pull request #96 from Silentely/dependabot/npm_and_yarn/body-parser-1.20.6
build(deps): bump body-parser from 1.20.5 to 1.20.6
2026-07-22 18:01:56 +08:00
Neo Vern
0ab8e1b643 Merge pull request #95 from Silentely/dependabot/npm_and_yarn/sharp-0.35.0
build(deps-dev): bump sharp from 0.34.5 to 0.35.0
2026-07-22 18:01:40 +08:00
Abner
0ef5ea82e2 🐛 fix(simyo): 升级 iOS 客户端版本至 4.28.0 修复 HTTP 426
Simyo API 拒绝过旧的 X-Client-Version/User-Agent(4.23.5),
导致登录失败 HTTP 426。同步更新前端配置、本地代理与测试页。

Closes #94
2026-07-22 17:49:11 +08:00
dependabot[bot]
3243a89011 build(deps-dev): bump svgo from 3.3.3 to 3.3.4
Bumps [svgo](https://github.com/svg/svgo) from 3.3.3 to 3.3.4.
- [Release notes](https://github.com/svg/svgo/releases)
- [Commits](https://github.com/svg/svgo/compare/v3.3.3...v3.3.4)

---
updated-dependencies:
- dependency-name: svgo
  dependency-version: 3.3.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-22 09:46:07 +00:00
dependabot[bot]
cac7733946 build(deps-dev): bump fast-uri from 3.1.2 to 3.1.4
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.2 to 3.1.4.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.2...v3.1.4)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-22 09:46:06 +00:00
dependabot[bot]
7b7b1aedf6 build(deps): bump body-parser from 1.20.5 to 1.20.6
Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.20.5 to 1.20.6.
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/1.20.5...1.20.6)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-version: 1.20.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-22 09:46:05 +00:00
dependabot[bot]
cfd4413a5e build(deps-dev): bump sharp from 0.34.5 to 0.35.0
Bumps [sharp](https://github.com/lovell/sharp) from 0.34.5 to 0.35.0.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Commits](https://github.com/lovell/sharp/compare/v0.34.5...v0.35.0)

---
updated-dependencies:
- dependency-name: sharp
  dependency-version: 0.35.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-22 09:45:57 +00:00
Neo Vern
b884cbd659 Merge pull request #93 from Silentely/dependabot/npm_and_yarn/brace-expansion-5.0.7
build(deps): bump brace-expansion from 5.0.6 to 5.0.7
2026-07-22 17:44:58 +08:00
Neo Vern
71e216514c Merge pull request #92 from Silentely/dependabot/npm_and_yarn/axios-1.18.0
build(deps): bump axios from 1.16.0 to 1.18.0
2026-07-22 17:44:53 +08:00
dependabot[bot]
0d13254438 build(deps): bump brace-expansion from 5.0.6 to 5.0.7
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 5.0.6 to 5.0.7.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v5.0.6...v5.0.7)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 5.0.7
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-21 14:23:58 +00:00
dependabot[bot]
9b122e0e7c build(deps): bump axios from 1.16.0 to 1.18.0
Bumps [axios](https://github.com/axios/axios) from 1.16.0 to 1.18.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.16.0...v1.18.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.18.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-20 18:20:47 +00:00
Abner
81b86c7ec3 test: 补充 Logger Release 与 env 输出用例 2026-07-17 21:02:07 +08:00
Abner
9e4411ffa0 feat: [ENV] 运行环境日志输出 Release 版本
与 Sentry 注入的 window.SENTRY_RELEASE 对齐,便于控制台对照构建版本。
2026-07-17 21:01:55 +08:00
Abner
ce8c1dbd77 🐛 fix: 本地 Sentry tracing 包不再启用 replay/feedback
本地 vendor 仅含 tracing 实现,占位 API 会触发控制台警告;仅 CDN 完整包装配 replay 与 feedback。
2026-07-17 21:01:13 +08:00
Abner
53e56a2594 🐛 fix: 修复 Sentry 广告拦截降级与 Bootstrap source map CSP
优先加载同源 Sentry vendor,CDN 仅作回退;生产 connect-src 补充 cdn.jsdelivr.net,消除 .map 连接被拦。
2026-07-17 20:57:49 +08:00
Abner
2eda195a89 test: 补充诊断导出与帮助弹窗防护用例
同步更新 AuthHandler 断言与模块文档说明。
2026-07-17 20:53:32 +08:00
Abner
76cba05ef1 🔧 chore: 脱链检查覆盖 dist 构建产物 HTML
在已构建时同步校验 dist 入口资源,未构建时跳过 dist 避免误报。
2026-07-17 20:53:32 +08:00
Abner
fef5fc9e63 feat: 增加脱敏诊断导出便于复制到 Issue
业务页初始化后可在控制台执行 copyEsimDiagnostics(),复制非敏感环境与状态摘要。
2026-07-17 20:53:24 +08:00
Abner
700f7dbaf8 🔒 security: 移除 Simyo 密码状态字段并加固帮助弹窗
状态机不再持有 password;帮助弹窗改用 DOM 与 textContent 渲染文案。
2026-07-17 20:53:18 +08:00
Abner
613b5a9a2d 📝 docs: 对齐构建描述并标注未挂载前端模块
将构建说明改为静态拷贝与 esbuild;在模块文档中标明 api-service、performance-monitor 等未挂生产状态。
2026-07-17 20:49:36 +08:00
Abner
890e05f27f test: 补充 OAuth、登录、剪贴板与反馈相关单测
修复 sentry-feedback 与 qrcode 断言,新增 clipboard/PKCE/OAuth 回调/AuthHandler/showToast 覆盖。
2026-07-17 20:49:10 +08:00
Abner
0e4d378448 ♻️ refactor: 统一业务 Logger、抽取剪贴板并加固 Simyo 会话
业务模块改用 Logger 控制生产日志噪音;抽取公共 clipboard 并保持原导出路径;Simyo 登录不落密码、Toast 改为安全文本渲染。UI 控制器保留 console 便于用户复制排查信息。
2026-07-17 20:48:31 +08:00