Repository navigation
chore(deps): bump github.com/redis/go-redis/v9 from 9.21.0 to 9.22.0 in /server/sync-service - #41
Closed
dependabot[bot] wants to merge 406 commits into
Conversation
feat(audio): 课堂音频采集引入进程环回,与端点环回双源互补(ADR-001 Phase 0-3)
## [0.30.0](v0.29.0...v0.30.0) (2026-07-31) ### ✨ 新功能 * **audio:** 原生模块支持流式采集(采集线程 + ThreadSafeFunction) ([b368bf8](b368bf8)) * **audio:** 接入进程环回 Provider 与构建链路(Phase 2,flag 默认关) ([bc37a96](bc37a96)) * **audio:** 进程环回采集原生模块 Phase 1 可行性验证 + ADR-001 ([be0f090](be0f090)) * **audio:** 进程环回默认启用 + 设置页音频源选择(Phase 3) ([4006a92](4006a92)) ### ♻️ 重构 * **audio:** 引入 AudioSourceProvider 抽象层(Phase 0,零行为变更) ([d41773d](d41773d))
v0.30.0 的 CI 中 native:build 在 8 秒内失败:electron-rebuild 用的是 client 下的旧版 node-gyp,其 VS 探测逻辑仍在找 VS 2013/2015,在 windows-latest 报 'Could not find any Visual Studio installation'。因该步骤 continue-on-error, 发布流水线全绿但产物静默缺少原生模块(自动降级为端点环回)。 不只改 CI,而是让本地与 CI 共用同一构建入口,避免两套隐式前提: - 新增 native/process-audio/build.mjs:固定使用 addon 目录自带的新版 node-gyp(支持 VS 2022),从 client 实际安装解析 Electron 版本, 显式传 --target/--dist-url 保证按 Electron ABI 编译 - native:build 指向该脚本;CI 与本地命令一致 本地验证:识别到 Electron 35.7.5,编译通过。 沉淀知识卡片:这是第三次'本地能跑 CI 挂'(前两次为 Git LFS 指针、 .env.production 被 gitignore),共同规律是本地存在而 CI 不具备的隐式前提。
fix(build): 修复 CI 编译原生模块失败(旧版 node-gyp 找不到 VS 2022)
## [0.30.1](v0.30.0...v0.30.1) (2026-07-31) ### 🐛 缺陷修复 * **build:** 修复 CI 编译原生模块失败(旧版 node-gyp 找不到 VS 2022) ([a5d8f3b](a5d8f3b))
背景场景 AuroraDomeWorld 内置的 PlanetarySystem 与导航层 SpatialNav 渲染了两套重叠的可点击行星,外层行星点击只改状态不跳转,导致浅色模式下点击 3D 物体与功能错位。现将 AuroraDomeWorld 还原为纯环境背景,导航行星统一由 SpatialNav 提供。
原 tier 判定为单阈值即时切换,FPS 振荡时 tier 来回抖动,导致后处理/云层特效反复卸载(表现为动画有时不显示、需等很久才重新显示),且后台返回时节流期低 FPS 被误判为降级。现引入滞回缓冲区、连续窗口持续判定、逐级调整与后台返回重置;同时移除 MemoryManager 中 return 无法跳帧的无效死代码。
将'如何逐级迁移 tier'的纯逻辑从 PerformanceMonitor 中物理分离(AI 编程规范 §1 副作用隔离、§6 自底向上),stepTier 逐级迁移策略(low↔medium↔high,不跨级跳变)获得 8 个 AAA 单测护栏,为后续以成熟方案重写监控层提供行为基线。本步为纯新增,不改变任何现有行为。
FPS 测量与防抖委托给 drei <PerformanceMonitor>(内置滑动均值、bounds 滞回、threshold 比例持续判定与 flip-flop 保护),替代自研单窗口测量;tier 迁移复用已单测的 tierPolicy.stepTier;窗口隐藏时卸载监控以重置采样基线(后台 rAF 节流期 FPS 不可信),并顺带重置 drei 内部 flipped/fallback 防止永久锁定。usePerformanceStore 公共 API 与 tier 三级语义保持不变,呈现质量不受影响(未触碰 multisampling 与特效开关)。
复现确认:3D 概览中行星虽渲染但默认无标签(仅悬浮显示),且功能副标题受新手期门控(首潜完成后消失),用户看到一堆无名彩色球体,无法把物体对应到功能(内测反馈'3D物体不可用'的真实根因)。修复:① SpatialNav 在概览模式(!isInModule)默认显示标签;② AuroraModuleEntity/ModuleEntity 的功能副标题改为常驻(移除 isNewbie 门控),始终展示'隐喻名 · 功能名'(如 深潜 · 专注番茄钟)。浏览器实测:标签可见、点击行星正确跳转对应模块。
复现(elementFromPoint)确认:canvas 容器原为 z-index:-10,落在 AppLayout 根 div(z-auto、h-screen 铺满全屏、pointer-events:auto)之后;概览模式点击行星时,命中检测返回的是 transparent 的根 div 而非 canvas,根 div 无点击处理器→点击无响应(内测'点击仍无响应'真因)。修复:canvas 容器改为 z-0,位于根 div 空白区之上可接收点击,同时仍低于所有 UI 浮层(标题栏 z-50 / FunctionalOverlay z-10 / 首页按钮 z-20 / 引导 z-40+ / Radix 弹窗走 portal)。修复后 elementFromPoint 在行星位置返回 CANVAS。
合并 3D 三层根因修复(重复行星/标签可发现性/canvas 点击拦截)与性能分级优化(drei PerformanceMonitor 迁移、tier 滞回)。
## [0.30.2](v0.30.1...v0.30.2) (2026-08-01) ### 🐛 缺陷修复 * **3d:** canvas 层级提至 z-0,修复概览模式点击被根布局 div 拦截 ([168df42](168df42)) * **3d:** 概览模式常驻显示模块标签与功能副标题,解决 3D 物体无法对应到功能 ([b605a6f](b605a6f)) * **3d:** 移除晨曦穹顶场景重复的行星系统,导航行星统一由 SpatialNav 渲染 ([ff67320](ff67320)) ### ⚡ 性能优化 * **3d:** 性能分级引入滞回+持续判定+后台重置,消除 tier 抖动;清理无效跳帧死代码 ([8851a1f](8851a1f)) ### ♻️ 重构 * **3d:** 性能监控迁移至 drei PerformanceMonitor 成熟方案 ([72e584f](72e584f)) * **3d:** 抽取 tier 迁移策略为纯函数模块 tierPolicy 并补充 BDD 单测 ([1602c72](1602c72))
跳过与取消是两种意图:跳过表示不设目标但开始计时,取消表示关闭弹窗不开始。原实现两者共用同一关闭回调,导致空目标番茄钟无法启动。现拆分为取消、跳过、开始三个按钮,并补充多路径回归测试。
新增番茄模式预设:内置上课与自习预设,支持自定义预设的增删改与排序;引入周期标记与预警时点、完成音等音效配置;番茄会话关联预设 ID,longBreakInterval 为 0 统一表达无长休。
核心统计卡片与知识预览卡片新增目标路径,点击或键盘回车即可跳转至对应模块,提升首页到各功能模块的可达性。
设置页新增三档性能模式(默认从容/medium):tier 天花板模型(effectiveTier=min(自动tier,档位上限),自动降档仍生效但不超用户档位);模块态 3D 按档位降帧/暂停(静谧=暂停、从容=10fps、澎湃=30fps),避免 3D 被遮罩覆盖时仍全帧渲染(持续开销最大头);静谧档经 MotionConfig 全局减弱 Framer Motion 动画;主进程 performance:set-mode IPC 持久化档位并按档位缩放屏幕采集间隔。含 performanceMode 纯函数层 14 个单测。
SmartSampler.keyframes 在整个会话期间无界持有全部关键帧的 imageBase64(单帧数百 KB,1h 约 240 帧累积数十 MB 不释放,仅 reset 才清空),是内测反馈内存占用 5GB 的重要诱因。现仅保留最近 30 帧的 base64,更早帧剥离为空串(元数据保留、图片已由 keyframe_save 增量落盘),与既有'分析后清空 base64'策略一致。
- 新增 config/key_pool.py: 多Key轮询池,突破单Key RPM限制 - 新增 providers/circuit_breaker.py: Provider级熔断器(CLOSED/OPEN/HALF_OPEN) - 新增 middleware/prompt_guard.py: Prompt注入防护(中英文正则+白名单) - 新增 cost/tracker.py + cost/budget.py: Token成本追踪+预算硬限制 - 新增 observability/metrics.py + tracing.py: Prometheus指标+OTel追踪 - 新增 cache/semantic_cache.py: n-gram Jaccard语义缓存(L2) - 新增 middleware/virtual_key.py: 虚拟Key签发(Phase4预实现) - 改造 middleware/auth.py: 生产环境缺JWT密钥拒绝启动 - 改造 config/fallback.py: 流式fallback添加总预算超时+熔断联动 - 改造 provider_bootstrap.py: Key池集成+后台健康探活(30s) - 改造 main.py: GZip压缩+并发Semaphore+新中间件注册 - 新增 docs/Foresight/ai-gateway-optimization-plan.md: 完整优化方案文档
覆盖六大功能模块流畅性审计、内存管理分析(确认课堂音频段 base64 泄漏为 5GB 主因)、3D 渲染与三档性能模式评估(发现默认从容档仍开全部后处理)、AI 降级机制评估(三套建成未生效能力)、性能基准测试方案、按 P0-P3 分级的 19 项优化建议。
1) 课堂音频段 audioBase64 转写成功后剥离(useClassroomEvents/vadMarker),消除长课堂数百 MB 无界累积(内测 5GB 内存主因);2) 笔记 updateNote 改局部更新+重排,去掉每次自动保存的全量 loadNotes 与多余 getById,消除打字卡顿;3) 键入 JSON.stringify 移入防抖回调内,避免每次键入同步序列化整个文档阻塞主线程;4) 删除 TimerRing/ImmersiveTimer 冗余 RAF(进度环已由 React prop + CSS transition 驱动),消除每秒 60fps 无效 DOM 写。
1) 从容(medium)档降级后处理:浅色关色差(ChromaticAberration)、深色关景深(DepthOfField,最重 pass),澎湃档全开——降低默认档 GPU 开销;色差 offset 改模块级常量避免每帧 new Vector2;2) useCardInteraction/useSocraticFlow 的 setTimeout 统一 ref + 卸载清理,避免卸载后 setState;3) useSocraticFlow 无 selector 整 store 订阅改细粒度 action 订阅。
1) visionWorker/asrWorker 的 arrayBufferToBase64 改分块编码(0x8000 块 + fromCharCode.apply),消除逐字节字符串拼接的 O(n²),加速大帧 base64 编码;2) aiPluginProvider 的 supabaseClient 改静态 import(免每次动态 import 开销),access_token 缓存 60s(token 寿命约 1h,保守 TTL)避免每次 AI 调用都 getSession。
NotesPage 原在每次渲染都调用 getFilteredNotes()/getAllTags() 全量 filter+sort 所有笔记(搜索时对每篇 content 全量扫描),配合整 store 订阅导致搜索/切换卡顿。现订阅 notes 并用 useMemo 缓存 filteredNotes/allTags/selectedNote,仅在笔记/搜索/标签/文件夹变化时重算。
startSession 原用 flashcardReviewStore.getAll() 全量加载所有复习记录(增长最快的数据,半年可达数万条)再内存 filter 统计今日数。现改用已存在的 reviewedAt 索引 .where('reviewedAt').aboveOrEqual(todayStart).count(),O(log n) 查询替代全量反序列化。
- 新增 reef 组件族:AbyssView2D 深渊视图 / GrottoView3D 洞窟视图 / ReefCards 卡片场 / ReefDiverConsole 潜水控制台 - NotesPage 集成珊瑚礁沉浸视图、侧栏左右独立控制(互斥展开) - useEditorDepth history 访问类型加固(运行时可能 undefined) - AppLayout 面板视口锚定:Notes 无内边距贴边,grid 高度公式与面板实际内容区精确一致
- WikiPage 左右侧边栏独立折叠(互斥展开),2s idle debounce 自动保存 + 保存状态提示 - 命令面板新增 nav-sop 命令(G O 快捷键)与 ListChecks 图标
- 蝠鲼剪影 60~90s 周期水平弧线缓慢滑过,深海雾中若隐若现 - 克制含蓄:透明度 0.1~0.15,单网格+平移单 draw call,low 档关闭
- vite.config base 仅 Electron 构建产物用 ./,dev 模式保持 /(修复预构建依赖 504 动态导入失败) - streamHandler 流式路径白名单正则去转义冗余 - mcpEnv Windows 注册表读取转义修正 - AuthGuard useEffect 依赖数组修正 - framer-motion 12.42.2→12.43.0(修复 React 18.3 ref 警告 issue 3745)
- 笔记页动态导入失败:ELECTRON_BUILD 下 dev server 预构建依赖 504(vite base 根因) - 笔记页黑条:面板渐变背景依赖 CSS 变量未全局定义 - Wiki 布局交互设计头脑风暴文档
Bumps [github.com/redis/go-redis/v9](https://github.com/redis/go-redis) from 9.21.0 to 9.22.0. - [Release notes](https://github.com/redis/go-redis/releases) - [Changelog](https://github.com/redis/go-redis/blob/master/RELEASE-NOTES.md) - [Commits](redis/go-redis@v9.21.0...v9.22.0) --- updated-dependencies: - dependency-name: github.com/redis/go-redis/v9 dependency-version: 9.22.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
dependabot
Bot
deleted the
dependabot/go_modules/server/sync-service/github.com/redis/go-redis/v9-9.22.0
branch
August 21, 2026 03:19
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps github.com/redis/go-redis/v9 from 9.21.0 to 9.22.0.
Release notes
Sourced from github.com/redis/go-redis/v9's releases.
... (truncated)
Changelog
Sourced from github.com/redis/go-redis/v9's changelog.
... (truncated)
Commits
c7f59a2chore(release): prepare 9.22.0 (#3947)c994cfcfeat(autopipeline): automatic command pipelining (#3942)228b463chore(deps): bump actions/stale from 10 to 11 (#3944)a6be850feat(csc): add standalone client-side caching (#3941)82b0213chore(release): prepare 9.22.0-beta.1 (#3940)8eb9583fix(rediscmd): redact credential args in AppendCmd (#3939)90fd088chore(ci): point 8.10 testing at custom client-libs-test image (#3938)93f961afeat(timeseries): support multiple aggregators per key in TS.NRANGE (#3937)49e0041feat(himport): HIMPORT command with lazy per-connection prepare (#3919)3dd9675fix(proto): peek push notification name without demanding 36 bytes (#3936)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)