每个浮屿版本给插件带来了什么,最新的在最前。插件要用某一版才有的东西时,按 initialize.capabilities 判断宿主有没有这项能力,或者在清单里写 minAppVersion;只给已有方法加的可选字段,旧版岛屿会忽略,不用判断。
npm 包 fuyu-plugin 和 create-fuyu-plugin 的版本单独标在括号里。
0.3.6
- 安装链接:
fuyu://market/install/<插件 id>打开插件市场并把这个插件置顶,官网插件页的「在浮屿中安装」按钮用的就是它,作者也可以放进 README。链接不会直接安装,用户照常确认。见 发布 · 安装链接。
0.3.5
- 改名为浮屿 / Fuyu(npm 包 0.5.0):清单
fuyu-plugin.json、忽略文件.fuyuignore、环境变量FUYU_PLUGIN_*、网页接口acquireFuyuApi()、CSS 变量--fuyu-*、链接fuyu://。旧名字照样认。npm 包改名为fuyu-plugin、create-fuyu-plugin,PowerShell 模块改名为Fuyu.Plugin,函数改名为*-Fuyu*(旧的*-Focusd*是别名)。插件市场换到TixXin/fuyu-plugins。见 改名前的名字。 - 收起条上的电池:
status.update多了batteries(最多 4 个{ level, tone? }),能力statusBatteries。见 岛上界面 · 电池。 - 页面大小统一:岛上所有页面,包括插件的自定义网页,都用用户在「外观」里设的面板大小。
webview页面的height/width不再改变岛的大小。 - 让 AI 帮你写插件(npm 包 0.6.0):
fuyu-plugin skill把给 AI 编程助手看的说明装进插件文件夹,脚手架建的新插件自带。见 快速开始 · 让 AI 帮你写。
0.3.4
- 提示的样式:
island.notify多了icon: "media"(正在播放的音乐软件的图标)和layout: "inline"(新消息面板里只有这一条时不带标题和卡片),能力notifyStyle。 - 提示上的播放按钮:
island.notify多了controls: "media",由岛屿在提示旁放上一首、播放 / 暂停、下一首,插件不需要media:control,能力notifyControls。见 岛上提示。 - 自定义网页不带卡片:
webview页面可以写frame: "none",直接画在岛上;这样的页面的颜色变量跟着岛屿的深浅底色。
0.3.3
- 收起条上的多个状态项:每个有文字的状态项都是收起条上的一个项目,用户在 外观 → 收起条上的项目 里排顺序、放左右、隐藏。以前只显示优先级最高的一个。
- npm 包 0.4.0:修好了 PowerShell SDK 在 Windows PowerShell 5.1 上
Receive-*Notification超时不生效的问题(靠超时做定时任务的插件会停住),用旧脚手架建的 PowerShell 插件请换上新的lib/文件;validate不再把optionalPermissions里的权限报成「没申请」;清单校验认识sounds和agentEffortLabels。
0.3.2
- 收起条上的列和小环:
status.update多了cells(最多 4 列{ label, value, tone? })和ring(0–1 的小进度环),能力statusCells。见 岛上界面 · 几列数字和进度环。 - 更多右键菜单:
contributes.menus新增clipboard/context、shelf/context、message/context,插件收到command { id, args: { item } }。用户亲手选的这一条不需要读取权限。 - 修改自己的设置:
settings.set { values },比如登录后把账号写进设置。 - 媒体控制:
media.nowPlaying多了canSeek、canNext、canPrevious、shuffle、repeat、volume;新方法media.cover、media.seek、media.setVolume、media.toggleShuffle、media.cycleRepeat。 - 文件中转和系统事件:事件
shelf.changed;不需要权限的system.locked/unlocked、system.suspended/resumed、system.idle/active,可以写进activationEvents,比如onEvent:system.resumed。 - Agent 页的强度名称:
contributes.agentEffortLabels,只有清单的插件就能用。见 清单。 - 按需启动的两处修正:岛屿启动后才启用的
onStartupFinished插件立即启动,不再等下次重启;用户改了待命插件的设置时启动它(activationEvent为onSettingsChanged)。 - npm 包 0.3.0 带上这些接口的 SDK 和模拟宿主支持。
0.3.1
- 读以前的待办和笔记:
todos.list和note.get接受{ date },过去的日子读归档;新方法todos.days { from, to },适合周报和完成率统计。 - 打开自己的页面:
island.openView { viewId },用户刚用过插件的 15 秒内展开岛屿并打开插件的页面,能力openView。 - 可选权限:清单
optionalPermissions和permissions.request,用到时再询问,能力permissions。见 可选权限。 - 调用记录:插件设置页列出最近 200 次请求的方法名和结果。
- 链接:激活事件
onUri和通知uri,网页打开fuyu://plugin/<id>/…时发给插件,适合登录回调。见 链接。 - 页面与快捷键:
view.patch可以删除(remove)和插入(add)条目;用户可以在 设置 → 快捷键 → 插件快捷键 里改插件命令的快捷键。 - 作者签名(npm 包 0.2.0):
keygen、pack --sign、sign、keys rotate。签了名的插件才会自动更新。见 作者签名。
0.3.0:插件 API 第 2 版
第 2 版插件在清单里写 "apiVersion": 2。第 1 版的插件行为不变。
- 岛上界面:
contributes.views(list、detail、form、status模板)和contributes.statusItems;view.update、view.patch、status.update和view.*通知。 - 自定义网页:
webview模板显示插件自己的网页,在单独的 WebView2 里运行,不能联网;webview.postMessage和webview.message。新示例dev.focusd.todo-ring。 - 事件与提示:
events.subscribe/unsubscribe和event通知;island.notify和notification.action。 - 快捷键与菜单:命令的
keybinding/when,待办右键菜单todo/context。 - 数据:
storage.*、secrets.*;敏感权限clipboard:read、messages:read、media:read、shelf:read、shelf:write(第一次使用时在岛上确认),以及media:control、agent-status:read、island:notify、secrets。 - 按需启动:
activationEvents、initialize.activationEvent、host.keepAlive;空闲 60 秒停止;插件进程树随插件结束;内存上限。 - 开发者工具:npm 包
fly-island-plugin(SDK、命令行、模拟宿主)和脚手架create-fly-island-plugin(0.5.0 起改名为fuyu-plugin、create-fuyu-plugin);岛屿的开发模式;experimentalApis。 - 插件市场:作者把插件包发在自己仓库的 Release,向市场仓库提 PR 上架;发布者信任、下架名单、后台检查更新和可选的自动更新。