Skip to content

Releases: qinfeng365/koishi-plugin-market-next

koishi-plugin-market-next 3.6.0

18 Jun 16:01

Choose a tag to compare

3.6.0

这是 3.6.0 正式稳定版,整合 3.6.0-alpha.1 到后续 alpha 测试期间完成的插件包、依赖管理、缓存、后台探测、头像缓存、过滤规则、前端模式和安全修复。正式版发布到 npm latest

插件包(Plugin Bundle)

  • 新增插件包能力,支持 koishi-plugin-pa-*@scope/koishi-plugin-pa-*market:package keyword 和 koishi.bundle 清单。
  • 插件包安装不走普通一键安装,改为专用确认 GUI,展示插件包自身、成员清单、required / optional、版本范围、安装状态、来源、风险提示、预设配置和最终 diff。
  • koishi.bundle v1 要求 members[].version 必填;缺失 version、自引用、非法包名和直接循环会被后端拒绝。
  • 插件包成员配置默认停用,预设配置必须用户确认后才写入,不会静默启用成员插件。
  • 安装插件包时会创建确定性插件包分组 group:pa-*,并在分组下创建成员配置副本。
  • 成员原本已存在根层级或其它分组配置时,默认保留原配置;只有用户显式选择时才移动已有配置。
  • 插件包归属记录写入 market-next 独立数据文件,用于依赖管理分组、成员来源展示、更新维护和卸载辅助。
  • 插件包卸载弹窗支持只卸载包自身、卸载包自身加成员、只清插件包分组配置、保留成员等策略。
  • 卸载插件包不会删除用户原本已有的根层级或外部分组配置;存在外部配置时,默认只清插件包分组下的配置副本。
  • 依赖管理页、市场“修改”面板、插件配置详情页和包分组入口统一使用插件包专用安装 / 维护 / 卸载流程。

依赖管理与安装安全

  • 依赖安装增加后端安装队列,避免连续点击安装 / 卸载 / 更新导致多个包管理器进程并发写入 lockfile 和 node_modules
  • 包管理器执行失败时回滚本次变更涉及的 dependencies 键,减少失败后 package.json 与实际安装状态不一致的风险。
  • npm 元数据 404 / not-found 负缓存链路修复:不存在的包不会反复冷查询,真实网络错误也不会误报成“版本不存在”。
  • market/registry 批量查询改为单包失败隔离;某个包超时或镜像未同步时,不再拖垮整批正常包的版本数据。
  • 普通安装、批量应用和插件包安装后的配置补齐失败会继续显式反馈,避免依赖装上但配置分组未写入还显示成功。
  • 插件包安装、普通卸载、批量应用和插件包卸载后的运行数据保存会等待后端确认,减少幽灵归属记录。
  • 前端安装断线处理收紧,普通安装遇到 Console 断开时不再直接当成成功,而是提示状态未知并要求刷新确认。

空闲后台探测与 F5 行为

  • 新增 Console 空闲后台探测:无人在线一段时间后自动探测市场索引与依赖 npm 元数据,更新缓存、latest 状态和路由统计。
  • 新增 idleProbeidleProbeDelayidleProbeBootDelayidleProbeInterval 配置,并持久化到 Koishi 配置树。
  • 浏览器 F5、WebSocket 重连和依赖页首次连接不再隐式触发 npm 元数据批量刷新;用户点击“刷新依赖”仍保持手动刷新语义。
  • 空闲探测不会伪装成手动刷新,不清空当前市场 payload,不清除市场源 cooldown。
  • 安装、卸载、更新依赖时会跳过空闲探测,避免后台任务干扰用户操作。
  • 热重载或禁用插件时会清理空闲探测 timer,避免残留后台任务。

路由、缓存和弱网容灾

  • market 与 npm registry 路由评分清理死分支,并避免 stale、dispose、race settle 等内部取消污染源评分。
  • market 备用源增加指数退避冷却,连续失败的源会临时跳过;手动刷新会清理冷却并重新尝试。
  • 插件销毁或刷新 supersede 时会 abort 正在进行的 market / npm 请求,减少热重载后的挂起请求。
  • 市场索引缓存从单个大 JSON 拆分为轻量主索引和分源缓存文件,降低 market-next-index.json 体积。
  • 旧版单文件缓存可继续读取,并会在后续写入时迁移为拆分结构。
  • HTTP 304、hash 命中和磁盘缓存恢复继续保留;网络失败但已有旧 payload 时不会清空市场列表。
  • npm registry 路由统计继续持久化,重启后保留历史平均耗时、最近成功和失败信息。

市场过滤、排序与展示

  • 删除插件评分相关 UI 和“按评分排序”入口,避免市场自动评分字段造成误导。
  • 卡片原评分区域改为“几天前更新 / 刚刚更新”,并补充创建 / 更新时间高级筛选。
  • 市场页新增创建时间、更新时间、最近 N 天内更新 / 创建等筛选条件。
  • 配置页新增永久静默过滤规则,可按预览版、不安全、插件包、创建/更新时间和自定义搜索条件隐藏插件。
  • 永久静默规则不会显示为市场搜索栏 token;市场左侧筛选仍作为临时条件使用。
  • 默认排序恢复为更稳定的市场内置排序,缺少排序字段时再用更新时间兜底,避免 default 与更新时间排序完全等价。

