Repository navigation
LoopX 2.3.0
Release Decision
Who should upgrade: Operators using managed Goals, the Research Workspace, or a supported native host can use the clearer acceptance, source evidence, and request recovery. Windows desktop preview users should install the new stable desktop bundle manually. An existing deployment with a custom ACP endpoint named antigravity should rename that endpoint before upgrading. Users who do not need these workflows can stay on 2.2.0.
What this release solves: Goal acceptance can use retained checks and evidence. The Workspace makes captured Turn evidence, report editions, and the original conversation easier to follow. An opted-in research Turn can evaluate the next target against matched measurements.
Breaking changes: Yes. The built-in Antigravity executor reserves the id antigravity. Rename an existing custom ACP endpoint using that id. Existing canonical File and SQLite Goals retain their storage owner. Inherited Stride can apply its evidence-conditioned guidance. Use the Goal or machine setting to opt out explicitly. #7832, #7928
How to verify: Expect loopx 2.3.0 and the expected installation owner in Doctor. Open a known Goal and inspect its acceptance record, then open the original source of one Research result.
Contributors: Maintained by @huangruiteng. See the community contributions below.
loopx --version
loopx doctor
loopx --format json goal-acceptance inspect --goal-id "$goal_id"At a Glance
Check what a Goal actually delivered, pick the next research step using comparable evidence, and find the source behind a result in the Workspace.
Upgrade
Use the installation owner shown by the update check. Existing archive installations keep their archive update path.
loopx update check
loopx update apply
loopx --version
loopx doctorOn a 2.2.0 archive installation, the legacy updater can report unverified lineage when GitHub's full comparison exceeds its metadata limit. Rerun the official archive installer in that original environment and verify the installed version.
curl -fsSL https://loopx-project.github.io/loopx/install.sh | bash
loopx --version
loopx doctor
loopx update checkIllustrated Feishu upgrade guide
Highlights
- Check a Goal against its commitments. Open its acceptance record to see declared checks and evidence before making an overall decision. Local Todos can still finish as each delivers its own result. #8161, #8178
- Choose the next research probe from actual results. Enable Yardstick on a Goal with Explore evidence, then compare distinct candidates tested on the same target and measurement profile. #8202, #8207, #8261
- Review the original evidence and results. Inspect the captured Turn range, compare two captured usages, download the readable evidence report, or open a report edition from Home. #7882, #7973, #8017, #8116, #8146
- Correct a pending request before it runs. Edit or cancel a queued message from the conversation, steer an active Turn when the session supports it, and read back the answer in its original conversation. #8059, #8096, #8121, #8269
Replan Fixes
- Captured Turn recovery reads the complete original source, including small object projections. Native first reads include the current task operation and its declared continuation. The Task inspector opens the full original evidence and notes. #8211, #8356, #8361
- Conversation intake asks for clarification when existing Goals are equally relevant. When an accepted report body is available, the response returns that content; a status marker alone still requires retrieval from its existing owner. #8356
- A pre-bound heartbeat now keeps the actual Turn identity from its producer through admission and settlement. An expired execution claim surfaces its recovery action. #8232, #7912
- Current decision cues appear before supporting material. A staged read stays on its original capture across recovery, and composed settlement failures retain the concrete diagnostic. #7984, #7985, #8267
- Finish the original Turn after its completed Todo moves to the archive. #8264
- Settlement guidance separates a final Todo's post-spend closeout from a typed finding about verified scope coverage. Use the observed evidence ID or a public-safe alias in the Vision draft. #8356
- A native Host retry keeps the live guard's original capture and managed claim identity. If a saved capture lacks a verified binding, keep its existing claim receipt and obtain a fresh guard for the same Turn if preparation is still needed. #8279
- SSH Goals use the compact activation prompt with inherited context delivery. Windows Doctor reads drive-qualified wheel records using the native path parser.
State Kernel & Control Plane
- Goal owners can configure and verify checks against retained commitments with an explicit configuration and a revision-bound readback. Existing local Todo acceptance continues under its own declaration. #8161, #8178
- Heartbeat and settlement retain the original Turn and its diagnostic through prequota, admission and bound reads. Retry from the committed capture, and recover an expired execution claim through its declared owner. #7912, #8232, #8240, #8267
- Inherited Stride guidance uses evidence and work shape. Opt-in Yardstick adds a scoped comparison from distinct findings that share an acceptance reference and measurement profile. Proxy ordering is advisory, and a comparison only appears when the qualifying pair exists. #7928, #8202, #8207, #8261, #8268
Capabilities & Workflows
- Research shows the captured Turn range and available usage evidence, provides a readable report, and preserves a bookmarked result while part of the source is unavailable. Home can open an existing report edition. #7882, #7973, #8017, #8116, #8146, #8226
- Conversations can steer a supported active Turn and edit or cancel pending messages. Recovered native replies keep the request and answer together. Use the original conversation to review the result. #8059, #8096, #8121, #8144, #8269
- After a service exit, the Steward can resume its saved Codex working thread when the account, settings, and source binding still match. #8379
- If acknowledgement of an admitted Steward continuation is lost, the original conversation can recover that same Turn and return its result once. #8402
- Issue-Fix verifies correction events and can return an eligible result to its original request. Failed Todos can produce owner attention without assigning a new worker. Anti-Entropy is available for tasks that explicitly declare a retirement basis. #7860, #7861, #8129
Quality & Testing
- Windows settlement rendering has a dedicated CI qualification path. Native policy and recovery fixtures follow the actual CLI readers and keep failure and unknown states visible. #7855, #7920, #8228, #8267
- Required Vision qualification forwards the native writer's refusal so an agent can correct the same draft and verify settlement.
- Package and runtime snapshot checks account for artifact size and the previous App exiting before upgrade relaunch. #8064, #8067
- The Windows desktop updater uses
zip 9.0.5through Tauri Updater 2.14.1. Upstream security advisory
Benchmarks & Integrations
-
Select the native Antigravity executor in an existing Steward or Chat conversation. Codex account settings can separately choose the Steward's API role while working Agents retain subscription-first policy. #7832, #7837, #8014, #8035
-
Benchmark maintainers can opt into an independent Claude Code runner, one declared settled-work handoff, or sampled local work probes. Campaign reports can retain both score histories and an explicit small terminal duration tolerance. #7082, #8070, #8089, #8258, #8263
-
The Rune pilot compares source-cited context with direct search through the existing Issue-Fix planning reader. It is a source-checkout experiment. This release makes no benchmark-score or long-horizon cost improvement claim. #7875
-
Read authored, source-cited case studies in their benchmark child Goals and return to the original research records. A new study can explicitly give every arm the same native child-task limit. #8272, #8229
Community Contributors
- @BigDataDZ — Native host discovery, installer quoting, Windows path handling and Doctor identity diagnostics. #7886, #7887, #7888, #8107, #8108
- @cocolord — CLI demand loading, native context and recovery fixtures, Issue-Fix redirect verification, and original-Turn closeout after automatic archival. Deferred feedback loading and immutable recovery readback. Preserved the public Chat status import and isolated report loading from unrelated Turn work. #7855, #7878, #7988, #7991, #7993, #7996, #8001, #8012, #8180, #8185, #8203, #8212, #8218, #8222, #8228, #8233, #8240, #8257, #8264, #8246, #8288, #8339, #8346, #8351, #8011, #8360
- @Duang777 — Status retry journal and Lark Inbox recovery on damaged state. #7693, #7979
- @gcl-coder — Windows settlement qualification, bound scheduler fallback and bounded Git discovery. All Git reads in the change window share one time budget. Integration previews share one Git deadline and Change Quality preserves unusual Git path names. #7920, #7955, #8083, #8084, #8115, #8152, #8153, #8154, #8169, #8362, #8363, #8364
- @HaoooLee — Strict registry checks when repository tracking is unknown. #8162
- @hhyykk — Owner attention, Issue-Fix correction and original return, and TypeScript composition of Todo and quota reads. #7860, #7861, #7870, #7877, #7881, #7892, #7893, #7894, #7895, #7900, #7901, #7904
- @JasonBuildAI — Host recovery encoding, owner review vocabulary and credential redaction in shared Lark sinks. #8027, #8029, #8031, #8181
- @Jiaqiiii523 — Native CLI capture fixtures and canonical receipt, handoff and material-lifecycle outcome vocabularies. #8182, #8183, #8184, #7398
- @Jim-jimu — Full write-scope coverage checks in quota admission. #8271
- @keoyyo85 — Quota settlement import isolation and architecture coverage. #8054, #8055
- @LIHUA919 — Rune source-verification pilot and native recovery and Antigravity admission readbacks. Deterministic conversation and persistent usage fixtures, plus measured 1 MiB budget closure. #7875, #8093, #8094, #8256, #8336, #8338, #8340
- @NIU-123370 — Bilingual RFC mirror checks, Anti-Entropy help and the release timeline. #8128, #8129, #8130
- @songoow — Independent Claude Code benchmark runner, expired-claim and Goal feedback recovery, and FrontierCS-2 compatibility. #7082, #7912, #7914, #7916, #7954, #7958
- @steven-kid — Captured Research Turn costs and ranges, readable evidence downloads, and desktop settings search that preserves drafts and keyboard access. #7882, #7973, #8017, #8019, #8020
- @Weimr2627 — Status compatibility exports and degraded Git registry fixtures. #8160, #8163
- @xiaoan17 — LoopX Personal Workspace navigation in the DSH web sidebar. #8352
- @xiaobaifly7 — Status readback that distinguishes unavailable history from absent Goal status. #7917
- @xyx2002OvO — Private runtime I/O and Windows long path support. #7603
- @zxdvd — Strict Codex Turn result schemas. #7976
Historical contribution: @JustinIan-AI introduced the opt-in Anti-Entropy code governance capability. The original merged PR metadata is unavailable; attribution is verified against the contribution commit.
Documentation & Compatibility
- Rename a custom ACP endpoint using the reserved
antigravityid before installing the new package. Keep the existing canonical File or SQLite data store and inspect Doctor before and after updating. Follow the versioned 2.x migration instructions for any remaining Markdown-only Goal. #7832, #8130 - Managed context readers now put the current action first. Resume from the same capture path and digest after a read interruption. Explicitly disabled context delivery remains available through the existing setting. #7937, #7938, #7984, #7985
- Removed legacy tmux demonstration launchers and auto-research demos from the maintained examples. The current host and benchmark guides describe the supported routes. #8190
Optional Capability Activation & Use
Goal commitment checks
Activation: Inspect the Goal, then configure its owner-approved check document using the observed provider revision. Execute verification when the current Goal owner authorizes the declared checks.
Validation: Inspect again and compare each check and evidence reference with the Goal's declared acceptance.
Disable / rollback: Use clear-checks with the current provider revision to remove executable checks from this Goal.
Authority boundary: Verification uses the declared checker authority. Goal checks preserve the existing local Todo lifecycle.
Docs: Versioned documentation
loopx --format json goal-acceptance inspect --goal-id "$goal_id"
loopx goal-acceptance configure --goal-id "$goal_id" --document owner-contract.json --expected-provider-revision "$revision" --execute
loopx goal-acceptance verify --goal-id "$goal_id" --execute
loopx --format json goal-acceptance inspect --goal-id "$goal_id"
loopx goal-acceptance clear-checks --goal-id "$goal_id" --expected-provider-revision "$current_revision" --executeYardstick decisions
Activation: On a Goal with Explore evidence, enable the independent Yardstick setting. The ordinary Turn cue is off until enabled for the effective profile.
Validation: Read the effective Goal configuration, then open a Research finding with the recorded target and measurement. Look for a comparison after two qualifying results. When the incumbent and candidate both have proxy measurements, verify that the proxy pair uses those same two candidates even with intervening proxy-only results. #8380
Disable / rollback: Disable the Goal option. Earlier findings remain readable.
Authority boundary: Advice uses the recorded matching scope. Current acceptance and execution authority govern the next action.
Docs: Versioned documentation
loopx configure-goal --goal-id "$goal_id" --execution-yardstick-enabled --execute
loopx --format json configure-goal --goal-id "$goal_id"
loopx configure-goal --goal-id "$goal_id" --no-execution-yardstick-enabled --executeEvidence-conditioned Stride
Activation: The inherited strategy can use evidence_conditioned_v1. Set the strategy explicitly to pin it for a Goal.
Validation: Read the effective execution profile. For a staged replan, open decision_value_review in the review stage and compare its advice with the Goal evidence before choosing work. #8375
Disable / rollback: Set the Goal strategy to off, or use the existing clear option to restore inheritance.
Authority boundary: The strategy recommends a next choice under the existing approval, cost and Stop conditions.
Docs: Versioned documentation
loopx configure-goal --goal-id "$goal_id" --execution-stride-strategy evidence_conditioned_v1 --execute
loopx --format json configure-goal --goal-id "$goal_id"
loopx configure-goal --goal-id "$goal_id" --execution-stride-strategy off --executeProgressive context recovery
Activation: Use the existing Context Delivery setting or request context delivery on a supported host for the next ordinary guard.
Validation: Open the saved capture using the path and digest from that guard. Select only the current fields the next action requires. If preflight offers Todo selection, run the emitted command and verify that it opens a separate capture for the same Turn. #8275
When a progressive first read reuses an outcome ID address, read its parent for supporting material from the same pinned source. After an interrupted native preparation, follow the original claim receipt and verify the ready capture before continuing. #8307, #8309
Disable / rollback: Disable the setting or pass --context-delivery off on the next ordinary guard. Complete in-flight recovery from its original capture.
Authority boundary: A read recovers the admitted Turn's facts. The original guard and settlement retain their authority. Complete Turn capability advice and result checks bind to the admitted source, including when a retry reads a recorded result. #8373
Docs: Versioned documentation
loopx --format json quota context-read --capture-file "$capture" --capture-sha256 "$capture_sha" --select /effective_actionAntigravity conversations
Activation: Sign in to Antigravity, then open Settings → Steward → Models and executor. Select antigravity, an account-offered Gemini 4 Argon tier and the supported effort. Preview and apply.
Validation: Reload the settings to verify the effective executor, then send an ordinary test question in the same conversation and check the returned reply.
Disable / rollback: Select Codex again in the same editor. If you installed the agy slash facade for a separate CLI session, remove it with the matching uninstall command.
Authority boundary: Native permission decisions remain with the host. Restricted Chat selects the restricted tool policy.
Docs: Versioned documentation
loopx doctor
loopx slash-commands --install --surface agy
loopx slash-commands --uninstall --surface agyCodex account API priority
Activation: Install the optional account package into the LoopX Python environment and restart its serving owner. In Settings → Model Provider configuration, select Steward API use → Prefer API with an existing authorized API key.
Validation: Reload the selector and check its saved value. Run the native account extension doctor and inspect consumer_readiness for the worker and the configured Steward separately. Both successful checks must identify the same relay instance. #8394
For macOS deployments with a standalone Codex account observer, align the observer and managed Chat with the same provider build and verify both roles before enabling API fallback. Automatic observer handoff landed on main after this release commit. #8403
Disable / rollback: Select Disabled for the Steward's API role. The existing worker fallback setting controls working Agents separately.
Authority boundary: Select an API policy only with a key authorized for that use. The next Turn uses the new route and an in-flight request retains its original route.
Docs: Versioned documentation
python3 -m pip install ./packages/loopx-codex-provider-routing
loopx-codex-accounts statusResearch evidence and report readback
Activation: Use the Goal's Explore evidence mode if it should collect new evidence. In Research, open a captured finding and select its Turn range, report download or comparison. Home opens editions of existing reports.
Validation: Check the original run, retained version, token source and explicitly unknown fields in the readback.
Disable / rollback: Set the Goal's Explore mode to off to stop new Explore capture. Keep retained evidence readable.
Authority boundary: Reports and usage comparisons read the source available to that Goal. Actual usage and estimates keep separate provenance.
Docs: Versioned documentation
loopx configure-goal --goal-id "$goal_id" --explore-mode evidence --execute
loopx --format json configure-goal --goal-id "$goal_id"
loopx configure-goal --goal-id "$goal_id" --explore-mode off --executeAnti-Entropy retirement checks
Activation: Declare a task-scoped retirement_basis or anti-entropy-governance requirement, with explicit target paths or symbols and the post-change workspace.
Validation: Inspect the exact diff with the bound workspace, then use verify for the delivery gate's retirement evidence.
Disable / rollback: Remove the explicit opt-in from future tasks and omit the check for unrelated work.
Authority boundary: Inspection is read-only. Change-quality retains delivery authority, and missing workspace evidence prevents certification.
Docs: Versioned documentation
loopx anti-entropy inspect --goal-id "$goal_id" --diff-file diff.patch --basis-json basis.json --workspace "$workspace" --format json
loopx anti-entropy verify --goal-id "$goal_id" --diff-file diff.patch --basis-json basis.json --workspace "$workspace" --format jsonRune repository context pilot
Activation: From the source checkout, use --prepare-rune with the documented pinned revision and an empty output destination.
Validation: Read the report's citation hashes, unavailable rows and Issue-Fix workflow-plan readback.
Disable / rollback: Omit --prepare-rune and --rune-source to run the direct-search control only.
Authority boundary: This no-model experiment uses a disposable source export. References are advisory inputs to Issue-Fix.
Docs: Versioned documentation
node --experimental-strip-types examples/repository-context-pilot/run.ts --repository . --revision 789694fa42972db17acd47aa2604b1907060028d --out "$pilot_out" --prepare-rune --loopx-python "$PWD/.venv/bin/python"Native Claude Code benchmark runner
Activation: Select benchmark.edgebench.claude_run explicitly with the documented pinned native binary, digest, provider source and isolated judge. Supply provider configuration through the process environment.
Validation: Inspect the launcher flags, then check the chosen session, result and Stop continuation in an authorized trial.
Disable / rollback: Stop that trial's launcher through the provider's cleanup path and use the ordinary runner for future work.
Authority boundary: The selected provider owns submission and deadline. Use non-secret generated task files under the documented provider permissions.
Docs: Versioned documentation
python -m benchmark.edgebench.claude_run --helpBenchmark checkpoint and local probes
Activation: For an admitted heartbeat trial, declare settled_work_capture_once on its fresh_replan request for one named handoff. In SForge, explicitly select --execution-observation local_probe for an authorized worker.
Validation: Read the original checkpoint_handoff and worker/trial receipts. A sampled Linux memory comparison retains the candidate and input identity.
Disable / rollback: Omit the one-time declaration and the execution-observation flag on future trials.
Authority boundary: The existing worker budget and provider own execution. Memory samples are estimates, and a missed handoff cannot be backfilled from later work.
Docs: Versioned documentation
python -m benchmark.edgebench.run --helpBenchmark campaign reports
Activation: Supply an explicit campaign selection. Set duration_policy.makeup_tolerance_ms if the report should waive a small terminal gap, and pass --score-curves to emit HTML.
Validation: Check the duration disposition, actual remaining time and observed score sequence in the outputs.
Disable / rollback: Remove the tolerance or set it to zero, and omit --score-curves if HTML is unnecessary.
Authority boundary: The local report derives an operator view from observed evidence. Runtime deadlines, run integrity and scoring keep their provider authority.
Docs: Versioned documentation
node --experimental-strip-types scripts/benchmark-campaign-report.ts campaign-input.json reports/campaign --score-curvesIssue-Fix correction and return
Activation: Choose the explicit Issue-Fix capability route when starting work on a named issue. Follow the capability plan for correction evidence and original request eligibility.
Validation: Inspect the existing workflow plan for the Goal. Verify that the correction source and result destination identify the original request.
Disable / rollback: Omit the Issue-Fix route for ordinary work. Use the original Goal controls for an active request.
Authority boundary: A plan has no delivery authority. Repository changes and original conversation returns require their existing authorizations.
Docs: Versioned documentation
loopx issue-fix workflow-plan --goal-id "$goal_id"
loopx start-goal --guided --project . --capability-route issue-fix --goal-text "$issue_request"Native benchmark child tasks
Activation: This is an explicit per-study option. Inspect the runner help first, then add --native-child-limit 3 to every arm's separately authorized fresh invocation. It requires a non-game task with native feedback; do not modify a running study.
Validation: Check each fresh profile's native child limit and the LoopX Goal spawn-policy readback. Restored work must match its sealed setting. Configuration acceptance alone does not prove useful delegation.
Disable / rollback: Start a separate study without the flag. Close completed child sessions through the native host; changing an existing session is not a rollback.
Authority boundary: The parent alone submits candidates. Children share the task's time, account, access and Stop. The option grants no extra evaluation opportunity or deeper delegation. Omission preserves the existing configuration and ambient values cannot activate this mode.
Docs: Versioned runtime guide
python -m benchmark.edgebench.run --helpAuthored research case studies
Activation: Opt in per source-pack registration with --case-study-json. Inspect existing packs first. Register the case's pack under its own benchmark child Goal; a global switch or model execution is not needed.
Validation: List the registered packs, then open the case in Research. Check that a narrow chart still shows the saved observations in order, including their complete labels and values. A missing value stays distinct from a measured zero. Follow a cited line back to its exact saved source. Changed sources remain historical, and unavailable translations remain explicit. #8387
Disable / rollback: Return to Research records and analysis or select a previous pack. Omit the companion on future registrations. Editing a companion creates a new version; retain existing source and reading versions.
Authority boundary: Reading runs no analysis or experiment. Registration verifies source bytes and citation ranges, not entailment or scientific validity. Goal parentage grants no additional access or execution authority.
Docs: Versioned case-study guide
loopx benchmark trajectory-packs --goal-id "$case_goal" --format json
loopx benchmark trajectory-pack-register --goal-id "$case_goal" --input-json "$pack_input" --source-root "$source_root" --title "$case_title" --case-study-json "$case_study"Native receiver setup recovery
Activation: On a fresh native Goal or heartbeat benchmark receiver, append the two readiness options to the authorized trial. The limits are 75 seconds total and 25 seconds per attempt.
Validation: Check that the receiver starts only after account readback succeeds. A bounded account_timeout records a setup timeout if the remaining trial allowance runs out.
Disable / rollback: Omit both options for the single 25-second startup probe.
Authority boundary: The setup observer retries only account read transport timeouts within the original remaining allowance. Stop and authorization or protocol failures end the attempt. The observer performs read-only account checks and emits bounded diagnostics.
Docs: Versioned benchmark guide
python -m benchmark.edgebench.run --worker native-goal --task "$task_id" \
--tasks-dir "$tasks_dir" --log-dir "$log_dir" --run-id "$run_id" \
--model "$model" --effort "$effort" --timeout "$trial_seconds" \
--native-readiness-total-seconds 75 --native-readiness-attempt-seconds 25Change preparation and integration previews
Activation: Run Change Quality prepare for a bound Goal and named Git base. Use Integration Branch configure to preview an ordered set of source branches. Add --execute to save an authorized local plan.
Validation: Check the exact changed paths in the preparation result. Read Integration Branch status for a saved plan and compare the source order and current heads with the intended integration.
Disable / rollback: Run configure without --execute to preview corrections. For an existing plan, stop invoking sync when you want to leave the local integration ref at its current head.
Authority boundary: Prepare and configure previews read the chosen checkout and Git refs. Integration sync uses a bounded Git deadline and updates a local integration ref only on its authorized execution path.
Docs: Versioned Change Quality guide, Versioned Integration Branch guide
loopx --format json change-quality prepare --goal-id "$goal_id" --repo-path . --base-ref origin/main
loopx --format json integration-branch configure --repo-path . --base-ref origin/main \
--integration-branch "$integration_branch" --source-branch "$source_branch"
# Read back an existing saved plan
loopx --format json integration-branch status --repo-path .DSH Personal Workspace panel
Activation: Build and install the plugin from the matching LoopX tag with the compatible DSH 0.2.1-rc.2 source host. Start the LoopX dashboard on its default loopback port and launch the same DSH web profile. The existing beta.6 download predates the panel.
Validation: Open the LoopX sidebar entry in DSH and verify that the Personal Workspace loads. Stop the local dashboard, confirm the panel offers Retry, then start the dashboard and retry in the same DSH page.
Disable / rollback: Remove the plugin from the same DSH web profile. The standalone LoopX dashboard remains available. Older DSH hosts without the required slots retain the GoalBar and skills.
Authority boundary: The embedded view uses LoopX's local dashboard and existing access rules. It shares no state with the DSH session and grants no model tool, credential access, or Goal write authority.
Docs: Versioned DSH plugin guide
cd packages/dsh-loopx-plugin
./install.sh
loopx dashboard --no-open
# In a second terminal in the same directory, with the same DSH_HOME
./node_modules/.bin/dsh --profile web --port 0
# To remove the plugin from that profile
./node_modules/.bin/dsh plugin --profile web remove dsh-loopx-pluginInstall / Update
For a new PyPI environment, install the package, then install the workflow entry points for the host you use.
python3 -m pip install 'loopx==2.3.0'
loopx workflow-skills --install
loopx slash-commands --install
loopx doctorFor an existing installation, inspect the owner and plan first. Apply the update through that owner.
loopx update check
loopx update plan
loopx update apply
loopx --version
loopx doctor中文摘要
升级决策
**谁需要升级:**使用受管 Goal、研究工作台或原生宿主的用户。Windows 桌面预览版用户应手动安装新版稳定版桌面包。配置了同名自定义 ACP endpoint 的用户先将 antigravity 改名。 不需要这些工作流的用户可以继续使用 2.2.0。
**解决了什么:**在 Goal 核对承诺与证据。在研究结果中查看原 Turn、报告和下一步的可比测量。在原会话恢复和追踪请求。
**是否有破坏性变更:**有。内置 Antigravity 占用 antigravity 标识,同名自定义 ACP endpoint 需改名。原有 canonical File 或 SQLite 由原存储 owner 继续管理。可在 Goal 或本机设置中关闭继承的证据条件式 Stride。 #7832, #7928
**如何验证:**CLI 应显示 loopx 2.3.0。用 Doctor 确认安装 owner,再读回一个已有 Goal 的验收及一项研究结果的原始证据。
**贡献者:**版本维护者为 @huangruiteng,具体社区贡献见下方。
loopx --version
loopx doctor
loopx --format json goal-acceptance inspect --goal-id "$goal_id"在 Goal 里核对实际交付,在研究工作台对照同条件候选,并回到原始记录查看结果来源。已有安装先执行 loopx update check,由当前安装方式执行 loopx update apply。
2.2.0 的旧归档客户端读取完整 GitHub 比较结果,超过大小上限时会提示无法核验提交谱系。遇到该提示,在原归档环境重跑官方安装器,再核对已安装版本。
curl -fsSL https://loopx-project.github.io/loopx/install.sh | bash
loopx --version
loopx doctor
loopx update check- 到 Goal 的验收页查看承诺、检查和读回证据。局部 Todo 仍按自身交付结案。 #8161, #8178
- 给已有 Explore 证据的 Goal 启用 Yardstick,在同一目标和测量条件下对照候选。 #8202, #8207, #8261
- 打开研究记录查看捕获的 Turn 范围、用量对照和可读证据报告,也可以从首页回看一版报告。 #7882, #7973, #8017, #8116, #8146
- 在对话里编辑或取消未运行的消息,在支持的会话继续引导当前 Turn,最后回原对话核对答案。 #8059, #8096, #8121, #8269
- 复盘和恢复沿用实际分配的 Turn 与原捕获。过期 claim 会显示恢复动作,结算失败保留诊断。 #7912, #7984, #7985, #8232, #8267
- 已完成的 Todo 自动归档后,仍可沿原 Turn 结算。 #8264
- 最后一个 Todo 按原计划扣额后收尾。若要声明已覆盖某个范围,写回时需附该范围的核验证据。Vision 草稿使用已观察到的证据标识或可公开别名。 #8356
- 原生 Host 重试沿用实时准入的原捕获和托管领取身份。缺少可验证绑定的快照仍可读取,保留已有回执。仍需准备时,为同一 Turn 获取新的 guard。 #8279
- SSH Goal 在继承上下文设置时使用紧凑提示。Windows Doctor 能读回带盘符的 wheel 安装记录。
状态内核与控制面
- 捕获后的 Turn 恢复读取完整原始来源,并能读回小型对象投影;原生首读提供当前任务操作及其声明的后续命令,Task 检查面板可打开完整原始证据与备注。 #8211、#8356、#8361
- 会话请求同时匹配多个现有 Goal 时先澄清;已有已验收报告正文时直接返回内容,只有状态标记时仍由原负责人取回正文。 #8356
- Goal 承诺可以配置检查并按 revision 核对结果,局部 Todo 仍按自己的验收声明完成。 #8161, #8178
- 心跳预检、准入和结算沿用实际 Turn,恢复保持原捕获及错误诊断。 #7912, #8232, #8240, #8267
- 继承的 Stride 依据证据和工作形态提供指引。显式开启 Yardstick 后,满足同目标、同验收与同测量条件的不同候选才参与对照。 #7928, #8202, #8207, #8261, #8268
能力与工作流
- 从研究记录查看已捕获的 Turn 范围、用量与可读报告,补读期间保留书签结果。首页可以回看报告版本。 #7882, #7973, #8017, #8116, #8146, #8226
- 对话支持修改或撤销待发送项,并可在受支持的会话中引导当前 Turn。恢复后仍从原请求读回答案。 #8059, #8096, #8121, #8144, #8269
- 服务退出后,若账号、设置及来源绑定仍一致,管家可续用已保存的 Codex 工作线程。 #8379
- 管家续作已入队但确认丢失时,原会话可找回同一个 Turn,并回送一次结果。 #8402
- Issue-Fix 可验证修订事件并回送原请求。失败 Todo 能提醒负责人。显式声明退役对象的任务可以用 Anti-Entropy 检查源码。 #7860, #7861, #8129
质量与测试
- Windows 结算渲染有独立 CI 检查。原生政策、恢复和结算验证使用真实 CLI 读回并保留失败与未知。 #7855, #7920, #8228, #8267
- 必需 Vision 验收保留原生写入命令的拒绝原因,Agent 可以修正原草稿并核对结算结果。
- 打包检查覆盖运行时资产大小,升级重启会等待旧 App 退出。 #8064, #8067
- Windows 桌面更新器通过 Tauri Updater 2.14.1 使用
zip 9.0.5。 上游安全公告
基准与集成
-
可在原管家和对话配置中选择 Antigravity。Codex 管家可单独选择 API 优先级,执行 Agent 继续按订阅策略路由。 #7832, #7837, #8014, #8035
-
维护者可显式选择 Claude Code runner、一次结算后交接或本地采样探针。报告支持分数轨迹和小额时长容差。 #7082, #8070, #8089, #8258, #8263
-
Rune 是源码对照试验,经既有 Issue-Fix 路径读取经核验的引用。本版没有基准提分或完整成本改善结论。 #7875
-
在 benchmark child Goal 阅读带来源引用的案例,并返回原研究记录。新 study 可显式为每个 arm 设置相同的原生 child-task 上限。 #8272, #8229
社区贡献者
- @BigDataDZ — 原生宿主发现、安装命令引用、Windows 长路径和 Doctor 身份诊断. #7886, #7887, #7888, #8107, #8108
- @cocolord — CLI 按需加载、原生上下文与恢复夹具、Issue-Fix 重定向验证及 Todo 自动归档后的原 Turn 结算。 反馈适配器延迟加载与不可变恢复读回。 保留公开 Chat 状态导入兼容,并将报告加载与无关 Turn 工作隔离。 #7855, #7878, #7988, #7991, #7993, #7996, #8001, #8012, #8180, #8185, #8203, #8212, #8218, #8222, #8228, #8233, #8240, #8257, #8264, #8246, #8288, #8339, #8346, #8351, #8011, #8360
- @Duang777 — 状态重试日志和飞书 Inbox 损坏状态处理. #7693, #7979
- @gcl-coder — Windows 结算验证、调度回退绑定和 Git 发现时限. 变更窗口内的 Git 读取共享同一时限。 集成预览共享同一 Git 时限,Change Quality 保留含特殊字符的路径。 #7920, #7955, #8083, #8084, #8115, #8152, #8153, #8154, #8169, #8362, #8363, #8364
- @HaoooLee — 跟踪状态未知时的严格 registry 检查. #8162
- @hhyykk — 负责人提醒、Issue-Fix 修订与原路返回、Todo 与 quota 读回的 TypeScript 合成. #7860, #7861, #7870, #7877, #7881, #7892, #7893, #7894, #7895, #7900, #7901, #7904
- @JasonBuildAI — 宿主恢复编码、owner 评审术语和飞书共享投影凭据脱敏. #8027, #8029, #8031, #8181
- @Jiaqiiii523 — 原生 CLI 捕获夹具与回执、交接和材料生命周期结果术语统一。 #8182, #8183, #8184, #7398
- @Jim-jimu — quota 准入中的完整 write-scope 覆盖检查。 #8271
- @keoyyo85 — 结算命令加载隔离和架构覆盖. #8054, #8055
- @LIHUA919 — Rune 源码核验试验、原生恢复和 Antigravity 准入读回. 稳定的会话时钟和持久化用量夹具,以及 1 MiB 预算验收记录。 #7875, #8093, #8094, #8256, #8336, #8338, #8340
- @NIU-123370 — 双语 RFC 镜像检查、Anti-Entropy 帮助和版本时间线. #8128, #8129, #8130
- @songoow — 独立 Claude Code 基准 runner、过期 claim 与 Goal 反馈恢复、FrontierCS-2 兼容. #7082, #7912, #7914, #7916, #7954, #7958
- @steven-kid — 研究 Turn 成本与范围、可读证据下载、保留草稿的桌面设置搜索与键盘可用性。 #7882, #7973, #8017, #8019, #8020
- @Weimr2627 — 状态兼容导出和 Git registry 降级夹具. #8160, #8163
- @xiaoan17 — 在 DSH Web 侧栏打开 LoopX Personal Workspace。 #8352
- @xiaobaifly7 — 状态读回区分历史不可用与 Goal 状态缺失. #7917
- @xyx2002OvO — 私有运行时 I/O 和 Windows 长路径支持. #7603
- @zxdvd — 严格的 Codex Turn 结果 schema. #7976
历史贡献:@JustinIan-AI 引入了显式启用的 Anti-Entropy 代码治理能力。原始合并 PR 元数据目前不可用,归属已依据 贡献提交 核实。
文档与兼容性
- 升级前重命名同名自定义
antigravityACP endpoint。保持原 canonical 存储,用 Doctor 确认升级前后的安装路径。仍有 Markdown-only Goal 时按 2.x 迁移指南处理。 #7832, #8130 - 上下文读回优先显示当前动作。中断后用同一捕获的路径和摘要继续。原设置仍提供显式关闭。 #7937, #7938, #7984, #7985
- 已退休的 tmux 和 auto-research 示例启动器从维护示例中移除,使用当前宿主和基准指南中的入口。 #8190
可选能力启用与使用
Goal commitment checks
启用: Goal 承诺检查。先读回 Goal,再按当前 provider revision 保存 owner 批准的检查文档。经该 Goal 授权后执行声明的检查。
验证: 再次 inspect,逐条对照 Goal 的验收声明与证据。
停用 / 回退: 用当前 provider revision 运行 clear-checks 移除该 Goal 的可执行检查。
权限边界: 检查使用各自声明的权限。局部 Todo 继续按自身规则结案。
文档: 本版文档
loopx --format json goal-acceptance inspect --goal-id "$goal_id"
loopx goal-acceptance configure --goal-id "$goal_id" --document owner-contract.json --expected-provider-revision "$revision" --execute
loopx goal-acceptance verify --goal-id "$goal_id" --execute
loopx --format json goal-acceptance inspect --goal-id "$goal_id"
loopx goal-acceptance clear-checks --goal-id "$goal_id" --expected-provider-revision "$current_revision" --executeYardstick decisions
启用: Yardstick 工作选择。为已有 Explore 证据的 Goal 打开独立 Yardstick 设置。普通 Turn 指引在有效配置启用后才出现。
验证: 读回 Goal 的有效配置,再看研究记录中的目标和测量。有两条合格结果时核对对照。基准候选和新候选都有代理指标时,即使中间出现只测了代理指标的结果,也应核对两组对照是否使用相同的候选。
#8380
停用 / 回退: 关闭该 Goal 的 Yardstick。已有研究记录仍可读。
权限边界: 建议受相同测量范围约束,原验收与执行授权仍决定下一步。
文档: 本版文档
loopx configure-goal --goal-id "$goal_id" --execution-yardstick-enabled --execute
loopx --format json configure-goal --goal-id "$goal_id"
loopx configure-goal --goal-id "$goal_id" --no-execution-yardstick-enabled --executeEvidence-conditioned Stride
启用: 证据条件式 Stride。继承策略可采用 evidence_conditioned_v1。可为 Goal 显式固定策略。
验证: 读回有效执行配置。分阶段重规划时,先在 review 阶段读取 decision_value_review,对照 Goal 证据后再选择工作。 #8375
停用 / 回退: 将 Goal 策略设为 off,或用既有 clear 参数恢复继承。
权限边界: 策略提供下一步建议,仍遵守审批、成本和停止条件。
文档: 本版文档
loopx configure-goal --goal-id "$goal_id" --execution-stride-strategy evidence_conditioned_v1 --execute
loopx --format json configure-goal --goal-id "$goal_id"
loopx configure-goal --goal-id "$goal_id" --execution-stride-strategy off --executeProgressive context recovery
启用: 渐进式上下文恢复。通过已有上下文交付设置,或在支持的宿主对下一次普通 guard 指定 context delivery。
验证: 用 guard 给出的路径和摘要读取保存的捕获。只补读下一步依赖的当前字段。若预检要求选择 Todo,执行返回的命令,核对它为同一 Turn 打开独立捕获。 #8275
渐进首读复用成果 ID 地址时,可从其父路径读取同一固定来源下的支撑材料。原生执行准备中断后,沿原 claim 收据核对 ready capture,再继续执行。 #8307, #8309
停用 / 回退: 关闭设置或在下次普通 guard 传 --context-delivery off。正在恢复的 Turn 沿原捕获完成。
权限边界: 读取仅恢复已准入 Turn 的事实,准入与结算仍由原流程负责。Complete Turn 的能力指引及结果校验绑定准入时的来源,重试读取历史结果时也沿用该来源。 #8373
文档: 本版文档
loopx --format json quota context-read --capture-file "$capture" --capture-sha256 "$capture_sha" --select /effective_actionAntigravity conversations
启用: Antigravity 对话。在 Antigravity 登录,在「设置 → 管家 → 模型与执行器」选 antigravity、账号支持的 Gemini 4 Argon 档位和推理强度,预览后应用。
验证: 刷新设置检查有效执行器,在同一对话中问一个普通问题并回看原答案。
停用 / 回退: 在原设置切回 Codex。如果单独为 agy CLI 装了 slash facade,用对应命令卸载。
权限边界: 宿主负责原生权限决策。受限 Chat 使用受限工具策略。
文档: 本版文档
loopx doctor
loopx slash-commands --install --surface agy
loopx slash-commands --uninstall --surface agyCodex account API priority
启用: Codex 账号 API 优先级。在 LoopX 的 Python 环境安装可选账号扩展并重启服务,在「设置 → 模型提供方」用已授权 key 选择「管家 API → API 优先」。
验证: 刷新读回选择项。运行原生账号扩展的 Doctor,在 consumer_readiness 分别核对执行 Agent 和已配置的管家通道。两项成功读回应指向同一 relay 实例。 #8394
如果 macOS 上已有独立 Codex 账号观察器,启用 API 回退前先对齐观察器与托管 Chat 的 provider 构建,再读回两个角色的状态。自动接管观察器的改动晚于本次发布提交进入主分支。 #8403
停用 / 回退: 将管家 API 角色设为「禁用」。执行 Agent 按其独立 fallback 设置管理。
权限边界: 使用经授权的 key。新选择从下一个 Turn 生效,进行中的请求保持原路由。
文档: 本版文档
python3 -m pip install ./packages/loopx-codex-provider-routing
loopx-codex-accounts statusResearch evidence and report readback
启用: 研究证据与报告读回。需要捕获新证据时,为该 Goal 选 Explore evidence。研究详情可打开 Turn 范围、下载报告或查看对照,首页可回看已有报告。
验证: 读回原运行、保留版本、token 来源和未知字段。
停用 / 回退: 将 Explore 模式设为 off 停止新的捕获,保留原有证据。
权限边界: 报告与对照读取该 Goal 有权访问的来源。实测用量与估算分别保留出处。
文档: 本版文档
loopx configure-goal --goal-id "$goal_id" --explore-mode evidence --execute
loopx --format json configure-goal --goal-id "$goal_id"
loopx configure-goal --goal-id "$goal_id" --explore-mode off --executeAnti-Entropy retirement checks
启用: Anti-Entropy 退役检查。为该任务明确声明 retirement_basis 或 anti-entropy-governance 要求,给出目标路径或符号及修改后工作区。
验证: 对绑定工作区与原始 diff 先 inspect,再用 verify 获取退役验证证据。
停用 / 回退: 在后续任务移除显式启用声明,无关任务不调用该检查。
权限边界: 检查只读,交付由 change-quality 判定,缺少工作区源码时不能出具认证。
文档: 本版文档
loopx anti-entropy inspect --goal-id "$goal_id" --diff-file diff.patch --basis-json basis.json --workspace "$workspace" --format json
loopx anti-entropy verify --goal-id "$goal_id" --diff-file diff.patch --basis-json basis.json --workspace "$workspace" --format jsonRune repository context pilot
启用: Rune 仓库上下文试验。从源码 checkout 运行,显式传 --prepare-rune、文档中的固定源码版本和新输出目录。
验证: 核对报告里的引用摘要、不可用行和 Issue-Fix workflow-plan 读回。
停用 / 回退: 省略 --prepare-rune 和 --rune-source,只跑直接搜索对照。
权限边界: 无模型试验在一次性导出目录执行,所得引用只作为 Issue-Fix 的参考证据。
文档: 本版文档
node --experimental-strip-types examples/repository-context-pilot/run.ts --repository . --revision 789694fa42972db17acd47aa2604b1907060028d --out "$pilot_out" --prepare-rune --loopx-python "$PWD/.venv/bin/python"Native Claude Code benchmark runner
启用: Claude Code 原生基准 runner。显式选 benchmark.edgebench.claude_run,按文档固定原生二进制、摘要、provider 源码和隔离评测环境,在进程环境提供凭据。
验证: 先查看启动参数,再从已授权试验读回会话、结果与 Stop 接续。
停用 / 回退: 按 provider 的清理入口停止该次试验,后续使用普通 runner。
权限边界: 提交和期限由所选 provider 管理,按已声明的权限处理非秘密任务文件。
文档: 本版文档
python -m benchmark.edgebench.claude_run --helpBenchmark checkpoint and local probes
启用: 基准交接与本地探针。为已准入的 heartbeat 试验在 fresh_replan 请求中声明一次 settled_work_capture_once;SForge 在获准 worker 上显式选 --execution-observation local_probe。
验证: 读取原 checkpoint_handoff 与 worker/trial 回执。Linux 内存采样应绑定原候选和输入。
停用 / 回退: 后续试验省略一次性声明及 execution-observation 参数。
权限边界: 原 worker 预算与 provider 管理执行。采样是估计,错过的交接点不能由后续工作补录。
文档: 本版文档
python -m benchmark.edgebench.run --helpBenchmark campaign reports
启用: 基准试验报告。提供明确的试验选择,按需设置 duration_policy.makeup_tolerance_ms 允许小额终态缺口,显式加 --score-curves 生成 HTML。
验证: 在产物中核对时长分类、实际缺口与分数观测序列。
停用 / 回退: 移除容差或设为零,不需要 HTML 时省略 --score-curves。
权限边界: 本地报告从已有证据生成视图,期限、试验完整性和评分由原 provider 判定。
文档: 本版文档
node --experimental-strip-types scripts/benchmark-campaign-report.ts campaign-input.json reports/campaign --score-curvesIssue-Fix correction and return
启用: Issue-Fix 修订验证与原路返回。对指定 issue 显式选 Issue-Fix 路由,按其工作计划核对修订证据与原请求。
验证: 查看已有 Goal 的工作计划,确认修订来源和结果接收位置绑定原请求。
停用 / 回退: 普通工作省略 Issue-Fix 路由,已在执行的请求沿原 Goal 控制。
权限边界: 预览不授予投递权限,代码操作和原路回送各自遵守已有授权。
文档: 本版文档
loopx issue-fix workflow-plan --goal-id "$goal_id"
loopx start-goal --guided --project . --capability-route issue-fix --goal-text "$issue_request"Native benchmark child tasks
启用: 按新 study 显式选择。先查看 runner 帮助,再给每个 arm 的已授权新运行命令加入同一个 --native-child-limit 3。仅用于采用 native feedback 的非游戏任务,不修改运行中的 study。
验证: 逐臂核对新 profile 的原生 child limit 和 LoopX Goal spawn policy 读回。恢复工作必须匹配冻结配置;配置通过不代表模型实际完成了有用协作。
停用 / 回退: 另开不带该参数的 study。由原生宿主关闭已完成 child session;不通过改动继续中的会话回退。
权限边界: 仅 parent 提交候选。child 共用原任务的时间、账号、访问范围和 Stop,不增加评测机会或委派深度。省略参数保留既有配置,环境中的值不能自动启用本模式。
文档: 本版运行时指南
python -m benchmark.edgebench.run --helpAuthored research case studies
启用: 每次注册 source pack 时用 --case-study-json 显式附加阅读稿,先列出已有 pack。将该案例的 pack 注册到对应 benchmark child Goal,无需全局开关或模型执行。
验证: 列出已注册 pack,在 Research 打开案例。在窄屏图表中核对观察顺序、完整标签和数值,缺失值与测得的零应分别显示。沿引用行回到原始来源。来源变化时保留历史提示,缺少翻译时明确显示原文。 #8387
停用 / 回退: 返回 Research records and analysis 或选择原 pack。后续注册省略阅读稿;修改阅读稿时创建新版本,保留既有来源与阅读版本。
权限边界: 阅读不运行分析或实验。注册检查来源字节和引用行范围,不认证论述蕴含关系或科学有效性;Goal 父子关系不增加访问和执行权限。
文档: 本版案例阅读指南
loopx benchmark trajectory-packs --goal-id "$case_goal" --format json
loopx benchmark trajectory-pack-register --goal-id "$case_goal" --input-json "$pack_input" --source-root "$source_root" --title "$case_title" --case-study-json "$case_study"Native receiver setup recovery
启用: 为新的原生 Goal 或 heartbeat benchmark receiver 启动已授权的试验时,附加以下两个 readiness 参数。总时限为 75 秒,每次尝试最多 25 秒。
验证: 检查账号读取成功后才启动 receiver。若剩余试验额度耗尽,读取有界的 account_timeout 诊断。
停用 / 回退: 省略两个参数,使用单次 25 秒启动探测。
权限边界: 仅在原试验剩余额度内重试账号读取传输超时。遇到停止、权限拒绝或协议错误时结束尝试。探测使用只读账号检查,仅输出有界诊断。
文档: 版本化基准指南
python -m benchmark.edgebench.run --worker native-goal --task "$task_id" \
--tasks-dir "$tasks_dir" --log-dir "$log_dir" --run-id "$run_id" \
--model "$model" --effort "$effort" --timeout "$trial_seconds" \
--native-readiness-total-seconds 75 --native-readiness-attempt-seconds 25Change preparation and integration previews
启用: 为已绑定的 Goal 和指定 Git 基线运行 Change Quality prepare。用 Integration Branch configure 预览有序的源分支。需要保存已授权的本地计划时加 --execute。
验证: 核对准备结果中的精确变更路径。对已保存计划读取 Integration Branch status,核对源分支顺序与当前提交。
停用 / 回退: 省略 --execute 预览计划修正。希望保留当前本地集成分支时,停止调用该计划的 sync。
权限边界: 准备与配置预览读取选定的检出目录和 Git 引用。集成同步共享一个 Git 时限,只有获得授权并执行后才更新本地集成引用。
文档: 版本化 Change Quality 指南、版本化 Integration Branch 指南
loopx --format json change-quality prepare --goal-id "$goal_id" --repo-path . --base-ref origin/main
loopx --format json integration-branch configure --repo-path . --base-ref origin/main \
--integration-branch "$integration_branch" --source-branch "$source_branch"
# 读取已保存的计划
loopx --format json integration-branch status --repo-path .DSH Personal Workspace panel
启用: 从本版 LoopX 标签构建并安装插件,使用兼容的 DSH 0.2.1-rc.2 源码宿主。在默认回环端口启动 LoopX dashboard,再启动同一 DSH Web profile。已发布的 beta.6 下载包早于该面板。
验证: 在 DSH 侧栏打开 LoopX,确认 Personal Workspace 加载。停止本地 dashboard,确认面板显示 Retry,再启动 dashboard 并在同一 DSH 页面重试。
停用 / 回退: 从同一 DSH Web profile 移除插件,仍可独立打开 LoopX dashboard。缺少对应挂载位的旧 DSH 宿主保留 GoalBar 和技能。
权限边界: 嵌入页面沿用 LoopX 本地 dashboard 和原有访问规则。它不共享 DSH 会话状态,也不授予模型工具、凭证读取或 Goal 写入权限。
文档: 本版 DSH 插件指南
cd packages/dsh-loopx-plugin
./install.sh
loopx dashboard --no-open
# 在同一目录另开终端,使用相同的 DSH_HOME
./node_modules/.bin/dsh --profile web --port 0
# 从该 profile 移除插件
./node_modules/.bin/dsh plugin --profile web remove dsh-loopx-plugin发布验证
- Package version and tag:
2.3.0/v2.3.0. - The GitHub release records the qualified source and distribution verification.