github router-for-me/EasyCLIProxyAPI v0.3.95

one hour ago

English

Added

  • Tag filtering is now a single row plus a floating multi-select panel: on both the ECPA featured page and the plugin store page the tag filter takes one line, and any remaining tags move behind a chevron at the end of the row. Opening it shows a panel above the cards where several tags can be checked at once (the results are the union of the selected tags), and the plugin grid below never gets pushed down. The panel opens upward when space is short, scrolls internally when there are many tags, and never cuts off its last row of options.

Improved

  • The featured plugin grid now appears in one pass: the featured page waits for both the registry and the plugin store list before rendering its cards, and shows a single centred loading placeholder in the meantime, so the grid no longer draws skeletons that fill in later.
  • Card height no longer changes with the loading state: the install button keeps a fixed-width slot, so switching between Install, Installing and Update does not resize the card, and the inline "loading the plugin list" strip is gone.
  • The plugin store page now matches the featured page: store cards use the same structure (icon, name and ID, version badge in the top right, description, author and licence, tags, then a divider and the action row), with the same Copy plugin ID, Open link and primary action on the right. The store toolbar is now a single row of search, development guide and refresh, only one button more than the featured page; the wrap-prone status dropdown, check updates and local install controls were removed from it.
  • The plugins-disabled notice is a short toolbar pill: instead of a full-width banner breaking up the page, a global disable now shows as a compact note in the toolbar with the full sentence in its tooltip.

Fixed

  • Reverse proxy settings were lost after a restart: the settings were only written into the kernel configuration, which is regenerated on every kernel start and could overwrite them. They are now stored in the GUI configuration, and saving also updates the in-memory state so an unrelated configuration save cannot serialize them away.
  • Reverse proxy settings were lost while migrating between the kernel and GUI configurations: the migration now updates the file and the in-memory state in the same step, removes the kernel copy only after both writes succeed, and keeps the original values for a retry when a write fails.
  • Stale reverse proxy start errors: a successful start now clears an earlier bind or restore error, so a running listener is never shown next to an old failure.

简体中文

新增

  • 标签筛选改为单行 + 悬浮多选面板:ECPA 精选页和插件商店页的标签筛选默认只占一行,超出的标签收进行尾的下拉箭头里。点开后在卡片上方浮出选择面板,可同时勾选多个标签(勾选结果取并集),面板不会把下方的插件列表往下推。面板在空间不足时会向上展开,标签较多时在面板内滚动,最后一行的选项不会被截断。

优化

  • 精选插件首屏一次成形:精选页会等注册表和插件源列表都返回后才渲染卡片网格,加载期间只显示一个居中的加载占位,不会再出现「先画卡片骨架、数据回来后再补内容」的跳动。
  • 卡片高度不再随加载态变化:卡片里的安装按钮使用固定宽度槽位,文案在「安装 / 安装中 / 更新」之间切换时不会撑开卡片,也不再插入「正在加载插件列表…」的提示条。
  • 插件商店页面与精选页对齐:商店卡片改成和精选页相同的结构(图标、名称与 ID、右上角版本徽标、描述、作者与协议、标签、底部分隔线加操作条),操作条同样是「复制插件 ID / 打开链接 / 右侧主按钮」。商店工具栏收敛为「搜索 + 开发指南 + 刷新」一行,仅比精选页多出开发指南;原先夹在中间、会换行的下拉选择器、检查更新和本地安装按钮已移出工具栏。
  • 插件停用提示改为工具栏小胶囊:插件全局停用时不再插入一整条横幅打断页面结构,改为工具栏里的短提示,完整说明放在悬停提示里。

修复

  • 反向代理设置重启后丢失:反向代理设置此前只写在会随内核启动重新生成的内核配置里,重启后可能被覆盖。现在改为保存在 GUI 配置文件中,并在保存时同步内存状态,避免一次无关的配置保存把它序列化掉。
  • 反向代理设置在内核配置与 GUI 配置之间迁移时丢失:从内核配置迁移到 GUI 配置的过程改为在同一步内同时更新文件与内存状态,只有两处写入都成功后才从内核配置中移除,写入失败时保留原值并在下次启动重试。
  • 反向代理启动错误残留:启动成功后清除之前的绑定或恢复错误,避免界面一边显示「运行中」一边挂着旧报错。

Don't miss a new EasyCLIProxyAPI release

NewReleases is sending notifications on new releases.