Repository navigation
LoopX 2.2.0
Release Decision
Who should upgrade: Canonical 2.x users of research history, managed conversations, scheduled reports or native/Windows hosts should upgrade for the changed reading and recovery paths. Operators with unsupported legacy authority must prepare migration first; a production owner may remain on its current version until that is complete.
What this release solves: Research evidence was difficult to trace across saved versions; complete reports and recovered requests could lose their original delivery context; races and stale fixtures obscured the actual work and its qualification. This release improves those concrete paths while retaining independent acceptance and effect readback.
Breaking changes: Yes for pre-canonical integrations: ordinary unmigrated authority-read fallbacks and retired protocol/legacy bridge formats are removed. Follow the existing explicit backup/migration/recovery contract before use. Existing canonical File/SQLite Goals retain their selected authority; an upgrade does not migrate data or add another writer. Unconfigured new Goals still create SQLite with hard leases. Supported POSIX Codex App/SSH sessions and new benchmark heartbeat trials now default to context delivery; saved machine off and explicit command/trial off remain effective. Ordinary CLI, unsupported hosts and non-heartbeat trials retain full delivery. Explore device mode remains off by default. Controller/executor-session RFCs are proposals, not shipped two-Agent orchestration.
How to verify: Expect loopx 2.2.0 and the correct installation owner/runtime. Open an existing Goal and verify one original result/source or the complete original report; registration, a saved setting and a completed Todo are not delivery proof.
Contributors: Release maintenance by @huangruiteng and @loopx-agent; concrete community contributions appear below, derived from the previous formal tag v2.1.1 and merged PR metadata.
loopx --version
loopx doctor --deep
loopx dashboardHighlights
- Read research from result to original evidence. Open an existing Goal’s Research view for saved findings, original-record search, version comparison and complete citations; generating a new analysis remains explicit. #7051, #7129, #7370, #7412, #7444, #7451.
- Receive a complete scheduled report in the original conversation. Explicit daily/weekly settings bind the prepared steward or existing managed Agent; only independent full-body readback acknowledges delivery. #7179, #7267, #7432, #7488.
- Continue safely after interruption. Original-request recovery rechecks source and current work; queued claim, expiry and stop races retain the actual terminal ledger. Unknown effects still require readback. #7399, #7477, #7505, #7504.
- Read current facts progressively and reuse exact changes across continuations. Enabled Codex context delivery saves complete sources, exposes current requirements and risks, and opens supporting evidence by JSON Pointer. Known paths can be read together; unfamiliar subtrees have a bounded index. Within a valid compaction cycle, structured deltas reuse verified unchanged content while current full recovery stays directly readable. Supported Codex sessions and new benchmark heartbeat trials now default on, with an existing switch or explicit off for disabling. #7815, #7311, #7670, #7735, #7775, #7784.
- Keep Windows and native-account ownership visible. Signed Windows update support, IANA timezones, UTF-8 state and read-only login-holder inspection improve their existing journeys. #6854, #7454, #7453, #7469.
Replan Fixes
- A lawful semantic replan can record a native child decision and close out an existing reported operation while ordinary delivery remains denied. #7484.
- Captured review context and same-obligation recovery retain current facts and original-Turn closeout; a successor Todo alone does not settle the review. #7269, #7426, #7249.
- Scoped approval permits explicitly independent lawful work while preserving the outstanding decision and its limits. #7440.
State Kernel & Control Plane
Canonical state, complete Todo reads and shared decision ownership stay with their typed owners. Read-only status follows the canonical source runtime; runtime aliases do not create a different authority. Goal creation can resume its original operation without erasing later writes. #6874, #7325, #7462, #7411, #7298, #7381, #7496.
An ordinary CLI self-claim now prepares execution atomically when the explicit actor matches the assignee and no explicit lease proof is supplied. Follow the returned progress/completion commands: progress can renew that still-active original execution, while expiry, replacement, foreign ownership and unavailable proof refuse without acquiring a new grant. Explicit lease calls, other assignments, soft-claim policy, read-only guards and App manual completion retain their existing authority. #7510.
Replan, outcome review, terminal refusal and original settlement retain their own identities. Required Host work does not grant ordinary delivery; no-write failures preserve their original source and journal. #7484, #7486, #7452, #7470.
Generated settlement recipes now carry the existing hard-lease execution preparation alongside later validation, writeback and spend; the recipe does not create execution authority. #7793.
Capabilities & Workflows
The Research workspace now leads with results, saved reports and readable questions, then original history, measurements and citations. Search and comparison reuse saved display language while exports preserve original records. New analysis preparations persist the current faithful localized guidance; existing frozen methods, failures and usage remain unchanged. This ships an analysis producer and packaged reader; evaluator calibration and scientific treatment effects remain separate. #7051, #7129, #7370, #7412, #7423, #7428, #7444, #7451.
Original-session daily/weekly reports reuse the existing calendar, native Task/Turn, independent validator and complete-body delivery owner. Known prelaunch refusals or cached validated output recover only their permitted remaining work; unknown generation or send effects are retained. The separate completed-Task repeat mode remains an experimental backend/configuration slice. #7173, #7179, #7267, #7288, #7418, #7449, #7458.
Retained completed tasks and steward requests can be searched; displayed team report sources can be downloaded. Project peer requests preserve the original conversation and complete brief, without granting coordinator authority. #7041, #7048, #7228, #7419, #7495.
The optional native Codex provider manages subscriptions and named OpenAI project keys in the same settings page. Subscription routing remains first; the separate usage-billed API fallback starts off and qualifies only after fresh measurements confirm that every allowed subscription is exhausted. Adding a key does not enable routing; accepted requests retain their original model and execution identity. #7783.
Context delivery lets an Agent read the facts for its current decision and trace their original support. The enabled native Codex quota path saves complete projection.json, produces an applicable required-context.json with complete requirements/current risks and exact response-local sharing, then returns a small file reference and current read/recovery commands. Known JSON Pointers can be batched; --list --list-depth 2 discovers unfamiliar local structure. Same-cycle full/delta selection accounts for actual delivery bytes, including framing and instructions. Even a delta reference can select the complete current recovery directly, without first reading an old baseline. Compaction or uncertain continuity restores complete context while preserving an unfinished Turn's original task/effect identity. This ships the reader, typed projection/codec and supported POSIX Codex adapter; broader unified candidate/preference/Explore input remains unfinished. Saved files, model retention and measured end-to-end benefit are separate evidence. #7560, #7670, #7735, #7768, #7775, #7784.
The recognized full reference now supplies a focused first read: admission and stop facts, the selected task, complete Goal/Todo narrative and the next evidence routes arrive together. Detailed support expands only when needed. Native navigation keeps full capture and selection digests in immutable private reader references; the CLI still verifies them on every page, so shorter navigation does not weaken integrity. Explicit file/hash readers remain compatible. #7800, #7812.
An explicit CLI Todo overview helps choose what to inspect next. It shows at most eight matching records per role, discloses omitted counts and preserves canonical IDs and exact-read routes. App/Lark full views and ordinary/default CLI output retain their existing behavior. The overview does not admit execution. #7581.
A single managed conversation can hand separate complete briefs to several registered Agents. Each recipient retains its own authorization, request and result; partial delivery is recovered per recipient. It does not launch workers or grant execution authority. #7787.
Long report highlights now wrap while original frozen reports remain unchanged. #7821.
Community Contributors
This range includes 185 merged PRs from 22 non-founder community contributors and 12 additional in-range community commits whose GitHub accounts are verified but have no associated PR. The latter are credited as commits. Contributions are derived from the v2.1.1-to-release Git range and merged PR metadata; selected product-relevant PRs are linked below.
-
@BigDataDZ — Windows installation, timezone, Unicode and PowerShell correctness; canonical and packaged regression journeys. #7454, #7453, #7222, #6862, #6805, #7441, #7364, #7232, #7230, #7225, #7326. Also qualified compact settings navigation and contextual readback. d1a1de74. Recovered original collaboration without worker/stdin races and retained install/source readback. #6866, #7226, #7227, #7229, #7235. Also accepted CRLF Python runtime records and reused the control-plane Node runtime admission in the dashboard. #7796, #7794. Recovered launcher discovery past a broken equal-minor PATH shadow while preserving healthy candidate precedence. #7798.
-
@Dante-dan — session/run-bound manual diagnostics. #7349.
-
@Duang777 — Goal identifier validation, equivalent lease scopes and regression prerequisites. #7192, #7204, #7209.
-
@JasonBuildAI — completed-Turn stop races, interrupted canonical creation, signed Windows updates, DSH launch guidance and Unicode/privacy repairs. #7477, #7381, #6854, #7473, #7247, #7251, #7439. Also repaired Unicode glob/write-scope case-alias coverage. 843be494. Reject unlabeled provider tokens at public presentation boundaries. #7732. Recovered damaged live-daemon locators, emitted host-runnable commands and kept DSH credential observation complete. #6892, #7074, #7160, #7733. Additional Unicode/glob scope and presentation commits: e7e9afca, dee2a462, 6fe86d62, b824e348, 1423efc8, 0feb8593, b4d2d59f, 1f06fc0b, 36b9b972. Extended the public-boundary scanner to reject unlabeled provider tokens. #7713. Rendered native settlement Turn references without changing their original authority. #7823.
-
@Jiaqiiii523 — attached-conversation regressions and Lark upload acknowledgement. #7293, #7395.
-
@Jim-jimu — Pi input-driven pause and Explore input/zero-evidence semantics. #7401, #7303, #7143, #7239. Preserved fresh Pi continuation checks and rejected directory/glob lease overlap. #7637, #7786.
-
@LIHUA919 — packaged-browser fixture startup, rendering/focus and research-reading regressions. #7508. Added the explicit Todo queue overview and preserved source navigation during in-flight re-scoping. #7581, #7550. Corrected the modeled native-client platform so POSIX tests reach the accepted-work fence instead of stopping at platform discovery. #7813. Rejected unlabeled provider credentials in public-safety scans and accepted scoped native Windows worktree paths. #7814, #7817.
-
@hhyykk — shared TypeScript decision ownership, complete canonical reads, recovery, queued-session ownership and explicit source-content pins. #7462, #7325, #7411, #7298, #6874, #6855, #7321, #7386, #7136, #7137, #7131. Also removed redundant source metadata probes and planning serialization while preserving complete decision facts. #7688. Composed native context delivery in one TypeScript transaction and retained process-exit evidence before namespace disposal. #7768, #7546.
-
@mikamikasuki — Lark timestamp precision and encoded local-path redaction. #6084, #5978.
-
@songoow — mobile task modality, managed observer ownership, report routing and offline analysis cancellation. #7410, #7354, #7353, #7352, #7415. Also bound fallback recovery to the current capture. 8640c514. Delivered related-outcome navigation, exact native delivery-cost selection, execution-bound provider admission, incremental responses and pinned checkpoint compatibility. #7560, #7775, #7777, #7776, #7769, #7500, #7778. Authenticated best-only benchmark result retrieval. #7770.
-
@steven-kid — original evidence search and revision comparison, retained-work search and report downloads. #7370, #7129, #7228, #7041, #7048, #7297. Deliver bounded UTF-8 source documents through local managed Codex conversations. #7740. Preserved complete original operator material in native conversations. #7549. Retired stopped quota failures from pending Chat readback. #7791.
-
@xianth123 — single-owner periodic-report field rules and NoKV qualification. #7210, #7155.
-
@gcl-coder — corrected the registry ownership claim in the status-vocabulary documentation. #7539. Preserved whole-word status display and failed closed on unreadable quota events. #7553, #7679.
-
@shangzh0 — rejected session rebinding in Codex rollouts. #7566. Stream trajectory capture parsing/source verification and avoid renewing healthy runtime leases at every proof check. #7757, #7760. Bound Explore measurements to executed results, preserved replan evidence and retired superseded next steps; added context discovery and tool-context usage visibility. #7764, #7759, #7766, #7761, #7758, #7767, #7765.
-
@CTYQAQ — shared Lark event-prefix and compact-token ownership. #7588, #7589.
-
@cocolord — removal of the unused lease source-snapshot path. #7561. Also moved performance-diagnosis commands onto the existing on-demand CLI route. #7678. Also restored managed-claim proof for ordinary Todo validator revisions. #7705. Load heartbeat prompt handling on demand. #7704. Loaded CLI/quota owners on demand and reused private source digests without changing decision facts. #7739, #7741, #7748, #7755, #7756.
-
@xiaoan17 — delegation browser qualification against the real steward source. #7599. Also characterized partial settlement steps and documented the activation guard’s actual refusal boundary. #7645, #7695. Document the observed Windows startup delivery window without assigning an unproven root cause. #7728. Recovered published startup diagnostics after the readiness budget and pinned native process identity reads to UTF-8. #7743, #7745.
-
@xyx2002OvO — Restored the original Todo validation subject in linked-evidence recovery, preserving wrong-version and unavailable-evidence coverage. #7620. Contained Windows Host descendants in an owned Job and preserved cleanup after a Job-finish failure. #7602.
-
@HaoooLee — reconciled the contributor board with completed migration work. #7647.
-
@lll-hhh — aligned scheduling write-scope comparisons with canonical Unicode folding and reused the slash-command writer’s ownership marker. #7674, #7683.
-
@lllluull — preserved typed capture-read errors and their recovery diagnostics. #7754.
-
@keoyyo85 — kept Chat action kinds and progress-review pending reasons with their existing typed owners. #7825, #7826.
Quality & Testing
A missing native session identifier now keeps the admitted Turn and delivers the complete current source through its generic private reader; it does not invent a session or repeat admission. Read-only capability configuration uses its own namespaces while complete configuration writes remain strict. #7833, #7838.
This release uses a bounded, risk-based validation set. The final source, installed upgrade checks and public artifact readbacks are listed in RELEASE-QUALIFICATION.json. Earlier failed or interrupted qualification attempts remain failed or incomplete; the full model matrix and whole-test sweep have not been re-qualified for this release and are not claimed as passing. No new benchmark-effectiveness or total-cost improvement claim is made.
Release regression fixtures initialize actual canonical authority once, use real CAS for later source changes, retain unique settlement/replay assertions and verify frozen historical bytes independently. Required checks, model qualification and final release qualification remain separate from PR count or a green synthetic test. #7459, #7499, #7502, #7506, #7507.
The release’s final same-source qualification receipt and channel readbacks belong to the formal GitHub release. A candidate source or this usage document alone is not a passing release receipt. Historical failed, skipped and interrupted attempts are retained separately.
Benchmarks & Integrations
Native benchmark outcomes preserve terminal provider failures and partial results, work-phase deadlines, effective model routes and frozen source/profile identity. New heartbeat/Turn runs default to resume; an explicit fresh control remains available. SForge dependency selection is frozen per new cohort, and retry/context/checkpoint options remain explicit. No benchmark job is launched by this release procedure. #7036, #7061, #7072, #7090, #7281, #7294, #7400.
Pi pauses future automatic work on real interactive/RPC input while retaining that input’s processing. DSH source installation, native account ownership, Windows timezone/Unicode and signed desktop updates have their own provider/platform boundaries. The DSH plugin has an independent version; this Python release does not silently replace its published beta artifact. #7401, #6862, #7222, #6854, #7454, #7497, #7469.
This release makes no new benchmark-score, long-horizon outcome or total-cost improvement claim. A new matched stable-versus-candidate outcome experiment is therefore not claimed as executed. Existing studies and the updated long-horizon research narrative retain their own sources, cohorts and limitations; process visibility and restored state alone do not establish benefit.
Documentation & Compatibility
Use Python 3.11+ and Node.js 22.22.3+; Node 24 LTS is recommended. Follow the original pip/pipx/uv-tool/archive owner. New Goal defaults and old Goal migration are different operations: existing authority, leases and explicit overrides are retained. Unmigrated operational reads fail visibly; prepare a saved backup and the explicit reviewed migration. #7032, #7381, #7441.
Native differential context requires qualified host lifecycle delivery, not merely hook discovery or saved settings. Research checkpoints remain CLI/Host stage; repeated Task mode and controller/executor proposals do not establish a complete unified Agent frontend. #7338, #7409, #7429, #7416, #7288.
Source launcher discovery can recover past a broken equal-minor PATH entry while preserving the established minor-version and healthy-candidate order. #7798.
Optional Capability Activation & Use
The commands below assume the stated source checkout or an installed 2.2.0 CLI. Set identifiers/directories to the existing authorized object; viewing a setting does not enable it.
Research reports and original evidence
Activation: Open an existing Goal’s Research view. Ask its authorized Agent to register a fixed source pack, then explicitly generate the selected report. New default preparations use synthesis revision 2 and the current faithful localized display guidance; optional synthesis revisions 3/4 need a successor pack. Opening history, search, comparisons and citations is read-only.
Validation: Read the original source and revision beside the saved finding; inspect missing coverage, negative evidence, usage and the selected pack’s status. Saved translations can be searched and compared; exports retain original matching records.
Disable / rollback: Cancel by the original analysis directory. For subsequent work select the earlier pack/configuration or a legacy encoding/synthesis setting; retain original successes, failures and usage. An uncertain running operation needs original-result readback before retry.
Authority boundary: Sources must be authorized and hash-verified. Explicit generation can call the configured model and incur fees; a citation validates binding, not entailment, scientific validity or permission to run a proposed experiment. Existing frozen requests are not silently upgraded.
Docs: Versioned contract
loopx dashboard
loopx benchmark trajectory-packs --goal-id "$GOAL_ID" --format json
loopx benchmark trajectory-assessment-status --directory "$ANALYSIS_DIR" --format json
# Explicit cancellation of that original operation:
loopx benchmark trajectory-assessment-cancel --directory "$ANALYSIS_DIR" --format jsonLocal Codex source documents
Activation: Open a local managed Codex conversation, attach a UTF-8 .md or .txt source file, then submit the authorized request. Up to four attachments share the 64,000-byte serialized message budget; encoded document data counts toward it. This ships local input, queued recovery and original-source preview/download. #7740.
Validation: In the original conversation, expand the attachment and download its source; compare the complete UTF-8 bytes. Check the original request/queue result after a busy-session wait or restart. Source delivery does not establish model comprehension or automatic adoption.
Disable / rollback: Remove an attachment from the draft before sending, or send plain text. Accepted source remains part of the original saved request; stop current work through its existing owner rather than replacing its journal. To roll back the application, follow the original installation owner after saving a backup.
Authority boundary: Only local managed Codex conversations accept text documents. Attached hosts, other executors and linked/Lark conversations reject before admission. Invalid UTF-8, NUL, type/name mismatch or excess size rejects the whole request without truncation. Attached source grants no new instruction, arbitrary-path access or external-send permission.
Docs: Versioned source-document contract
loopx --version
loopx dashboardOriginal-request native delegation
Activation: In an operator-owned loopx_local_delegation_v0 file outside member workspaces, omit todo_id for ordinary requests and declare request_validation with its command/argv, null alternative, label and timeout. Grant only the intended requester and source. Native execution requires a runtime-compatible project registry; lifecycle-only source_session_v1 rejects before Host launch. Preview then set the Goal configuration pointer. Chat also needs its current Inbox grant and original saved request.
Validation: Inspect the exact binding, check original request and independent acceptance in Team execution, then read the original operation's verified result and original-session return. Registration, preview or a completed native process alone is insufficient.
Disable / rollback: Revoke the exact binding/source grant in the protected file. Clear the Goal pointer when removing discovery. Preserve in-flight original journals and uncertain effects; do not reinterpret or rerun them as a new request or Todo.
Authority boundary: A request, delivered message or reusable session grants no execution, repository-write or external-send authority. Stop, real user gates, quotas, current source policy, independent validation, single-flight and once-only settlement still apply. File/SQLite and packaged synthetic-transport checks do not qualify every model or external transport.
Docs: Versioned ordinary Inbox and delegation contract
loopx configure-goal --goal-id "$GOAL_ID" --subagent-execution-config "$DELEGATION_CONFIG"
loopx configure-goal --goal-id "$GOAL_ID" --subagent-execution-config "$DELEGATION_CONFIG" --execute
loopx delegation list --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --execution-config "$DELEGATION_CONFIG"
loopx delegation inspect --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --execution-config "$DELEGATION_CONFIG" --binding-id "$BINDING_ID"
loopx configure-goal --goal-id "$GOAL_ID" --clear-subagent-execution-config --executeCodex differential context
Activation: Supported POSIX Codex App heartbeat/SSH Goal sessions default on when no machine preference was saved. Read and change the existing switch in Settings → This machine → Capabilities → Differential context → Codex. A saved off stays off across upgrade; re-enable through the existing exact-revision transaction. New benchmark heartbeat trials independently default on and record their selected mode; existing frozen trials keep their original treatment. Native reuse still needs the exact hook/configuration setup for the next supported session. A saved setting alone does not initialize a loaded thread, and unavailable hooks retain full delivery. Ordinary CLI, unsupported hosts and non-heartbeat benchmark modes keep their previous full-delivery paths. File selection itself is read-only; use the current returned source/reference and Pointers.
Validation: Read back the machine setting and render context-config for the actual Goal/Agent. In a supported native session, verify full capture → applicable necessary view/sharing → valid-cycle full/delta → default file reference → current selection/original evidence. Start with the returned first_read_command when present; it is a starting selection, not proof that every required source was read. Use the returned current recovery reader reference for further selections, including when delivery says delta. A selected continuation reference pins that selection: follow its next_command to EOF and return to the original recovery reference to change addresses. A small-budget legacy response may instead return an explicit file/digest. Batch known addresses; index an unfamiliar parent. Follow every selected page's next_command to EOF; an index or one selection's EOF is not a complete-source read. Setup and hooks/list discovery alone do not prove actual use or model retention.
Disable / rollback: Switch off in the same editor, or explicitly pass --context-delivery off for one command. A benchmark trial uses its own context_delivery: "off" or --context-delivery off; create a new trial instead of changing an already frozen treatment. Removing the saved machine namespace restores the new on default; it is not the way to disable. Remove generated hooks, developer instructions and output overrides when removing native setup; restore previous host values. Retain the original full capture and unfinished work identity for recovery. Unknown structures and unsuitable delta cost retain full delivery. For a smaller tool-output budget, the generated guard/context-project command supports --max-page-output-bytes 7900; aggregate batch output still must fit the host limit.
Authority boundary: POSIX native continuity only. Native full/continuation reads retain the existing 64000-byte profile; complete JSON records in mixed stdout still require trusted capture verification. JSON Pointers address values in a particular digest-bound source; array positions cannot be carried into another capture. Complete requirements, stop conditions and unknown structures retain their source-owned read obligations. Same-response exact sharing and cross-Turn deltas have different baselines. Failed tool pages, changed digests or a missing Pointer do not establish a successful read; missing selection rejects the batch. Continuity loss restores full context without new admission or repeated effects. MCP/Claude machine parsers retain raw output. Broader unified delivery of candidates, preferences and Explore material remains unfinished; no model-token, fee or outcome reduction is claimed.
Docs: Versioned context contract
loopx machine-config inspect
loopx quota context-config --codex-app --goal-id "$GOAL_ID" --agent-id "$AGENT_ID"
# Copy recovery.reference_file from the current returned navigation.
# Use this original recovery reference, not a pinned selection continuation.
loopx --format json quota context-read \
--reference-file "$RECOVERY_READER_REFERENCE" \
--select "$POINTER_A" --select "$POINTER_B"
# Discover only the unfamiliar parent:
loopx --format json quota context-read \
--reference-file "$RECOVERY_READER_REFERENCE" \
--select "$PARENT_POINTER" --list --list-depth 2
# Explicit raw guard output:
loopx --format json quota should-run --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --context-delivery offExplore device defaults
Activation: Default off. In Settings → Device → Explore Harness select Off, Evidence or Planning, preview and apply. Only mode is inherited live by existing/new Goals without an explicit override; profile, composition and execution permissions stay Goal-owned.
Validation: Inspect the effective mode and its source in Goal settings. Material graph, result log and rollout must use the same selected runtime. Configuration alone does not prove evidence adoption.
Disable / rollback: Set device mode Off for inheriting Goals. Keep a particular Goal off with its explicit mode; Restore inheritance or configure-goal --clear-explore-configuration removes that Goal’s Explore override through the existing preview/apply path.
Authority boundary: Planning supplies evidence and branch guidance. It grants no spawn, lease, quota, credential, scheduler or external-publication authority; those retain their independent owners.
Docs: Versioned contract
loopx machine-config inspect
loopx configure-goal --goal-id "$GOAL_ID" --clear-explore-configurationOriginal-session scheduled reports
Activation: Opt in explicitly. For a bound managed Agent, open Goal settings → Capability center → Periodic reports, choose weekly-progress and the existing Report conversation, then set a daily/weekly calendar and optional first date before preview/apply. For the prepared private steward, use Settings → Lark → its original steward → Native periodic monitoring. Preparing identity alone enables neither path.
Validation: Reload the saved destination/calendar and inspect the original conversation. Read this period’s full report must return the complete matching body; task completion, model output or a send attempt alone is insufficient. Private Lark delivery has its own complete-part readback.
Disable / rollback: Pause with Enable off in that same configuration. Keep frozen/unknown attempts for original recovery; do not retarget or resend them. Clear a known failed independent window only through its qualified existing transaction; clearing does not replay the failed period.
Authority boundary: Generation uses the selected actor’s authorization, lease and quota and may cost model tokens. The receiver is fixed by the original binding; unread or newly added sources do not authorize a different audience. Arbitrary natural-language recurring tasks and the complete unified Agent journey remain separate acceptance work.
Docs: Versioned contract
loopx --version
loopx doctor --deep
loopx dashboardRepeating a completed native Task
Activation: Experimental backend/configuration slice. In the existing Goal settings JSON editor explicitly configure periodic_report with enabled=true, profile_preset=session-task, the actual managed-session route and an already completed source_todo_id; set the native calendar and apply its exact preview revision. The canonical document contains the complete configuration.
Validation: Read back that configuration and the same managed Session’s scheduled_task inspection. A due period requires independent Task validation, native settlement and the full original Core answer before acknowledgement.
Disable / rollback: Set enabled=false to pause while retaining the plan and evidence. Retire a known failed window only through the supported clear transaction. Do not downgrade an owner with retained session-task windows to a runtime that cannot read their completion receipts.
Authority boundary: No arbitrary new task description, script, validation argv or external destination is accepted. It reuses an authorized completed Task, native scope/lease/quota and original Session. This is not complete frontend acceptance or demonstrated production scheduled adoption.
Docs: Versioned contract
loopx doctor --deep
loopx dashboardNative Codex account handoff
Activation: Install the optional package in the same Python environment, restart its serving App/Chat owner, then explicitly enable automatic switching in Settings → Model provider → Native Codex accounts. Client quit/restart and force quit remain separate permissions, off unless authorized. The same page provides OpenAI API keys: add a named project key, then explicitly enable Use API after subscription exhaustion (usage based billing) when intended. API fallback is independently off by default; every allowed subscription must have fresh measured exhaustion before the paid route qualifies. Adding a key alone enables neither routing nor paid calls.
Validation: Use status and clients, then inspect the settings page’s fresh account allowance, Login holders and masked key suffix. Check connection calls only GET /v1/models; success does not prove inference quota or billing balance. Read actual request outcomes and available rate-window observations. An App and CLI watch sharing one policy elect one observer; a diagnostic responsible PID is not termination authority.
Disable / rollback: Turn automatic switching off; turn API fallback and restart/force permissions off independently. Disabling API fallback stops new API admissions and drains accepted requests. Removing a saved key does not revoke it at OpenAI. Inspect and reconcile retained service-restoration intent through the original native owner after a partial failure. Disabling observation does not erase an in-flight credential transaction.
Authority boundary: The native account owner and macOS/POSIX requirements remain. Only verified original process/service identities can be restarted; unmanaged or unknown holders remain holds. Keys remain in the extension’s private store and full values are not returned to the browser or CLI. API routing retains the selected model and original request; unknown effects or a started stream cannot be replayed on another key. No account purchase, reset-credit use, arbitrary process termination or job replay is granted.
Docs: Versioned contract
python3 -m pip install ./packages/loopx-codex-provider-routing
loopx-codex-accounts status
loopx-codex-accounts clients
loopx-codex-accounts keys-statusExplicit research checkpoints
Activation: CLI/Host stage, explicitly invoked. Prepare a quiescent settled canonical source, a qualified native Codex profile, complete declared workspace artifacts and a fresh physical checkpoint destination. Preview capture without --execute, then execute only the reviewed request.
Validation: Verify the returned checkpoint SHA before separately admitting a fresh receiver and adopting context under current claim/lease. Check native cursor, source/profile witness, declared artifact bytes and original settlement; captured history itself grants no work.
Disable / rollback: Omit future checkpoint requests/controller activation to disable capture. Keep captured points and uncertain original operations intact; use the original identity for recovery. Receiver model/effort changes require explicit destination configuration while retaining the sealed source profile.
Authority boundary: Not arbitrary Host support, a process-memory snapshot, automatic ordinary-Goal capture or disaster recovery. Export storage must preserve case/Unicode filename distinctions. Only declared artifacts are captured; private credentials are not made public by capture. The packaged ordinary-user frontend remains unfinished.
Docs: Versioned contract
loopx research-checkpoint capture --help
loopx --format json research-checkpoint verify --root "$CHECKPOINT_ROOT" --expected-sha256 "$CAPTURE_DIGEST"Benchmark source and provider profiles
Activation: Per-command opt-in in a separate authorized experiment. Prepare/freeze the SForge source cohort with the documented source command; select a full source SHA for reproducibility. New heartbeat/Turn defaults resume, while explicit fresh remains a control. New heartbeat trials default to context delivery; non-heartbeat modes stay off unless explicitly enabled where supported. Explicit --context-delivery off remains the full-delivery control. HTTP429 retry windows remain a separate explicit flag with a zero default.
Validation: Read the frozen source receipt, actual runtime route, original phase deadline and typed native outcome. Failed/usage-limited/unknown native work retains partial_result.json and never becomes a completed final_result.json.
Disable / rollback: Use a new log directory and explicit prior SHA/config for a new comparison; do not replace an existing cohort. Explicitly set --context-delivery off and the retry window to zero to retain ordinary full/pass-through behavior in a new heartbeat trial. Preserve previous attempts and budget clocks.
Authority boundary: Source preparation does not launch a worker or judge. Model/job/evaluation access and budget require the experiment’s own authorization. Judge/task/scoring source, actual complete costs and feedback must match before comparison; changing defaults does not qualify historical scores or grant extra evaluations. No new benchmark job is part of this release.
Docs: Versioned contract
python3 -m benchmark.edgebench.source --help
python3 -m benchmark.edgebench.run --helpExplicit source-content pins
Activation: Opt in only by recording an accepted file path and content sha256 in that Goal’s existing private authority_sources entry. A source-reference hash is different. Ordinary bootstrap --goal-doc remains mutable and never creates a content pin by filename or discovery.
Validation: Run the existing Goal-scoped check/status after pinning; changed, missing or unreadable accepted bytes must remain visible. The read-only filesystem adapter does not repair the file or update the accepted hash.
Disable / rollback: Restore the accepted file bytes, or use the existing authorized registry revision to update/remove that explicit content pin. Keep other authority sources and private registry boundaries intact.
Authority boundary: No software-policy auto-discovery, AST/regex obligation enforcement, document lock or memory write is introduced. Pinning a file grants no execution or publication permission.
Docs: Versioned contract
loopx --registry "$GOAL_REGISTRY" checkDesktop preview and signed updates
Activation: Install the matching verified desktop artifact from the release. Windows signed updates require the NSIS installation and main channel; MSI and stable-channel Windows updates remain manual/unavailable. A build without the updater needs one explicit replacement. Existing macOS background preparation is applied on the next normal open; it does not restart an active workspace. When the installed Chat runtime needs adoption, macOS retries through its original manager and accepted-work fence; queued or active work keeps its owner while the window waits and resumes automatically.
Validation: Read the App shell version, selected channel, signed feed and its qualified service/runtime identity. Check for updates retains its own result independently of local startup. CLI identity cannot qualify the native shell. An activation receipt is only a retry request: independently verify current service identity and HTTP readiness. Opening the original steward conversation is read-only discovery, not a thread resume or work submission.
Disable / rollback: Keep the current verified App if an update is unavailable or fails. Use only the platform’s qualified native recovery/update path; Windows App rollback/repair remains manual or unavailable. Preserve its original maintenance journal on uncertain outcomes.
Authority boundary: Desktop is preview distribution. Minisign update verification is distinct from Windows Authenticode, Apple notarization and local installation qualification. Windows may show SmartScreen. Installation and updates do not grant Goal/provider authority or replay interrupted business work. Unknown work or manager state permits neither a raw-kill fallback nor a second consumer; sending still requires the existing effect-time admission.
Docs: Versioned contract
gh release view v2.2.0 --repo loopx-project/loopx
loopx --version
loopx doctor --deep
# macOS only: retry adoption of installed Chat; this does not install anything.
loopx update activate --service chat --port 8767DSH source plugin
Activation: Source-only compatibility changes belong to the independently versioned DSH plugin. From the matching release checkout, enter packages/dsh-loopx-plugin and run its documented install.sh against one explicit DSH home/host; inspect that host’s config before launch. Existing published beta packages keep their frozen content.
Validation: Start the selected DSH host and invoke its installed loopx skill in that exact Session. Resolve the unique Goal/Agent binding before relying on GoalBar or Driver; installation alone never activates continuation.
Disable / rollback: Remove dsh-loopx-plugin from the same host/profile. This stops its Driver and GoalBar without deleting LoopX state, bindings or skills. Only remove the isolated runtime after DSH has stopped and the plugin has been removed.
Authority boundary: The source dependency/MCP overrides do not patch a separately installed DSH binary. The native Session owns input and tools; only LoopX admission can authorize subsequent work. Plugin installation grants no provider key or independent scheduler/Goal authority.
Docs: Versioned contract
cd packages/dsh-loopx-plugin
./install.sh
# Use the same qualified DSH host/profile for removal:
dsh plugin --profile web remove dsh-loopx-pluginSession-bound reliability diagnostics
Activation: Experimental passive L1 observation remains default off. Use the separate documented dsh-loopx-plugin/observer entry only for an explicitly authorized original Session. For a current manual read, supply the exact provider/observer/session and typed run_identity binding, current as-of time and maximum observation age.
Validation: Read status with its integrity receipt from the same ledger observation. Stale, mismatched, corrupt or incomplete evidence stays unavailable; an empty or old ledger is not proof of a healthy current run.
Disable / rollback: Disable the separate observer entry to stop new observation and retain its ledger/receipt. Omitting expected-binding requests legacy readback rather than a current binding-qualified diagnosis; do not relabel that as a current pass.
Authority boundary: The observer cannot send, schedule, gate, retry, stop, resume or modify worker state. It retains content-free diagnostic records, not raw conversation/tool bodies. Adapter fidelity, measured overhead and the P0 exit gate remain separately unqualified.
Docs: Versioned contract
loopx reliability-diagnostics status --goal-id "$GOAL_ID" --with-receipt --format json --expected-binding "$EXPECTED_BINDING_JSON" --as-of "$AS_OF" --max-observation-age-ms 60000Todo queue overview
Activation: Explicit per-command opt-in: todo list --summary. There is no persistent switch. The ordinary list, --thin, App and Lark views retain their existing behavior.
Validation: Run the overview below, inspect its matched/returned/omitted counts, canonical IDs and authority revision, then exact-read one returned Todo. The overview caps each role at eight records; --limit can lower that cap. A failed source read remains an error, not an empty queue. #7581.
Disable / rollback: Omit --summary for the ordinary list, or use the existing exact --todo-id read for complete requirements. --summary cannot be combined with --thin or --todo-id.
Authority boundary: This ships a read-only CLI projection for choosing what to inspect. It does not switch App/Lark consumers, claim work, release blocked/deferred work or replace quota, lease and acceptance checks. Exact canonical requirements must be read before dependent action.
Docs: Versioned queue overview
loopx --format json todo list --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --summary
loopx --format json todo list --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --todo-id "$TODO_ID"Independent recipients in one conversation
Activation: In an already authorized managed conversation, ask the intended registered Agents directly. No additional batch switch is needed. The model may return up to 32 separate context_handoff entries, each with a complete brief and a unique Goal/Agent pair. External senders still require the existing sender-bound private source policy; set local_delivery_scope: selected and explicit targets if the audience must remain restricted.
Validation: Open each recipient card in the original conversation and expand View delegation details. Check that recipient’s own brief, adoption and returned conclusion independently. Inspect the same Goal/Agent Inbox with the command below. A delivered request does not prove worker completion; one reply does not close the other requests.
Disable / rollback: Return a single request object, omit context_handoff, or use an empty array to create no new handoffs. Revoke the exact existing source/recipient grant to stop further delivery. Preserve completed entries and original request identities; recover a partial batch from its per-recipient receipts and failures rather than resending the whole array.
Authority boundary: Whole-envelope syntax is checked before effects, but live authorization is checked per recipient: later cancellation or revocation can leave partial delivery. The batch adds no Todo, lease, worker launch, execution permission or shared access to private replies. Model recipient selection, real workers and provider delivery retain separate qualification.
Docs: Versioned per-recipient contract and illustrated conversation
loopx --format json manager-inbox status --goal-id "$GOAL_ID" --agent-id "$AGENT_ID"Install / Update
For a new PyPI installation:
python3 -m pip install --upgrade 'loopx==2.2.0'
loopx workflow-skills --install
loopx slash-commands --install
loopx --version
loopx doctor --deepFor an existing installation, finish active work, run update check and plan, then apply through the same owner. Read App and running Bot/service identities independently after restart; CLI success does not prove their activation. Preserve unknown operations and retained native journals before rollback. Desktop artifacts remain preview distribution; platform-specific installation, signing and update evidence is reported separately in the formal release.
中文摘要
沿原结果找到研究证据,让报告与恢复工作回到原会话。打开已有 Goal 的「研究」可阅读、搜索和比较保存记录;新分析、周期生成与账号切换仍须显式启用。升级、验证命令见上方。
升级决策
**谁需要升级:**使用研究历程、受管会话、周期报告与原生/Windows 宿主的 canonical 2.x 用户。仍依赖旧 Markdown authority 的集成须先准备迁移,生产 owner 可在完成前保留当前版本。
**解决了什么:**原始证据难以跨版本追踪,完整报告与恢复请求可能丢失原投递上下文,竞态和过期 fixture 又掩盖真实工作状态。本版修复这些路径,验收与业务效果仍须独立读回。
**是否有破坏性变更:**有。移除未迁移普通 authority 读 fallback 与退休协议/legacy bridge。先按既有备份、显式迁移与恢复契约处理。已有 canonical File/SQLite Goal 保留原 authority,不自动迁移或新增 writer;未配置的新 Goal 仍默认 SQLite/hard lease。受支持的 POSIX Codex App/SSH 会话与新 benchmark heartbeat 默认启用 context delivery;已有本机关闭设置、命令或 trial 的显式 off 继续生效,普通 CLI、不支持的宿主与非 heartbeat trial 保留完整交付。本机 Explore mode 仍默认关闭;controller/executor-session RFC 仍是提案。
**如何验证:**CLI 应显示 loopx 2.2.0,doctor 核对安装 owner/runtime;进入已有 Goal 对照一项原结果、原来源或完整原报告。保存配置、注册与 Todo 完成都不等于交付。
**贡献者:**发布维护为 @huangruiteng、@loopx-agent;社区归因来自 v2.1.1 到候选源码及实际 merged PR,详见下方。
状态内核与控制面
完整 Todo 读取与共享决策复用 typed owner,status 沿 canonical source runtime 路由,原 Goal 创建可在中断后接续,不抹掉后续写入。replan、outcome review 与原结算保留身份;必须执行 Host 不等于普通交付授权。#6874, #7325, #7462, #7411, #7298, #7381, #7496, #7484, #7486, #7452, #7470。
普通 CLI 在 actor 明确等于 assignee、且未提供显式 lease proof 的自 claim 中,原子准备 execution,并返回可直接使用的 progress/completion 命令。progress 只续原来仍有效的 execution;过期、被替代、其他 holder 或 proof 不可用时显式拒绝,不自动另取授权。显式 lease、其他指派、soft-claim、只读 guard 与 App 手工完成权保持原语义。#7510。
生成的结算步骤把既有 hard-lease 执行准备与后续验证、写回、spend 一起交付;步骤本身不创建执行权。 #7793。
能力与工作流
研究页先展示结果、报告与问题,再深入历史、数量与原引用;搜索和比较复用保存译文,导出原记录。新准备持久化忠实本地化指导,旧冻结方法、失败与用量保留。交付分析 producer 和打包 reader,科学校准另验。#7051, #7129, #7370, #7412, #7423, #7428, #7444, #7451。
显式日/周报告沿原会话、原 Task/Turn 与独立验证和完整正文送达 owner;已知准入拒绝或缓存的合格结果仅恢复原许可剩余步骤,未知业务/发送效果继续保留。完成 Task 的周期复用仍是实验性 backend/配置阶段。历史工作搜索、团队报告下载及原项目会话 peer 请求继续保留真实来源与完整 brief。#7173, #7179, #7267, #7288, #7418, #7449, #7458, #7041, #7048, #7228, #7419, #7495。
可选的 Codex 原生 Provider 在同一设置页管理订阅和命名的 OpenAI project key。订阅优先;独立的按量付费 API fallback 默认关闭,须先以新鲜读数确认每个允许订阅均已耗尽。添加 key 不会开启路由;已接受请求保留原模型与执行身份。#7783。
Context delivery 让 Agent 先读当前决定需要的事实,再沿地址查原始依据。开启后的 Codex 原生 quota 路径先保存完整 projection.json,适用时形成保留完整要求/当前风险及精确共享的 required-context.json,默认交付小文件引用与当前读取/恢复命令。已知 JSON Pointer 可以批量读,陌生子树用 --list --list-depth 2 展开。有效 compaction 周期内的结构化差分复用已核验的不变内容,full/delta 选择计入封装和指令等实际交付字节;即使返回 delta,也能直接选读当前完整 recovery,无须先读旧基线。压缩或连续性不确定时完整恢复,未结 Turn 保留原任务与效果身份。交付层包括 reader、typed 投影/编码与受支持的 POSIX Codex 适配;更广的候选/偏好/Explore 统一输入仍未完成。文件保存、模型保留和完整任务收益分别验收。#7560, #7670, #7735, #7768, #7775, #7784。
已识别的完整引用提供聚焦首读:把准入、停止条件、选中任务、完整 Goal/Todo 正文和后续证据入口一起交付,细节再按需展开。原生导航把完整 capture/selection 摘要保存在不可变的私有 reader 引用里,CLI 每页仍完整校验;精简导航不降低完整性检查,原显式文件/摘要读取继续兼容。 #7800, #7812。
显式 CLI Todo 队列概览帮助选择下一项要读的工作:每个 role 最多展示八项匹配记录,保留 canonical ID、遗漏数量与完整读取入口。App/Lark、普通 CLI 和默认输出沿用原有视图;概览不授予执行权。#7581。
同一受管对话可以把不同完整 brief 分别交给多个已登记 Agent;每个接收人保留自己的授权、原请求与结果,部分送达按接收人恢复。它不启动 worker,也不授予执行权。 #7787。
报告的长 highlight 可以正常换行,原有冻结报告不被重写。 #7821。
社区贡献者
本范围包含 22 位非创始社区贡献者的 185 个已合并 PR,以及已核验账号和 tag 范围、但 GitHub 未关联 PR 的另外 12 个社区提交。归属沿 v2.1.1 至最终发布源码的 Git 范围及 merged PR 元数据导出,下列链接选取与产品相关的贡献;直接提交按 commit 标明。
-
@BigDataDZ — Windows 安装、时区、Unicode 与 PowerShell,以及 canonical 和打包旅程回归. #7454, #7453, #7222, #6862, #6805, #7441, #7364, #7232, #7230, #7225, #7326. 另完成紧凑设置导航与上下文读取回归。 d1a1de74. 补齐原协作恢复的 worker/stdin 竞态及安装/来源读回。 #6866, #7226, #7227, #7229, #7235。 另兼容 CRLF Python runtime 记录,并让 dashboard 复用控制面的 Node runtime 准入。 #7796, #7794。 修复首个同 minor PATH 候选损坏时的 launcher 发现,保留健康候选的原优先级。 #7798。
-
@Dante-dan — 绑定准确会话与运行证据的手动诊断. #7349.
-
@Duang777 — Goal 标识校验、等价 lease 范围与回归前置. #7192, #7204, #7209.
-
@JasonBuildAI — 已完成 Turn 的停止竞态、canonical 创建恢复、Windows 签名更新、DSH 启动说明及 Unicode/隐私修复. #7477, #7381, #6854, #7473, #7247, #7251, #7439. 另修复 Unicode glob/write-scope 大小写别名覆盖。 843be494. 在公开展示边界拒绝未标注的 provider token。 #7732。 恢复损坏的活跃 daemon locator,输出宿主可执行命令并完整观察 DSH 凭据形状。 #6892, #7074, #7160, #7733。 其他 Unicode/glob 范围与展示回归提交:e7e9afca, dee2a462, 6fe86d62, b824e348, 1423efc8, 0feb8593, b4d2d59f, 1f06fc0b, 36b9b972。 将未标注 provider token 的检查补齐到公开边界扫描器。 #7713。 保留原权限边界,修复原生结算 Turn 引用的呈现。#7823。
-
@Jiaqiiii523 — 原生绑定会话回归与飞书上传确认. #7293, #7395.
-
@Jim-jimu — Pi 输入暂停,以及 Explore 输入与零证据语义. #7401, #7303, #7143, #7239. 保留 Pi 恢复时的新接续检查,拒绝目录/glob lease 范围冲突。 #7637, #7786。
-
@LIHUA919 — 打包浏览器 fixture 启动、渲染/焦点与研究阅读回归. #7508. 新增显式 Todo 队列概览,保留重新限定范围期间的来源导航。 #7581, #7550。 修正模拟原生客户端的平台 fixture,使 POSIX 测试进入 accepted-work fence,避免先停在平台发现。 #7813。 补充无标签 provider 凭据的公开安全检测,修复原生 Windows 工作树的范围路径识别。#7814、#7817。
-
@hhyykk — 共享 TypeScript 决策归属、完整 canonical 读取、恢复、排队会话归属与显式来源内容固定. #7462, #7325, #7411, #7298, #6874, #6855, #7321, #7386, #7136, #7137, #7131. 另移除重复源码探测与规划序列化,保留完整决策事实。 #7688。 将原生上下文交付组合为一次 TypeScript 事务,清理 namespace 前保留真实进程退出证据。 #7768, #7546。
-
@mikamikasuki — 飞书时间戳精度与编码本地路径脱敏. #6084, #5978.
-
@songoow — 移动任务交互、受管观察者归属、报告路由与离线分析取消. #7410, #7354, #7353, #7352, #7415. 另将 fallback 恢复绑定到当前 capture。 8640c514. 交付相关验收导航、原生完整交付成本选择、逐执行 provider 准入、增量响应与固定 checkpoint 兼容。 #7560, #7775, #7777, #7776, #7769, #7500, #7778。 为 benchmark 的 best-only 结果读取补齐认证。 #7770。
-
@steven-kid — 原始证据搜索与版本比较、历史工作搜索及报告下载. #7370, #7129, #7228, #7041, #7048, #7297. 为本地托管 Codex 会话交付有界 UTF-8 原始文档附件。 #7740。 在原生会话中保留完整原始操作者材料。 #7549。 从 Chat 待处理读回中退休已停止的 quota 失败。 #7791。
-
@xianth123 — 周期报告字段规则与 NoKV 资格的单一归属. #7210, #7155.
-
@gcl-coder — 修正状态词表文档中 registry 归属的表述。 #7539. 保留完整词状态展示,对不可读 quota 事件显式拒绝。 #7553, #7679。
-
@shangzh0 — 拒绝 Codex rollout 中的会话重新绑定。 #7566. 流式解析轨迹 capture 并核验来源,避免每次证明检查都续租健康运行时 lease。 #7757, #7760。 将 Explore 测量绑定实际执行结果,保留重规划证据并退休已被替代的后续步骤;补齐上下文目录发现及工具上下文用量展示。 #7764, #7759, #7766, #7761, #7758, #7767, #7765。
-
@cocolord — 移除未使用的 lease 来源快照路径. #7561. 另将性能诊断命令接入既有按需 CLI 路由。 #7678。 另恢复普通 Todo 验证器修订的 managed-claim 证明传递。 #7705。 按需加载 heartbeat prompt 处理路径。 #7704。 按需加载 CLI/quota owner,复用私有源码摘要并保留决策事实。 #7739, #7741, #7748, #7755, #7756。
-
@xiaoan17 — 委派浏览器验证读取真实管家来源. #7599. 另补齐分步结算失败行为验证,说明激活检查实际拒绝的范围。 #7645, #7695。 记录 Windows 启动交付窗口,保留根因尚未确定的证据边界。 #7728。 在 readiness 预算后恢复已发布启动诊断,将原生进程身份读取固定为 UTF-8。 #7743, #7745。
-
@xyx2002OvO — 恢复 Todo 证据关联恢复测试的原验证主体,保留错版本与失联反例。 #7620. 将 Windows Host 后代放入所属 Job,Job finish 失败后仍保留清理。 #7602。
-
@lll-hhh — 调度写入范围复用 canonical Unicode 比较规则,技能读回复用 slash-command 写入方的归属标记。 #7674, #7683。
-
@keoyyo85 — 让 Chat 操作类型和进度审查等待原因复用各自现有的类型化 owner,减少复制的规则。#7825、#7826。
质量与测试
原生会话标识暂不可用时,保留已准入的原 Turn,通过私有通用读取器交付完整当前来源,不伪造会话、不重复准入。能力只读配置读取自己的 namespace,完整配置写入仍严格验证全文。#7833、#7838。
本版采用有界、按风险选择的验证范围,最终源码、实际安装升级与公开制品读回列在 RELEASE-QUALIFICATION.json。保留此前候选的失败和中断;完整模型矩阵及全量测试尚未在最终源码重新取得资格,不计为本版通过项,也不据此宣称新的基准效果或完整成本收益。
fixture 一次初始化真实 canonical authority,后续走 CAS,保留唯一结算/回放和历史原字节断言。合成测试、PR 验证和最终发布资格分开;正式发布页记录统一源码凭证及渠道读回,本文和候选本身不证明通过。历史失败、跳过和中断单独保留。#7459, #7499, #7502, #7506, #7507。
基准与集成
native benchmark 保留失败、partial result、阶段截止、实际模型路由和冻结 source/profile;新 heartbeat/Turn 默认 resume,显式 fresh 对照保留。source cohort、重试、差分和 checkpoint 均有独立边界,本发布不启动 benchmark。Pi 真实交互/RPC 输入暂停后续自动工作。DSH 有独立版本,源码兼容不代表已替换其公开 beta 包;Windows、原生账号及签名桌面更新各自验收。#7036, #7061, #7072, #7090, #7281, #7294, #7400, #7401, #6862, #7222, #6854, #7454, #7497, #7469。
本版不提出新的 benchmark 分数、长程效果或完整成本提升主张,也不声称执行了新的 stable/candidate 匹配效果实验。既有研究保留原 cohort 和限制;状态保留或过程可见不能独自证明收益。
文档与兼容性
Python 3.11+、Node 22.22.3+(推荐 24 LTS)。沿原安装 owner 更新;已有状态、lease 与覆盖保留。新 Goal 默认和旧 Goal 迁移不同,普通未迁移读取会显式拒绝。原生差分需要实际生命周期验证;checkpoint、重复 Task 和 controller/executor 的阶段范围不能冒充完整产品旅程。#7032, #7381, #7441, #7338, #7409, #7429, #7416, #7288。
源码 launcher 发现可以绕过损坏的同 minor PATH 候选,并保留既有 minor 版本与健康候选顺序。 #7798。
可选能力启用与使用
Research reports and original evidence
启用: 进入已有 Goal 的「研究」,让已授权 Agent 准备固定来源 pack,再显式生成所选报告。新默认准备使用 synthesis 第2版与当前忠实本地化指导;第3/4版需显式接续 pack。打开历史、搜索、比较或引用只读。
验证: 对照保存的发现、原始来源与记录版本,核对负结果、缺失覆盖、用量和 pack 状态。搜索与比较复用已保存译文,导出保留匹配的原记录。
停用 / 回退: 按原 analysis 目录取消。后续可选回旧 pack/配置,或显式旧 encoding/synthesis;保留原成功、失败与用量。结果不明时先读回原操作再决定重试。
权限边界: 来源须有授权并通过完整 hash 校验。显式生成可调用模型和计费;引用绑定不证明内容蕴含、科学有效性,也不授权实验。旧冻结请求不会自动升级。
loopx dashboard
loopx benchmark trajectory-packs --goal-id "$GOAL_ID" --format json
loopx benchmark trajectory-assessment-status --directory "$ANALYSIS_DIR" --format json
# Explicit cancellation of that original operation:
loopx benchmark trajectory-assessment-cancel --directory "$ANALYSIS_DIR" --format jsonLocal Codex source documents
启用: 打开本地托管 Codex 会话,附加 UTF-8 .md/.txt 原始文件,再发送已授权请求。最多四个附件共享序列化消息 64,000 字节预算,编码后的文档数据计入额度。本版交付本地输入、队列恢复与原文预览/下载。 #7740。
验证: 在原会话展开附件并下载原文,比较完整 UTF-8 字节;忙碌排队或重启后检查原请求/队列结果。原文送达不等于模型理解或自动采用。
停用 / 回退: 发送前从草稿移除附件,或只发送文字。已接收原文保留在原始请求中;需要停止时沿既有 owner 操作,不能替换 journal。回退应用须先保存备份,再沿原安装 owner 完成。
权限边界: 仅本地托管 Codex 会话接收文本文件;attached 宿主、其他 executor 及关联/飞书会话会在准入前拒绝。非法 UTF-8、NUL、类型/文件名不符及超限均拒绝整个请求,不截断正文。附件来源不增加指令、任意路径访问或外部发送授权。
文档: 本版原始文件合同
loopx --version
loopx dashboardOriginal-request native delegation
启用: 在成员目录之外的 operator 授权文件中声明 loopx_local_delegation_v0 binding。普通原请求省略 todo_id,但必须声明含 command/argv、另一命令字段的 null、label 与 timeout 的 request_validation;只授予指定 requester 与来源。原生执行仍要求 runtime-compatible project registry;生命周期 profile source_session_v1 会在 Host 启动前拒绝执行。先预览,再设置 Goal 授权文件指针;Chat 还须当前 Inbox grant 与原始保存请求。
验证: 检查准确 binding,在团队执行情况读回原请求与独立验收依据,再检查原 operation 的真实结果及原会话返回。注册、预览或 native 进程完成均不能替代交付。
停用 / 回退: 在原受保护文件撤销准确 binding/来源 grant;移除发现入口时再清除 Goal 指针。保留在途原 journal 和未知效果,不能改解为新请求或 Todo 重跑。
权限边界: 请求身份、消息送达或会话复用不授予执行、仓库写入或外部发送权。Stop、真正用户门、额度、当前来源授权、独立校验、single-flight 和一次结算继续生效。File/SQLite 与打包合成 transport 检查不等于每个模型或外部 transport 合格。
文档: 本版普通 Inbox/委派合同
loopx configure-goal --goal-id "$GOAL_ID" --subagent-execution-config "$DELEGATION_CONFIG"
loopx configure-goal --goal-id "$GOAL_ID" --subagent-execution-config "$DELEGATION_CONFIG" --execute
loopx delegation list --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --execution-config "$DELEGATION_CONFIG"
loopx delegation inspect --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --execution-config "$DELEGATION_CONFIG" --binding-id "$BINDING_ID"
loopx configure-goal --goal-id "$GOAL_ID" --clear-subagent-execution-config --executeCodex differential context
启用: 没有保存本机偏好时,受支持的 POSIX Codex App heartbeat/SSH Goal 会话默认开启。在「设置 → 本机 → 能力 → 差分上下文 → Codex」查看或调整原开关;升级保留已有关闭设置,重新开启仍沿原精确 revision 事务保存。新 benchmark heartbeat 独立默认开启,并冻结所选 mode;不改动已有 trial 的原 treatment。原生复用仍需为下一次受支持会话完成准确 hooks/配置;保存设置不初始化已载入线程,hooks 不可用时仍完整交付。普通 CLI、不支持的宿主和非 heartbeat benchmark 保留原完整路径。文件选读本身只读,使用当前返回的来源/引用和 Pointer。
验证: 读回机器设置,为实际 Goal/Agent 生成 context-config。在受支持的原生会话中核验完整捕获→适用必要视图/共享→有效周期 full/delta→默认文件引用→当前选读/原文深入。存在 first_read_command 时先执行返回的聚焦首读;它是起始选读,不代表全部必要来源已读。继续选读使用返回的当前 recovery reader 引用,delta 也可直接选读。选读续页引用固定了当前选择:沿 next_command 读至 EOF,更换地址时回到原 recovery 引用。极小输出预算可能保留显式文件/摘要接口。已知地址批量读,陌生父节点再查目录;各组选读沿 next_command 连续读至 EOF。目录或一组选读的 EOF 不等于完整来源已读;设置成功或 hooks/list 可发现不等于实际采用或模型保留。
停用 / 回退: 在同一编辑器关闭,或为单次命令显式传 --context-delivery off。Benchmark 使用自己的 context_delivery: "off" 或 --context-delivery off;应建立新 trial,不改动已冻结 treatment。删除已保存的本机 namespace 会恢复新的开启默认值,不能用来关闭。撤回原生设置时删除所生成 hooks、developer instructions 与输出覆盖,恢复旧宿主值。保留原完整 capture 及未结工作的原身份供恢复;未知结构或差分成本不合适时保留完整交付。较小宿主预算可在生成的 guard/context-project 命令追加 --max-page-output-bytes 7900,批量总输出仍须满足宿主限制。
权限边界: 原生连续性当前仅支持 POSIX。原生完整/后续读取保留既有 64000-byte profile;混合 stdout 的完整 JSON 记录仍须通过 trusted capture 验证。Pointer 定位固定摘要来源内的值,数组位置不能套用到另一捕获。完整要求、停止条件和未知结构仍按原来源契约读取;同响应精确共享与跨 Turn 差分的基线不同。失败工具页、摘要不符或缺失 Pointer 不算读取成功,缺失选择拒绝整个批次。连续性失效后完整恢复,不重新准入或重复业务效果。MCP/Claude 机器解析仍读 raw output。候选、偏好与 Explore 材料的更广泛统一交付尚未完成;不声明模型 token、费用或效果改善。
文档: 版本化上下文契约
loopx machine-config inspect
loopx quota context-config --codex-app --goal-id "$GOAL_ID" --agent-id "$AGENT_ID"
# 从当前返回的导航复制 recovery.reference_file。
# 使用这个原 recovery 引用;不能在固定选读的续页引用上更换地址。
loopx --format json quota context-read \
--reference-file "$RECOVERY_READER_REFERENCE" \
--select "$POINTER_A" --select "$POINTER_B"
# 只展开需要发现结构的父节点:
loopx --format json quota context-read \
--reference-file "$RECOVERY_READER_REFERENCE" \
--select "$PARENT_POINTER" --list --list-depth 2
# 显式使用 raw guard 输出:
loopx --format json quota should-run --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --context-delivery offExplore device defaults
启用: 默认关闭。在「设置 → 本机 → Explore Harness」选择关闭、证据或规划,预览并应用。仅 mode 由无显式覆盖的已有/新 Goal 实时继承;profile、组合与执行权限仍属于 Goal。
验证: 在 Goal 设置核对有效 mode 及来源;材料图、结果日志和 rollout 须来自同一选定 runtime。配置成功不证明证据被采用。
停用 / 回退: 把本机 mode 设为 Off 可关闭继承者;特定 Goal 可显式 Off。「恢复继承」或 configure-goal --clear-explore-configuration 沿原预览/应用事务删除该 Goal 的 Explore 覆盖。
权限边界: Planning 提供证据与分支指导,不授予 spawn、lease、quota、凭据、调度或对外发布权;各自 owner 继续决定。
loopx machine-config inspect
loopx configure-goal --goal-id "$GOAL_ID" --clear-explore-configurationOriginal-session scheduled reports
启用: 须显式启用。已有受管 Agent 在「Goal 设置 → 能力中心 → 周期报告」选 weekly-progress、已有「报告会话」,设置日/周日历和可选首日后预览/应用。已准备的私有管家走「设置 → 飞书 → 原管家 → 原生定期监控」;仅准备身份不会开启。
验证: 重新载入收件会话、日历与执行状态;从原会话打开「本期完整报告」,核对完整匹配正文。Task 完成、模型输出或发送尝试都不能替代送达;私聊另核对全部正文分段。
停用 / 回退: 在同一配置关闭 Enable 暂停。保留冻结或未知操作走原恢复,不改目的地、不重复发送。已知独立失败窗口仅沿既有合格事务清理,不能重跑该失败周期。
权限边界: 生成遵循原 actor 的授权、lease 和 quota,并可消耗模型 token。目的地绑定原会话;未读或新增来源不授予新收件范围。任意自然语言周期任务及完整统一 Agent 旅程仍有独立验收。
loopx --version
loopx doctor --deep
loopx dashboardRepeating a completed native Task
启用: 实验性 backend/配置阶段。沿既有 Goal 设置 JSON 编辑器显式配置 periodic_report:enabled=true、profile_preset=session-task、实际 managed-session 路由与已完成的 source_todo_id,再设原生日历并应用精确预览 revision。完整对象见规范文档。
验证: 读回同一配置及原 managed Session 的 scheduled_task 检查;每期须独立 Task 验证、native 结算和完整 Core 答复均读回后才确认。
停用 / 回退: 设 enabled=false 暂停并保留计划、证据;已知失败窗口仅走支持的清理事务。仍有 session-task 窗口时,不降级为无法读取该完成回执的旧 owner。
权限边界: 不能输入任意新任务、脚本、validation argv 或外部目的地;复用已授权完成 Task 的范围、lease、quota 和原 Session。此阶段不等于完整前端验收或生产定时采用。
loopx doctor --deep
loopx dashboardNative Codex account handoff
启用: 在同一 Python 环境安装可选包并重启实际 App/Chat owner;在「设置 → 模型 Provider → Codex 原生账号」显式开启自动切换。客户端退出/重启和强退仍是独立权限,未授权时关闭。同页的「OpenAI API keys」可添加有名称的项目 Key;确有需要时,再单独开启「订阅耗尽后使用 API(按用量付费)」。API 接续独立默认关闭;所有授权订阅都被新鲜观测确认为耗尽后,付费路径才有资格被选择。仅添加 Key 不启用路由或付费调用。
验证: 用 status、clients 及页面的最新额度、「登录占用」和 Key 脱敏后缀读回。「检查连接」仅调用 GET /v1/models,成功不代表推理额度或账单余额可用。实际请求结果与可用的限流窗口观测另行显示。共享同一策略的 App/CLI watch 只选出一个 observer;诊断中的责任 PID 不等于可终止身份。
停用 / 回退: 关闭自动切换,分别关闭 API 接续及重启/强退权限。关闭 API 接续后停止接收新 API 请求,并等待已接收请求结束。删除本地保存的 Key 不会在 OpenAI 撤销该 Key。部分失败后沿原 native owner 核对并恢复服务 intent;停止观察不删除进行中的凭据事务。
权限边界: 保留 native 账号 owner、macOS/POSIX 前置;仅可重启身份核验通过的原进程/服务,未知或无托管 owner 的占用继续等待。Key 留在扩展私有存储,浏览器及 CLI 不返回完整值。API 路由保留原模型和请求;效果不明或已经开始输出的请求不能换 Key 重放。不购买额度、不使用重置券、不任意杀进程、不重放业务。
python3 -m pip install ./packages/loopx-codex-provider-routing
loopx-codex-accounts status
loopx-codex-accounts clients
loopx-codex-accounts keys-statusExplicit research checkpoints
启用: CLI/Host 阶段,须显式调用。准备已静止、已结算的 canonical 源、合格 native Codex profile、完整声明的工作区文件和全新物理目录。先不加 --execute 预览,再仅执行已核对请求。
验证: 先验证返回的 checkpoint SHA,再独立准入新 receiver,在当前 claim/lease 下采用上下文;核对 native cursor、source/profile witness、声明文件 bytes 和原结算。捕获的历史不授予工作权。
停用 / 回退: 后续不提供 checkpoint 请求/controller 即停用。保留原点与未知操作,按原身份恢复。receiver 的 model/effort 切换需显式目标配置,并保留密封源 profile。
权限边界: 不涵盖任意 Host、进程内存、普通 Goal 自动捕获或灾难恢复。导出卷须保留大小写/Unicode 文件名差异;只捕获声明文件,不因捕获而公开凭据。普通用户打包前端仍未完成。
loopx research-checkpoint capture --help
loopx --format json research-checkpoint verify --root "$CHECKPOINT_ROOT" --expected-sha256 "$CAPTURE_DIGEST"Benchmark source and provider profiles
启用: 仅在另一个已授权实验中按命令启用。沿规范 source 命令准备/冻结 SForge cohort,复现时指定完整 SHA。新 heartbeat/Turn 默认 resume,显式 fresh 仍保留为对照。新 heartbeat trial 的 context delivery 默认开启,非 heartbeat mode 保留原关闭默认;显式 --context-delivery off 仍可选择完整交付。HTTP429 重试窗口独立显式指定,重试默认零。
验证: 读回冻结 source receipt、实际模型路由、原阶段截止时间与 typed native outcome。failed/usage_limited/unknown 仅保留 partial_result.json,不能伪装成完成的 final_result.json。
停用 / 回退: 新对照使用新 log 目录和显式旧 SHA/配置,不替换既有 cohort。新 heartbeat trial 显式指定 --context-delivery off、重试窗口设零,可保留完整传输/直通行为;保留旧尝试和预算时钟。
权限边界: source 准备不启动 worker 或 judge。模型、job、评估与预算须由实验独立授权;比较须对齐 judge/task/scoring 源、完整实耗和反馈。改默认值不重认证历史分数、不增加评估次数;本发布不启动新 benchmark。
python3 -m benchmark.edgebench.source --help
python3 -m benchmark.edgebench.run --helpExplicit source-content pins
启用: 仅通过既有私有 Goal authority_sources 条目显式记录已接受的 path 与内容 sha256。source-reference hash 是另一类值;普通 bootstrap --goal-doc 仍可变,不按文件名或扫描自动固定内容。
验证: 固定后运行原 Goal 范围 check/status;内容变动、缺失或不可读须可见。只读文件 adapter 不修文件、不更新接受的 hash。
停用 / 回退: 恢复已接受 bytes,或沿既有授权 registry revision 更新/删除该显式内容 pin;保留其他来源与私有 registry 边界。
权限边界: 不引入软件策略自动发现、AST/regex 义务执行、文档锁或 memory 写入;固定来源不授予执行/发布权。
loopx --registry "$GOAL_REGISTRY" checkDesktop preview and signed updates
启用: 从正式 Release 安装匹配且校验通过的桌面制品。Windows 签名更新限 NSIS 安装和 main channel;MSI 与 Windows stable 更新仍手动/不可用。无 updater 的旧 build 需显式替换一次。macOS 后台准备在下一次正常打开应用时生效,不重启活跃工作区。 若已安装 Chat 运行时需要采用,macOS 会沿原管理器的受管保护检查重试;已有排队/在途工作继续由原 owner 处理,窗口等待后自动接续。
验证: 分别核对 App shell 版本、channel、签名 feed 及合格 service/runtime 身份;检查更新保留独立结果,不替代本地启动读回。CLI 版本不能证明 native shell。 activate 回执只证明请求重试;还须独立确认当前服务的版本身份与就绪状态。打开原管家会话是只读发现,不恢复线程或提交工作。
停用 / 回退: 更新不可用或失败时保留当前合格 App,仅走对应平台已资格化的 native 恢复/更新路径;Windows App 回退/修复仍手动或不可用。结果不明时保留原维护 journal。
权限边界: 桌面仍是预览。minisign 更新校验与 Windows Authenticode、Apple notarization、本机安装资格分别判断;Windows 可能显示 SmartScreen。安装/更新不授予 Goal/provider 权限,也不重放中断业务。 原任务或管理器状态未知时,不直接杀进程,也不启动第二消费者;消息发送仍由原执行时授权检查决定。
gh release view v2.2.0 --repo loopx-project/loopx
loopx --version
loopx doctor --deep
# 仅 macOS:重试已安装 Chat 服务的受管采用,不执行安装。
loopx update activate --service chat --port 8767DSH source plugin
启用: 本版源码兼容修复属于独立版本的 DSH plugin。从相应 release checkout 进入 packages/dsh-loopx-plugin,针对一个明确 DSH home/host 执行规范 install.sh,启动前读回该 host 配置。既有已发布 beta 包内容保持冻结。
验证: 在所选 DSH host 的准确 Session 调用已安装 loopx skill,核对唯一 Goal/Agent 绑定后再依赖 GoalBar/Driver;仅安装不激活自动继续。
停用 / 回退: 从同一 host/profile 移除 dsh-loopx-plugin,停止其 Driver/GoalBar,不删除 LoopX 状态、绑定或 skills。仅在 DSH 停止且 plugin 移除后清理独立 runtime。
权限边界: 源码 dependency/MCP override 不修补另装的 DSH binary。原 Session 拥有输入与工具,仅 LoopX 准入决定后续工作;安装不授予 provider key 或独立调度/Goal 权限。
cd packages/dsh-loopx-plugin
./install.sh
# Use the same qualified DSH host/profile for removal:
dsh plugin --profile web remove dsh-loopx-pluginSession-bound reliability diagnostics
启用: 实验性被动 L1 观察仍默认关闭,仅对显式授权的原 Session 使用规范中独立 dsh-loopx-plugin/observer 入口。当前手动读取须提供准确 provider/observer/session、typed run_identity、当前 as-of 和最大观测年龄。
验证: 从同一次 ledger 观察读取 status 与 integrity receipt;过期、错绑定、损坏或不完整保留 unavailable。空或旧 ledger 不证明当前运行健康。
停用 / 回退: 停用独立 observer 入口可停止新观察,保留 ledger/receipt。省略 expected-binding 只是 legacy readback,不能改称当前绑定资格通过。
权限边界: Observer 不能发送、调度、gate、retry、stop、resume 或改 worker state;仅保留无内容诊断,不收原会话/工具正文。Adapter fidelity、实测开销与 P0 exit 仍独立待验。
loopx reliability-diagnostics status --goal-id "$GOAL_ID" --with-receipt --format json --expected-binding "$EXPECTED_BINDING_JSON" --as-of "$AS_OF" --max-observation-age-ms 60000Todo queue overview
启用: 逐命令显式选择 todo list --summary,没有持久开关;普通 list、--thin、App 与 Lark 视图保留原行为。
验证: 执行下面概览,核对匹配/返回/遗漏数量、canonical ID 与 authority revision,再完整读取一项返回的 Todo。每个 role 最多八项,--limit 可降低上限;来源读取失败仍报错,不变成空队列。#7581。
停用 / 回退: 去掉 --summary 回到普通列表,或沿原 --todo-id 精确读取完整要求;--summary 与 --thin、--todo-id 互斥。
权限边界: 交付用于选择下一项要读工作的只读 CLI 投影,不切换 App/Lark consumer,不 claim 工作、不解除 blocked/deferred,也不替代 quota、lease 和验收。依赖某项工作的操作前仍须读取 canonical 完整要求。
文档: 版本化队列概览
loopx --format json todo list --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --summary
loopx --format json todo list --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --todo-id "$TODO_ID"Independent recipients in one conversation
**启用:**在已经获得授权的受管对话中,直接说明希望哪些已登记 Agent 分别处理什么问题,无须新增批量开关。模型可以返回最多 32 项 context_handoff,每项有完整 brief,Goal/Agent 组合不能重复。外部发送者仍需原有绑定发送者的私有来源策略;若要限制受众,应保留 local_delivery_scope: selected 和明确的 targets。
**验证:**在原对话逐一查看接收人的卡片,展开「查看委派详情」,分别核对该人的 brief、采纳与最终回传。下方命令读取同一 Goal/Agent 的 Inbox 状态。请求送达不等于 worker 完成,一个人的答复也不会结清其他人的请求。
**停用 / 回退:**改用原单请求对象,省略 context_handoff,或返回空数组,即不产生新交接。撤销原有精确来源/接收人授权可停止后续投递。已完成项保留原身份;部分送达时依据每个人的 receipts 与 failures 恢复,不重新发送整个数组。
**权限边界:**先检查整个 envelope 的语法,再逐人核验实时授权,期间取消或撤权可能留下部分成功。批量交接不创建 Todo、lease,不启动 worker,不授予执行权,也不让接收人互看私有答复。模型选人、真实 worker 完成与 provider 投递仍分别验收。
loopx --format json manager-inbox status --goal-id "$GOAL_ID" --agent-id "$AGENT_ID"安装与完成核对
沿上方安装/更新命令操作。核对 CLI 与 App/服务的独立版本和 owner、一项原结果/原报告的完整返回,以及所启用 provider 的停用路径。先保留未知操作与 native journal,再决定回退;桌面包仍为预览,各平台签名、安装和更新证据以正式发布页为准。