Skip to content

perf(build): make core builds independent and reuse verified web assets - #201

Merged
tiammomo merged 1 commit into
mainfrom
tiammomo/build/199-explicit-web
Nov 2, 2026
Merged

tiammomo merged 1 commit into
mainfrom
tiammomo/build/199-explicit-web

Conversation

@tiammomo

@tiammomo tiammomo commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

关联 Issue

Closes #199

问题与改动

核心 source/editable/wheel 构建不再安装或运行前端。网页改为显式准备与打包,Web HTTP 依赖放入 web extra。前端准备校验内容摘要,复用接口未变化的 bundle 和 API 类型,构建与测试共用 TypeScript 增量信息;CI 缓存按锁文件校验的 npm 下载。

验证

在无凭据、非 root、禁网的加固容器内执行:

uv run --locked --offline --no-sync python -W error::ResourceWarning -m unittest discover -s tests -v
896 tests passed
ruff check .
ruff format --check .
uv run --locked --offline --no-sync python scripts/build_frontend.py --check

另行完成 core/web wheel 与 sdist-to-wheel 构建、归档一致性检查、安装后 CLI/资源哈希检查、20 个确定性 benchmark。三次本机中位数:核心 editable 构建 3.5161→0.1124 秒;接口不变的后端修改 3.3411→0.3820 秒;前端组件修改 3.2949→2.0053 秒。测量范围及冷构建结果见 docs/releases.md,不代表整个 PR 流程或线上 CI 的提速。

风险与兼容性

普通 uv build 默认产出 core;网页需显式准备、REPOSTEWARD_BUILD_WEB=1 uv build,安装时选择 web extra。无数据库迁移或协议版本变更。资源损坏、源码中途变化仍失败。发布、身份、隔离验证门禁保留;CI 文件改动通过与 Issue/base/最终文件 SHA256 绑定的本地工作流审批。

自动化辅助

Codex 完成实现、差异审查及验证。仓库所有者在会话中明确授权优化、发布和合入远程 main;尚无独立 GitHub reviewer 的批准记录,不将工具执行冒称为另一人的人工审阅。

Checklist

  • PR 只解决一个已讨论的 Issue,没有捆绑无关改动。
  • 我已检查完整 diff,且没有凭据、账号缓存、数据库、运行日志或本机路径。
  • 我已运行相关测试、完整测试、lint、格式检查和构建,或准确说明未运行项。
  • 新行为有回归测试;无法自动测试时已说明原因。
  • 文档、示例、JSON Schema 和迁移已与行为同步,或不适用。
  • 没有绕过人工提交确认、GitHub 身份校验或隔离验证边界。

Signed-off-by: tiammomo <26957354+tiammomo@users.noreply.github.com>
@tiammomo
tiammomo marked this pull request as ready for review November 2, 2026 16:39
@tiammomo
tiammomo merged commit 472d9e6 into main Nov 2, 2026
1 check passed
@tiammomo
tiammomo deleted the tiammomo/build/199-explicit-web branch November 2, 2026 16:44
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.

refactor(build): make frontend preparation explicit and keep core source builds independent

1 participant