Skip to content

contract: 同步到 Lithe@bb61147,Node SDK 支持 litheVcs(Lithe #827) - #1

Merged
xiaoyumuxi merged 1 commit into
mainfrom
sync/827-vcs-provider
Oct 23, 2026
Merged

xiaoyumuxi merged 1 commit into
mainfrom
sync/827-vcs-provider

Conversation

@xiaoyumuxi

@xiaoyumuxi xiaoyumuxi commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

背景

主仓库 1lck/Lithe-IDEA#1430 已合入 preview(18345cc),在 Rust Core 里实现了插件 VCS Provider 的底层(API 3 vcsProviders、litheVcs 协商、lsp.vcsRequest 等)。这个 PR 原本还包含 Node SDK 的改动,但 #1442 已经把 SDK 移出主仓库,所以这部分改动迁到这里提交。

改动

契约副本

  • 用 node scripts/contract.mjs sync 同步,没有手工改动;锁定到 #1441 合入后的 preview bb61147(契约内容与 #1430 合入时的 18345cc 相同)。
  • contract/v1/README.md、plugin-manifest.schema.json 增加 API 3 的 vcsProviders 能力;新增 fixture vcs-provider.plugin.json。

Node SDK

  • backend.vcs(id, handlers, traits):声明 VCS Provider 的处理函数,按声明了哪些处理函数来协商 litheVcs 能力。status、baseContent、checkin、rollback 是必需的,其余 7 种可选;git 是保留 ID。
  • VCS 处理函数里的 context.run 会自动发出 lithe/vcs/execution 执行报告,只带命令行、退出码、耗时和截断后的 stderr,不带 stdout;可以用 { report: false } 关掉。
  • 新导出 VCS_ERRORS、isVcsId;protocol.mjs 新增 VCS_VERSION、VCS_OPERATIONS 等常量;补齐类型声明 index.d.ts。
  • README 新增“A VCS provider”一节。VCS 契约在主仓库 shared/contracts/vcs-provider-v1.md,不在契约副本范围内,所以写成绝对链接。

示例与测试

  • sdk/node/examples/sample-vcs:一个把修订存在 JSON 文件里的玩具 VCS,不需要任何 VCS 客户端。
  • sdk/node/test/vcs.test.mjs:能力协商、ID 规则、声明校验、错误码映射、执行报告。原测试读主仓库的 shared/fixtures/vcs/model-v1.json,这个文件不在契约副本里,因此改成在测试里写出那 11 种能力,并注明来源;和 Core 是否一致由端到端场景兜底。
  • sdk/e2e/plugin_sdk/vcs.rs:经真实 Core 会话跑通示例的协商和全部 11 种操作。

验证

  • node --test sdk/node/test/*.test.mjs:43 项通过
  • node --test scripts/*.test.mjs:13 项通过
  • node scripts/contract.mjs verify:28 个文件与 bb61147 一致
  • node scripts/sdk-e2e.mjs --ref bb61147…:Java 示例、Node 构建示例、Node VCS 示例三个端到端场景全部通过

… P1)

- 契约副本同步到 #1430 合入后的 preview(18345cc):README 与 schema 增加 API 3 的
  vcsProviders,新增 fixture vcs-provider.plugin.json
- Node SDK:backend.vcs(id, handlers, traits) 按声明的处理函数协商 litheVcs 能力;
  VCS 处理函数里的 context.run 自动发出 lithe/vcs/execution 执行报告;导出 VCS_ERRORS、isVcsId
- 新增示例 sdk/node/examples/sample-vcs(修订存在 JSON 文件里的玩具 VCS)与单元测试 vcs.test.mjs
- 端到端:sdk/e2e/plugin_sdk/vcs.rs 经真实 Core 会话跑通示例的协商和全部 11 种操作
- 这部分原在 Lithe #1430,#1442 把 SDK 移出主仓库后迁到这里
@xiaoyumuxi
xiaoyumuxi merged commit 22fead7 into main Oct 23, 2026
4 checks passed
@xiaoyumuxi xiaoyumuxi changed the title contract: 同步到 Lithe@18345cc,Node SDK 支持 litheVcs(Lithe #827 P1) contract: 同步到 Lithe@bb61147,Node SDK 支持 litheVcs(Lithe #827) Oct 23, 2026
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