前端模式与体验

  • 前端显示模式继续区分 performancepolished,并修复切换后样式残留的问题。
  • frontendModedepsLayoutmarketLayout 等显示配置回到 Koishi 配置树,不再依赖 localStorage
  • 缺失显示配置时会自动生成性能模式默认配置,保证生产环境可预测。
  • 依赖管理页继续按状态分组:待应用、插件包、已下载未配置、可更新、已忽略、版本异常、工作区依赖、手动依赖和已安装。
  • 精致模式优化市场页、依赖页、插件包弹窗、浮层操作、滚动条、深色 / 纯黑主题和小屏布局;性能模式保持低动效高密度。
  • 修复多处黑框、白条、直角浮层、头像裁切、弹窗被分组滚动容器裁切和小屏无法滚动的问题。
  • 插件包图标、侧边入口、卡片徽标和重复“插件包”标识做了统一整理。

头像缓存

  • 维护者头像改为后端代理 + 身份 key 缓存,成功头像会缓存到 cache/market-next-avatars/
  • 头像缓存有 7 天 TTL、512 条上限和定期清理,避免缓存无限增长。
  • 新增 plugin.clear-avatar-cache 指令,可清理内存和磁盘头像缓存。
  • 头像代理限制协议、私网 / localhost 目标、响应类型和最大大小,避免头像 URL 造成 SSRF 或大文件下载。
  • 移除实验性的头像路由评分系统,避免单个用户无头像或默认头像把整个头像源错误打死。
  • 前端头像加载不再用成功后的 data URL 替换已显示外链,减少头像一闪一闪的问题。

数据存储与兼容

  • overrideupdateIgnoredbundleRecords 等运行数据迁移到 data/market-next.json
  • 插件配置项、显示模式、空闲探测和永久过滤规则仍保存在 Koishi 配置树。
  • 启动时兼容迁移旧配置中的 updateIgnoredbundleRecords
  • 后端配置节点查找修复,market-next 放在普通分组或 group:* 下时都能正确定位。
  • 配置页“删除配置”和“卸载依赖 / 插件包”文案继续区分,避免把删除配置误解为卸载 npm 包。

文档与发布

  • README 更新为 3.6.0 正式版说明,补充插件包、空闲探测、独立数据存储、市场过滤、头像缓存和发布流程。
  • npm run check:package 继续检查构建产物、CSS 兼容文件和插件包清单。
  • 发布 workflow 根据 semver 后缀自动选择 dist-tag;3.6.0 会发布到 latest

koishi-plugin-market-next 3.5.6

10 Jun 14:22

Choose a tag to compare

market-next 3.5.6 正式版,整合 3.5.6 alpha 系列验证内容。

主要内容:

  • 依赖管理页改为分组卡片工作台,增加搜索、筛选、摘要统计和待应用底部操作条。
  • 依赖卡片支持单击展开 / 收起、明确卸载入口、已下载未配置分组和添加配置入口。
  • 增加依赖更新忽略策略:可按时长/版本数忽略,也可永久不检测指定依赖更新。
  • 增加手动预发布过滤,避免 alpha / beta / rc 被误当作普通可更新目标。
  • 依赖版本刷新先显示本地快照,再后台刷新 npm 元数据。
  • npm 元数据 route probe 与单包慢源接管减少弱网等待。
  • market 与 npm registry 路由评分持久化,重启后继续使用历史延迟与成功记录。
  • 市场缓存增加 30 天过期清理,npm 元数据增加 5 分钟 not-found 负缓存。
  • 新增前端显示模式:默认性能模式,手动切换精致模式启用更丰富的样式和动效。
  • 市场页和依赖页支持 Ctrl+K / Cmd+K 聚焦搜索。
  • README 和 CHANGELOG 已整合正式版说明;alpha 版本日志保留。

验证:

  • npm run audit:package
  • npm run audit:high
  • npm run build
  • npm run check:package
  • npm pack --dry-run

koishi-plugin-market-next 3.5.5

08 Jun 11:30

Choose a tag to compare

market-next 的第一个正式 release。

主要内容:

  • 缓存优先显示与后台刷新。
  • 默认源优先自动路由,多源缓存,ETag / Last-Modified / hash 校验。
  • 无限滚动与弱网友好的 loading / stale 提示。
  • 安装后自动创建默认停用配置项,修复下载后配置页不显示的问题。
  • debug 模式将详细链路写入日志页,包含路由评分、缓存候选、请求/响应头、304、hash、JSON parse、route stats。
  • 内置 ChatLuna 只读插件市场查询 Tool。
  • README 完整重写,并补充 CI / 发布流程。

验证:

  • npm ci
  • npm run build
  • npm run check:package
  • npm run audit:package
  • npm run audit:high