feat: unify source and skills for Dever 0.1.2 installation

This commit is contained in:
Antigravity committed 2026-10-05 02:49:17 +00:00
1 parent a2e0436ed4
commit 19f122b4b4
47 files changed
+1951 -63

No files matched your search

@@ -0,0 +1,2 @@
{"file":".trellis/spec/backend/toolchain-and-library.md","reason":"Signed install and source contract"}
{"file":".trellis/spec/backend/quality-guidelines.md","reason":"Validation boundaries and meaningful tests"}
@@ -0,0 +1,19 @@
# 设计
## 唯一安装实现
保留 skills/scripts/install.py 的下载、签名校验、raw launcher 校验与 Rust 解压/bootstrap 调用链。sdk/install-entry.py 从该源码和 skills/assets/release.pub 生成根 install。Bash 只负责 Python 前提检查、必要的 sudo 和把完整 Python 程序通过引用 heredoc 交给 /usr/bin/python3 -I -,参数原样转发。完整函数定义在最后调用前解析,截断的主体不执行安装。
生成器注入独立固定公钥而不是从下载包取公钥;源 skill 的普通 Python 调用仍使用配套公钥文件。Python main 接受内嵌默认公钥参数;具体嵌入使用清晰的源码封装,避免手工复制第二份算法或脆弱的源码字符串替换。
默认版本 latest;元数据为 dist/latest/dever-<platform>.manifest.json 与 .sig;验签后只从 dist/<signed-version>/ 获取基础 archive、raw blobs 和扩展。Rust ReleaseSource 与 Python 使用同一静态协议。只允许官方 HTTPS 同站重定向,禁止凭据、非 443、fragment 和外站。没有环境变量/项目配置覆盖和旧源 fallback。
## 行为与验证边界
机器布局与 bootstrap 事务不变,解压保持在 Rust owner,不增加 shell tar/zstd 解析。帮助不联网、不提权;非 root 安装使用系统 sudo,保留退出状态。沿用 --release、--trusted-key、--system-root、--no-start 做离线镜像验收。
现有真实 0.1.1 split assets 可验证新入口和安装生命周期;旧二进制内部仍指向 GitHub,不能据此声称新源线上 update 已通过。新版本构建发布属后续步骤。服务器须显式映射 /shemic/dever/install 到纯脚本;Git 页面或 raw 登录跳转不是安装脚本。
## 资源
磁盘不足 1 GiB,隔离镜像优先放 /dev/shm 自有临时目录并及时清理,仅保留报告。源码备份 target/install-before.WTVfLC。不得删除其他缓存、改变系统服务或修改 AppArmor 全局状态。仅修改安装、发行源、相关测试和必要文档,不做语言与 skill 约束的邻接改造。
@@ -0,0 +1,3 @@
{"file":".trellis/spec/backend/index.md","reason":"Rust compiler scope and checklist"}
{"file":".trellis/spec/backend/toolchain-and-library.md","reason":"Signed distribution, bootstrap and single ownership"}
{"file":".trellis/spec/backend/quality-guidelines.md","reason":"Focused offline testing and temporary ownership"}
@@ -0,0 +1,52 @@
# 执行与证据
## 授权与起点
- 已在方案与「先实现 install、统一新源」说明之后授权实施并同意任务登记,不重复询问。
- 主仓库 a2e0436、skill 27ac8f2 起点均 clean。
- 备份 target/install-before.WTVfLC/core.tar.gz 与 skills.tar.gz。
## 顺序与所有权
1. [x] trellis-implement:Python 安装器、生成器、根 install、Rust ReleaseSource、根 test/ 定向测试及既有验收 harness 路由。不修改文档、spec、Git 元数据、版本号。
2. [x] 主会话:README、安装说明、SDK 发布说明与规范;真实签名包的新入口自有镜像验收,不修改全局服务。
3. [x] trellis-check:独立检查完整 diff,修复确有的安装/边界/测试缺陷,核验生成物一致性。
4. [x] 主会话:关键证据、必要复验、diff/资源清理、实现验收收口;准确说明线上端点与新包未发布。提交归档随后续迁移统一处理。
## 定向验证
- bash -n install;实际 Bash 文件/管道帮助和失败路径。
- Python onboarding installer 与新增入口定向测试。
- cargo test --offline -p dever-cli --lib toolchain::release_source;修改文件格式检查,不跑全量。
- 真实旧 0.1.1 签名基础包,通过 bash install --release ... --system-root ... --no-start 安装自有镜像。旧二进制不证明新源线上 update。
- 生成器 --check、git diff --check、skill 文档检查。
## 结果
- Python 定向 `python3 -B -m unittest discover -s test/onboarding -p 'test_install*.py' -v`:19/19 通过。包含实际 Bash、真实 Ed25519、独立公钥、字面参数与退出状态、非 root UID help 和进程内 sudo 拦截;没有实际提权/全局服务操作。
- Rust `cargo test --offline -p dever-cli --lib toolchain::release_source`:10/10 通过。实际本地 HTTP 传输断言 latest 两份元数据后从签名准确版本取 archive。复用 target/debug,未跑全量。
- 原有作者 rustfmt 对修改 Rust 文件检查通过。主会话复核生成 --check、bash -n、主/skill diff --check 和 skill quick_validate 均通过。
- `test/onboarding/verify_install_entry.py` 真实 0.1.1 签名资产验收 4/4 通过,报告 `target/install-entry-acceptance.json`:Rust 验签解包准备、独立 Bash 首装且 core/skill 对应、管道重装保持核心与选择、坏签名拒绝且原 journal/core/bootstrap 不变。自有 /dev/shm 临时目录已清理,没有启动全局服务。
- 初次验收报告保留为 `target/install-entry-acceptance-initial.json`。首装通过后,重复安装因测试误要求 active-version 字节完全相同失败;实际 `bootstrap/transaction.rs` 明确追加激活记录。仅修正验收:重复安装比较实际选中版本与负载字节,失败安装仍严格比较 journal 字节。生产安装行为未放宽,重跑完整4阶段通过。
- 根 install 为 13,938 字节,摘要 `3cab983b5093c4a7075f28707042c672a00ce754888ac3e7c9f85853d40ae7eb`;真实验收使用旧版负载,不表示新版本构建、线上安装或线上 update。
- 任务分支 `feat/install-entry`;未提交、推送、改 Git remote 或合并 skills 子仓库。后续迁移发布需新版本 core/launcher/daemon 与完整配套 skill,部署匿名 HTTPS 安装/资产路由。
- 独立 trellis-check 最终无阻塞、未修改产品文件;再次核对生成脚本与真实验收报告 SHA 完全一致,认可 bootstrap 同版本激活记录的测试边界。全部本次验收已满足,未跑全量 clippy、全量 CI 或线上安装。
## 合仓与发行阶段(2026-10-05)
用户已批准前述后续交付方案,继续使用本任务记录,不重复请求创建任务或实施批准。
- [ ] 主会话:当前源码和 Git 历史备份;skills 普通目录化;新远端核验、提交推送;同步安装/源码文档。
- [ ] 发行 worker:准备新版本精简发行,复用既有制作和验收脚本,报告实际包体;不操作 Git、全局安装或服务。
- [ ] 主会话:核对新包及匹配 skill,发布静态端点并完成范围内首装/update 验收。
- [ ] 独立检查、提交、任务证据与归档;部署缺失信息明确记录,未完成的发行项不标成通过。
初始只读证据:新 SSH 仓库 ls-remote 成功且无 refs;HTTPS /shemic/dever/install 返回 404。已询问站点部署方式,等待期间继续合仓与可离线完成的新包准备。系统盘剩约 368 MiB,/dev/shm 约 2.4 GiB,优先复用资产和缓存,不能删除其它项目或部署数据。
### 当前证据
- 备份目录 `target/migration-backup.pBIq3U`:当前源码 tar.gz(不含构建物、Git元数据、密钥与本地配置)、完整 `core.bundle` 和 `skills.bundle` 均验证通过;原 `skills/.git` 移入此目录,保留本地历史和配置。
- `skills/` 已从 gitlink 改成主仓库 22 个普通文件,删除唯一 `.gitmodules` 及本地 submodule 配置。`origin` 已切至新 SSH 地址,旧远端以 `github` 保留;没有向旧远端推送。
- 生成 install `--check`、Bash语法、skill结构和diff检查通过;同仓说明、模板和新源文档已同步。
- 此前 skill约束和CLI接线一并进入本版:`check/run/build` 共用 C016;CLI新增5项及既有1项定向回归通过,CMS普通/Markdown静态check均通过(各7条既有W001)。不扩大冗余判定、不声称所有CRUD包装都可识别。
- 发行版本设为0.1.2,core/launcher/daemon在自有tmpfs目录串行离线重建;不重编未改的runtime。为本轮发行空间,Cargo仅清理本地dever-cli dev构建产物,释放236.7MiB,可从源码恢复;旧release、作者输入和备份保留。
+38
View File
@@ -0,0 +1,38 @@
# Dever 单命令安装入口与官方源迁移
## Goal
实现自包含 Bash install,复用签名安装器并统一 git.dever.cc 下载源,完成隔离定向验证
## 背景与授权
用户要求先实现 install,再处理新 Git 的迁移发布;已收到方案后明确要求实施,并于 2026-10-05 同意任务登记。已有签名 Python 安装器、Rust 解压/bootstrap 和配套 skill 打包可以复用。新 Git SSH 已可访问,远端尚无 refs;HTTPS /install 与公开发行资产尚未部署。
## Requirements
- R1:根 install 可直接通过 Bash 文件或管道执行,无需克隆源码或先安装 skill;支持现有版本选择、本地发行目录、自有镜像和不启动服务选项。
- R2:复用唯一签名安装器和 Rust 解压/bootstrap。独立公钥、签名、摘要、长度、路径验证和失败恢复不得削弱;非 root 使用 sudo,帮助不需要管理员权限。
- R3:首次安装、机器 install/update、按需扩展统一使用 https://git.dever.cc/shemic/dever/dist;latest 只选择签名版本,负载取准确版本目录;不从业务配置或环境变量选择官方源。
- R4:普通 run/build 仍离线,机器共享布局、按需扩展、版本与 skill 同步保持原有合同。安装前检查必要 OS/ABI/工具,清晰报告不支持或未发布。
- R5:安装说明准确区分代码完成与服务器发布;源码下载源迁移不代表已有 0.1.1 二进制已更改。
## Acceptance Criteria
- [x] Bash 语法、直接/管道 help、参数转发、退出状态、非 root 提权与截断脚本行为有最小定向验证。
- [x] 生成物与现有安装器/独立公钥一致,不存在手工维护的第二套安装逻辑。
- [x] Python/Rust 新源 latest/精确版本/扩展地址一致,拒绝非法重定向。
- [x] 真实 Ed25519 校验、损坏拒绝、临时文件清理保持通过;实际签名包可通过新入口安装到自有镜像,不启动宿主服务。
- [x] 必要定向测试和 diff 检查通过,文档说明命令、发布目录、旧版迁移和线上未验证边界。
## 本次边界
先完成 install 及必需下载链路,不执行 Git 迁移/提交/push、skills 子仓库并入、全局安装、Web 服务配置、全量 CI 或正式新版本构建发布。后续必须重建包含新源的二进制,不能将旧包重新标号。源仓库访问限制不变,安装端点与资产需要匿名 HTTPS。
## 2026-10-05 后续交付授权
用户在合仓、Git 迁移、精简发行和线上安装更新验收方案后回复「可以」,本阶段继续实施以下交付。上一阶段的 Git/发布排除仅描述当时范围,不再阻止本阶段工作;仍不运行全量测试、不替换作者机全局服务或安装。
- [ ] 备份当前源码与 skills Git 历史,将 skills 作为普通目录并入主仓库,保留当前约束和模板。
- [ ] 主仓库迁移至 ssh://git@git.dever.cc:2222/shemic/dever.git,提交并推送;不覆盖远端已有历史。
- [ ] 用新版本重建 core/launcher/daemon,复用未改变的已验证 runtime 输入,制作精简基础包、匹配 skill 与可选扩展,记录体积与摘要。
- [ ] 发布安装脚本和签名资产,验证真实 HTTPS 首装与 update 的版本/skill 一致性;若部署接入缺失,保留可发布资产并明确缺失信息,不把本地验收当作上线成功。
@@ -0,0 +1,26 @@
{
"id": "install-entry",
"name": "install-entry",
"title": "Dever 单命令安装入口与官方源迁移",
"description": "实现自包含 Bash install,复用签名安装器并统一 git.dever.cc 下载源,完成隔离定向验证",
"status": "in_progress",
"dev_type": null,
"scope": null,
"package": null,
"priority": "P2",
"creator": "Antigravity",
"assignee": "Antigravity",
"createdAt": "2026-10-05",
"completedAt": null,
"branch": "feat/install-entry",
"base_branch": "main",
"worktree_path": null,
"commit": null,
"pr_url": null,
"subtasks": [],
"children": [],
"parent": null,
"relatedFiles": [],
"notes": "",
"meta": {}
}