XuqmGroup
|
1e130deaa1
|
test(update): compare generated paths portably
|
2026-07-27 10:24:12 +08:00 |
|
XuqmGroup
|
56fb6efccc
|
test(common): run TypeScript compiler cross-platform
|
2026-07-27 10:17:07 +08:00 |
|
XuqmGroup
|
daa96302dd
|
feat(update): secure signed plugin release sets
|
2026-07-27 00:39:26 +08:00 |
|
XuqmGroup
|
3d2134e08a
|
feat(sdk): harden automatic config and plugin releases
|
2026-07-26 23:47:30 +08:00 |
|
XuqmGroup
|
10977341d1
|
feat(xwebview): 收敛 WebView 宿主与桥接
|
2026-07-26 19:41:03 +08:00 |
|
XuqmGroup
|
d009c3b616
|
fix(common): ValidationError 改为继承 Error 修复 Hermes 校验崩溃
- Babel 转译子类 apply 调用原生 ZodError 在 Hermes 抛 TypeError,掩盖真实校验失败
- unexpected 分支补安全诊断日志(构造名+截断消息)
- xuqm-bundles.gradle 将 file: 依赖的 src/metro 纳入任务输入
|
2026-07-21 01:10:41 +08:00 |
|
XuqmGroup
|
507ce3d2ee
|
feat(update): release-set 事务制品与原生层职责拆分
- 插件包改为 .xuqm.zip 事务制品,manifest/bundle/资源/SHA-256 统一校验
- 原生层拆分为桥接编排、插件包暂存、底层存储三个单一职责类
- 状态查询改为纯读取,不再误触发安装;新增 NATIVE_BASELINE_INCOMPATIBLE 拒绝
- SemVer 解析拆分为独立原生类并补原生测试
- XWebView 收口唯一内核,错误态统一中文层与重试
- common 增加请求头/运行时契约收口与 http 测试
|
2026-07-20 19:31:43 +08:00 |
|
XuqmGroup
|
d677a9ee52
|
feat(update): centralize Metro module builds
|
2026-07-18 08:59:40 +08:00 |
|
XuqmGroup
|
a2d3a27d80
|
fix(rn-common): redact API diagnostics
|
2026-07-18 08:35:36 +08:00 |
|
XuqmGroup
|
7589db7332
|
docs(rn-sdk): record published App4 integration baseline
|
2026-07-18 07:35:05 +08:00 |
|
XuqmGroup
|
04fc964a92
|
test(rn-update): run real Hermes compiler on Windows
|
2026-07-18 07:08:18 +08:00 |
|
XuqmGroup
|
aacfbf0edd
|
refactor(rn-sdk): unify host runtime and webview contracts
|
2026-07-18 06:59:57 +08:00 |
|
XuqmGroup
|
144a3bcb2d
|
feat(update): gate plugins on runtime baseline changes
|
2026-07-17 14:43:05 +08:00 |
|
XuqmGroup
|
6fcd50598a
|
build: resolve Android plugins through Nexus first
|
2026-07-17 14:31:25 +08:00 |
|
XuqmGroup
|
4cfcbb3aa2
|
fix(test): normalize CLI paths on Windows
|
2026-07-17 14:18:46 +08:00 |
|
XuqmGroup
|
e06f3f9877
|
fix(test): support Windows Metro paths
|
2026-07-17 14:14:19 +08:00 |
|
XuqmGroup
|
e7b31d7fc6
|
feat(update): support safe plugin bundle reload
|
2026-07-17 14:12:02 +08:00 |
|
XuqmGroup
|
c8a6d88ab9
|
fix(ci): use fresh RN SDK worktree
|
2026-07-17 14:03:36 +08:00 |
|
XuqmGroup
|
530e4503c4
|
fix(ci): keep alpha calculation CPS serializable
|
2026-07-17 13:59:03 +08:00 |
|
XuqmGroup
|
fed3fd4fc4
|
fix(ci): make RN alpha publication deterministic
|
2026-07-17 13:57:02 +08:00 |
|
XuqmGroup
|
a902e30e0a
|
feat: rebuild RN sdk runtime and plugin updates
|
2026-07-17 13:50:30 +08:00 |
|
XuqmGroup
|
ac7e941744
|
fix(metro): 取消 withBugCollect 自动链式,避免破坏 Metro 0.84 dev 打包
- common/metro: withXuqmConfig 不再自动链式 withBugCollect(保留 .xuqmconfig 单点同步)。
customSerializer 方式的 sourcemap 上传在 Metro 0.84 下不可靠:覆盖默认 serializer 后
无法经 package exports 取回默认序列化,dev 打包会报 "Cannot read properties of undefined (reading 'code')"。
- bugcollect/metro: 还原 customSerializer 回退实现;该插件仅建议显式包裹在已有 serializer 之上。
- sourcemap 上传后续改为 react-native bundle 后独立脚本上传。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-25 19:04:55 +08:00 |
|
XuqmGroup
|
d51d3c934d
|
feat(common/metro): .xuqmconfig 单点放置——自动同步到原生 Android/iOS
宿主只需在 RN 侧放置一份 .xuqmconfig;构建/运行时 withXuqmConfig 自动比对并
复制到 android assets/config(供 XuqmMergedProvider 自动初始化)及 iOS 资源目录,
缺失或内容不一致才写入(幂等)。免去 RN/Android/iOS 三处分别放置。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-25 18:45:17 +08:00 |
|
XuqmGroup
|
4d5adf447a
|
fix(bugcollect): HttpInterceptor 用 globalThis 替代 global,修复消费端 TS 找不到 global
BugCollect.startCapture 自动启用 HttpInterceptor 后,该文件进入消费端类型检查图;
部分 RN 工程 tsconfig 未提供 `global` 类型,改用 globalThis(可移植)。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-25 18:26:40 +08:00 |
|
XuqmGroup
|
4d2b834f96
|
feat(sdk): 下载相册/进度、XWebView内联config、上报限频采样、版本忽略、push桥接原生sdk-push
- xwebview: 下载支持公共Downloads/相册(CameraRoll懒加载)/JS进度/openFile;XWebViewView 新增内联 config prop(同屏多实例不污染全局)
- bugcollect: startCapture 自动启用 HttpInterceptor + 按指纹滑动窗口限频 + setSampleRate 采样(降低服务端存储压力)
- update: ignoreAppVersion/clearIgnoredAppVersion/getIgnoredAppVersion 客户端忽略版本(强制更新除外)
- common/metro: withXuqmConfig 自动链式 withBugCollect(Release 包 sourcemap 自动上传)
- push: 桥接完整原生 sdk-push(Android Kotlin + iOS Swift + JS 薄层),删除旧反射实现;单一 XuqmSDK.setUserInfo 驱动厂商检测/token/绑定
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-25 17:50:29 +08:00 |
|
XuqmGroup
|
1567c673ea
|
feat(bugcollect): 集成符号化服务支持移动端堆栈解析
- 添加 symbolicator 服务配置到 docker-compose.yml
- 配置 bugcollect-service 连接 symbolicator URL
- 设置 symbolicator 端口映射和资源限制
- 添加源码映射文件挂载目录
- 为 RN/Android/iOS/Flutter 堆栈符号化提供支持
docs(xwebview): 更新已知问题文档
- 记录 RN 0.85 Bridgeless 模式下 react-native-blob-util 崩溃问题
- 说明 react-native-blob-util 在 JSI/TurboModule 下初始化失败原因
- 提供宿主 app 使用 XWebViewContent 替代方案
- 添加待修复方案说明
|
2026-06-22 17:43:00 +08:00 |
|
XuqmGroup
|
988582e9df
|
fix(common): useRequest.fetchAsync 不再重复包装响应拦截器已处理的 RequestError
响应拦截器(如 useApi.ts 中的错误转换)产生的 RequestError 会被
fetchAsync 的 catch 块再次包装为 RequestError('网络请求失败', 'OtherError'),
导致原始的服务器错误消息(如"系统异常")丢失。
现在当 catch 块收到的错误已经是 RequestError 时,直接透传而不重新包装,
保留拦截器中已经提取好的错误消息。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-21 15:35:49 +08:00 |
|
XuqmGroup
|
51e016e185
|
fix(xwebview): 将 react-native-blob-util 改为懒加载以兼容 RN 0.85 Bridgeless 模式
静态 import 会在模块评估时触发 fs.js:14 调用 ReactNativeBlobUtil.getConstants(),
在 Bridgeless 模式下 TurboModule 未注册时返回 null 导致崩溃。
改为在函数体内 require() 延迟至实际下载时才初始化。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-21 09:23:17 +08:00 |
|
XuqmGroup
|
ff8f34e5a4
|
fix(common): 修复 useRequest data 字段类型推断
|
2026-06-20 18:36:09 +08:00 |
|
XuqmGroup
|
1143224194
|
fix(common): 对齐 @szyx-mobile useRequest 行为并修复 POST body 丢失
- 修复 useRequest POST/PUT/UPLOAD/POSTFORM 请求忽略 fetchAsync data 的问题
- RequestOptions 增加 tag/log 字段,与旧项目兼容
- 导出 ValidationError,供宿主二次封装使用 instanceof 判断
- usePageApi 支持 list 与 records 两种分页字段
- 升级 devDependencies 版本(axios 1.18.0、zod 3.25.76 等)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-20 18:26:45 +08:00 |
|
XuqmGroup
|
1f72b415dc
|
feat: RN Metro 插件实现 Sourcemap 自动上传
- 读取 xuqm.config.js 或环境变量获取 API URL
- Release 构建时自动上传 .map 文件
- 支持自定义 sourcemap 路径
- 异步上传不阻塞构建
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-19 02:58:27 +08:00 |
|
XuqmGroup
|
6a43e5e560
|
fix: rn-bugcollect package.json 包含 metro 目录
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-19 02:28:25 +08:00 |
|
XuqmGroup
|
0cf264cdf6
|
feat(core): 添加请求签名功能并扩展更新接口
- 在 SDKConfig 中新增 signingKey 配置项
- 在 ConfigFile 中添加 signingKey 序列化支持
- 实现 API 客户端请求签名拦截器,支持 HMAC-SHA256 签名
- 在 XuqmSDK 中管理 signingKey 的存储和读取
- 扩展 UpdateApi 接口增加 currentVersionName 参数
- 在 UpdateSDK 中集成设备信息和版本号上报功能
- 为 RN SDK 添加签名密钥管理和 HTTP 请求签名注入
- 实现跨平台的 HMAC-SHA256 签名算法支持
|
2026-06-19 01:27:56 +08:00 |
|
XuqmGroup
|
71eeada147
|
docs: 配置文件规范更新为 .xuqmconfig 格式(Android/iOS 对齐表)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-18 15:40:19 +08:00 |
|
XuqmGroup
|
a9f320db63
|
docs: 更新 README + 配置文件规范 + 架构总览(BugCollect/withXuqmConfig)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-18 15:34:48 +08:00 |
|
XuqmGroup
|
4f5739da1f
|
feat(common): Metro 插件自动发现 .xuqmconfig 配置文件
新增 withXuqmConfig(metroConfig) Metro 插件:
- 扫描 src/assets/config/ 下的 *.xuqmconfig 文件
- 通过 resolveRequest 拦截 @xuqm/autoinit-config 模块
- 宿主只需放入下载的 .xuqmconfig 文件,无需重命名
对齐 Android SDK 的 ConfigFileReader 逻辑。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-18 15:01:39 +08:00 |
|
XuqmGroup
|
c7f1f7cb72
|
fix(ci): echo 中文改为 bat+chcp65001 修复 Jenkins 控制台乱码
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-18 12:25:06 +08:00 |
|
XuqmGroup
|
d6c42ecf56
|
fix(bugcollect-rn): 修复 BugCollect-API-v1-Review RN SDK 问题
- types.ts: 新增 BreadcrumbItem 类型;DeviceInfo 补全 brand/sdkVersion/screen/locale/timezone/isEmulator;UserInfo 补全 username/email;IssueEvent 新增 breadcrumbs 字段
- BugCollect.ts: 新增 addBreadcrumb API;新增 captureFatal API;_getPlatform() 支持 harmonyos;_getDeviceInfo() 采集完整设备信息;版本号改为常量;sessionId 加长
- LogQueue.ts: 按 level 分级持久化——fatal/error 写 AsyncStorage(进程崩溃后仍可重传),其余仅内存;重试时只重新入队 fatal/error 事件
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-18 09:26:26 +08:00 |
|
XuqmGroup
|
76099d897e
|
feat(bugcollect): 更新 API 端点并改进数据结构
- 将 Android SDK 的 mapping 上传端点从 /log/v1/sourcemaps/upload 更改为 /bugcollect/v1/sourcemaps/upload
- 将 RN SDK 的 API 端点从 /log/v1/ 统一更改为 /bugcollect/v1/
- 在 LogQueue.ts 的请求体中添加 sentAt 时间戳和 SDK 信息
- 重构 BugCollect.ts 中的事件结构,将 appVersion 重命名为 release,添加 environment 和 sdk 字段
- 将 JS 错误上报的类型从 js_error 改为 issue,并调整错误级别分类
- 为 warn 和 info 方法添加完整的 issue 事件结构
- 在 types.ts 中添加新的数据类型定义,包括 Level、Platform、SdkInfo、ExceptionInfo 等
- 为 IssueEvent 添加详细的异常信息结构,包括类型、值和堆栈跟踪
- 添加完整的错误收集 API v1 规范审阅报告文档
- 在数据库迁移脚本中为日志表添加新字段,包括级别、环境、设备信息、SDK 信息等
|
2026-06-17 18:02:10 +08:00 |
|
XuqmGroup
|
639e9bcc26
|
ci: Jenkinsfile rn-log → rn-bugcollect(MOD_LOG → MOD_BUGCOLLECT)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-06-16 18:55:15 +08:00 |
|
XuqmGroup
|
57579d2871
|
refactor: @xuqm/rn-log → @xuqm/rn-bugcollect
- packages/log → packages/bugcollect
- XLog → BugCollect
- logApiUrl/logEnabled → bugCollectApiUrl/bugCollectEnabled
- withXuqmLog → withBugCollect
- typecheck 通过
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-16 17:39:18 +08:00 |
|
XuqmGroup
|
a53438a3f0
|
docs: rn-log → rn-bugcollect 重命名
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-16 17:18:35 +08:00 |
|
XuqmGroup
|
dc96fa8422
|
chore: 更新 yarn.lock(添加 @react-native-clipboard/clipboard + react-native-safe-area-context devDeps)
|
2026-06-16 14:58:24 +08:00 |
|
XuqmGroup
|
b6581adc51
|
fix: 代码质量清理 — XWebView Pressable/Clipboard、configCrypto 消除 any、UpdateSDK AsyncStorage 优化
- XWebViewView/XWebViewScreen: TouchableOpacity → Pressable
- XWebViewView/XWebViewScreen: Clipboard 改用 @react-native-clipboard/clipboard
- configCrypto.ts: 6 处 any 替换为 SubtleCryptoLike 接口
- UpdateSDK: CachedRnBundle 移除 source 字段,AsyncStorage 仅存版本元数据
- xwebview 添加 @react-native-clipboard/clipboard peerDependency
|
2026-06-16 14:48:47 +08:00 |
|
XuqmGroup
|
611f2ba95d
|
fix: 功能缺陷修复 — ImSDK login await WebSocket、fetchHistory 支持 GROUP、License 改用 apiRequest、LogQueue 重试上限
|
2026-06-16 13:49:30 +08:00 |
|
XuqmGroup
|
a0c54ae191
|
fix(update): 移除不存在的 NativeApkInstall 引用 + 下载 bundle 后校验 MD5
|
2026-06-16 13:37:45 +08:00 |
|
XuqmGroup
|
2a40d6200b
|
fix: @xuqm/rn-common 从 dependencies 移到 peerDependencies,避免宿主项目嵌套安装旧版
|
2026-06-16 13:27:23 +08:00 |
|
XuqmGroup
|
8f0a940830
|
feat: xwebview handleDownloadRequest + README 更新
- 新增 handleDownloadRequest() 统一下载处理函数
- 导出 download 相关工具函数
- 更新 rn-update 和 rn-xwebview README
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-16 13:25:46 +08:00 |
|
XuqmGroup
|
0431b3d694
|
fix: 所有包添加 files=[src],排除 tsconfig.json 等开发文件不发布到 npm
|
2026-06-16 13:22:54 +08:00 |
|
XuqmGroup
|
f727478e53
|
fix(jenkins): SNAPSHOT 模式自动递增 alpha 版本号(查询 registry 最新 alpha 后 +1)
|
2026-06-16 13:18:43 +08:00 |
|