客户端 - 生成总结前不再判旧「会议额度」meetintegral <= 0 就弹余额不足:那个桶已随会员与算力改造停用, 新账号恒为 0,于是有算力也被拦,请求都没发出去。准入交给服务端(没 VIP 回 VipRequired, 算力不足按后台闸门处理),同翻译那次的修法 - 语音纪要页顶栏:原来按旧额度显示剩余时长 + 进度条(恒为 00:00:00),改为显示算力(user_getcompute) 服务端 - 开始任务扣算力后把明细记在记录上(新列 computeuser / computedevices,AutoMigrate 自动加); 转写失败的八条路径与开始任务中途报错,一律经 refundRecordCompute / refundCharge 按明细原路退回: 设备部分减回 computeused、账户部分加回 computebalance;先在库里原子认领明细再退,保证只退一次; 超额部分从未扣过,不退 - 去掉短音频失败时 user.Meetintegral += 秒数 + 整行 updateuser(退进了停用的旧桶,整行写回还可能覆盖并发的算力变动) - 新增流水类型 UserLogType.ComputeRefund = 6 - comm:ComputeResult 带每台设备的扣费明细(Cuts);新增 EncodeDeviceCharges / DecodeDeviceCharges / RefundComputeUsage, 编解码有单测(MAC 带冒号,按最后一个冒号切) 验证:go build/vet 通过,comm / echomeet / user 测试通过;dart analyze 无 error,flutter test 221 全过; 测试服已部署 app + console,两列已加上、五个服务正常。 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>