|
|
@@ -4,6 +4,46 @@
|
|
|
|
|
|
---
|
|
|
|
|
|
+## v1.0.1487 (2026-10-02)
|
|
|
+
|
|
|
+### Bug 修复
|
|
|
+- 并发 401 改为排队重放,避免在途静默续期被自身打断
|
|
|
+- 修复页面生命周期重复跳转导致的 routeDone 报错
|
|
|
+
|
|
|
+### 其他
|
|
|
+- onboarding/progress 等)。修复前 _handle401 在 _reloginLock 为真时直接调
|
|
|
+- _clearAuthAndRedirect():第 1 个 401 刚启动 silentRelogin()(uni.login 异步),
|
|
|
+- 第 2~N 个 401 立刻抹掉 token 并预约 1500ms 后 reLaunch 登录页,在途续期被打断,
|
|
|
+- 表现为控制台只有 401、silentRelogin 无任何日志、用户被弹回登录页。
|
|
|
+- - 并发 401 入 _pending401 队列,续期成功后统一重放;成败仅由发起续期的
|
|
|
+- 那个 401 判断
|
|
|
+- - 重放带 _noRelogin:重放仍 401 则直接失败,避免续期/重放 ping-pong 死循环
|
|
|
+- - silentRelogin 无 openid 分支补 warn 日志(此前静默返回 null,无法定位)
|
|
|
+- 测试:concurrent 401s queue behind one renewal、replayed request that still 401
|
|
|
+- fails without triggering another renewal(后者覆盖死循环防护)。
|
|
|
+- 已验证回归有效性:临时还原旧逻辑后新用例即以线上症状失败。
|
|
|
+- Jest 178/0,audit 0 error。
|
|
|
+-
|
|
|
+- 页面在生命周期钩子中重复发起跳转,框架对已销毁的 webview 调用 routeDone。
|
|
|
+- - splash/index: onShow 每次都新建 2s reLaunch 定时器且 onUnload 未清理;改为
|
|
|
+- _hasLaunched 一次性守卫 + onUnload 清理定时器
|
|
|
+- - profile-extra/{create-child,edit-child,children}: onShow 自动跳转与按钮
|
|
|
+- goToFamilyMembers 各发一次 redirectTo,统一收敛到 redirectOnce() 守卫
|
|
|
+- - rewards/rewards: teacher 分支 redirectTo 增加 _redirected 守卫,
|
|
|
+- loadRewards() 仍保持每次 onShow 刷新
|
|
|
+- 其余 5 处 onLoad redirectTo 为每实例仅执行一次的跳转桩,无并发风险,未改动。
|
|
|
+- 全量注册页扫描:HIGH=0,无异步回调内的裸跳转。
|
|
|
+-
|
|
|
+- - 移除雷达图(canvas 卡片及相关方法)
|
|
|
+- - 让首次使用的家长一眼看懂结果代表什么、接下来做什么
|
|
|
+-
|
|
|
+
|
|
|
+### 新功能
|
|
|
+- 自检结果页新增「怎么看这个结果」引导卡
|
|
|
+- 补全9.9体验会员功能 + 升级流程优化 - upgrade.vue: 添加体验会员(BASIC) compare 表列 + 基本功能描述 - upgrade.vue: 默认 selectedLevel 升级至下一级(FAMILY→PREMIUM) - upgrade.vue: 按钮显示 '续费' 而非 '下一步' 于 renew 当前等级
|
|
|
+- 活动搜索 keyword 支持 + 产品搜索 API + 封面上传 + 小程序页面选择器
|
|
|
+
|
|
|
+
|
|
|
## v1.0.1486 (2026-10-01)
|
|
|
|
|
|
### 重构
|