Skip to content

docs: 契约同步到 #1595 合并后的 preview 提交并补全后端指南 - #7

Merged
xiaoyumuxi merged 1 commit into
mainfrom
sync/1595-merged-preview
Oct 30, 2026
Merged

xiaoyumuxi merged 1 commit into
mainfrom
sync/1595-merged-preview

Conversation

@xiaoyumuxi

Copy link
Copy Markdown
Contributor

补上 #6 漏掉的合并后同步。#6 合入时契约还固定在 1lck/Lithe-IDEA#1595 的中途 head f20601ee6;#1595 在那之后又推送了提交,并于 2026-10-30 以 9175bd734 合入 preview。本 PR 把契约同步到这个合并提交,并按新增内容更新指南。

1. 契约同步(contract/v1、contract.lock.json)

  • 运行 node scripts/contract.mjs sync --revision 9175bd73431aec5086f1fe4c532be54fc49ba4e8,从 56 个文件变为 57 个。
  • 相对 f20601ee6 的契约变化:
    • 公共宿主方法(协议 3,仅 macOS 宿主实现):documents/*、editor/*(读取、编辑、打开、定位)、workspace/readDirectory|stat|readFile|watch|findFiles|findText、preview/openHTML、browser/openExternal、window/show*,以及各自的参数、上限、取消语义和重试规则。
    • 9 个新权限:workspace.files.read、workspace.files.watch、workspace.search、documents.read、editor.edit、editor.open、preview.open、browser.open、window.messages。
    • 新授权在 hostServices 里使用完整方法名;旧的 workspace 授权仍然只能访问元数据,不能读文件。
    • ui 4 纯后端命令:命令可以不写 toolWindowID,toolWindows 可以为空;schema 里去掉了 ui.toolWindows 必填、minItems: 1 和命令的 toolWindowID 必填。新增 fixture command-backend.plugin.json。
    • getCapabilities.limits 新增 hostRequestBytes 和 hostResultBytes;function-protocol.json 新增 3 个授权边界用例。
  • 合并之后 preview 上的契约没有再变化(对 preview 运行 drift,结果是无漂移)。

2. 指南 guides/plugin-backend-workspace.md

  • getCapabilities 示例里的 limits 补上两个新字段。
  • 第 2 节:只要命令、不要工具窗口时,声明 requires.ui: 4。
  • 第 7 节新增“纯后端命令(ui 4)”小节:清单片段、所需权限和激活事件、旧宿主的行为;并说明 didRun 只是事件,不代表命令已经执行成功。
  • 新增第 8 节“文档、文件与窗口方法”:方法和权限对照表;仅 macOS 实现;workspace.metadata 不授权读文件;坐标约定、128 KiB 和 1,000 项上限;取消或超时不代表已回滚;各失败码怎么重试;消息的频率限制。
  • 原第 8~10 节顺延为第 9~11 节,文中的交叉引用同步更新;验证一节补上新 fixture。
  • README 教程表里这篇指南的描述同步更新。

没有改的

验证(本地)

  • node --test scripts/*.test.mjs:15 个全部通过。
  • node scripts/contract.mjs verify --upstream:57 个文件与 9175bd734 一致。
  • node scripts/contract.mjs drift --ref preview:无漂移。
  • SDK 端到端测试由本 PR 的 CI 运行。

#6 合入时契约仍固定在 #1595 的中途 head f20601ee6,未包含之后推送的
公共宿主方法、ui 4 纯后端命令和 hostRequestBytes/hostResultBytes 上限。
现同步到合并提交 9175bd734,并在指南中补上对应说明。
@xiaoyumuxi
xiaoyumuxi marked this pull request as ready for review October 30, 2026 15:58
@xiaoyumuxi
xiaoyumuxi merged commit 81b8b6b into main Oct 30, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant