Skip to content

ref(runtime): 统一 Web App 与 Peer 命名 - #69

Merged
xiaoland merged 5 commits into
mainfrom
feat/app-peer-naming
Nov 5, 2026
Merged

xiaoland merged 5 commits into
mainfrom
feat/app-peer-naming

Conversation

@xiaoland

@xiaoland xiaoland commented Nov 4, 2026 •

Copy link
Copy Markdown
Member

浏览器应用此前以 client-web 命名,Registry 的安装交接也使用 client_origin,容易被理解为固定的 Client–Server 角色。本 PR 统一采用 Web App / Peer 语言,并保留已部署应用和已发布产物需要的兼容。

变更

  • runtimes/client-web → runtimes/web;包名改为 @inkcre/extension-runtime-web,正式标签/资产改为 runtime-web-v<version> / inkcre-extension-runtime-web-<version>.tgz。工作区、构建、合同生成、发布及维护文档同步迁移。
  • Registry 目录、详情与安装链接使用 app_origin。旧 client_origin 仅作为入站别名保留,两者使用相同校验;双参归一化后不一致返回 400。新输出统一采用 app_origin。
  • HTTP、S3、Registry 读取器和生成 SDK 中的真实协议 client 术语保持准确。公开 Runtime API、Peer 身份、module_federation 标识与已有内容均无迁移。
  • Registry 提供 Towncrier fragment;Web Runtime 提供 Changeset。新增名称的发布等待 Version PR 消费 Changeset,避免在旧版本号下提前创建新发布。

验证

在独立 worktree、Node 22 / Python 3.13 下完成:

  • PDM 与 pnpm frozen 安装;release intent、生成合同、Web 样式/语法检查通过。
  • Ruff lint/格式、Prettier、Pyright(0 errors)、TypeScript 类型检查通过。
  • 新的受控 HTTP 用例覆盖新/旧 origin、双参同值、冲突、默认值、非法目标和长度限制;没有真实数据库或外部服务。
  • 三份 Python wheel、Web Runtime 构建与真实 Core SDK 的局部 HTTP 边界通过;独立 wheel 安装、依赖和 Toolkit CLI 检查通过。
  • 实际打包得到新名称 TGZ,源码及类型导出完整;git diff --check 通过。

按用户要求未执行本地 E2E、Registry 数据库旅程或浏览器验收。云端 CI 按正常流程运行;模拟边界不替代真实部署验收。

发布顺序与回滚

已发布 runtime-client-web-v0.4.2 及旧包 TGZ 保持不可变。新名称产物发布前,impl-ts 可用新 dependency/import key 指向现存的精确旧 TGZ;这是安装别名,不代表新包已经发布。新 runtime-web-v<version> 产物经 protected-main 发布并验证后,再更新消费 URL 和完整性锁。

Web App 过渡期可同时发送同值 app_origin 与旧别名,使任意部署先后顺序都能保持返回目标。旧别名移除须等待部署准入,不在此次删除。

本 PR 没有数据库 migration,不变更生产资源、凭据或已发布资产。回滚可恢复此前 Registry 镜像与包依赖;新的独立包名不会覆盖旧产物。

主要源码提交为 1bbbad7,安全依赖及 origin 规范化修复随后纳入。最终共享引用提交 9c90d6c 指向已合并的 Hub main 17fc19e7230187a7a989815e7b8303bbb380f478,共享引用检查已通过。

直接基于 origin/main,无同仓父/子 PR。共享命名契约:InKCre/docs#56;跨仓跟踪:InKCre/docs#55。用户授权后,本 PR 已于 2026-11-05 正常 squash 合并为 2a03bbb05e02fb7e9841149aa5bcb88a12e94fe9。后续 Runtime Version PR、正式产物准入及 Registry preview 环境恢复继续由关联跟踪项管理。

云端审查修复

首次 Dependency review 将移动后的 manifest 视为新增,识别出原有 Zod 4.1.12 的高危 GHSA-mrhx-c7xc-m3w5。已把 Web Runtime 直接依赖固定到修复版 4.6.6 并更新锁文件,没有豁免或弱化审查规则。升级后 frozen 安装、生成绑定、类型、Runtime 构建及真实 SDK 的受控 HTTP 边界再次通过;当前 head 的云端结果以 Checks 为准。

独立兼容审查后补齐 origin 规范化:主机名大小写、HTTPS 443 / HTTP 80 等价目标不再产生双参冲突,IPv6 方括号和非默认端口保留。受控 HTTP 用例与 Python 类型/lint 检查已通过。

源码候选 bc60168 的 Registry checks 全部通过,包括 Dependency review、仓库/数据库合同、迁移完整性、CPython 镜像构建与实际镜像 HTTP/数据库检查。未执行本地 E2E。

Preview 环境限制

当前源码检查通过,但 preview 运行 未交付:已成功构建并加载精确 bc60168 镜像,Heroku 创建隔离应用的 POST /apps 返回 401 Unauthorized。流程在创建应用处停止,尚未创建本 PR 的数据库分支或运行应用。这不是已完成的在线验收环境。

本 PR 未修改 scripts/registry_preview.py 或 preview workflow;10 月 31 日 PR #68 的运行 已在相同请求处出现同样的 401。现有证据表明 preview 环境的 Heroku 认证/应用创建权限被拒绝,不能据此进一步断言密钥过期或是哪项账户策略。

恢复由维护者更新 preview 环境 HEROKU_API_KEY 的有效性与创建隔离应用权限,然后重跑失败 job:gh run rerun 41846347553 --repo InKCre/ext-reg --job 126631318050。若构建产物已过保留期,则重跑完整 preview run 以重新构建精确提交。此次没有改生产配置、凭据或保护规则,也未用无效凭据反复重试。

合并前 head 9c90d6c 的 Registry checks 全部通过,包含 required ext-reg checks 与 Dependency review。合并采用普通 squash,保留既有检查和分支规则。

codex-check added 2 commits November 4, 2026 22:08
- 迁移 Web Runtime 目录、包名、发布标签和构建引用
- 以 app_origin 交接安装目标并兼容旧链接,拒绝双参冲突
- 发布等待 Changeset 版本准备,保留已发布旧产物与协议客户端术语
- 消费已推送的 Hub 命名边界与兼容说明
@xiaoland xiaoland moved this to Review / acceptance in InKCre Current Work Nov 4, 2026
- Web Runtime 固定修复版本 4.6.6,并重新验证 SDK 与生成合同兼容
- 保持依赖审查规则,记录目录迁移暴露的既有安全问题
@xiaoland
xiaoland force-pushed the feat/app-peer-naming branch from 22c52b9 to 02cb682 Compare November 4, 2026 14:13
- 同一 origin 的主机大小写与默认端口使用同一交接目标
- 保持 IPv6 方括号和非默认端口,补充新旧参数受控 HTTP 用例
- 引用 Hub main 的 17fc19e,纳入正式合同与观测修复
@xiaoland
xiaoland marked this pull request as ready for review November 5, 2026 09:47
@xiaoland
xiaoland merged commit 2a03bbb into main Nov 5, 2026
2 checks passed
@github-project-automation github-project-automation Bot moved this from Review / acceptance to Done in InKCre Current Work Nov 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant