[P1] 把 WASM 源码编译变成可诊断、可复现的产物流程
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 1h 26m
- Merged PRs (30d)
- 6
Description
用户问题与代码依据
server.mjs compileWasm 在控制面调用本机 rustc/moon;starter 与 Hoya ABI 不同;WASM 执行不使用用户 JSON 输入。
评估基线:2026-09-06,Hosta 666eca9 / Hoya 2234baa。此项记录待实现目标,不表示已完成。
验收标准
- 采用 Hoya ABI v1 示例,记录源码、工具链、编译参数、artifact hash 和构建日志,执行只传固化产物。
- 编译工具缺失、语法错误和 ABI 不兼容以稳定错误码、构建日志和修复建议通过 API/CLI 返回;不支持的语言在能力发现中明确禁用。
- 构建使用隔离且有时间/CPU/内存/输出/并发上限的环境,和请求处理解耦;编译器不获得平台 secrets。
- Rust 完整 JSON 输入输出优先验收;MoonBit 经相同 fixture 验证后开启;全部构建、上传和执行可用命令行完成,无网页编辑器依赖。
归属与范围
归属:worktools/hosta。阶段:A1 · 开发者闭环。维护者已确认:CLI/API 优先,前期全命令行验收,UI 先只读展示,网页交互后续评估。沿用独立 Hoya 引擎与 Hosta 控制面边界;本项不扩展到多租户、计费、DAG 或全球调度。
依赖
下游验收
实施进展(2026-09-06)
PR #14 优先支持预编译 WASM 上传及内容 hash,提供实际依赖 JSON 输入的 Rust hoya_main 示例;源码编译默认关闭,仅受信本地开发可显式开启。隔离构建任务、编译元数据/工具链固化及 MoonBit ABI 验证仍未实现。
合并跟进(2026-09-06 10:22 CST)
Hosta #15 已合入 #14,#14 已合入 main(160f0d3),部署 CLI 与独立引擎接入均已进入主分支。Hosta main 的真实双运行时集成 CI 通过;Hoya #12/#13/#14 均已合并,最新 main Test 通过。无未解决审查意见。两仓库的 issue 中间导出已清理,构建/缓存忽略规则已补充。本项剩余验收继续按既定范围跟踪,不因首轮 PR 合并而提前关闭。
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at server.mjs compileWasm and review the Hoya ABI v1 example plus dependencies Y1 and Y6. Define the remaining CLI/API workflow around reproducible metadata, isolated resource-limited builds, stable diagnostics, and Rust JSON fixtures; done means the listed acceptance checks pass, with MoonBit enabled only after its fixture validation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust, typescript, wasm
- Domain
- api, build-system, cli, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100