Repository navigation
[0.16.7] - 2026-10-17
0.16.2 之后的首个公开版本:环境登记与部署执行——在 logos/environments.yaml 登记项目的部署环境,用 openlogos deploy 按登记的方式部署到指定环境并留下部署账本,用晋级顺序与审批门约束生产部署,并可为提案指定默认部署环境。0.16.3~0.16.6 只在本机安装过,其内容全部包含在本版中,从 0.16.2 升级的用户直接看本节即可。
从 0.16.2 升级
- 更新全局 CLI:
npm install -g @miniidealab/openlogos@latest,确认openlogos --version为0.16.7。 - 在每个项目执行一次
openlogos sync:随包 guard 新增了受限命令(openlogos approve、带--force-promote的openlogos deploy),不 sync 时项目仍运行旧版 guard。 - 环境能力是 opt-in:项目里没有
logos/environments.yaml时,deploy-done、smoke、status的输出与退出码与 0.16.2 相同,无需任何改动。需要时新建该文件登记环境,再用openlogos env check校验。 - 已显式配置
guard.exempt的项目不会自动获得logos/environments.yaml的内置默认豁免;如需免立案编辑登记表,执行openlogos exempt add logos/environments.yaml。 - 登记表一旦为某个环境配置了门禁(
promote_from/require_approval),修改登记表须经宿主原生审批,不再适用默认豁免。
Added
- 环境登记表与部署账本:在
logos/environments.yaml登记部署环境(id、名称、层级、别名、健康检查地址等);新增openlogos env list | show | check [--probe]查看与校验。openlogos deploy-done --env <id> --ref <revision>记录部署到的环境与版本;openlogos smoke --env <id>校验部署环境一致性,向 runner 注入OPENLOGOS_SMOKE_ENV,并按结果行的target_environment判定环境证据。本机部署账本logos/.openlogos-runtime/deployments.jsonl记录每次部署与 smoke;status --format json新增environments视图。 - 环境部署执行:新增
openlogos deploy --env <id>,按登记表中该环境的deploy配置部署,支持三种方式——script(在请求版本的隔离工作树中以参数数组执行仓库内部署脚本)、ci(GitHub Actions 预设或触发 / 状态脚本适配,只认运行回报的实际部署提交)、agent(登记未决记录、返回部署方案位置,由执行者完成后--complete写入结果)。 - 版本通道(
--ref)与提案通道(提案 ready-to-deploy 时默认,执行后追加部署报告并落标DEPLOY_DONE);--rollback重新部署上一个版本;--dry-run只检查不执行、不写文件;结果未知的 ci 部署可用--reconcile补记终态、--abandon显式放弃;同一环境同一时间只允许一次部署。 - 部署日志写入
logos/.openlogos-runtime/deploy-logs/<deploy_id>.log,已声明密钥的值在日志、终端与 JSON 输出中一律替换为***。 - 环境晋级与审批:配置了
deploy的环境可写promote_from(须先在上游环境以同一版本通过已验证的 smoke,否则以DEPLOY_PROMOTION_UNVERIFIED零执行结束)与require_approval: true(部署前须有绑定该 commit 的审批,否则以DEPLOY_APPROVAL_REQUIRED零执行结束并给出可直接执行的 approve 命令)。 - 新增
openlogos approve --env <id> --ref <revision> [--note <文字>]写入审批记录,重复执行幂等(created=false);openlogos deploy --force-promote "<理由>"留痕越过晋级检查。 - 提案默认部署环境:登记表顶层可写
proposal_default_env: <环境 id>,需要部署的提案未另行指定目标环境时默认部署到该环境;env list输出该字段并在该环境行后标注「(提案默认)」。 - deployment-designer 产出部署脚本与登记表
deploy条目;deployment-executor 改用openlogos deploy执行部署。
Changed
--auto新增硬停点:目标环境要求审批而该版本未获审批,或晋级检查未通过时,任何模式都不自动放行;生成的 AGENTS.md / CLAUDE.md 硬红线同步新增该条。openlogos approve与带--force-promote的openlogos deploy进入 guard 受限命令清单,只能由人执行;deploy-done --env对配置了门禁的环境以DEPLOY_DONE_GATED_ENV拒绝,改用openlogos deploy。- change-writer:提案需要部署且用户未指定目标环境时,以
proposal_default_env为目标,不再逐案询问;默认值不决定是否部署,也不构成部署执行或发布授权。 - smoke 以部署账本核对部署身份:提案落标后同一环境又被部署时报
SMOKE_DEPLOY_SUPERSEDED。 logos/environments.yaml加入 guard 内置默认豁免(配置了门禁时除外)。
Fixed
- smoke 的
SMOKE_DEPLOY_MARKER_INVALID在 JSON 下带error.details.problems;smoke 先写账本、后写标记,账本写入失败报SMOKE_LEDGER_WRITE_FAILED,失败时恢复标记并撤销本次账本行。 - 账本追加改为临时文件加原子替换,追加失败不留残片;账本末行缺少换行时拒绝追加。
spec/logos.config.schema.json恢复为合法 JSON,guard.exempt默认值同步为 3 条。- deployment-designer / deployment-executor 两个 Skill 的插件分发与 asset-manifest 登记。