[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fr30ThcE80yHzlOESYwvowJomDmcPENQen3Wzrm1l8Ro":3,"$fIB2F0cXXlBUxtz92b8qGwpfSFecXsXLoBCewFp4KjwY":18,"$fExmjXDTm59NRRCKRthPH9E9aZkjHoBlzB_xRwHbdGOI":29},{"id":4,"owner":5,"repo":6,"release_id":7,"tag_name":8,"name":9,"body":10,"html_url":11,"draft":12,"prerelease":12,"published_at":13,"created_at":14,"author_login":15,"author_avatar_url":16,"updated_at":17},489,"lxware-dev","halo-pro",338415175,"v2.25.0","2.25.0","\u003Ch2 dir=\"auto\">破坏性更新\u003C\u002Fh2>\n\u003Cp dir=\"auto\">出于维护成本的考虑，此版本移除了对 Oracle 数据库的支持，建议通过 Halo 的备份功能导出数据，并切换为其他数据库。\u003C\u002Fp>\n\u003Ch2 dir=\"auto\">新特性\u003C\u002Fh2>\n\u003Cul dir=\"auto\">\n\u003Cli>新增取消订单功能，管理员和用户均可取消未支付的订单，取消后自动恢复库存和取消待支付的支付会话（商城版）\u003C\u002Fli>\n\u003Cli>微信支付新增公钥模式支持，可在支付方式配置中填写平台公钥和公钥 ID 来启用，留空则继续使用平台证书自动管理模式（商城版）\u003C\u002Fli>\n\u003Cli>为电商产品添加全文搜索支持（商城版）\u003C\u002Fli>\n\u003Cli>支持自动取消未支付订单（商城版）\u003C\u002Fli>\n\u003Cli>支持外链商品打开商品详情页（商城版）\u003C\u002Fli>\n\u003Cli>支持优惠券和折扣码功能（商城版）\u003C\u002Fli>\n\u003Cli>新增产品规格模板功能（商城版）\u003C\u002Fli>\n\u003Cli>支持商城业务的邮件通知（商城版）\u003C\u002Fli>\n\u003Cli>支持管理员删除非活跃订单（商城版）\u003C\u002Fli>\n\u003Cli>个人中心的订单页面支持显示支付倒计时（商城版）\u003C\u002Fli>\n\u003Cli>支持在表格中拖动调整行高 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002FLIlGG\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002FLIlGG\">@LIlGG\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4468079597\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10004\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10004\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10004\">halo-dev\u002Fhalo#10004\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>添加默认的用户协议和隐私政策页面 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4427769409\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9988\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9988\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9988\">halo-dev\u002Fhalo#9988\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>支持为注册页面添加同意条款 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4412218470\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9978\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9978\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9978\">halo-dev\u002Fhalo#9978\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>附件选择界面支持全选当前页 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4392255186\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9960\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9960\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9960\">halo-dev\u002Fhalo#9960\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 dir=\"auto\">功能优化\u003C\u002Fh2>\n\u003Cul dir=\"auto\">\n\u003Cli>优化 SQL 脚本，提升数据库兼容性（商城版）\u003C\u002Fli>\n\u003Cli>优化 Console 端产品分类的封面样式（商城版）\u003C\u002Fli>\n\u003Cli>重构 Console 端产品管理的状态筛选 UI（商城版）\u003C\u002Fli>\n\u003Cli>两步验证支持自动提交 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4492781526\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10016\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10016\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10016\">halo-dev\u002Fhalo#10016\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>改进备份恢复失败的错误信息，通过提供更具体的提示来识别格式错误或不兼容的备份文件 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4427282609\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9987\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9987\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9987\">halo-dev\u002Fhalo#9987\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>将编辑器拖拽时的预览组件调整到鼠标右下角 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002FLIlGG\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002FLIlGG\">@LIlGG\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4425970083\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9985\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9985\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9985\">halo-dev\u002Fhalo#9985\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>附件存储策略和分组选择表单项支持管理功能，方便在不打断流程的情况下新建存储策略和分组 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4404958375\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9966\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9966\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9966\">halo-dev\u002Fhalo#9966\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>在主题\u002F插件的上传和远程下载界面添加安全提示 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4389154877\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9956\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9956\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9956\">halo-dev\u002Fhalo#9956\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>优化默认搜索引擎的关键词兼容性 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4426927053\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9986\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9986\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9986\">halo-dev\u002Fhalo#9986\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Console 端插件列表的关键词搜索改为前端搜索，以获得更及时的搜索反馈 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4611485977\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10058\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10058\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10058\">halo-dev\u002Fhalo#10058\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>主题管理列表支持显示预览图 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4572796793\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10049\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10049\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10049\">halo-dev\u002Fhalo#10049\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>为控制台的按钮组件增加点击反馈 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4537761285\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10037\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10037\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10037\">halo-dev\u002Fhalo#10037\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>为个人中心 - 消息通知列表新增批量选择功能 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002FEccent001\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002FEccent001\">@Eccent001\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4468324004\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10006\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10006\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10006\">halo-dev\u002Fhalo#10006\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>添加对 TOTP 双因素认证的速率限制 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Feddieran\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Feddieran\">@eddieran\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4410935437\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9973\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9973\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9973\">halo-dev\u002Fhalo#9973\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 dir=\"auto\">问题修复\u003C\u002Fh2>\n\u003Cul dir=\"auto\">\n\u003Cli>修复购物车数量限制绕过问题（商城版）\u003C\u002Fli>\n\u003Cli>修复复制产品可能会出现失败的问题（商城版）\u003C\u002Fli>\n\u003Cli>修复预览文章不支持通过自定义模板渲染的问题 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4530263536\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10032\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10032\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10032\">halo-dev\u002Fhalo#10032\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>为记住登录状态添加 token 旋转冷却期（默认 5 分钟），减少因多设备并发请求导致的 CookieTheft 误判，并增加 info 级别诊断日志。 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002FJohnNiang\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002FJohnNiang\">@JohnNiang\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4487994202\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10014\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10014\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10014\">halo-dev\u002Fhalo#10014\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>抑制表单绑定异常（WebExchangeBindException）的完整堆栈日志输出，防止日志泛洪 DoS 攻击。 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002FJohnNiang\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002FJohnNiang\">@JohnNiang\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4476565864\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10011\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10011\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10011\">halo-dev\u002Fhalo#10011\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>解决编辑器中无法一次撤销多张图片且会导致图片重复上传的问题。 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002FLIlGG\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002FLIlGG\">@LIlGG\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4419566460\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9983\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9983\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9983\">halo-dev\u002Fhalo#9983\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>解决在编辑器中拉选多行时导致的滚动过快的问题 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002FLIlGG\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002FLIlGG\">@LIlGG\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4411354747\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9974\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9974\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9974\">halo-dev\u002Fhalo#9974\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>修复发送邮箱验证码接口的限流绕过漏洞 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002FJohnNiang\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002FJohnNiang\">@JohnNiang\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4388464505\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9949\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9949\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9949\">halo-dev\u002Fhalo#9949\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>修复在文章内容未修改时切换「自动生成摘要」设置后摘要未重新生成的问题 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4546848137\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10042\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10042\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10042\">halo-dev\u002Fhalo#10042\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>修复“记住我”功能在并发请求场景下可能抛出 CookieTheftException 导致所有 Token 被删除的问题 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002FJohnNiang\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002FJohnNiang\">@JohnNiang\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4468290905\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10005\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10005\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10005\">halo-dev\u002Fhalo#10005\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 dir=\"auto\">开发者相关\u003C\u002Fh2>\n\u003Cul dir=\"auto\">\n\u003Cli>支持通过主题扩展 Console 和 UC 的页面 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4596121415\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10053\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10053\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10053\">halo-dev\u002Fhalo#10053\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>为主题新增 \u003Ccode class=\"notranslate\">postFinder.cursorByCategory()\u003C\u002Fcode>，支持在分类中导航 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4411684381\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9977\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9977\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9977\">halo-dev\u002Fhalo#9977\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>主题支持通过 \u003Ccode class=\"notranslate\">#halo.matchVersion('&lt;version&gt;')\u003C\u002Fcode> 判断 Halo 版本范围 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4388543925\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9951\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9951\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9951\">halo-dev\u002Fhalo#9951\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>FormKit Secret 支持设置描述预设文本 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4508485232\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10027\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10027\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10027\">halo-dev\u002Fhalo#10027\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>插件默认从 resources\u002Fui 读取前端资源，console 目录将继续兼容 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4475920738\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10010\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10010\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10010\">halo-dev\u002Fhalo#10010\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>将 HttpSecurityUtils 移入 api 模块，供插件使用 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002FJohnNiang\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002FJohnNiang\">@JohnNiang\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4619541017\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10061\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10061\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10061\">halo-dev\u002Fhalo#10061\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>支持使用 ui-plugin-bundler-kit 构建主题 UI 插件 bundle by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4611272130\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10057\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10057\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10057\">halo-dev\u002Fhalo#10057\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>支持通过插件为 FormKit 编写表单类型 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4596159059\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10054\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10054\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10054\">halo-dev\u002Fhalo#10054\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>主题管理列表支持显示预览图 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4572796793\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10049\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10049\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10049\">halo-dev\u002Fhalo#10049\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>在主题管理中删除主题时支持判断主题是否处于开发中，防止在本地开发主题时误删除 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4467719768\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10003\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10003\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10003\">halo-dev\u002Fhalo#10003\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>FormKit select 类型的选项支持设置图标和描述 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002Fruibaby\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002Fruibaby\">@ruibaby\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4639366300\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F10076\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10076\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F10076\">halo-dev\u002Fhalo#10076\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>","https:\u002F\u002Fgithub.com\u002Flxware-dev\u002Fhalo-pro\u002Freleases\u002Ftag\u002Fv2.25.0",0,"2026-06-12T06:43:01Z","2026-06-12T05:58:42Z","ruibaby","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F21301288?v=4","2026-06-12T06:46:20.053Z",{"previous":19},{"id":20,"owner":5,"repo":6,"release_id":21,"tag_name":22,"name":23,"body":24,"html_url":25,"draft":12,"prerelease":12,"published_at":26,"created_at":27,"author_login":15,"author_avatar_url":16,"updated_at":28},459,315071918,"v2.24.2","2.24.2","\u003Ch2 dir=\"auto\">功能优化\u003C\u002Fh2>\n\u003Cul dir=\"auto\">\n\u003Cli>提升登录设备管理中 UA 信息解析的准确性 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002FJohnNiang\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002FJohnNiang\">@JohnNiang\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4324288934\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9921\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9921\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9921\">halo-dev\u002Fhalo#9921\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 dir=\"auto\">问题修复\u003C\u002Fh2>\n\u003Cul dir=\"auto\">\n\u003Cli>解决“保持登录会话”功能在特定情况下可能失效的问题 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002FJohnNiang\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002FJohnNiang\">@JohnNiang\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4341747811\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9928\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9928\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9928\">halo-dev\u002Fhalo#9928\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>修复通过 URL 下载大文件（如插件安装包）时因响应体大小限制导致下载失败的问题 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002FJohnNiang\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002FJohnNiang\">@JohnNiang\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4344492361\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9931\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9931\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9931\">halo-dev\u002Fhalo#9931\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>修复通过 PostFinder#random 随机获取文章时可能返回少于请求的文章的问题 by \u003Ca class=\"user-mention notranslate\" data-hovercard-type=\"user\" data-hovercard-url=\"\u002Fusers\u002FJohnNiang\u002Fhovercard\" data-octo-click=\"hovercard-link-click\" data-octo-dimensions=\"link_type:self\" href=\"https:\u002F\u002Fgithub.com\u002FJohnNiang\">@JohnNiang\u003C\u002Fa> in \u003Ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"4344730645\" data-permission-text=\"Title is private\" data-url=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fissues\u002F9932\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9932\u002Fhovercard\" href=\"https:\u002F\u002Fgithub.com\u002Fhalo-dev\u002Fhalo\u002Fpull\u002F9932\">halo-dev\u002Fhalo#9932\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>","https:\u002F\u002Fgithub.com\u002Flxware-dev\u002Fhalo-pro\u002Freleases\u002Ftag\u002Fv2.24.2","2026-04-29T08:38:01Z","2026-04-29T08:25:52Z","2026-04-29T08:41:59.973Z",{"completed":30},true]