Repository navigation
fix: 修复会话恢复、并发持久化与消息投递(v3.18.5) - #110
Conversation
Accept UTF-8 BOM configuration and preserve cancellation without side effects.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Important Review skippedToo many files! This PR contains 259 files, which is 159 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configuration
⛔ Files ignored due to path filters (5)
📒 Files selected for processing (259)
You can disable this status message by setting the
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
变更说明
修复聊天、消息投递和后台任务在切换会话、断线、取消、重启及写入失败时的状态错乱,避免重复发送、旧响应覆盖新操作和未持久化的数据被提前确认。本 PR 汇总该分支全部修复,并按主题整理 v3.18.5 更新记录,同步后端、Console 与 Chat 的版本及锁文件。
影响范围
关联 Issue
无。
自检
uv run ruff check .与uv run ruff format --check .通过(提交钩子排除code/子模块)uv run mypy .通过(提交钩子排除code/子模块)UNDEFINED_DEPLOY_WHEEL_CHECK=1 uv run pytest tests/ --cov --cov-report=term一次完整运行通过(4559 passed、1 skipped,覆盖率 70.24%)npm --prefix apps/undefined-console run check通过npm --prefix apps/undefined-chat run check通过config.toml.example与docs/configuration.md最终本地后端全量测试一次通过,包含真实 wheel 打包检查。Chat 完整检查包含 507 项单元测试、50 项 e2e、1 项生产构建回归和 76 项 Rust 测试;Console 完整检查通过。
scripts/release_notes.py validate --tag v3.18.5确认所有版本一致。回归覆盖真实 SDK→业务投递、旧自动化 JSON 加载、Memory 工具统一错误处理、队列满额与热更新,以及配置恢复失败、恢复快照/发送 ACK/迟到订阅交错。备注
img-src放开到http:/https:;图片来源由消息内容决定,因此未固定域名白名单,浏览器会直接请求图片站点。附件 UID 预览仍走同源 Management 代理,script-src继续限制同源及 nonce,connect-src继续仅允许同源。现有 Chromium 回归验证远程图片可加载、外域脚本与 fetch 仍被拦截。asyncio任务取消;这不承诺在清理期间再次出现进程级中断、事件循环强制停止或进程被强杀时仍能完成清理。[webui].stop_timeout_seconds默认0等待自然收尾;设置正整数才会在超时后强制终止,停止按钮、关闭 WebUI 和更新前停止共用此规则。[core].group_llm_queue_max_pending默认128,支持热更新,仅限制每模型普通群聊新 LLM 排队准入;满时明确拒绝新请求并清理等待者,保留已接收请求及重试,不是总并发或内存上限,过载时普通自动回复可能结束而不发送消息。restore_profile.py restore会同步检索正文与向量;操作前停止机器人及其他写入进程,向量同步失败可用sync重试。loop.times.count=0跳过循环,负数、布尔值和字符串会被拒绝;损坏 TOML 不再因strict=False被当作空配置应用。