LoopX v0.3.0
LoopX v0.3.0
LoopX v0.3.0 is a capability and control-contract release. It promotes simplify-first change qualification, provider-neutral decision context, governed material lifecycle workflows, managed-project delivery, and Ark Managed Agent host support while tightening the long-running control plane and its release evidence.
State Kernel & Control Plane
- Replan is now easier to reason about and recover: ordered quota rules, explicit recoverable Turn stages, repeat-vision guidance, and consolidated frontier guards keep the next action deterministic without hiding repair or acknowledgement requirements (#2585, #2594, #2597, #2636).
- Agent-facing status and quota projections are smaller and more lane-precise. Shared read models now own benchmark, gate, and fallback projection rules instead of growing the CLI facade (#2590, #2593, #2637, #2654, #2659).
- Fresh linked worktrees now keep the requested canonical project and Goal route instead of resolving to stale local state (#2650).
Capabilities & Workflows
- Change Quality can qualify the exact final diff with a provider-neutral
prepare -> record -> verifycontract. Its host workflow is simplify-first, discovers repository-native quality oracles, records sparse risks and validation evidence, and keeps model-behavior shadow promotion separate from normal delivery and merge authority (#2570, #2604, #2605, #2606, #2607, #2651). - Decision Context adds default-off, provider-neutral contracts for assembling rebased evidence, validating cursor commits, orchestrating profiles, binding runtime providers, and recording audited outcome feedback. Enabling a profile still does not grant a provider state or decision authority outside its declared contract (#2540, #2545, #2552, #2554, #2555, #2563).
- Material Lifecycle now supports source-backed intake, lossless ranking rebuilds, decision-driven reranks, bounded explore execution, owner-gated cutover, and readable projections through an official skill. Material work is projected only when its capability envelope is active; activation remains explicit (#2544, #2558, #2561, #2562, #2566, #2569, #2571, #2601).
- Managed-project skill delivery and Ark Managed Agent host entries make LoopX workflows installable and resumable on more agent hosts without moving control-plane authority into the host adapter (#2568, #2616, #2640, #2645, #2646).
Optional Capability Activation & Use
All four surfaces below are opt-in. Installing a project skill makes the
workflow discoverable; it does not grant write, merge, provider, or host
authority.
Change Quality
Activation: Install the managed workflow, preview the goal policy, then
apply it:
loopx project-skill install \
--project . \
--skill loopx-change-quality \
--surface codex \
--execute
loopx configure-goal \
--goal-id <goal-id> \
--change-quality-enabled \
--change-quality-safe-fix \
--change-quality-strict-receipt
loopx configure-goal \
--goal-id <goal-id> \
--change-quality-enabled \
--change-quality-safe-fix \
--change-quality-strict-receipt \
--executeValidation: Qualify and read back the exact final diff:
loopx --format json change-quality prepare \
--goal-id <goal-id> \
--repo-path . \
--base-ref origin/main
loopx --format json change-quality record \
--goal-id <goal-id> \
--repo-path . \
--base-ref origin/main \
--result-json <ignored-or-temporary-result.json> \
--execute
loopx --format json change-quality verify \
--goal-id <goal-id> \
--repo-path . \
--base-ref origin/main
loopx canary premerge --from-git-diff --goal-id <goal-id>Disable / rollback: Disable it with the same preview-first flow:
loopx configure-goal \
--goal-id <goal-id> \
--no-change-quality-enabled \
--no-change-quality-safe-fix \
--no-change-quality-strict-receipt
loopx configure-goal \
--goal-id <goal-id> \
--no-change-quality-enabled \
--no-change-quality-safe-fix \
--no-change-quality-strict-receipt \
--executeAuthority boundary: The capability permits at most one policy-authorized
bounded repair pass and never grants merge authority.
Docs: See the Change Quality guide.
Decision Context
Activation: Decision Context has no persistent global switch in v0.3.0.
Supplying an explicit private profile to a command opts that command in.
Validation: Start with the read-only contract, profile, source, and
evidence surfaces:
loopx decision-context architecture --format json
loopx decision-context inspect-profile \
--goal-id <goal-id> \
--agent-id <agent-id> \
--format json
loopx decision-context source-manifest \
--goal-id <goal-id> \
--agent-id <agent-id> \
--profile <ignored-private-profile.json> \
--format json
loopx decision-context prepare-evidence \
--goal-id <goal-id> \
--agent-id <agent-id> \
--profile <ignored-private-profile.json> \
--decision-id <stable-decision-id> \
--format jsonDisable / rollback: Stop passing the private profile to subsequent
commands. Because this is per-command opt-in, there is no persistent switch to
clear.
Authority boundary: These commands inspect or prepare evidence only;
semantic rebase, proposal, writeback, and cursor commit remain separately
authorized project integration steps.
Docs: See the Decision Context guide.
Material Lifecycle
Activation: Install the official project workflow. A connected project
must separately provide the goal-scoped material_lifecycle capability
envelope, profile, source adapters, write scope, and owner gate:
loopx project-skill install \
--project . \
--skill loopx-material \
--surface codex \
--executeValidation: Read back the managed skill and the public capability
contract:
loopx project-skill status \
--project . \
--skill loopx-material \
--surface codex \
--format json
loopx material-lifecycle architecture --format json
loopx material-lifecycle skill-status \
--project . \
--surface codex \
--format jsonDisable / rollback: Remove the project capability envelope or profile to
stop projection and writes. Preview and then execute managed-skill removal:
loopx project-skill uninstall \
--project . \
--skill loopx-material \
--surface codex
loopx project-skill uninstall \
--project . \
--skill loopx-material \
--surface codex \
--executeAuthority boundary: There is no global material-write switch in v0.3.0.
Skill installation alone does not consume material, create a source adapter,
or expand write authority.
Docs: See the Material Lifecycle guide.
Managed Project Skills & Ark Managed Agent
Activation: Managed project operations are preview-first. Install a skill
after reviewing the plan:
loopx project-skill install \
--project . \
--skill <skill-id> \
--surface codex
loopx project-skill install \
--project . \
--skill <skill-id> \
--surface codex \
--execute
curl -fsSL \
https://raw.githubusercontent.com/huangruiteng/loopx/v0.3.0/scripts/install-from-github.sh \
| env LOOPX_SKILLS_DIR=<project-workspace>/.agents/skills \
LOOPX_ENTRY_HOST_SURFACE=ark-managed-agent \
LOOPX_INSTALL_SLASH_COMMANDS=0 bashUse --surface claude-code or --surface opencode for those hosts.
Validation: Read back the managed skill. For Ark Managed Agent, generate
the one-shot Goal prompt:
loopx project-skill status \
--project . \
--skill <skill-id> \
--surface codex
loopx heartbeat-prompt \
--thin \
--goal-id <goal-id> \
--agent-id <agent-id> \
--runtime-profile ark_managed_agent_goalDisable / rollback: Preview and then execute managed-skill removal:
loopx project-skill uninstall \
--project . \
--skill <skill-id> \
--surface codex
loopx project-skill uninstall \
--project . \
--skill <skill-id> \
--surface codex \
--executeAuthority boundary: The generated Goal prompt is submitted once; the
Managed Agent runtime owns inner continuation. Host session state is
non-authoritative, and the host must re-read quota should-run rather than
wrap each inner iteration in turn run-once.
Docs: See project skill delivery
and the Ark host contract.
Quality & Testing
- Change-quality model behavior is qualified against clean and adversarial Python, Rust, and TypeScript shadow cases before promotion; ordinary delivery remains bounded to the exact changed scope (#2649, #2651).
- Fixed installers now verify manifest identity, source revision, and the digest/readback of every managed skill rather than trusting a successful copy operation (#2653, #2657).
- Release and public-smoke contracts were aligned with current control-plane behavior. The extension timeout regression now preserves its process-tree assertion without coupling it to a one-second install-time doctor startup, the TUI bootstrap smoke preserves the supported interpreter while sanitizing existing LoopX wrappers from
PATH, and temporary Git fixtures ignore user-global integrations that could write during cleanup (#2662, #2665, #2667, #2668).
Benchmarks & Integrations
- SkillsBench supervision now preserves progress and typed failure attribution across preflight, proxy, timeout, repair, validation, scoring, and cooperative-stop boundaries. This release changes no benchmark scoring, task semantics, leaderboard, upload, submission, or permission boundary, launches no benchmark jobs, and makes no benchmark-uplift claim (#2595, #2598, #2600, #2648, #2656, #2660).
Documentation & Compatibility
- The control-plane course now connects domain state, ordered frontier rules, recoverable replanning, guidance acknowledgement, and convergence to the shipped code paths; custom agent runner guidance distinguishes the host loop from one governed Turn (#2577, #2579, #2583, #2584, #2610, #2532).
- Change Quality v1 receipt reads are intentionally removed. Existing experimental v1 receipts must be requalified with the current v2 protocol; LoopX does not silently preserve a legacy read path (#2617).
- No general persisted-state migration is required. Decision Context, Material Lifecycle, Change Quality, and Ark Managed Agent integrations remain explicit capability or host activations.
Community Contributors
- @xielixing improved the Codex CLI paste path so generated command text keeps usable line breaks (#2493). Thank you for the contribution.
Validation
The exact tagged commit 89b60891 passed:
- pytest:
1631passed,2skipped, 0 failed - Ruff and mypy: 0 violations / 0 errors
- risk-based release canary:
16selected checks, 0 failures, 0 manual holds - full-public:
625checks, 0 failures, 0 timeouts - install, upgrade, host, version, build, Twine, and public/private boundary gates
- actual-default one-arm Doubao qualification: 12 scenarios x 2 repeats = 24 calls, 0 failures, 0 skips
The release makes no benchmark or long-horizon outcome-uplift claim, so a matched stable-versus-candidate outcome baseline was not required.
Install & Update
New install:
curl -fsSL https://raw.githubusercontent.com/huangruiteng/loopx/main/scripts/install-from-github.sh | bash
export PATH="$HOME/.local/bin:$PATH"
loopx doctorExisting install:
loopx update --check
loopx update --execute
loopx doctor中文摘要
状态内核与控制面
- Replan 采用有序规则并暴露可恢复 Turn 阶段;重复 vision、frontier guard 和 agent lane 推荐都更确定,CLI facade 不再承担不断增长的投影逻辑(#2585、#2594、#2597、#2637)。
- 新 linked worktree 会保留请求的 canonical project/Goal 路由,不再误绑定旧项目状态(#2650)。
能力与工作流
- Change Quality 提供 exact-diff 的
prepare -> record -> verify合同,并把 simplify、仓库原生 oracle、稀疏风险和验证收据作为主路径;shadow promotion 与普通交付、合并权限相互独立(#2570、#2604、#2605、#2606、#2651)。 - Decision Context 增加默认关闭的 evidence rebase、cursor commit、profile orchestration 和 outcome feedback 合同;Material Lifecycle 增加 source-backed intake、rerank、bounded explore、owner-gated cutover 与可读投影,且仅在 capability 激活后投影(#2540、#2554、#2563、#2561、#2566、#2601)。
- Managed-project delivery 与 Ark Managed Agent host entry 扩大了可安装、可续跑的 Agent host 范围,但 host adapter 不取得 LoopX 控制面权威(#2568、#2616、#2645、#2646)。
可选能力启用与使用
以下入口都需要显式 opt-in;安装 project skill 只提供工作流发现,不授予写入、合并、provider 或 host 权限。
Change Quality
**启用:**安装 managed workflow,先预览 goal policy,再执行写入:
loopx project-skill install \
--project . \
--skill loopx-change-quality \
--surface codex \
--execute
loopx configure-goal \
--goal-id <goal-id> \
--change-quality-enabled \
--change-quality-safe-fix \
--change-quality-strict-receipt
loopx configure-goal \
--goal-id <goal-id> \
--change-quality-enabled \
--change-quality-safe-fix \
--change-quality-strict-receipt \
--execute**验证:**对 exact final diff 执行 prepare、record、verify 和 premerge。
其中 record 使用 prepare 返回的 v2 模板:
loopx --format json change-quality prepare \
--goal-id <goal-id> \
--repo-path . \
--base-ref origin/main
loopx --format json change-quality record \
--goal-id <goal-id> \
--repo-path . \
--base-ref origin/main \
--result-json <ignored-or-temporary-result.json> \
--execute
loopx --format json change-quality verify \
--goal-id <goal-id> \
--repo-path . \
--base-ref origin/main
loopx canary premerge --from-git-diff --goal-id <goal-id>**停用 / 回退:**关闭时仍然先预览、再执行:
loopx configure-goal \
--goal-id <goal-id> \
--no-change-quality-enabled \
--no-change-quality-safe-fix \
--no-change-quality-strict-receipt
loopx configure-goal \
--goal-id <goal-id> \
--no-change-quality-enabled \
--no-change-quality-safe-fix \
--no-change-quality-strict-receipt \
--execute**权限边界:**该能力最多允许一次策略授权的有界修复,不授予合并权限。
**文档:**参见 Change Quality 指南。
Decision Context
**启用:**v0.3.0 没有全局持久开关;显式向命令传入 private profile,才使该次
命令 opt-in。
**验证:**先运行只读 contract、profile 与 evidence 入口:
loopx decision-context architecture --format json
loopx decision-context inspect-profile \
--goal-id <goal-id> \
--agent-id <agent-id> \
--format json
loopx decision-context prepare-evidence \
--goal-id <goal-id> \
--agent-id <agent-id> \
--profile <ignored-private-profile.json> \
--decision-id <stable-decision-id> \
--format json**停用 / 回退:**后续命令不再传 private profile 即停用;没有需要清理的
持久开关。
**权限边界:**这些命令只检查或准备 evidence;semantic rebase、proposal、
writeback 和 cursor commit 仍需项目分别授权。
**文档:**参见 Decision Context 指南。
Material Lifecycle
**启用:**安装官方 project workflow;项目还必须显式提供 goal-scoped
material_lifecycle capability envelope、profile、source adapter、write
scope 与 owner gate:
loopx project-skill install \
--project . \
--skill loopx-material \
--surface codex \
--execute**验证:**读回 managed skill 和 public capability contract:
loopx project-skill status \
--project . \
--skill loopx-material \
--surface codex \
--format json
loopx material-lifecycle architecture --format json
loopx material-lifecycle skill-status \
--project . \
--surface codex \
--format json**停用 / 回退:**移除 capability envelope/profile 即停止投影与写入;再按
preview-first 流程移除 managed skill:
loopx project-skill uninstall \
--project . \
--skill loopx-material \
--surface codex
loopx project-skill uninstall \
--project . \
--skill loopx-material \
--surface codex \
--execute**权限边界:**v0.3.0 没有全局 material-write 开关。安装 skill 本身不会
消费 material、创建 source adapter 或扩大写权限。
**文档:**参见 Material Lifecycle 指南。
Managed Project Skills & Ark Managed Agent
**启用:**project skill 默认只预览,确认后再执行;Ark Managed Agent 使用
release-owned skills 和一次性 host entry:
loopx project-skill install \
--project . \
--skill <skill-id> \
--surface codex
loopx project-skill install \
--project . \
--skill <skill-id> \
--surface codex \
--execute
curl -fsSL \
https://raw.githubusercontent.com/huangruiteng/loopx/v0.3.0/scripts/install-from-github.sh \
| env LOOPX_SKILLS_DIR=<project-workspace>/.agents/skills \
LOOPX_ENTRY_HOST_SURFACE=ark-managed-agent \
LOOPX_INSTALL_SLASH_COMMANDS=0 bash其他 host 可用 --surface claude-code 或 --surface opencode。
**验证:**读回 managed skill;Ark host 生成一次性 Goal prompt:
loopx project-skill status \
--project . \
--skill <skill-id> \
--surface codex
loopx heartbeat-prompt \
--thin \
--goal-id <goal-id> \
--agent-id <agent-id> \
--runtime-profile ark_managed_agent_goal**停用 / 回退:**按 preview-first 流程移除 managed skill:
loopx project-skill uninstall \
--project . \
--skill <skill-id> \
--surface codex
loopx project-skill uninstall \
--project . \
--skill <skill-id> \
--surface codex \
--execute**权限边界:**Goal prompt 只提交一次,由 Managed Agent runtime 负责内部续跑;
host session 不是权威状态,续跑时应重新读取 quota should-run,不能把每次内部
迭代都包装成 turn run-once。
**文档:**参见 project skill delivery
与 Ark host 合同。
质量与测试
- Change-quality shadow matrix 覆盖 clean/adversarial 的 Python、Rust、TypeScript 场景;固定安装器会校验 manifest、source revision 与每个 managed skill 的 digest/readback(#2649、#2651、#2657)。
- Release/public smoke 合同与当前控制面同步;extension timeout 回归移除了 1 秒 doctor 启动抖动并保留 process-tree 负向断言,TUI bootstrap smoke 在清理已有 LoopX wrapper 的同时显式保留受支持解释器,临时 Git fixture 也会隔离可能在清理阶段异步写入的用户全局集成(#2662、#2665、#2667、#2668)。
基准与集成
- SkillsBench 在 preflight、proxy、timeout、repair、validation、scoring 与 cooperative stop 边界上保留进度和类型化失败归因(#2598、#2600、#2648、#2656、#2660)。本版本不改变 benchmark 评分、任务语义、排行榜、上传、提交或权限边界,不启动 benchmark job,也不宣称 benchmark 提升。
文档与兼容性
- 控制面课程把 domain state、有序 frontier、recoverable replan、guidance ACK 与 convergence 连接到真实代码,并补充 custom agent runner 集成边界(#2577、#2583、#2584、#2610、#2532)。
- Change Quality v1 receipt 读取兼容被有意删除;现有实验性 v1 receipt 需要用 v2 重新 qualification,不保留静默 legacy read(#2617)。其他核心状态无需通用迁移,新能力仍需显式 capability/host 激活。
社区贡献者
- @xielixing 修复 Codex CLI paste 路径的换行保真(#2493),感谢贡献。
验证
精确 tag 提交 89b60891 通过 1631 个 pytest(跳过 2,失败 0)、Ruff、mypy、risk canary、full-public、安装/升级/host、构建/Twine、公开边界,以及 12 场景 x 2 重复的 24 次 actual-default Doubao 调用(失败 0、跳过 0)。本版本不宣称 benchmark 或长周期 outcome 提升,因此无需 matched stable/candidate outcome baseline。