feat: publish Dever core with project scaffolding and versioned AI skills

This commit is contained in:
Antigravity committed 2026-10-04 13:37:30 +00:00
1 parent 70fa73cdc2
commit ac458ffa7f
960 files changed
+221319 -1163

No files matched your search

@@ -0,0 +1,4 @@
{"file":".trellis/spec/backend/quality-guidelines.md","reason":"actual run/build、filesystem integrity 和 isolated executable tests"}
{"file":".trellis/spec/backend/error-handling.md","reason":"resource/Worker startup failure 必须保持 runtime fault"}
{"file":".trellis/spec/backend/directory-structure.md","reason":"build/runtime ownership 和 root test 位置"}
{"file":".trellis/tasks/09-29-external-lib-packaging/prd.md","reason":"打包子任务验收标准"}
@@ -0,0 +1,21 @@
# Design
## Build Graph
native specialization 保留所有生产 Adapter successors。构建器从可达 external Adapter 收集 locked environment,按 target 调用 ecosystem packager,得到 `{manifest, executable/runtime files, digests}`。相同 digest 的资源在应用资源表中 intern 一次。
## Embedded Resource Format
应用资源表包含 format/version/target/path/mode/length/SHA-256 和压缩 bytes。entry path 是 manifest 内部标识,不接受部署配置覆盖。生成程序启动时验证 resource table,再按需释放 selected Adapter 的完整 environment。
## Extraction
根固定为可执行文件同级 `data/cache/lib`。每个 digest 使用 `.staging-<pid>-<counter>` 私有目录,写入时拒绝 symlink、父级跳转和重复 path;逐文件 fsync/权限设置/摘要复核后原子 rename。已发布目录必须复核 manifest 和 entry digest,失败即报错,不原地修补。
## Package Resolution
Dever Package 发布内容保留 external declaration 和 requested Lib specs,不携带开发者机器的 lock/cache。应用项目统一解析所有直接与传递请求到自己的 `dever.lock`;每个 Adapter environment 独立,因此版本差异不需要强行全局合并。相同 artifact bytes 仍由机器 cache 和应用资源表去重。
## Output Contract
保持当前单个独立可执行文件合同。外部 runtime 增加体积但不改变命令;`dever build` 输出确定性 size report,避免把 Python/Node runtime 成本误认为 Dever 核心体积。
@@ -0,0 +1,4 @@
{"file":".trellis/spec/backend/toolchain-and-library.md","reason":"native build、cache、standalone output 和 runtime lifecycle"}
{"file":".trellis/spec/backend/compiler-contracts.md","reason":"closed Adapter reachability、effects 和 test fake"}
{"file":".trellis/tasks/09-06-private-compiler-distribution/prd.md","reason":"正式 target/runtime pack 与公开发行边界"}
{"file":".trellis/tasks/09-29-external-lib-ecosystems/design.md","reason":"locked environment 与 runtime pack 输入合同"}
@@ -0,0 +1,49 @@
# Implementation Plan
- [x] 扩展 native build graph,按可达 external Adapter 精确收集 locked environment;Adapter 声明 `lib "<ecosystem>:<name>@<version>"`,Program 导出去重后的精确请求,run/build 统一校验同一 lock。
- [x] 定义 target packager 输出和共享 embedded resource manifest。
- [x] 实现资源摘要、确定性排序和构建体积报告;当前 fixture 资源不做额外压缩。
- [x] 在 runtime 实现安全 extraction、复核、atomic publish、并发首次启动和清理。
- [x] 增加锁定依赖的传递闭包和 ArtifactStore 摘要/尺寸验证边界;Worker 启动前会拒绝缺失、环依赖或不完整 artifact。
- [x] 让 run/build 共用 Worker preparation owner,不形成开发/生产两套路径。
- [x] 实现 Python/JavaScript checked manifest、同名操作绑定、依赖/runtime 展开和受控启动;支持 Python 隔离、ESM/CommonJS、可信 SDK 优先加载。
- [x] 实现锁定 build pack 的受管 Go compile/link、目标文件选择、module ZIP、go:embed 和静态操作绑定;独立 Worker 只携带编译产物与合同。
- [ ] 交付正式签名语言 pack;自有 host-target Go pack 不代替六平台无宿主发行验收。
- [x] 把 Dever Package external requests 接入项目 lock resolution、source loading 和 package 更新检查;保留组件级所有权与无本地回退边界。
- [x] 保持 Adapter runtime selection;全部 checked exec 候选打包,只有 selected Worker 启动。
- [ ] 增加无系统 runtime 的隔离执行、资源篡改/中断/并发、Package 传递依赖和 test fake 回归(当前已覆盖资源完整性、路径逃逸和重复发布 fixture)。
- [ ] 更新 LANGUAGE、README、IMPLEMENTATION、toolchain/package/security specs。
- [ ] 运行 run/build/package 定向测试和二进制体积分项检查;不运行全量或性能压测。
## Review Gates
- 不把 `setting.json` 的当前 Adapter 选择编译进产物。
- 不在运行时联网、解析版本或调用系统包管理器。
- 不允许释放目录成为跨应用或跨用户的可写执行共享边界。
- 不改变无 external Adapter 应用的资源、启动和输出合同。
## Current implementation boundary
`dever lib` 已接真实 registry resolver、传递依赖和 daemon 资产缓存;packaging 把支持的锁定资源编译进 native application,入口经 `dever-runtime::external` 做私有 staging、SHA-256 复核和原子发布,`*.external.json` 输出分项体积报告。Python/JS preparation 生成 checked runner/SDK/launch manifest;`run` 与 `build` 共用同一份 lock/preparation 校验。raw pack/archive 在展开后仅为 config/exec 仍需的消费者保留,原生二进制输入按实际摘要去重;不同 Worker 的释放路径和清单仍隔离。
阶段收口补充:external Adapter 在声明体内列出精确 Lib 请求。编译器把请求纳入 external schema identity,CLI 从已检查 Program(含 Package 源码)收集每个 Worker 的请求,与 `config/setting.json.lib` 和 v2 `dever.lock` 精确核对。Dever Package 已接通版本/传递依赖、共享缓存、源码注入和统一 Lib 锁;不能以局部锁测试代替正式语言 pack 的发行验收。
真实 resolver、三 SDK typed manifest、Python/JS 自动 Worker、受管 Go compile/link、Dever Package 集成和 Linux 跨用户 artifact IPC 已实现。daemon build IPC、高级生态安装语义仍缺产品代码;正式签名 runtime pack 和无宿主目标验收未交付。宿主工具制作的自有 pack 定向用例不能等同于正式发行验收。
2026-09-30:实际 exec Worker 随程序嵌入,资源 identity 包含可执行位,启动绑定当前精确清单并重验字节和私有 Unix 权限。`external_resources` 6/6 通过,包括并发原子提取、路径/权限拒绝、部署目录不含源码 Worker、清空环境两次独立运行和篡改拒绝;`native_entry` 15/15、`port_adapter` 15/15、CLI `external_libs` 14/14 通过。这证明 exec 打包,不证明无 Python/Node/Go 环境的生态包执行。
## Verification
2026-10-02当前状态:上方阶段记录中的v2与“daemon编译/高级生态未实现”已过时。当前使用v5 lock/源码构建收据,Linux daemon LLVM编译、签名pack/完整ELF闭包、真实第三方高级依赖和OS隔离已实现。展开输出在所有raw消费者消失后才裁剪。增强三生态签名安装/受管编译/移除源码与机器目录后的无系统语言独立执行 **1/1通过**(755.81秒),包含Python/Node原生依赖,Go第三方UUID另有独立Worker证据。Linux签名首装/双项目/真实双UID共享 **1/1通过**(231.51秒)。公开和其他平台发行仍未完成;精确限制与日志见`09-29-language-production-closure/implement.md`。
以下保留09-29历史检查,不能覆盖上述当前结果:
- `cargo check --offline --workspace`:通过。
- `cargo test --offline -p dever-runtime --features external external::tests`:1/1 通过(含路径逃逸、缓存污染和完整性校验)。
- `cargo test --offline -p dever-cli --lib libs::tests`:4/4 通过。
- `cargo test --offline -p dever-cli --test external_libs`:2/2 通过。
- `cargo test --offline -p dever-tests --test native_entry project_entry_can_embed_verified_external_resources`:1/1 通过。
- `cargo test --offline -p dever-tests --features component --test external_component`:1/1 通过。
- `cargo test --offline -p dever-tests --test api_declarations`:16/16 通过。
- 资源 native 完整编译/启动 smoke 曾尝试,但在当前磁盘/链接器约 120 秒限制内未完成,不能记为通过。
- 未运行全量测试、真实 registry、真实 Python/Node/Go Worker、独立目标机运行和体积/内存压测。
@@ -0,0 +1,36 @@
# Dever Lib 构建与 Package 集成
## Goal
把已锁定的 external Adapter 接入 `dever run/build`,生成无需目标机器安装第三方语言环境的自包含应用,并允许 Dever Package 声明和传递 Lib 依赖。
## Dependencies
- `external-lib-protocol` 与 `external-lib-ecosystems` 已完成。
- 私有编译器发行任务提供正式目标 runtime/worker packs;没有正式 pack 的目标不能标记支持。
## Requirements
- `run` 在用户代码前验证 external declarations、lock、cache、runtime pack 和 schema,启动选中 Adapter Worker,并在应用生命周期结束时完整清理。
- `build` 为目标平台准备所有运行时可选 external Adapter,不按当前 `setting.json` 偷偷裁剪闭合实现集合。
- Worker、语言 runtime、依赖和 manifest 作为摘要保护的只读资源嵌入现有独立应用输出,不把源码、下载 cache 或构建工具链带入产物。
- 运行时只释放到应用目录的 `data/cache/lib/<digest>`,使用私有 staging、完整性验证和原子发布;不执行已存在但摘要不匹配的文件。
- Dever Package 中的 external declaration 是传递 Lib 请求来源;项目解析统一 lock,Package 使用者不需要直接运行 `lib add` 才能理解依赖,但缺 cache 时仍需显式联网命令。
- Package 更新导致 Lib/schema 变化时必须更新 lock;旧 lock 不回退、猜测或运行。
- 同一项目的不同 Adapter 可以携带不同 runtime/版本;构建报告分项显示体积,不隐藏大 runtime 成本。
## Acceptance Criteria
- [ ] `run` 对 exec/Python/Node/Go fixture 自动启动、调用和关闭 Worker,现有纯 Dever 项目行为不变。
- [ ] `build` 输出在没有 Python、Node、Go 和 Dever 编译器的隔离目标环境运行成功。
- [ ] 资源截断、替换、权限错误、staging 中断和并发首次启动不会执行未验证或半成品 Worker。
- [ ] 切换 `adapter.<port>.use` 不重新构建即可选择已打包候选;未打包/未知选择启动失败。
- [ ] 安装一个携带 Lib 的 Dever Package 后,项目 lock 可确定性解析并离线重建。
- [ ] 构建报告列出每个 runtime/Worker/依赖的压缩与释放体积,重复内容只嵌入一次。
- [ ] application tests 继续使用 case fake,不释放或启动生产 Lib。
## Out Of Scope
- 动态从生产网络下载缺失 Worker。
- 把不同应用的运行时释放目录合并为全局可写执行目录。
- FFI、共享库加载和外语源码调试器集成。
@@ -0,0 +1,26 @@
{
"id": "external-lib-packaging",
"name": "external-lib-packaging",
"title": "Dever Lib 构建与 Package 集成",
"description": "将外部 Lib 接入 run/build 自包含打包并允许 Dever Package 传递 Lib 依赖",
"status": "in_progress",
"dev_type": null,
"scope": null,
"package": null,
"priority": "P1",
"creator": "Antigravity",
"assignee": "Antigravity",
"createdAt": "2026-09-29",
"completedAt": null,
"branch": "main",
"base_branch": "main",
"worktree_path": null,
"commit": null,
"pr_url": null,
"subtasks": [],
"children": [],
"parent": "09-29-external-libs",
"relatedFiles": [],
"notes": "2026-10-02:LLVM run/build、Package传递Lib、v5源码构建收据、精确runtime/产物身份、二进制资源附件及npm展开输出裁剪已接线。默认消费者71/7/12/11及当前native_release17/17通过。最终三生态签名安装/受管编译/移除源码和机器目录/无系统语言独立执行1/1通过755.81秒,含simplejson C扩展与bufferutil addon;Linux签名首装双项目双UID验收1/1通过231.51秒。正式公开/其他平台资源仍未交付,详细证据见09-29-language-production-closure/implement.md。",
"meta": {}
}