Repository navigation
LoopX v1.4.2
At a Glance
Illustrated release guide: Personal illustrated upgrade guide
Follow Agent work, check the delivered version, and recover the original operation safely. / 看清 Agent 工作、按准确版本检查交付、更可靠地恢复原操作。
Upgrade
Existing installations keep their current update owner; inspect the plan before applying it. See the pinned PyPI installation below for this exact version.
loopx update check
loopx update plan
loopx update apply
loopx --version && loopx doctorHighlights
-
A clearer starting point and stable Agent work pages. Empty workspaces offer Create a Goal; registered Codex conversations keep the same Goal/Agent target through reload and expose saved tool results. Plain-text follow-up still needs the original binding and idle-host proof. (#6527, #6528, #6482, #6540)
-
Delivery checks tied to the reviewed files. An Agent prepares a proposal with the existing
goal-acceptance prepareCLI; the local owner can use Use plan and check, while existing contracts offer Check delivery. Optional owner-pinned checkers retain exact versions; changed bytes withdraw current success. (#6473) -
Current work reads back truthfully. New Todos default to P1; old unranked work stays unchanged. Successful current-Todo reads reconcile ordinary stale routing, while failures and unavailable sources retain their independent warnings. (#6539, #6513)
-
Recovery retains the original identity. Resume the recorded Turn before fresh selection, preserve compacted receipt-bound work, and fence old Goal lifetimes during archival. Recovery never turns an uncertain operation into permission to spend again. (#6516, #6524, #6543, #6398)
-
Inspect a backup without activating it. The existing Settings workflow creates a separate inert inspection copy; it does not register Goals, resume hosts or replay effects. (#6279)
-
Recover interrupted Desktop replacement. A verified previous installation can be restored through the native update panel; interrupted Chat retains its conversation and explains the stored failure. (#6515, #6521)
Replan Fixes
-
Overlapping probability classes remain undecided rather than being forced into a class. (#6500)
-
A validation veto is judged by its Goal impact; current autonomous-replan decisions survive stride followthrough. (#6514, #6532)
-
Pause/resume and terminal closure use current Core admission and exact host bounds. An old two-stall prompt heuristic no longer grants replan authority. (#6483)
Contributors
Community contributions are credited with their concrete PRs in the Community Contributors section below.
Release Decision
Who should upgrade: Workspace/Desktop users, operators recovering Turn/Goal state, and users of the changed Codex, DSH, Lark, Claude or OpenCode integrations. Deployments that cannot yet qualify their optional host pins can retain the existing version until they do.
What this release solves: Easier discovery of current Agent work, version-bound delivery checks, correct new-Todo priority intent, and safer original-state recovery and host/configuration reads.
Breaking changes: Yes, for old LHTB runner profiles: remove LOOPX_PLANNING_TIMEOUT_SEC, --planning-timeout and non-null planning_timeout_sec; planning uses the original shared scheduler deadline. There is no mandatory storage migration. New Todo creation now defaults to P1; old unranked records remain unranked. New Goals already used SQLite before this release. Optional oracle-bearing contracts require explicit oracle removal before an older-runtime downgrade; disabling alone does not remove the format. The DSH restart candidate requires its stated source/runtime pins and is not a default SDK upgrade.
How to verify: Expect loopx --version to report 1.4.2, read doctor, then inspect the selected Goal and original Turn rather than inferring state from a version string.
Contributors: @chyax98, @JasonBuildAI, @hhyykk, @Duang777, @cocolord, @songoow, @loopx-agent, @dependabot. Concrete attribution and PR links appear below; founder stewardship is implicit.
loopx --version
loopx doctor
: "${GOAL_ID:?Select the existing Goal}"
loopx --format json status --goal-id "$GOAL_ID"
loopx --format json todo list --goal-id "$GOAL_ID"State Kernel & Control Plane
-
New CLI/Chat/canonical/monitor Todos share default P1 intent; explicit priority, clear operations and predecessor-priority retention keep their own rules. Current stale routing can rebuild from canonical work without rewriting historical Run evidence. (#6539, #6513)
-
Turn recovery loads the original recorded plan first. Compacted omission receipts remain bound to their Todo, and the original operation resumes through its existing owner. Archival rechecks the Goal lifetime under the existing fence. (#6516, #6524, #6543, #6398)
Capabilities & Workflows
-
First-Goal onboarding, stable Agent work pages and saved tool history improve the existing workspace. Codex follow-up is experimental, bound and non-streaming; uncertain delivery reconciles the saved receipt without automatic resend. (#6527, #6528, #6482, #6540)
-
Prepared acceptance plans and optional local owner-pinned checkers expose current file versions through the existing delivery panel. Checker snapshots are not an OS sandbox or proof of independent reviewer identity. (#6473)
-
Inert full-backup inspection has explicit held/incomplete boundaries. Explore normal writeback may update the same question and relations; the CLI/provider stage does not claim a complete human lifecycle editor or sustained research utility. (#6279, #6507)
-
Suggestions use current Goal facts. The existing Chat disclosure offers bounded choices from current decisions, blocked work and acceptance. Some choices open Overview; question choices send to the original Agent when clicked. Unknown or stopped state does not masquerade as idle. (#6535)
-
Ordinary Codex topic stop includes owned background work. The original Lark topic
/stopcan stop that Session own commands after a completed answer or a later answer, retaining completed receipts and frozen original targets. Active, attached and native Goal control keep their separate contracts. (#6565) -
Explicit local context recall. The optional BM25 profile reuses the shared scorer; private source comparisons use the existing read-only provider port. This is a provider/CLI slice with no new comparison UI or Lark route, and no task-utility or cross-provider score claim. (#6555)
Benchmarks & Integrations
-
DSH native operation tools can continue a pinned original owner through the existing Turn entry; callback, launch request, native start, consumption, result and original-source delivery remain separate evidence. The isolated SDK0.2.1a3/npm0.2.1-alpha.3 path uses a loopback provider; live financial/operation outcomes are not certified. (#6466, #6543)
-
Lark reuses verified metadata and overlaps identity/message reads; admission feedback does not wait for session recovery. Optional callback-only collection preserves an existing text consumer. Ego same-origin redirect refusal now returns the actual final URL for a separate authorized read. (#6498, #6502, #6523, #6550, #6529)
-
Claude refuses hardening over unreadable settings; OpenCode2 has the bounded experimental-wait fallback. Codex child-context vocabulary and ordinary project Git roots follow the existing host owners. (#6494, #6522, #3660, #6519)
-
Checkpoint capture completion and full verification remain within the original phase/deadline; verified native metadata is reused, research files are retained, and expiry after participant/context checks refuses. LHTB retires an obsolete separate planning timeout; EdgeBench budget/report/custom-model routing remains arm-matched. No paired-version benchmark gain or isolated model/Astra causal improvement is claimed. (#6518, #6525, #6536, #6551, #6531, #6504, #6506, #6520)
Community Contributors
- @chyax98 — First-time external contributor: OpenCode2 falls back to experimental wait only when stable wait is unsupported. (#6522)
- @JasonBuildAI — External contributor: directory scan failures and unreadable Claude hardening settings fail closed. (#6490, #6494)
- @hhyykk — External contributor: stable history order, undecided overlapping probability classes, quota-planning deduplication and original-Turn recovery. (#6484, #6500, #6511, #6516)
- @Duang777 — Protect archived Goal lifetimes against concurrent recreation. (#6398)
- @cocolord — Document the shipped Codex child-context workflow and its boundaries. (#3660)
- @songoow — Workspace onboarding, state-aware suggestions and route splitting; inert backups, host continuation, benchmark budget/report routing and CI maintenance. (#6279, #6416, #6483, #6503, #6504, #6506, #6520, #6527, #6528, #6530, #6531, #6535, #6541, #6542)
- @loopx-agent — Project automation: workspace conversations and delivery checks, original-operation/background-command recovery, optional context-provider composition, integration/update hardening and release qualification repairs. (#6466, #6473, #6482, #6498, #6499, #6501, #6502, #6509, #6510, #6512, #6514, #6515, #6517, #6518, #6519, #6521, #6523, #6525, #6526, #6529, #6532, #6536, #6540, #6543, #6547, #6548, #6550, #6551, #6554, #6555, #6559, #6565, #6571, #6572)
- @dependabot — Dependency automation: update sharp and js-yaml. (#5806, #6508)
Quality & Testing
-
Original cycle observations tolerate brief local statistics-lock contention in the detached worker; ordinary observer waits and business commands retain their existing boundary. Recovery keeps the complete20,000-entry SQLite audit and20,001overflow refusal; probe fixtures publish the first pulse before readiness. (#6571, #6572)
-
Release regression repairs retain full authority/recovery checks after intentional P1, stop and status contract changes; per-worker runtime isolation prevents restart tests from sharing a POSIX temporary namespace. Four new file reads explicitly use UTF-8. The brief allowance preserves the complete current guidance; it grants no extra execution budget. (#6554, #6559)
-
Cold-wheel identity, actual rollback boundaries, trusted CI cleanup and packaged-browser sharding improve installation and qualification. Dependency updates include sharp/js-yaml. (#6526, #6515, #6416, #6503, #6542, #5806, #6508)
Exact-source qualification at 77d6b07fb65c7ddffe14f45549f97295aca995d6 passed all eight required lanes. Final-source focused pytest: 1,655 passed, zero failures/skips across 37 complete affected modules; this is not a new full-tree sweep. The prior 7ed full sweep (23,565 passed, three failed, 531 skipped, 656 passed subtests) remains preserved; reviewed repairs #6571/#6572 and final-source checks close the demonstrated failures without dropping assertions. All 515 public smokes passed, as did configured Ruff/mypy/TypeScript, five direct plus 19 risk-selected checks, real PostgreSQL17 store/service, four pinned real-DSH entry cases, and actual PyPI1.4.1-to-candidate upgrade/managed-skills/packaged-UI readback. Dependency-pinned benchmark tests: 781 passed,68 explicit environment qualification skips; scopes overlap and are not summed. The authorized DS V4.1 Flash/high alternative passed the unchanged 22-scenario portfolio twice and all six contrasts,44 actor calls,90 HTTP attempts,zero failures/skips. Evolving/high remains unqualified on this final source: its full run recorded one selected-Todo unexpected_command failure; two later diagnostic passes do not establish its cause or repair and do not replace that failed portfolio. The separate native-Codex live profile was unavailable and explicitly skipped. No paired benchmark uplift, authenticated external-host execution, full Linux/fresh-guest scientific continuation, or model-causal improvement is claimed. Open repository dependency alerts remain in the optional DSH development lock and Linux glib graph; this release does not mark them fixed or certify that optional dependency chain. Before connecting a source-built DSH host to external MCP servers, assess its actual dependency graph against the MCP OAuth client advisory.
Documentation & Compatibility
No automatic migration of existing Goals. New-Goal SQLite remains the prior default; opt-out and existing providers keep their existing contracts. See the versioned operating entries for exact activation and disable/rollback steps. Optional source-built DSH pins, owner-pinned oracle rollback, host permissions and inert-backup limits are explicit rather than inferred from installation.
Optional Capability Activation & Use
Personal Workspace and original Agent conversations
Activation: Open the existing local workspace with loopx chat, or the installed Desktop. An empty registry now shows Create a Goal; example requests only fill the composer. For an already registered Codex App Agent, open its Goal owner entry to follow the stable Agent work page. Binding and an idle original host are prerequisites for sending a plain-text follow-up.
Validation: Reload or use Back/Forward to retain the same Goal/Agent target. Read saved messages and expanded tool results. A busy pre-dispatch refusal keeps the draft; uncertain delivery reconciles the original receipt and never automatically resends. Version/doctor commands below verify the runtime, while the actual page verifies the selected conversation. For ordinary Codex Chat, /stop in the original Lark topic also freezes and stops that Session own live background commands from completed Turns; read the original stop journal/result and unchanged completed receipts. Active-Turn, attached and native Goal control keep their separate contracts. Native/provider stop timing is not certified by synthetic-wire tests.
Disable / rollback: Close the Agent work page or the owned Chat server to stop new input from this surface. To withdraw writes, stop that server and restart with --project-workspace-grant workspace_read. Do not treat closing a page as cancelling an already running original host Turn.
Authority boundary: Experimental Codex follow-up reuses the registered native binding and original App permissions. It grants no new host, model, account, approval, steering or cross-Goal access. Saved records are not token streaming or full native parity; inspect only authorized conversations.
Docs: Versioned guide
loopx --version
loopx doctor
# Explicit local UI; stop this owned process with Ctrl-C when finished.
loopx chat --project-workspace-grant workspace_readOwner-pinned Goal delivery checks
Activation: Optional, off until a local owner adopts a prepared plan. The Agent uses the complete goal-acceptance prepare command below with its original Goal, registered Agent, plan document and stable operation ID to save only a reviewable proposal; the owner chooses Use plan and check in Delivery & evidence. Existing contracts offer Check delivery. An optional owner_pinned_oracle criterion pins checker source and declared input/output bytes.
Validation: Use goal-acceptance inspect for the current contract, provider revision and oracle freshness; reading does not execute checks. Changed or unavailable bytes withdraw current success. Explicit verify --execute runs only the approved checks. Historical evidence, independent review, requester adoption and Goal completion remain distinct.
Disable / rollback: Disable via the existing owner editor or goal-acceptance disable with a freshly inspected provider revision. Before downgrading to a runtime predating oracle, use this version to remove every oracle through explicit reconfiguration and inspect it; disable alone is not a backward-format migration.
Authority boundary: The trusted local owner approves check meaning and effects. Frozen file snapshots are not an OS sandbox and do not authenticate a remote reviewer; host interpreters, environment, network and unpinned imports remain trusted. Agents cannot self-configure owner governance or turn a checker receipt into requester adoption.
Docs: Versioned guide
: "${GOAL_ID:?Select the existing Goal}"
: "${AGENT_ID:?Select its registered preparing Agent}"
: "${ACCEPTANCE_PLAN:?Use the reviewed plan JSON}"
: "${PREPARATION_ID:?Retain this operation ID on unchanged retries}"
loopx --format json goal-acceptance prepare --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --document "$ACCEPTANCE_PLAN" --operation-id "$PREPARATION_ID" --execute
loopx --format json goal-acceptance inspect --goal-id "$GOAL_ID"
# Owner-approved disable only; use a fresh inspect revision:
: "${PROVIDER_REVISION:?Use current provider_revision}"
loopx goal-acceptance disable --goal-id "$GOAL_ID" --expected-provider-revision "$PROVIDER_REVISION" --executeInert full-backup inspection
Activation: Per-operation opt-in: Settings → Capability Center → device defaults → Configuration backup and recovery → Full archive inspection. Select the matching original archive and external manifest, then Verify and create isolated copy. CLI backup-state verify previews first; --execute creates only a new unused inert checkpoint.
Validation: Read the saved digest-checked audit in Previous inspections, or recovery-audit.json in the new destination. File/SQLite work/history readers distinguish readable, historical and unknown components. Every v0 audit stays held with legacy_manifest_incomplete, activation_eligible=false and execution_authority_granted=false.
Disable / rollback: Omit --execute and close the inspection panel to stop new copy creation. Keep the original archive and manifest; clean up only the separately owned inert destination after review. Existing configuration-only restore is a separate operation. There is no activation toggle to turn on for an inspected copy.
Authority boundary: Inspection does not register Goals, select a provider, adopt identity, resume Hosts, leases, timers or pending effects. Original registry paths are not followed. Keep private archives and audit details local; unsupported services/platforms and incomplete inventories remain unavailable or held.
Docs: Versioned guide
: "${BACKUP_ARCHIVE:?Select the original archive}"
: "${BACKUP_MANIFEST:?Select its matching manifest}"
: "${NEW_CHECKPOINT:?Select a new unused owned directory}"
loopx --format json backup-state verify --archive "$BACKUP_ARCHIVE" --manifest "$BACKUP_MANIFEST" --destination "$NEW_CHECKPOINT"
# Only after reviewing the plan:
loopx --format json backup-state verify --archive "$BACKUP_ARCHIVE" --manifest "$BACKUP_MANIFEST" --destination "$NEW_CHECKPOINT" --executeEvidence-conditioned stride reviews
Activation: Default off. Select evidence_conditioned_v1 in Goal review/stride, preview and apply. A CLI strategy-only update retains cadence; strategy-only capability JSON clears its Goal override and inherits live device cadence (ordinary default: six settled work Turns).
Validation: Read configure-goal and the next fresh review packet. Propose source-bound grow/switch/verify, separately justifying work size, route distance, evidence breadth, full cost and adoption criteria; subsequent evidence returns with the decision. Overlapping probability classes remain undecided; validation vetoes retain their Goal impact and current autonomous-replan decisions survive stride followthrough.
Disable / rollback: Set --execution-stride-strategy off --execute to stop the strategy while retaining cadence. Clear strategy and both cadence options for full device inheritance. Preserve original-version receipts.
Authority boundary: Configuration grants no experiment, quota, clone, weaker acceptance or automatic pivot. A recorded decision does not prove adoption, utility or benchmark gain.
Docs: Versioned guide
: "${GOAL_ID:?Select the existing authorized Goal}"
loopx configure-goal --goal-id "$GOAL_ID" --execution-stride-strategy evidence_conditioned_v1
# Apply only the reviewed preview:
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 --executeExplore question evolution
Activation: Explicitly choose Explore evidence or planning mode in the existing Goal editor/configure-goal. During normal Todo/Turn writeback, fill its existing explore_result_attachment_v0 and optionally include question_update plus up to four relations. Use the same node_id, exact question/applicability and recorded question owner; no maintenance pass is required for ordinary work.
Validation: Read explore turn-context and summary. question_status is independent of finding status: a negative answer can resolve a question while its finding is refuted. blocked requires blocked_reason. Missing targets, self/duplicate/cyclic relations and concurrent graph drift refuse before graph commit; replay preserves later question updates and retries only a missing Todo link.
Disable / rollback: Omit question_update and relations to retain create-only capture; turn Explore off via configure-goal --explore-mode off --execute or the existing editor. Preserve prior findings and receipts. Removing an attachment from a later call does not erase a committed graph event.
Authority boundary: Explicit research evidence grants no scoring, launch, model, quota, remote sink or acceptance authority. The bounded source/writeback journey is delivered; packaged human lifecycle editing and sustained research utility are not qualified by this release.
Docs: Versioned guide
: "${GOAL_ID:?Select the existing Goal}"
: "${AGENT_ID:?Select its registered Agent}"
loopx configure-goal --goal-id "$GOAL_ID" --explore-mode evidence
# Apply the reviewed preview only:
loopx configure-goal --goal-id "$GOAL_ID" --explore-mode evidence --execute
loopx explore turn-context --goal-id "$GOAL_ID" --agent-id "$AGENT_ID"
loopx explore summary --goal-id "$GOAL_ID"
loopx configure-goal --goal-id "$GOAL_ID" --explore-mode off --executeResearch checkpoint and warm continuation
Activation: Explicit developer/provider use: ordinary Codex Goals use research-checkpoint capture with reviewed request JSON and a quiescent completed source; verify before separate admit-session/adopt-context. Benchmark workers declare --checkpoint-request and protected --checkpoint-controller-file; warm receivers pass --restore-checkpoint/--restore-sha256/--restore-config and fresh Goal/Agent IDs. Pin the provider revision and original remaining deadline/opportunities.
Validation: Verify immutable artifacts and original capture/restore receipts. Read retained research/native cursor and current preparation/replan before normal cadence; reconcile lost replies by original operation ID. Help launches no benchmark. The 30-second source-capture window is unchanged; completion/sealing allowance remains bounded by the original Host phase deadline. The retired separate LHTB planning-timeout option is no longer injected. Full checkpoint verification now receives up to60seconds within the original remaining execution deadline, checks expiry after participant validation, and reuses verified metadata rather than scanning twice.
Disable / rollback: Omit capture declarations or restore flags for a cold worker. Stop only the owned receiver/controller through its original runner. Never copy a live source or rewrite deadlines/receipts; any phase extension must be equal across compared arms.
Authority boundary: This is CLI/provider composition, not complete packaged frontend restore, scientific-profile, sustained-continuation or matched-gain certification. Archive verification grants no scoring, submission, registration, remote write or budget.
Docs: Versioned guide
: "${CHECKPOINT_ROOT:?Select the exact immutable artifact root}"
: "${CHECKPOINT_SHA256:?Use its recorded SHA-256}"
loopx --format json research-checkpoint verify --root "$CHECKPOINT_ROOT" --expected-sha256 "$CHECKPOINT_SHA256"Exact LoopX Turn recovery
Activation: Per-command recovery opt-in: turn run-once --resume-turn-key with the original Goal/Agent and Turn key. Recovery loads its recorded plan before fresh selection, Turn-start context, inbox sync or recall; it does not create a replacement TurnEnvelope.
Validation: Read turn inspect-journal for that exact identity. Original Goal lifetime, actor, session/profile, provider checks, effect reconciliation and settlement remain authoritative. --retry-failed-turn is only for the existing bounded journal decision, not a blanket retry.
Disable / rollback: Do not issue another recovery command when stopping. Stop the original owned host through its existing controller and reconcile its effects. New work without a resume key still needs fresh admission; a new key must never be used to evade an uncertain original execution.
Authority boundary: The key locates an original journal, not authority to impersonate another Agent, retarget work, reset deadlines, spend twice or bypass leases. Canonical pending effects and validation remain independent of a successful journal read.
Docs: Versioned guide
: "${GOAL_ID:?Select the original Goal}"
: "${AGENT_ID:?Select the original Agent}"
: "${TURN_KEY:?Use the original journal key}"
loopx --format json turn inspect-journal --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --turn-key "$TURN_KEY"
# Explicit recovery only after inspecting that original journal:
loopx turn run-once --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --resume-turn-key "$TURN_KEY"DSH host and original-operation continuation
Activation: Default off, operator-only binding: use the explicit DSH native-operation module and a compatible pinned SDK/runtime. For the original owner, set continuation_kind="original_operation", agent_id and the sole requesters entry to that Agent, todo_id to its original Todo, and preserve exact session/profile/workspace/host arguments and bounded timeout. Point the configured authenticated collector managed_turn_wake at that binding. Ordinary peer self-delegation remains refused. The normal Turn entry uses --host dsh --dsh-operation-module "$DSH_OPERATION_MODULE" and the original --dsh-runtime-bin, --dsh-home and --dsh-cordis pins; require SDK0.2.1a3 from official source2fbf4359 and npm0.2.1-alpha.3. This Python SDK candidate is not a published runtime upgrade.
Validation: Read the original Turn journal plus canonical confirmation, launch intent, native host-start, first-consumption and outcome receipts separately. A process request is not host-start; lost launch acknowledgement stays uncertain and callback replay does not respawn. The isolated source-built SDK0.2.1a3/npm0.2.1-alpha.3 path is qualified with a loopback provider; the older default SDK cannot be assumed resume-capable.
Disable / rollback: Remove that binding or its collector wake to prevent new admission, and close/stop the original owned native host through its existing controller. Already reserved or running operations require original-record reconciliation; removing configuration does not undo effects.
Authority boundary: The existing Core operation store and native one-shot tool owner retain confirmation, exact subject, quota/lease/stop and effect authority. No new approval store or external effect is enabled. Dashboard grant editing, live automatic collector wake, original-card return and domain/financial outcomes remain separate unqualified stages.
Docs: Versioned guide
: "${GOAL_ID:?Select the original Goal}"
: "${AGENT_ID:?Select the original Agent}"
: "${TURN_KEY:?Use its existing Turn journal}"
python3 -c "import importlib.metadata as m; print(m.version('deepseek-harness-sdk'))"
loopx --format json turn inspect-journal --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --turn-key "$TURN_KEY"Claude settings hardening
Activation: Optional --harden on the existing installer; choose the exact project or user scope. Preview first. A malformed, unreadable or non-object settings.json now refuses the hardening rewrite while preserving the file, rather than replacing existing settings.
Validation: Read the installer result, the chosen scope's LoopX PreToolUse/statusLine entries and existing MCP/doctor readback. Fix the settings file through its owner before retrying; do not infer model authentication or live native-loop qualification from a readable JSON file.
Disable / rollback: Use /loopx off in that Claude project to remove loop material. For full adapter removal, remove only the owned loopx MCP/command and LoopX PreToolUse/statusLine entries described in the versioned guide; retain unrelated settings and rules. Omitting --harden on a later install does not remove a previously installed hook.
Authority boundary: Installation and hardening do not grant file, shell, model, Goal or provider permissions. Existing Claude approval and Core admission still govern; no automatic consent or replacement of unreadable user settings is authorized.
Docs: Versioned guide
: "${PROJECT:?Select the owned project directory}"
python3 -m loopx.claude_goal_mode.scripts.install --scope project --project "$PROJECT" --harden --dry-run
# Only after reviewing the exact scope:
python3 -m loopx.claude_goal_mode.scripts.install --scope project --project "$PROJECT" --harden
loopx doctor
# In the selected Claude session: /loopx status ; /loopx offOpenCode and Pi continuation
Activation: Choose an existing host explicitly. OpenCode1 installs its opt-in bridge with slash-commands --install --surface opencode --with-goal-bridge; OpenCode2 uses the shared facade and the exact returned opencode2-goal-worker activation command/session. Pi uses --surface pi --pi-project. Re-arm a deliberately paused host only through its documented resume control after Core admission is restored. For Pi the exact project install is loopx slash-commands --install --surface pi --pi-project .; OpenCode2 selects --host-surface opencode2 and runs the exact returned opencode2-goal-worker packet with its original directory/task body/session.
Validation: Read configure-goal and the original host/worker status. OpenCode2 falls back from unsupported stable wait to its experimental wait route; other errors are not swallowed. Pre-pause checks are fenced, initial dispatch needs admission, terminal closure disarms continuation, and ordinary external waits retain their owner/backoff.
Disable / rollback: Stop the original Goal and owned host/worker through their existing controls, then uninstall only the selected facade/bridge or Pi project extension. Host stop does not undo an already submitted Turn; reconcile its original effects and settlement. Readback is distinct from installed-host latency qualification. Pi uses loopx slash-commands --uninstall --surface pi --pi-project . then Pi /reload; stop the original OpenCode2 worker rather than deleting its private state as a stop mechanism.
Authority boundary: No model, sandbox, tool, restart, token, child-worker or cross-Goal authority is added. OpenCode1/OpenCode2/Pi have different runtime owners; installing shared static material does not activate all of them. Live authenticated host operation is not certified here.
Docs: Versioned guide, Versioned guide, Versioned guide
: "${GOAL_ID:?Select the existing Goal}"
loopx slash-commands --install --surface opencode --with-goal-bridge
loopx --format json configure-goal --goal-id "$GOAL_ID"
# Stop the owned Goal/bridge first, then remove only that integration:
loopx slash-commands --uninstall --surface opencode --with-goal-bridge
# Pi alternative only, when this is the selected host:
# loopx slash-commands --install --surface pi --pi-project .
# loopx slash-commands --inspect --surface pi --pi-project .
# loopx slash-commands --uninstall --surface pi --pi-project .
# OpenCode2: run the returned activation packet; inspect the shipped worker syntax:
loopx opencode2-goal-worker --helpCodex child-context integration
Activation: Keep child execution default off. To expose its existing local editor, start dashboard --enable-goal-subagent-configuration; separately preview/apply configure-goal --multi-subagent-feature enabled --max-children N for an authorized Goal. The shipped host adapter follows current Codex child-context vocabulary.
Validation: Read the Goal configuration and actual observed native child capacity before dispatch. Registration or model advice alone is not a host child capability. Retain independent child acceptance, original bounded deadlines, task/lease authority and result adoption.
Disable / rollback: Set --multi-subagent-feature off --execute to stop new worker spawning. Stop the owned Dashboard and restart without its editor flag to remove that surface. Existing workers keep their own stop/recovery owner; configuration removal does not claim they have stopped.
Authority boundary: No auto-election, peer launch, extra quota, private context sharing or relaxed acceptance is granted by installing the facade/editor. The host's native capacity and configured context boundary remain independent constraints.
Docs: Versioned guide
: "${GOAL_ID:?Select the authorized Goal}"
loopx configure-goal --goal-id "$GOAL_ID" --multi-subagent-feature enabled --max-children 2
# Apply only the reviewed Goal preview:
loopx configure-goal --goal-id "$GOAL_ID" --multi-subagent-feature enabled --max-children 2 --execute
loopx --format json configure-goal --goal-id "$GOAL_ID"
loopx configure-goal --goal-id "$GOAL_ID" --multi-subagent-feature off --executeEgo source redirect feedback
Activation: Optional MCP setup only: install loopx[ego-source-reader] in the selected execution host environment, then add the exact stdio module loopx.extensions.ego_source_reader to that host's existing MCP config. Set LOOPX_EGO_READ_TASK_SPACE=auto, LOOPX_EGO_READ_PAGE=p1 and an explicit origin list or the documented * mode. It remains disabled when no server entry is configured.
Validation: Use read_public_url in that configured host. A same-origin redirect refuses the old requested URL while returning the actual final URL for a separate permitted read; cross-origin, raced or ambiguous navigation still refuses. Module/version checks below verify installation, not that a particular private page is public.
Disable / rollback: Remove only that MCP entry and restart the existing idle host to disable. To narrow origin scope set an explicit comma-separated HTTPS origin list and reload; an empty value is invalid. Follow Ego TaskSpace ownership and stop when the user takes control.
Authority boundary: The browser may hold personal cookies: origin allowance does not establish public provenance or authorize login, private-account reads, browser control, filesystem writes or publication. Community hosts needing no personal cookies should use the separate anonymous provider; no silent substitution.
Docs: Versioned guide
python3 -m pip install "loopx[ego-source-reader]==1.4.2"
python3 -c "import importlib.metadata as m; import loopx.extensions.ego_source_reader; print(m.version('loopx'))"
# In the explicitly configured host, call read_public_url with an authorized public URL.
# Disable: remove that one MCP entry, then restart the original idle host.Ordinary project Codex Git writes
Activation: Uses the existing ordinary-project workspace_write grant (chat default) and host_default scope; no new switch. --project-workspace-grant workspace_read disables App writes. Start/resume adds only the physical project .git to native write roots.
Validation: Read the chosen host doctor and native permission readback. Authorized ordinary repository Git changes can include project-local Codex skill files; system-managed/global host materials retain their separate protection. Verify the original thread and exact project root before dispatch.
Disable / rollback: Stop the owned server/session, restart with --project-workspace-grant workspace_read and use a newly scoped thread. workspace_only preserves community isolation without this root. Retain history and native settings.
Authority boundary: No publication, destructive Git, account, extra network, external worktree/symlink or other-project access is granted. Existing network/tmp/approved roots remain; active Bot deployment still needs its normal update/restart.
Docs: Versioned guide
loopx chat --help
loopx doctor --agent-type codex
# Existing server activation/restriction choices (stop only your owned server first):
# loopx chat --project-workspace-grant workspace_write --project-filesystem-scope host_default
# loopx chat --project-workspace-grant workspace_readDesktop interrupted-update recovery
Activation: Per-operation Desktop opt-in: open the installed App's existing update panel. Only when the native owner reports an incomplete replacement and an available verified backup, use Restore previous version → Restart to finish. Healthy-installation rollback remains under Advanced options.
Validation: After restart, read the App version and runtime doctor, then reopen the same saved conversation. Restart-interrupted Chat explains the stored failure and retains history; an explicit follow-up is a new user action, not an automatic replay. Invalid backups and unknown failures keep their specific refusal/readback.
Disable / rollback: Close the panel to avoid another update. If replacement already occurred, use only the existing verified native rollback for that installation; do not copy files over a running App or treat CLI package downgrade as Desktop rollback. Keep the original recovery journal and history.
Authority boundary: The panel grants no signing identity, notarization, user-data deletion, repeated native effect or alternative runtime authority. Mac remains ad-hoc signed; no Apple notarization or native Windows-client execution is claimed by local artifact verification.
Docs: Versioned guide
loopx --version
loopx doctor --deep
# In the installed App: update panel → verified Restore previous version → Restart.
# Reopen the same conversation and read back the actual App version.Lark source and callback handling
Activation: Explicitly install the bundled loopx-lark provider and use the existing owner-private, non-default-profile collector configuration. Preview collector-plan/install; --execute installs the declared local user service. operation_callbacks.enabled=true and managed_turn_wake remain separate explicit opt-ins; ordinary source feedback does not enable them. When a text consumer already exists, explicitly set operation_callbacks.callbacks_only=true together with enabled=true to start only card.action.trigger; the default remains false.
Validation: Read extension doctor and collector-status --probe-event-bus for the exact project/config. Source identity/message reads overlap and receipt setup reuses verified metadata. Admission feedback no longer waits for session recovery, but failure, uncertain state, callback confirmation and source-thread delivery retain separate receipts. In callback-only mode require collect_messages=false in plan/status; older runtimes reject the new option before spawning.
Disable / rollback: Disable the provider with extension disable. Separately stop the currently running collector through the exact original launchd/systemd service named in collector-plan; disabling the extension only fences its next start. Remove the wake/callback opt-in to prevent new operation admission; preserve original event/operation receipts. After stopping the owned service, remove callbacks_only or set it false to restore the original text/callback topology; review the original configuration before restarting.
Authority boundary: No user OAuth, Bot scope, new chat membership, native launch grant, effect approval or announcement authority is added. A running collector, callback delivery and original audience receipt are independent from source/config readiness. This release does not certify live Bot/account or financial execution.
Docs: Versioned guide, Versioned guide
: "${LARK_COLLECTOR_CONFIG:?Use the existing owner-private config}"
loopx extension install --bundled loopx-lark --execute --format json
loopx extension doctor loopx-lark --execute --format json
loopx lark-inbox collector-plan --project . --config "$LARK_COLLECTOR_CONFIG"
loopx lark-inbox collector-install --project . --config "$LARK_COLLECTOR_CONFIG"
# Install only after reviewing the exact service/profile plan:
loopx lark-inbox collector-install --project . --config "$LARK_COLLECTOR_CONFIG" --execute
loopx lark-inbox collector-status --project . --config "$LARK_COLLECTOR_CONFIG" --probe-event-bus
# Stop the exact original host service separately before disabling:
loopx extension disable loopx-lark --execute --format jsonMatched custom benchmark model routing
Activation: Source-runner per-attempt opt-in: select an existing private scoped environment profile containing the Responses endpoint and its matching credential, using the exact variable schema in the versioned guide. Load it only for the reviewed runner process with uv run --env-file as below, identically for plain and LoopX arms and the same model/effort. A selected endpoint without its paired credential refuses before an attempt, with no login fallback; a credential alone does not select the route.
Validation: The safe checks below prove selected environment fields and parser availability, not model/API or Docker qualification. Before an authorized trial, inspect the actual staged native Codex provider/home and original profile receipts; warm continuation must retain the captured endpoint/configuration and use fresh authorized credentials. Do not copy secrets into JSON settings, shell command text or public reports.
Disable / rollback: For a new cold attempt, select a separate private login-file profile with the custom endpoint and paired credential absent and CODEX_AUTH_JSON_PATH present; use the same explicit --env-file wrapper. Stop only owned trials through their original runner. Never switch the provider of an active or captured original session to make a retry work.
Authority boundary: This routing grants no model account, network destination, Docker capacity, benchmark launch, scoring, submission or publication authority. Matched configuration is not matched outcome or leaderboard equivalence; live model/tool and environment qualification remains separate.
Docs: Versioned guide
: "${BENCH_MODEL_ENV:?Select the existing private scoped runner environment file}"
test -r "$BENCH_MODEL_ENV"
uv run --extra test --env-file "$BENCH_MODEL_ENV" python -m benchmark.edgebench.run --help
# For an authorized new cold attempt, keep this exact --env-file wrapper
# and replace --help only with the separately reviewed original trial arguments.
# --help parses the entrypoint; it launches no trial and proves no API outcome.Native benchmark report selection
Activation: Offline, per-export opt-in: add settings.native_ranking with exactly selection (score_first, valid_then_score or pass_rate_first) and score_direction (maximize or minimize) to each explicitly selected terminal run. Copy the effective policy from its pinned native judge configuration. Export only to a new owned directory using the exact selection and observed timestamp below.
Validation: Run export_report --verify on that export. The adapter binds native history/final best_round, best_score and best_pass_rate to the selected sample; unknown/incomplete metadata and direction contradictions refuse. A selected score may be below another sample under pass-rate-first policy. Verification checks bindings and witnesses, not optimality or the truth of supplied private policy metadata.
Disable / rollback: Omit native_ranking for a new export to retain the historical scalar-maximum path. Preserve immutable prior exports and their settings hashes; regenerate a separate output rather than editing evidence in place. Stop by omitting the export command; it starts no worker or remote upload.
Authority boundary: The reducer does not rescore, rerank native submissions, qualify integrity, read sessions, launch jobs or publish evidence. Settings can contain private context and need their own publication review. Neither report path grants submission opportunity, promotion or network authority.
Docs: Versioned guide
: "${RUNS_ROOT:?Use the authorized terminal collection}"
: "${RUN_SELECTION:?Use its reviewed selection JSON}"
: "${NEW_REPORT:?Choose a new unused owned output directory}"
: "${OBSERVED_AT:?Use the real observation timestamp}"
uv run --extra test python -m benchmark.edgebench.export_report --runs-root "$RUNS_ROOT" --selection "$RUN_SELECTION" --output "$NEW_REPORT" --observed-at "$OBSERVED_AT"
uv run --extra test python -m benchmark.edgebench.export_report --verify "$NEW_REPORT"Shared LHTB planning deadline
Activation: Existing source-runner workflow: planning now shares the original scheduler/phase execution deadline. Before using an existing profile, remove LOOPX_PLANNING_TIMEOUT_SEC, the old --planning-timeout argument and any non-null template planning_timeout_sec. They are rejected rather than silently ignored. Keep the approved task, scheduler and turn budgets; the preview below only renders a new configuration and launches no trial.
Validation: Inspect the generated configuration and planning-input observation: the absolute deadline, remaining shared window and existing execution/startup/settlement reserves remain explicit. The canonical planning packet is unchanged. The renderer is invoked as a source module so its benchmark imports resolve; use the same fixed model/effort and budgets across comparisons.
Disable / rollback: Stop the owned trial through its original runner. To return to the older separate-timeout behavior, use the prior pinned runner in a new isolated attempt with its original profile; never rewrite old receipts or reactivate a completed phase. Removing the new configuration does not stop an already running trial.
Authority boundary: Removing a redundant stage cap grants no additional total phase time, model tokens, experiment launch, acceptance relaxation, submissions or replan authority. Old frozen cohorts retain their source and criteria. This is not a measured benchmark improvement.
Docs: Versioned guide
: "${LHTB_TEMPLATE:?Select the reviewed existing template}"
: "${NEW_LHTB_CONFIG:?Choose a new owned config path}"
: "${OWNED_JOBS_DIR:?Select the original approved jobs root}"
: "${BENCH_MODEL:?Retain the approved model}"
: "${TASK_TIMEOUT:?Retain the original task budget}"
: "${SCHEDULER_TIMEOUT:?Retain the original scheduler budget}"
unset LOOPX_PLANNING_TIMEOUT_SEC
uv run --extra test python -m benchmark.LHTB.scripts.render_config --template "$LHTB_TEMPLATE" --output "$NEW_LHTB_CONFIG" --job-name release-config-preview --jobs-dir "$OWNED_JOBS_DIR" --concurrency 1 --model "$BENCH_MODEL" --effort high --timeout "$TASK_TIMEOUT" --scheduler-timeout "$SCHEDULER_TIMEOUT" --execution-mode heartbeat
# This rendered profile is not a benchmark launch or qualification.State-aware Goal chat suggestions
Activation: Open an existing Goal, select Chat, and expand Suggestions (快捷提问). Up to three choices come from its current typed projection. A waiting-decision choice opens Overview; blocked/acceptance/continue/results questions are sent to the original Agent when clicked and can invoke its model. No extra configuration is required.
Validation: Read the named Goal status below and compare the visible count/titles with its fresh state. Optional reminders do not count as owner decisions; a partial work list cannot prove all done. Stopped Goals have no suggestions and unknown execution is not treated as idle. Use the existing close/reload path to recover stale navigation.
Disable / rollback: Collapse Suggestions or omit a suggested action; this hides the choices and does not stop an existing Turn. Stop an already running operation through its original authorized control. There is no new persistent global disable switch.
Authority boundary: A suggested question adds no tool, model account, quota, execution, claim/lease or approval authority. It does not settle a task or certify delivery; current Core gates remain authoritative.
Docs: Versioned guide
: "${GOAL_ID:?Select the existing authorized Goal}"
loopx --format json status --goal-id "$GOAL_ID"
# Open the installed workspace, select that Goal, then Chat → Suggestions.
loopx chatLocal context recall and provider comparisons
Activation: Default off. Select an owner-private decision_context_profile_v0 with the exact Goal, enabled=true, this Agent in enabled_agents, empty sources/source_provider_bindings, context_provider.provider=bm25, namespace, max_results=3, timeout_seconds=10, config.corpus_path pointing to its approved local_bm25_corpus_v0, and automation.automatic_capture=false/fail_open=true. The request scope must equal the corpus scope. han_bigrams=false retains word-default behavior; true is explicit opt-in and is reported. Pass this profile only to recall-context as below.
Validation: Inspect status/reason and hits: unavailable/corrupt/unstable corpus refuses, while a completed zero-match search is empty. An optional source-only comparison uses the reviewed private suite/profile and exact fixed inputs; the help below launches no run. Keep unknown-answer queries and failed/unavailable queries in denominators. Scores are corpus-relative and cannot be compared across providers.
Disable / rollback: Set enabled=false in this selected profile or remove its context_provider binding; omit the recall/comparison command. No corpus is deleted or other Agent configuration replaced. Manual recall does not enable automatic memory, a host hook or verified-outcome writeback.
Authority boundary: Read-only local corpus, no model/network call or index/memory write from BM25. All content is untrusted advisory input with no Goal/Todo/lease/permission/publication authority. Outer packets/reports are local-private and need review before sharing. This is a provider/CLI slice: no new frontend comparison editor or Lark route is delivered.
Docs: Versioned guide, Versioned guide
: "${GOAL_ID:?Select the authorized Goal}"
: "${AGENT_ID:?Use its authorized Agent}"
: "${BM25_PROFILE:?Select the reviewed private BM25 profile}"
: "${BM25_SCOPE:?Use that corpus exact scope_ref}"
loopx decision-context recall-context --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --profile "$BM25_PROFILE" --context-scope-ref "$BM25_SCOPE" --query "stdout UTF-8 bytes" --query-summary "Output budget evidence" --max-results 3 --format json
# Optional source comparison; --help launches no run:
uv run --extra test python examples/context-provider-comparison.py --help
# An authorized comparison uses the reviewed private inputs and new output:
# uv run --extra test python examples/context-provider-comparison.py --suite "$CONTEXT_SUITE" --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --loopx-command-json '["loopx"]' > "$PRIVATE_REPORT"Basic usage statistics and local cycle observations
Activation: Existing policy is unchanged: collection starts only after visible first-use disclosure, or explicit enable in consent-required distributions. Inspect usage-ping status first; use enable only when selecting that existing policy. This release changes only an admitted detached cycle worker local-lock wait to at most two seconds; ordinary observers keep250ms and business commands do not wait.
Validation: Read usage-ping status and its delivery/local measurement state. Missing or persistent-lock observations remain unknown. Local clock categories overlap and are not uptime, billing, completed work or proof of model utility. Synthetic release tests opt out and use disposable loopback collectors only.
Disable / rollback: Run loopx usage-ping disable, or set LOOPX_USAGE_PING=0 in the relevant process. Disable clears the local identifier and buffered measurements while retaining the voluntary device label; queued observations recheck consent/generation and cannot restore collection. No network retry is added.
Authority boundary: No prompt/code/path/raw error/Goal identity publication or model/tool authority is granted. The named collector receives only the documented closed aggregate contracts; network metadata can remain visible to network services. Settings do not authorize a new recipient, workspace read, experiment or external write.
Docs: Versioned guide
loopx usage-ping status
# Only when explicitly selecting the existing collection policy:
# loopx usage-ping enable
loopx usage-ping disable
loopx usage-ping statusInstall / Update
PyPI installations can select this exact release with their existing environment owner:
python3 -m pip install --no-cache-dir --upgrade "loopx==1.4.2"
loopx --version
loopx doctor
# Refresh existing managed host material explicitly, when used:
loopx workflow-skills --install
loopx slash-commands --installFor pipx, archive and Desktop installations, keep the original update owner and inspect loopx update plan. Use the matching platform assets on this release. Node.js22.22.3 or newer remains required; no global account/model permission is added.
GitHub/PyPI wheel and sdist hashes, hosted source attestations and included source bytes match the immutable v1.4.2 tag. Four Mac/Windows Desktop installers, the signed macOS updater, desktop-stable, source stable, actual public tag/stable installation and website download links have been independently read back. Actual PyPI1.4.1→1.4.2 upgrade preserves the old Todo and Goal registry, and installed frontend/doctor checks pass. The personal illustrated guide has verified user ownership, two actual released-UI screenshots, reviewed native PDF rendering and public-link read-only access. Mac artifacts remain ad-hoc signed without Apple notarization; Windows client execution was not performed on this Mac.
中文摘要
图文发布指南:LoopX 1.4.2 图文升级指南
看清 Agent 工作、按准确版本检查交付、更可靠地恢复原操作。 空工作区可直接创建首个 Goal;稳定 Agent 工作页保留目标与工具记录;交付检查由 Agent 用既有 CLI 准备方案,本机所有者采用后执行。新 Todo 默认 P1,旧记录不被改写;Turn、Goal 与桌面恢复沿用原身份和回执。完整归档仅做惰性检查,不激活工作。
升级沿用原安装 owner,先 loopx update check、loopx update plan,再显式 loopx update apply;精确 PyPI 版本使用上方命令。概率重叠不再强判,validation veto 按 Goal 影响判断,autonomous replan 决定在 stride 跟进中保留;旧双停滞提示不替代 Core 准入。
升级决策
**谁需要升级:**使用工作区/桌面、恢复 Turn/Goal 状态,以及使用本次变动的 Codex、DSH、Lark、Claude、OpenCode 集成的用户;尚未具备可选宿主固定依赖的部署可待完成自身资格后升级。
**解决了什么:**更容易找到当前 Agent 工作,交付检查绑定准确文件版本,新建 Todo 保留正确优先级意图,恢复与配置/回执读取更稳健。
**是否有破坏性变更:**有,限旧 LHTB runner profile:删除 LOOPX_PLANNING_TIMEOUT_SEC、--planning-timeout 及非空 planning_timeout_sec,planning 使用原 scheduler 共享 deadline。无强制存储迁移。新建 Todo 省略 priority 时改用 P1,历史未分级记录不变;新 Goal 的 SQLite 默认早已存在,并非 1.4.2 新切换。带 oracle 的合同降级前须在新版显式移除 oracle 并读回,单独 disable 不移除格式。DSH 原会话恢复候选依赖声明的源码/运行时固定版本,不自动升级默认 SDK。
如何验证:loopx --version 应为 1.4.2,随后读 doctor、指定 Goal 的 status / todo list 和原 Turn journal;版本号本身不证明任务执行或采用。
贡献者:@chyax98, @JasonBuildAI, @hhyykk, @Duang777, @cocolord, @songoow, @loopx-agent, @dependabot。具体贡献与 PR 在下方列明,创始人维护工作不在社区署名中重复列出。
状态内核与控制面
新建 CLI/Chat/canonical/monitor Todo 共用 P1 默认;显式 set/clear 与前驱优先级继承保留原规则。普通陈旧路由由当前权威 Todo 自动重建,历史失败/不可用来源不被抹平。恢复先读原 Turn 计划,压缩省略回执仍绑定原 Todo,原操作恢复沿用既有 owner,归档在原 fence 下复核 Goal 生命周期。(#6539, #6513, #6516, #6524, #6543, #6398)
能力与工作流
首次 Goal 入口、稳定 Agent 工作页与完整已保存工具记录沿用现有工作区;Codex 跟进仍为实验能力,需原绑定和空闲证明,不确定投递只对账、不自动重发。验收方案可由 Agent 经原 CLI 准备,本机 owner 在交付处采用并检查;文件快照不是 OS 沙箱或独立复核身份。完整备份只生成隔离惰性检查副本;Explore 可更新原问题和关系,未宣称完整人机 editor 或持续研究效用。(#6527, #6528, #6482, #6540, #6473, #6279, #6507)
Goal 对话新增按当前事实给出的有界建议:部分打开概览,问题类点击后立即向原Agent发送,停止或执行未知不伪装成空闲。普通Codex话题 /stop 也能停止本Session已完成回答仍拥有的后台命令,保留原回执和冻结目标。可选本地BM25复用shared scorer,私有provider比较仍为只读CLI切片,未交付新比较UI/Lark入口、不宣称任务效用或跨provider分数等价。(#6535, #6565, #6555)
基准与集成
DSH 原操作 owner 在固定 SDK/runtime/profile 下沿正常 Turn 继续;确认、启动申请、native 启动、消费、结果和原卡送达分别验收,loopback 资格不认证真实领域/金融结果。Lark 复用 metadata、重叠身份/消息读取并提前反馈准入;可选 callback-only 不再重复启动文本流。Ego 同源跳转返回 final URL 供另一次合规读取。Claude 不覆盖不可读设置;OpenCode2 仅在 stable wait 不支持时回退,Codex 子上下文和项目 Git roots 沿用既有 owner。(#6466, #6543, #6498, #6502, #6523, #6550, #6529, #6494, #6522, #3660, #6519)
Checkpoint 完成/完整校验不越过原阶段和执行 deadline,保留研究文件,复用已验证 metadata,并在 participant/context 校验后再次拒绝过期。LHTB 退役旧独立 planning timeout,EdgeBench 预算/报告/自定义模型保持比较两臂一致。不声称配对版本 benchmark 增益或单独归因于模型/Astra 的质量提升。(#6518, #6525, #6536, #6551, #6531, #6504, #6506, #6520)
社区贡献者
- @chyax98 — 本区间首次合并的外部贡献者:OpenCode2 仅在 stable wait 不支持时回退 experimental wait。 (#6522)
- @JasonBuildAI — 外部贡献者:目录扫描与 Claude 不可读加固配置保持失败关闭。 (#6490, #6494)
- @hhyykk — 外部贡献者:稳定历史顺序、概率类别重叠保留未决、去重 quota 规划与恢复原 Turn。 (#6484, #6500, #6511, #6516)
- @Duang777 — 保护归档 Goal 的生命周期,避免并发重建混入旧状态。 (#6398)
- @cocolord — 对齐已交付 Codex 子上下文的使用文档与边界。 (#3660)
- @songoow — 完善工作区入门、状态感知建议与路由拆分,以及惰性备份、宿主续跑、benchmark预算/报告路由和CI维护。 (#6279, #6416, #6483, #6503, #6504, #6506, #6520, #6527, #6528, #6530, #6531, #6535, #6541, #6542)
- @loopx-agent — 项目自动化:工作区会话与交付检查、原操作/后台命令恢复、可选context provider组合、集成/更新加固及发布资格修复。 (#6466, #6473, #6482, #6498, #6499, #6501, #6502, #6509, #6510, #6512, #6514, #6515, #6517, #6518, #6519, #6521, #6523, #6525, #6526, #6529, #6532, #6536, #6540, #6543, #6547, #6548, #6550, #6551, #6554, #6555, #6559, #6565, #6571, #6572)
- @dependabot — 依赖自动化:更新 sharp 与 js-yaml。 (#5806, #6508)
质量与测试
原cycle仅在detached worker内有界等待本地统计锁;普通observer和业务命令边界不变。恢复fixture保留完整20,000条SQLite历史审计及20,001溢出拒绝,probe先写首条pulse再发布ready。(#6571, #6572)
按已合入的 P1、停止与状态合同修复既有回归检查,保留完整权限/恢复断言;各 pytest worker 使用独立 runtime 临时命名空间,避免互相重启。4 处文件读取固定 UTF-8。brief 展示预算保留完整指导,不增加执行额度。冷 wheel 身份、真实 rollback 边界、可信 CI 清理及打包浏览器分片也得到改进。(#6554, #6559, #6526, #6515, #6416, #6503, #6542)
固定源码 77d6b07fb65c7ddffe14f45549f97295aca995d6 的八项必需资格通过。最终源码的 37 个完整相关模块为 1,655 项通过、零失败、零跳过,并非重新全量扫描最终树。上一 7ed 全量扫描的 23,565 通过、3 失败、531 跳过和656通过 subtests均保留;已评审的 #6571/#6572 与最终定向验证关闭已示范失败,未删除原断言。515 项公开 smoke 全通过,configured Ruff/mypy/TypeScript、5 项直接及19项风险检查、真实 PostgreSQL17 store/service、4项固定真实DSH入口,以及实际PyPI1.4.1→候选升级、托管技能和打包UI读回均通过。固定依赖的benchmark测试为 781通过、68项环境资格跳过;各范围重叠,不相加。授权的 DS V4.1 Flash/high 备选按同一固定22场景各2次、6组对照完成,44次actor、90次HTTP请求,零失败、零跳过。本次最终源码的 Evolving/high 仍未合格:完整验证保留一次selected-Todo unexpected_command失败,后续定向两次通过既不说明根因已修,也不替换失败的完整验证。独立native Codex live profile缺失,明确跳过。不声称配对benchmark增益、已认证外部宿主执行、完整Linux/fresh guest科学续跑或单模型因果改善。 仓库仍有可选DSH开发锁及Linux glib依赖告警,本版不将其标记为已修或认证该可选依赖链;源码DSH连接外部MCP前,需按实际依赖图核对MCP OAuth客户端公告。
文档与兼容性
不自动迁移旧 Goal;SQLite 已有的新建默认、显式 opt-out 和当前 provider 合同保留。所有可选入口的启用、验证、停用及权限边界在下方逐项说明。SDK 源码候选、oracle 格式降级、宿主权限和惰性备份的限制均明确保留。
可选能力启用与使用
以下与同名英文条目共用完整启用/停用命令,逐项提供最小读回;只在使用相应可选路径时执行。
Personal Workspace and original Agent conversations
**启用:**通过既有 loopx chat 或已安装桌面版打开工作区。空 registry 显示“创建 Goal”;点例子只填输入框。已有 Codex App Agent 可从 Goal 的 owner 入口打开稳定工作页;发送纯文本跟进仍需原绑定与宿主空闲证明。
**验证:**刷新及浏览器前进/后退保持原 Goal/Agent;展开已保存消息和工具结果。发送前忙碌拒绝须保留草稿,不确定投递只对账原回执、不自动重发。下方版本/doctor 验 runtime,页面另验精确会话。 普通Codex Chat在原Lark话题/stop也会冻结并停止本Session已完成Turn仍拥有的后台命令;读原stop journal/result和未改写的completed回执。active Turn、attached及native Goal仍用各自合同,synthetic wire测试不认证真实provider停止时序。
**停用 / 回退:**关闭工作页或自己拥有的 Chat 服务可停止从此入口提交新消息;撤回写权限须停止服务后以 workspace_read 重启。关闭页面不等于取消原宿主已执行的 Turn。
**权限边界:**实验性跟进复用原生绑定与 App 权限,不增加宿主、模型、账号、审批、忙碌中 steering 或跨 Goal 权限。保存记录不等于 token 流或完整原生能力;仅查看已授权会话。
文档:版本化指南
loopx --version
loopx doctorOwner-pinned Goal delivery checks
**启用:**默认未启用,由本机所有者采用方案。Agent 用 prepare --document acceptance.json --operation-id ... --execute 仅保存待审阅方案;所有者在交付与证据处“采用并检查”,已有合同可直接检查交付。owner_pinned_oracle 条件固定 checker 源码和声明输入/输出版本。
**验证:**通过 inspect 查看合同、provider revision 与 oracle 当前性;读取不执行检查。文件变化或不可读不得保留当前通过。verify --execute 才运行已批准检查;历史证据、独立复核、请求者采用和 Goal 完成各自独立。
**停用 / 回退:**在原 editor 停用,或使用刚读回的 revision 执行 disable。退回不认识 oracle 的旧 runtime 前,先在新版显式重配去掉全部 oracle 并读回;单独 disable 不是格式降级。
**权限边界:**可信本机所有者审阅 checker 含义与影响;文件快照不是 OS 沙箱,也不认证远程复核者。宿主解释器、环境、网络与未固定 import 仍受信任;Agent 不能自行配置 owner 治理或把检查回执当作采用证明。
文档:版本化指南
: "${GOAL_ID:?选择已授权的既有 Goal}"
loopx --format json goal-acceptance inspect --goal-id "$GOAL_ID"Inert full-backup inspection
**启用:**按次启用:设置→能力中心→设备默认→配置备份与恢复→完整归档检查,选择匹配的原 archive 和外部 manifest,验证并创建隔离副本。CLI verify 先预览,--execute 只创建全新、未占用的惰性 checkpoint。
**验证:**在“历史检查”读取已保存、经 digest 核对的 audit,或查看新目录的 recovery-audit.json。File/SQLite work/history 分为可读、仅历史、未知;所有 v0 audit 保留 legacy_manifest_incomplete 与 held,activation_eligible 和 execution_authority_granted 均为 false。
**停用 / 回退:**不传 --execute、关闭面板即不再创建副本。保留原归档/manifest,仅在审查后清理自己拥有的独立副本。配置快照恢复仍是另一路径;检查结果没有“开启执行”开关。
**权限边界:**不注册 Goal、不选 provider、不接纳身份、不恢复 Host/lease/timer 或未决 effect,也不跟随原 registry 路径。归档及 audit 可含私有资料,须留在本机;平台/服务缺项与不完整 inventory 继续不可用或 held。
文档:版本化指南
: "${BACKUP_ARCHIVE:?选择原 archive}"
: "${BACKUP_MANIFEST:?选择配套 manifest}"
: "${NEW_CHECKPOINT:?指定尚未占用的自有目录}"
loopx --format json backup-state verify --archive "$BACKUP_ARCHIVE" --manifest "$BACKUP_MANIFEST" --destination "$NEW_CHECKPOINT"Evidence-conditioned stride reviews
**启用:**默认 off。在既有“Goal 复盘与步幅”编辑器选择 evidence_conditioned_v1,预览后应用。CLI 单字段策略保留已有周期;能力 JSON 仅含策略会清除 Goal 周期覆盖并继承设备实时周期,普通默认仍为六个已结算工作 Turn。
**验证:**通过 configure-goal 和下一次新鲜复盘读回。启用后要求来源绑定的 grow/switch/verify 提案,分别论证工作规模、路线距离、证据广度、成本与采纳标准;后续证据与原决定一起返回。 概率类别重叠保留未决;validation veto 按 Goal 影响判断,既有 autonomous replan 决定在 stride 跟进中保留。
停用 / 回退:--execution-stride-strategy off --execute 关闭策略并保留周期;同时清除策略与两个周期字段才恢复设备继承。保留历史,不把冻结旧回执重解释为新策略。
**权限边界:**配置不授予实验启动、quota、checkpoint 复制、放宽验收或自动转向;决定与读回不证明模型采用、实际效用或 benchmark 增益。
文档:版本化指南
: "${GOAL_ID:?选择已授权的既有 Goal}"
loopx --format json configure-goal --goal-id "$GOAL_ID"Explore question evolution
**启用:**在原 Goal editor/configure-goal 显式选择 evidence 或 planning。普通 Todo/Turn 写回时填写既有 explore_result_attachment_v0,按需附 question_update 和最多四条 relations;复用 node_id、原问题/applicability 与记录 owner,普通工作不新增维护步骤。
**验证:**用 turn-context/summary 读回。question_status 与 finding status 独立:反例可解答问题,finding 仍为 refuted;blocked 必须有 blocked_reason。悬空、自连、重复、循环及并发 graph 漂移在提交前拒绝;重放保留后来的问题更新,只重试缺少的 Todo link。
**停用 / 回退:**不带两个可选字段即保留 create-only capture;在原 editor 或 configure-goal --explore-mode off --execute 关闭。保留旧 findings/回执,后续省略 attachment 不删除已提交事件。
**权限边界:**研究证据不授予评分、启动、模型、quota、远程 sink 或验收权限。交付的是有界源码/写回路径;完整人机生命周期 editor 与持续研究效用未由本次资格证明。
文档:版本化指南
: "${GOAL_ID:?选择已授权的既有 Goal}"
: "${AGENT_ID:?选择原已注册 Agent}"
loopx explore turn-context --goal-id "$GOAL_ID" --agent-id "$AGENT_ID"
loopx explore summary --goal-id "$GOAL_ID"Research checkpoint and warm continuation
**启用:**仅开发者/provider 显式启用:声明 --checkpoint-request,另行保护 --checkpoint-controller-file。warm receiver 显式提供 --restore-checkpoint/--restore-sha256/--restore-config 及新的 Goal/Agent;固定文档 provider revision,保留原剩余 deadline 与评估机会。 普通 Codex Goal 显式使用 research-checkpoint capture、审阅过的 request JSON 和停止工作的 completed native source;先校验精确 artifact,再分别 admit-session、adopt-context。
**验证:**接纳 receiver 前先验证不可变制品及原 capture/restore 回执;正常 cadence 前核对保留研究、native cursor 与当前 preparation/replan。响应丢失按原 operation 对账;以下 help 不启动 benchmark。 源 capture 的 30 秒窗口不变;completion/sealing 等待仍受原 Host 阶段 deadline 约束,LHTB 不再注入已退役的独立 planning timeout 参数。 完整制品验证最多使用原剩余执行deadline内的60秒,在participant/context验证后再次拒绝过期,并复用已验证metadata,减少重复扫描;不延长执行机会。
**停用 / 回退:**新 worker 不声明 checkpoint 即关闭捕获,不传 restore 参数即冷启动。只经原 runner 停止拥有的 receiver/controller;不复制活跃源、不改旧 deadline/回执。显式阶段延长须在比较两臂同等声明。
**权限边界:**归档验证不等于真实研究续接;当前是有界 CLI/provider 组合阶段,完整前端恢复、实际科学 profile、持续续接与配对增益尚未认证。不增加评分、注册、提交、远程写入或预算权限。
文档:版本化指南
: "${CHECKPOINT_ROOT:?选择不可变 artifact root}"
: "${CHECKPOINT_SHA256:?使用原 SHA-256}"
loopx --format json research-checkpoint verify --root "$CHECKPOINT_ROOT" --expected-sha256 "$CHECKPOINT_SHA256"Exact LoopX Turn recovery
**启用:**按命令显式恢复:用原 Goal/Agent/Turn key 执行 run-once --resume-turn-key。先加载原记录计划,再处理既有恢复;不重做 fresh selection、Turn-start context、inbox sync/recall,不新建 TurnEnvelope。
**验证:**用 inspect-journal 读取同一身份。原 Goal 生命周期、actor、session/profile、provider 当前检查、effect 对账及结算继续负责;--retry-failed-turn 仅适用于原有有界 journal 决定。
**停用 / 回退:**停止时不要再发恢复请求,经原 controller 停止自己拥有的宿主并对账。无 resume key 的新工作仍需 fresh 准入;不能用新 key 逃避旧执行的不确定性。
**权限边界:**key 只是 journal 定位,不授予冒用 Agent、换任务、重置 deadline、重复 spend 或绕过 lease 的权限;journal 读回成功不代替 canonical effect 和验收。
文档:版本化指南
: "${GOAL_ID:?选择已授权的既有 Goal}"
: "${AGENT_ID:?选择原已注册 Agent}"
: "${TURN_KEY:?使用原 Turn journal key}"
loopx --format json turn inspect-journal --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --turn-key "$TURN_KEY"DSH host and original-operation continuation
**启用:**默认关闭,仅 operator 精确绑定:显式加载 DSH native-operation module,并固定兼容 SDK/runtime。原 owner 使用 continuation_kind="original_operation",agent_id 与唯一 requesters 均为原 Agent,todo_id 为原 Todo,保留原 session/profile/workspace/host 参数及有限 timeout;认证 collector 的 managed_turn_wake 指向该绑定。普通 peer 自委派仍拒绝。 普通 Turn 入口显式提供 --host dsh --dsh-operation-module "$DSH_OPERATION_MODULE" 及原 --dsh-runtime-bin/--dsh-home/--dsh-cordis 固定项;Python SDK0.2.1a3 来自官方源码2fbf4359,npm runtime为0.2.1-alpha.3,前者尚非已发布的Python升级。
**验证:**分别读原 Turn journal 与 canonical confirmation、启动意图、native host-start、首次消费和 outcome 回执。请求进程不等于启动;丢 ACK 保留不确定,callback 重放不再 spawn。本次以 loopback provider 认证隔离源码构建 SDK0.2.1a3/npm0.2.1-alpha.3 路径,不能推断旧默认 SDK 支持 resume。
**停用 / 回退:**移除绑定或 collector wake 可阻止新准入;由原 controller 停止自己拥有的 native host。已预留/运行操作仍需按原记录对账,移除配置不能撤销已发生的 effect。
**权限边界:**既有 Core operation store 与 native 单次工具 owner 继续负责确认、精确主体、quota/lease/stop 和效果权限;不新增审批源或外部执行。Dashboard grant editor、真实自动 collector 唤醒、原卡送达及领域/金融结果仍是独立未资格化阶段。
文档:版本化指南
: "${GOAL_ID:?选择已授权的既有 Goal}"
: "${AGENT_ID:?选择原已注册 Agent}"
: "${TURN_KEY:?使用原 Turn journal key}"
python3 -c "import importlib.metadata as m; print(m.version('deepseek-harness-sdk'))"
loopx --format json turn inspect-journal --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --turn-key "$TURN_KEY"Claude settings hardening
**启用:**原 installer 的可选 --harden,须选择具体 project 或 user scope 并先预览。settings.json 非法、不可读或非 object 时拒绝覆盖并保留原文件,不再用空设置替换。
**验证:**读 installer 结果、所选 scope 的 LoopX PreToolUse/statusLine 和原 MCP/doctor。先经原 owner 修复配置再重试;JSON 可读不等于模型登录或真实 native loop 已资格化。
**停用 / 回退:**在对应 Claude 项目用 /loopx off 移除循环材料;完整移除时按版本文档仅删除 LoopX MCP/command 及其 PreToolUse/statusLine,保留其他规则。下次不传 --harden 不会删除已有 hook。
**权限边界:**安装/加固不授予文件、shell、模型、Goal 或 provider 权限;Claude 审批与 Core 准入仍生效,不自动同意或替换不可读用户设置。
文档:版本化指南
loopx doctorOpenCode and Pi continuation
**启用:**显式选择既有宿主:OpenCode1 用 --surface opencode --with-goal-bridge 安装可选bridge;OpenCode2 用共享facade和返回的精确worker/session启动命令;Pi 用 --surface pi --pi-project。只有恢复 Core 准入后,才按各宿主原 resume 控制重启已暂停流程。 Pi 项目安装为 loopx slash-commands --install --surface pi --pi-project .;OpenCode2 选择 --host-surface opencode2,再使用返回的精确 opencode2-goal-worker directory/task-body/session 组合。
**验证:**读 configure-goal 与原 host/worker 状态。OpenCode2 仅在 stable wait 不支持时回退 experimental wait,不吞掉其他错误。pause前检查有fence、首次dispatch也需准入、terminal收口撤销继续执行,正常外部等待保留原owner/backoff。
**停用 / 回退:**经原控制停止Goal和自己拥有的host/worker,再仅卸载所选facade/bridge或Pi项目扩展。停止不撤销已提交Turn;效果与结算仍按原记录对账,读回不证明已安装宿主停止延迟。 Pi 用 loopx slash-commands --uninstall --surface pi --pi-project . 后执行 /reload;OpenCode2 停原 worker,不靠删除私有 state 来声称停止。
**权限边界:**不增加模型、沙箱、工具、重启、token、子worker或跨Goal权限。三个宿主各有runtime owner,安装共享静态材料不同时激活它们;本次不认证真实登录宿主执行。
: "${GOAL_ID:?选择已授权的既有 Goal}"
loopx --format json configure-goal --goal-id "$GOAL_ID"Codex child-context integration
**启用:**子执行保留默认关闭。用 dashboard --enable-goal-subagent-configuration 显式显示原editor,再为已授权Goal分别预览/应用 --multi-subagent-feature enabled --max-children N。适配器按当前Codex子上下文词汇工作。
**验证:**派发前读Goal配置与实际观测到的native容量;注册Agent或模型建议不等于有子线程能力。子结果独立验收、原deadline、task/lease权限和结果采用仍分别负责。
停用 / 回退:--multi-subagent-feature off --execute 停止新spawn;停止自己拥有的Dashboard后,不带editor flag重启即可移除入口。已有worker沿用原停止/恢复owner,删配置不能声称它们已停。
**权限边界:**安装facade/editor不授予自动选主、peer启动、额外quota、私有上下文共享或放宽验收;native容量与配置的上下文边界仍独立生效。
文档:版本化指南
: "${GOAL_ID:?选择已授权的既有 Goal}"
loopx --format json configure-goal --goal-id "$GOAL_ID"Ego source redirect feedback
**启用:**仅可选MCP配置:在选定执行宿主环境安装 loopx[ego-source-reader],把 stdio module loopx.extensions.ego_source_reader 加入该宿主原MCP配置,并设置 LOOPX_EGO_READ_TASK_SPACE=auto、LOOPX_EGO_READ_PAGE=p1、LOOPX_EGO_READ_ORIGINS 的明确origin列表或文档中的*模式;不配server即不启用。
**验证:**在该宿主调用 read_public_url。同origin跳转拒绝旧请求,同时返回实际final URL供另一次合规读取;跨origin、竞态或不明跳转继续拒绝。下方模块/版本只验安装,不证明私有页面公开。
**停用 / 回退:**移除这一MCP entry并重启原空闲宿主即停用;缩小origin范围用明确HTTPS列表并reload,空值无效。沿用Ego TaskSpace所有权,用户接管即停止。
**权限边界:**浏览器可能有个人cookie;origin允许不证明公开来源,也不授予登录、私有账号读取、浏览器控制、写文件或发布。需要匿名的社区宿主使用独立匿名provider,不静默替代。
文档:版本化指南
python3 -c "import importlib.metadata as m; import loopx.extensions.ego_source_reader; print(m.version('loopx'))"Ordinary project Codex Git writes
**启用:**沿用普通项目既有 workspace_write grant(chat 既有默认)与 host_default 文件系统范围,不新增能力开关;显式 --project-workspace-grant workspace_read 关闭 App 写入 grant。接纳 start/resume 时仅把项目真实 .git 目录加入 native 可写 roots。
**验证:**读选定host的doctor与native权限。正常仓库Git更新可以包含项目内Codex skill文件;系统托管/全局宿主材料继续各自保护。dispatch前核对原thread和精确project root。
**停用 / 回退:**停止拥有的 Chat server/session,以 --project-workspace-grant workspace_read 重启并创建新范围 thread 来去掉写权。--project-filesystem-scope workspace_only 保持社区隔离,不增加普通 host-default Git root。保留历史和 native 配置。
**权限边界:**文件系统支持不授予发布、破坏性 Git、远程账号、额外网络、外部 worktree 元数据、symlink 目标或其他项目访问。保留原 network/tmp 与已有 roots;运行中的 Bot 仍需按原流程更新/重启。
文档:版本化指南
loopx doctor --agent-type codexDesktop interrupted-update recovery
**启用:**按操作启用:打开已安装App的原更新面板。仅当native owner报告替换未完成且有已验证备份时,用“恢复上一版→重启完成”;健康安装的回退仍在高级选项。
**验证:**重启后读App版本与runtime doctor,再打开同一历史对话。重启中断Chat显示原故障原因并保留历史,明确跟进是新用户动作、不自动重放。无效备份与未知错误保留具体拒绝和读回。
**停用 / 回退:**关闭面板不再更新。若已替换,仅用该安装的既有已验证native rollback,不覆盖运行中的App,也不把CLI包降级当桌面回退;保留原journal和历史。
**权限边界:**面板不授予签名身份、公证、删除用户数据、重复effect或替换runtime的权限。Mac仍为ad-hoc签名;本机资产校验不声称Apple公证或真实Windows客户端执行。
文档:版本化指南
loopx --version
loopx doctor --deepLark source and callback handling
**启用:**显式安装bundled loopx-lark,使用原有私有、非默认profile的collector配置。先预览plan/install,--execute才安装声明的本机用户服务。operation_callbacks.enabled=true与managed_turn_wake各自显式启用;普通反馈不自动开启它们。 已有文本consumer时,在原operation_callbacks内显式设置callbacks_only=true并保留enabled=true,仅启动card.action.trigger;默认false不变。
**验证:**对精确project/config读extension doctor和collector-status --probe-event-bus。identity与message读取重叠,receipt设置复用已验证metadata;准入反馈不再等待session恢复,但失败、不确定、确认和原thread送达仍分别有回执。 callback-only模式须读回collect_messages=false;旧runtime在启动前拒绝新配置,不能静默启动另一条IM流。
**停用 / 回退:**extension disable关闭provider;还须按collector-plan中的精确原launchd/systemd服务停止正在运行的collector,停用扩展只阻止下次启动。移除wake/callback配置阻止新操作准入,保留原event/operation回执。 若恢复原文本/回调拓扑,先停原服务,再移除callbacks_only或改为false,审阅原配置后重启。
**权限边界:**不授予用户OAuth、Bot scope、加群、native启动grant、效果批准或公告权限。collector运行、callback投递、原受众回执各自独立于source/config就绪;本次不认证真实Bot/账号或金融执行。
: "${LARK_COLLECTOR_CONFIG:?使用原 owner 私有配置}"
loopx lark-inbox collector-plan --project . --config "$LARK_COLLECTOR_CONFIG"
loopx lark-inbox collector-status --project . --config "$LARK_COLLECTOR_CONFIG" --probe-event-busMatched custom benchmark model routing
**启用:**仅源码 runner 的按次选择:按版本化文档的准确字段准备已有私有环境 profile,包含获准的 Responses endpoint 与配套凭据;仅对审阅过的 runner 进程使用下方 uv run --env-file,两臂采用同一 profile、model 与 effort。地址缺少配套凭据在 attempt 创建前拒绝、不回退登录;只有凭据不会选择自定义路线。
**验证:**下方仅核对字段是否存在与 parser,不证明模型/API 或 Docker 已资格化。授权运行前核对实际 staged native Codex provider/home 与原 profile 回执;warm 续接保留捕获的 endpoint/configuration,另行提供新鲜且已授权凭据。密钥不得放入 settings、日志命令或公开报告。
**停用 / 回退:**新冷 attempt 改用独立的原登录 profile:不含自定义 endpoint 及其配套凭据,并提供 CODEX_AUTH_JSON_PATH,仍经同一 --env-file 包装调用。只经原 runner 停拥有的 trial;不能为重试切换活跃或已捕获原会话的 provider。
**权限边界:**不授予模型账号、网络目的地、Docker 容量、实验启动、评分、提交或发布权限。配置一致不等于结果一致或 leaderboard 等价;真实模型工具与环境须分别验证。
文档:版本化指南
: "${BENCH_MODEL_ENV:?选择已有私有 runner 环境文件}"
test -r "$BENCH_MODEL_ENV"
uv run --extra test --env-file "$BENCH_MODEL_ENV" python -m benchmark.edgebench.run --helpNative benchmark report selection
**启用:**离线按次导出:在每个明确选中的 terminal run settings 内加入完整 native_ranking,selection 取 score_first/valid_then_score/pass_rate_first,score_direction 取 maximize/minimize,须从固定 native judge 配置复制真实值。按下方 selection 与观测时间导出到新建自有目录。
**验证:**对结果执行 export_report --verify;native history/final 的 best_round/best_score/best_pass_rate 与选中样本绑定,未知/缺项及方向矛盾均拒绝。pass-rate-first 下选中 score 可低于其他样本。校验不证明排名最优或所填私有策略属实。
**停用 / 回退:**新导出省略 native_ranking 即使用历史 scalar-max 路径;保留旧不可变导出和 settings hash,另建输出,不原地改证据。省略导出命令即停止,不启动 worker 或远程上传。
**权限边界:**不重算分数、不重排 native 提交、不认证 integrity、不读会话、不启动任务或发布证据;settings 可能含私有内容,须另行审查。两条路径均不增加提交机会、promotion 或网络权限。
文档:版本化指南
: "${EXISTING_REPORT:?选择已导出的目录}"
uv run --extra test python -m benchmark.edgebench.export_report --verify "$EXISTING_REPORT"Shared LHTB planning deadline
**启用:**既有源码 runner:planning 现在使用原 scheduler/phase 的共享执行 deadline。旧 profile 须删除 LOOPX_PLANNING_TIMEOUT_SEC、--planning-timeout 和 template 内非空 planning_timeout_sec;存在时明确拒绝,不静默忽略。保留已批准的 task/scheduler/Turn 预算,下方只渲染新配置,不启动 trial。
**验证:**核对新配置及 planning-input 观测:绝对 deadline、剩余共享窗口、既有 execution/startup/settlement reserve 都保留,canonical planning packet 不变。以 source module 调用 renderer,使用同一固定 model/effort 与比较预算。
**停用 / 回退:**经原 runner 停止拥有的 trial;需要旧独立 timeout 行为时,仅在新隔离 attempt 使用旧固定 runner 与原 profile,不改历史回执或重新激活完成阶段。删配置不代表停止已运行 trial。
**权限边界:**去掉阶段 cap 不增加总 phase 时间、token、实验启动、放宽验收、提交或 replan 权限;旧冻结 cohort 继续按原源码与标准,不据此宣称 benchmark 增益。
文档:版本化指南
uv run --extra test python -m benchmark.LHTB.scripts.render_config --helpState-aware Goal chat suggestions
**启用:**打开已有 Goal→对话→展开“快捷提问”,最多三条建议来自当前 typed projection。待你决定项打开概览;受阻/验收/继续/成果问题点击后向原 Agent 立即发送,可能调用其模型,无新增配置。
**验证:**用下方 status 与界面数量、标题对照新鲜状态。可选提醒不计为待你决定;部分工作列表不能证明全部完成。停止的 Goal 不提供建议,执行未知不当作空闲;陈旧导航按原关闭/刷新/重载恢复。
**停用 / 回退:**折叠建议或不点击即可不发起操作,不代表停止已有 Turn;运行中的操作经原授权控制停止。没有新增持久全局开关。
**权限边界:**建议不增加工具、模型账号、quota、执行、claim/lease或审批权限,也不结算任务或认证交付,仍由原Core gate判断。
文档:版本化指南
: "${GOAL_ID:?选择已有且已授权的 Goal}"
loopx --format json status --goal-id "$GOAL_ID"Local context recall and provider comparisons
**启用:**默认关闭。选择owner-private的decision_context_profile_v0:准确Goal、enabled=true、enabled_agents包含当前Agent、sources/source_provider_bindings为空;context_provider.provider=bm25并设置namespace/max_results=3/timeout_seconds=10,config.corpus_path指向已批准local_bm25_corpus_v0;automation.automatic_capture=false/fail_open=true。请求scope必须等于corpus scope。han_bigrams=false保留word默认,true须显式选择并记录。仅经下方recall-context传入该profile。
**验证:**读status/reason和hits:丢失/损坏/不稳定语料不可用,完成的零匹配为空。可选源码比较须固定已审阅的私有suite/profile及输入,help不启动运行;未知问题及失败/不可用请求保留在分母。分数只对本corpus有意义,不能跨provider直接比较。
**停用 / 回退:**把该profile的enabled设false或移除context_provider绑定,并省略recall/comparison命令;不删corpus、不替换其他Agent配置。手动recall不启用自动记忆、host hook或已验证结果写回。
**权限边界:**BM25只读本地语料,无模型/网络调用及index/memory写入;内容是非可信建议,不带Goal/Todo/lease/权限或发布authority。外层packet/report为local-private,分享前另审。当前是provider/CLI切片,未交付新前端比较editor或Lark路线。
: "${GOAL_ID:?选择已授权Goal}"
: "${AGENT_ID:?使用原Agent}"
: "${BM25_PROFILE:?选择已审阅的私有profile}"
: "${BM25_SCOPE:?使用准确corpus scope_ref}"
loopx decision-context recall-context --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --profile "$BM25_PROFILE" --context-scope-ref "$BM25_SCOPE" --query "stdout UTF-8 bytes" --query-summary "Output budget evidence" --max-results 3 --format jsonBasic usage statistics and local cycle observations
**启用:**既有策略不变:可见首次披露后,或consent-required分发显式enable后才收集。先读usage-ping status,仅在选择既有策略时enable。本次仅把已准入detached cycle的本地锁等待改为最多2秒;普通observer仍250ms,业务命令不等待。
**验证:**读usage-ping status及delivery/本地观测状态;缺失或持续竞争仍为未知。各时钟有重叠,不是uptime、计费、完成工作或模型效用证明。合成发布验证主动opt-out,仅使用一次性loopback collector。
**停用 / 回退:**执行loopx usage-ping disable,或在相应进程设置LOOPX_USAGE_PING=0。disable清除本机标识与缓冲观测、保留自愿设备标签;排队observer重新检查consent/generation,不能恢复已撤回收集。不增加网络重试。
**权限边界:**不授予prompt/code/path/raw error/Goal身份发布或模型工具权限;collector仅接收文档中的闭合聚合合同,网络服务仍可能观察连接metadata。设置不授权新recipient、工作区读取、实验或外部写入。
文档:版本化指南
loopx usage-ping status发布验证
- Package version and public tag:
1.4.2/v1.4.2. - Tag target:
77d6b07fb65c7ddffe14f45549f97295aca995d6.
固定源码 77d6b07fb65c7ddffe14f45549f97295aca995d6 的八项必需资格通过。最终源码的 37 个完整相关模块为 1,655 项通过、零失败、零跳过,并非重新全量扫描最终树。上一 7ed 全量扫描的 23,565 通过、3 失败、531 跳过和656通过 subtests均保留;已评审的 #6571/#6572 与最终定向验证关闭已示范失败,未删除原断言。515 项公开 smoke 全通过,configured Ruff/mypy/TypeScript、5 项直接及19项风险检查、真实 PostgreSQL17 store/service、4项固定真实DSH入口,以及实际PyPI1.4.1→候选升级、托管技能和打包UI读回均通过。固定依赖的benchmark测试为 781通过、68项环境资格跳过;各范围重叠,不相加。授权的 DS V4.1 Flash/high 备选按同一固定22场景各2次、6组对照完成,44次actor、90次HTTP请求,零失败、零跳过。本次最终源码的 Evolving/high 仍未合格:完整验证保留一次selected-Todo unexpected_command失败,后续定向两次通过既不说明根因已修,也不替换失败的完整验证。独立native Codex live profile缺失,明确跳过。不声称配对benchmark增益、已认证外部宿主执行、完整Linux/fresh guest科学续跑或单模型因果改善。 仓库仍有可选DSH开发锁及Linux glib依赖告警,本版不将其标记为已修或认证该可选依赖链;源码DSH连接外部MCP前,需按实际依赖图核对MCP OAuth客户端公告。
GitHub/PyPI wheel与sdist哈希、托管来源证明及所含源码均匹配不可变v1.4.2 tag。四项Mac/Windows桌面制品、签名Mac updater、desktop-stable、源码stable、真实公开tag/stable安装与官网版本下载链接已独立读回。实际PyPI1.4.1→1.4.2升级保留原Todo与Goal registry,安装前端及doctor通过。个人图文指南已核对用户所有权、两张正式安装UI截图和原生PDF渲染,公开链接只读。Mac仍为ad-hoc签名、无Apple公证;未在本机运行Windows客户端。
Mac 制品保持 ad-hoc 签名,未获 Apple 公证;Windows 制品可作签名/哈希及打包校验,本机未执行 Windows 客户端。实际模型组合、回归范围、失败与跳过按资格回执逐项报告,不从本地 UI 或 Loopback 推断模型效果、独立验收或科学长程续跑。