diff --git a/docs/product/releases/v2.2.0.md b/docs/product/releases/v2.2.0.md index 306d7c1671..6f0af63145 100644 --- a/docs/product/releases/v2.2.0.md +++ b/docs/product/releases/v2.2.0.md @@ -6,11 +6,11 @@ **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. Differential context and Explore device mode remain off by default. Controller/executor-session RFCs are proposals, not shipped two-Agent orchestration. +**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 above and below, derived from the previous formal tag v2.1.1 and merged PR metadata. +**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. ```bash loopx --version @@ -23,7 +23,7 @@ loopx dashboard - **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](https://github.com/loopx-project/loopx/pull/7051), [#7129](https://github.com/loopx-project/loopx/pull/7129), [#7370](https://github.com/loopx-project/loopx/pull/7370), [#7412](https://github.com/loopx-project/loopx/pull/7412), [#7444](https://github.com/loopx-project/loopx/pull/7444), [#7451](https://github.com/loopx-project/loopx/pull/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](https://github.com/loopx-project/loopx/pull/7179), [#7267](https://github.com/loopx-project/loopx/pull/7267), [#7432](https://github.com/loopx-project/loopx/pull/7432), [#7488](https://github.com/loopx-project/loopx/pull/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](https://github.com/loopx-project/loopx/pull/7399), [#7477](https://github.com/loopx-project/loopx/pull/7477), [#7505](https://github.com/loopx-project/loopx/pull/7505), [#7504](https://github.com/loopx-project/loopx/pull/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. Native reuse defaults off. [#7311](https://github.com/loopx-project/loopx/pull/7311), [#7670](https://github.com/loopx-project/loopx/pull/7670), [#7735](https://github.com/loopx-project/loopx/pull/7735), [#7775](https://github.com/loopx-project/loopx/pull/7775), [#7784](https://github.com/loopx-project/loopx/pull/7784). +- **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](https://github.com/loopx-project/loopx/pull/7815), [#7311](https://github.com/loopx-project/loopx/pull/7311), [#7670](https://github.com/loopx-project/loopx/pull/7670), [#7735](https://github.com/loopx-project/loopx/pull/7735), [#7775](https://github.com/loopx-project/loopx/pull/7775), [#7784](https://github.com/loopx-project/loopx/pull/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](https://github.com/loopx-project/loopx/pull/6854), [#7454](https://github.com/loopx-project/loopx/pull/7454), [#7453](https://github.com/loopx-project/loopx/pull/7453), [#7469](https://github.com/loopx-project/loopx/pull/7469). ### Replan Fixes @@ -40,6 +40,8 @@ An ordinary CLI self-claim now prepares execution atomically when the explicit a 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](https://github.com/loopx-project/loopx/pull/7484), [#7486](https://github.com/loopx-project/loopx/pull/7486), [#7452](https://github.com/loopx-project/loopx/pull/7452), [#7470](https://github.com/loopx-project/loopx/pull/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](https://github.com/loopx-project/loopx/pull/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](https://github.com/loopx-project/loopx/pull/7051), [#7129](https://github.com/loopx-project/loopx/pull/7129), [#7370](https://github.com/loopx-project/loopx/pull/7370), [#7412](https://github.com/loopx-project/loopx/pull/7412), [#7423](https://github.com/loopx-project/loopx/pull/7423), [#7428](https://github.com/loopx-project/loopx/pull/7428), [#7444](https://github.com/loopx-project/loopx/pull/7444), [#7451](https://github.com/loopx-project/loopx/pull/7451). @@ -48,25 +50,33 @@ Original-session daily/weekly reports reuse the existing calendar, native Task/T 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](https://github.com/loopx-project/loopx/pull/7041), [#7048](https://github.com/loopx-project/loopx/pull/7048), [#7228](https://github.com/loopx-project/loopx/pull/7228), [#7419](https://github.com/loopx-project/loopx/pull/7419), [#7495](https://github.com/loopx-project/loopx/pull/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](https://github.com/loopx-project/loopx/pull/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](https://github.com/loopx-project/loopx/pull/7560), [#7670](https://github.com/loopx-project/loopx/pull/7670), [#7735](https://github.com/loopx-project/loopx/pull/7735), [#7768](https://github.com/loopx-project/loopx/pull/7768), [#7775](https://github.com/loopx-project/loopx/pull/7775), [#7784](https://github.com/loopx-project/loopx/pull/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](https://github.com/loopx-project/loopx/pull/7800), [#7812](https://github.com/loopx-project/loopx/pull/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](https://github.com/loopx-project/loopx/pull/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](https://github.com/loopx-project/loopx/pull/7787). + +Long report highlights now wrap while original frozen reports remain unchanged. [#7821](https://github.com/loopx-project/loopx/pull/7821). + ## Community Contributors -This range includes 173 merged PRs from 21 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-candidate Git range and merged PR metadata; selected product-relevant PRs are linked below. +This range includes 180 merged PRs from 21 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-candidate Git range and merged PR metadata; selected product-relevant PRs are linked below. -- [@BigDataDZ](https://github.com/BigDataDZ) — Windows installation, timezone, Unicode and PowerShell correctness; canonical and packaged regression journeys. [#7454](https://github.com/loopx-project/loopx/pull/7454), [#7453](https://github.com/loopx-project/loopx/pull/7453), [#7222](https://github.com/loopx-project/loopx/pull/7222), [#6862](https://github.com/loopx-project/loopx/pull/6862), [#6805](https://github.com/loopx-project/loopx/pull/6805), [#7441](https://github.com/loopx-project/loopx/pull/7441), [#7364](https://github.com/loopx-project/loopx/pull/7364), [#7232](https://github.com/loopx-project/loopx/pull/7232), [#7230](https://github.com/loopx-project/loopx/pull/7230), [#7225](https://github.com/loopx-project/loopx/pull/7225), [#7326](https://github.com/loopx-project/loopx/pull/7326). Also qualified compact settings navigation and contextual readback. [d1a1de74](https://github.com/loopx-project/loopx/commit/d1a1de7443c389eafe8bb22541bbfd30a07a9fa8). Recovered original collaboration without worker/stdin races and retained install/source readback. [#6866](https://github.com/loopx-project/loopx/pull/6866), [#7226](https://github.com/loopx-project/loopx/pull/7226), [#7227](https://github.com/loopx-project/loopx/pull/7227), [#7229](https://github.com/loopx-project/loopx/pull/7229), [#7235](https://github.com/loopx-project/loopx/pull/7235). +- [@BigDataDZ](https://github.com/BigDataDZ) — Windows installation, timezone, Unicode and PowerShell correctness; canonical and packaged regression journeys. [#7454](https://github.com/loopx-project/loopx/pull/7454), [#7453](https://github.com/loopx-project/loopx/pull/7453), [#7222](https://github.com/loopx-project/loopx/pull/7222), [#6862](https://github.com/loopx-project/loopx/pull/6862), [#6805](https://github.com/loopx-project/loopx/pull/6805), [#7441](https://github.com/loopx-project/loopx/pull/7441), [#7364](https://github.com/loopx-project/loopx/pull/7364), [#7232](https://github.com/loopx-project/loopx/pull/7232), [#7230](https://github.com/loopx-project/loopx/pull/7230), [#7225](https://github.com/loopx-project/loopx/pull/7225), [#7326](https://github.com/loopx-project/loopx/pull/7326). Also qualified compact settings navigation and contextual readback. [d1a1de74](https://github.com/loopx-project/loopx/commit/d1a1de7443c389eafe8bb22541bbfd30a07a9fa8). Recovered original collaboration without worker/stdin races and retained install/source readback. [#6866](https://github.com/loopx-project/loopx/pull/6866), [#7226](https://github.com/loopx-project/loopx/pull/7226), [#7227](https://github.com/loopx-project/loopx/pull/7227), [#7229](https://github.com/loopx-project/loopx/pull/7229), [#7235](https://github.com/loopx-project/loopx/pull/7235). Also accepted CRLF Python runtime records and reused the control-plane Node runtime admission in the dashboard. [#7796](https://github.com/loopx-project/loopx/pull/7796), [#7794](https://github.com/loopx-project/loopx/pull/7794). Recovered launcher discovery past a broken equal-minor PATH shadow while preserving healthy candidate precedence. [#7798](https://github.com/loopx-project/loopx/pull/7798). - [@Dante-dan](https://github.com/Dante-dan) — session/run-bound manual diagnostics. [#7349](https://github.com/loopx-project/loopx/pull/7349). - [@Duang777](https://github.com/Duang777) — Goal identifier validation, equivalent lease scopes and regression prerequisites. [#7192](https://github.com/loopx-project/loopx/pull/7192), [#7204](https://github.com/loopx-project/loopx/pull/7204), [#7209](https://github.com/loopx-project/loopx/pull/7209). -- [@JasonBuildAI](https://github.com/JasonBuildAI) — completed-Turn stop races, interrupted canonical creation, signed Windows updates, DSH launch guidance and Unicode/privacy repairs. [#7477](https://github.com/loopx-project/loopx/pull/7477), [#7381](https://github.com/loopx-project/loopx/pull/7381), [#6854](https://github.com/loopx-project/loopx/pull/6854), [#7473](https://github.com/loopx-project/loopx/pull/7473), [#7247](https://github.com/loopx-project/loopx/pull/7247), [#7251](https://github.com/loopx-project/loopx/pull/7251), [#7439](https://github.com/loopx-project/loopx/pull/7439). Also repaired Unicode glob/write-scope case-alias coverage. [843be494](https://github.com/loopx-project/loopx/commit/843be494266774b63b3de61d0adf5dd7f4f877a2). Reject unlabeled provider tokens at public presentation boundaries. [#7732](https://github.com/loopx-project/loopx/pull/7732). Recovered damaged live-daemon locators, emitted host-runnable commands and kept DSH credential observation complete. [#6892](https://github.com/loopx-project/loopx/pull/6892), [#7074](https://github.com/loopx-project/loopx/pull/7074), [#7160](https://github.com/loopx-project/loopx/pull/7160), [#7733](https://github.com/loopx-project/loopx/pull/7733). Additional Unicode/glob scope and presentation commits: [e7e9afca](https://github.com/loopx-project/loopx/commit/e7e9afca86bc14fcc412b3c26bd62a01a106389d), [dee2a462](https://github.com/loopx-project/loopx/commit/dee2a46294002a60bc29f301835d7285f0da2bdd), [6fe86d62](https://github.com/loopx-project/loopx/commit/6fe86d62a0af50835966b3a0e2e993dc6ccacc42), [b824e348](https://github.com/loopx-project/loopx/commit/b824e348f25efbd01edcfc477f963427d4b29387), [1423efc8](https://github.com/loopx-project/loopx/commit/1423efc8c23fb592f787adc141e8e5347ad41fe3), [0feb8593](https://github.com/loopx-project/loopx/commit/0feb85934c0043d8891cdace44bdf594bdef6c79), [b4d2d59f](https://github.com/loopx-project/loopx/commit/b4d2d59fd23ae04dc88fa7c2bb3ff93d941be82a), [1f06fc0b](https://github.com/loopx-project/loopx/commit/1f06fc0be3f568358f3da9ac7143aaa4dddc0aa9), [36b9b972](https://github.com/loopx-project/loopx/commit/36b9b9721b55c7195bd3bc50867a508b36e662b0). +- [@JasonBuildAI](https://github.com/JasonBuildAI) — completed-Turn stop races, interrupted canonical creation, signed Windows updates, DSH launch guidance and Unicode/privacy repairs. [#7477](https://github.com/loopx-project/loopx/pull/7477), [#7381](https://github.com/loopx-project/loopx/pull/7381), [#6854](https://github.com/loopx-project/loopx/pull/6854), [#7473](https://github.com/loopx-project/loopx/pull/7473), [#7247](https://github.com/loopx-project/loopx/pull/7247), [#7251](https://github.com/loopx-project/loopx/pull/7251), [#7439](https://github.com/loopx-project/loopx/pull/7439). Also repaired Unicode glob/write-scope case-alias coverage. [843be494](https://github.com/loopx-project/loopx/commit/843be494266774b63b3de61d0adf5dd7f4f877a2). Reject unlabeled provider tokens at public presentation boundaries. [#7732](https://github.com/loopx-project/loopx/pull/7732). Recovered damaged live-daemon locators, emitted host-runnable commands and kept DSH credential observation complete. [#6892](https://github.com/loopx-project/loopx/pull/6892), [#7074](https://github.com/loopx-project/loopx/pull/7074), [#7160](https://github.com/loopx-project/loopx/pull/7160), [#7733](https://github.com/loopx-project/loopx/pull/7733). Additional Unicode/glob scope and presentation commits: [e7e9afca](https://github.com/loopx-project/loopx/commit/e7e9afca86bc14fcc412b3c26bd62a01a106389d), [dee2a462](https://github.com/loopx-project/loopx/commit/dee2a46294002a60bc29f301835d7285f0da2bdd), [6fe86d62](https://github.com/loopx-project/loopx/commit/6fe86d62a0af50835966b3a0e2e993dc6ccacc42), [b824e348](https://github.com/loopx-project/loopx/commit/b824e348f25efbd01edcfc477f963427d4b29387), [1423efc8](https://github.com/loopx-project/loopx/commit/1423efc8c23fb592f787adc141e8e5347ad41fe3), [0feb8593](https://github.com/loopx-project/loopx/commit/0feb85934c0043d8891cdace44bdf594bdef6c79), [b4d2d59f](https://github.com/loopx-project/loopx/commit/b4d2d59fd23ae04dc88fa7c2bb3ff93d941be82a), [1f06fc0b](https://github.com/loopx-project/loopx/commit/1f06fc0be3f568358f3da9ac7143aaa4dddc0aa9), [36b9b972](https://github.com/loopx-project/loopx/commit/36b9b9721b55c7195bd3bc50867a508b36e662b0). Extended the public-boundary scanner to reject unlabeled provider tokens. [#7713](https://github.com/loopx-project/loopx/pull/7713). - [@Jiaqiiii523](https://github.com/Jiaqiiii523) — attached-conversation regressions and Lark upload acknowledgement. [#7293](https://github.com/loopx-project/loopx/pull/7293), [#7395](https://github.com/loopx-project/loopx/pull/7395). - [@Jim-jimu](https://github.com/Jim-jimu) — Pi input-driven pause and Explore input/zero-evidence semantics. [#7401](https://github.com/loopx-project/loopx/pull/7401), [#7303](https://github.com/loopx-project/loopx/pull/7303), [#7143](https://github.com/loopx-project/loopx/pull/7143), [#7239](https://github.com/loopx-project/loopx/pull/7239). Preserved fresh Pi continuation checks and rejected directory/glob lease overlap. [#7637](https://github.com/loopx-project/loopx/pull/7637), [#7786](https://github.com/loopx-project/loopx/pull/7786). -- [@LIHUA919](https://github.com/LIHUA919) — packaged-browser fixture startup, rendering/focus and research-reading regressions. [#7508](https://github.com/loopx-project/loopx/pull/7508). Added the explicit Todo queue overview and preserved source navigation during in-flight re-scoping. [#7581](https://github.com/loopx-project/loopx/pull/7581), [#7550](https://github.com/loopx-project/loopx/pull/7550). +- [@LIHUA919](https://github.com/LIHUA919) — packaged-browser fixture startup, rendering/focus and research-reading regressions. [#7508](https://github.com/loopx-project/loopx/pull/7508). Added the explicit Todo queue overview and preserved source navigation during in-flight re-scoping. [#7581](https://github.com/loopx-project/loopx/pull/7581), [#7550](https://github.com/loopx-project/loopx/pull/7550). Corrected the modeled native-client platform so POSIX tests reach the accepted-work fence instead of stopping at platform discovery. [#7813](https://github.com/loopx-project/loopx/pull/7813). - [@hhyykk](https://github.com/hhyykk) — shared TypeScript decision ownership, complete canonical reads, recovery, queued-session ownership and explicit source-content pins. [#7462](https://github.com/loopx-project/loopx/pull/7462), [#7325](https://github.com/loopx-project/loopx/pull/7325), [#7411](https://github.com/loopx-project/loopx/pull/7411), [#7298](https://github.com/loopx-project/loopx/pull/7298), [#6874](https://github.com/loopx-project/loopx/pull/6874), [#6855](https://github.com/loopx-project/loopx/pull/6855), [#7321](https://github.com/loopx-project/loopx/pull/7321), [#7386](https://github.com/loopx-project/loopx/pull/7386), [#7136](https://github.com/loopx-project/loopx/pull/7136), [#7137](https://github.com/loopx-project/loopx/pull/7137), [#7131](https://github.com/loopx-project/loopx/pull/7131). Also removed redundant source metadata probes and planning serialization while preserving complete decision facts. [#7688](https://github.com/loopx-project/loopx/pull/7688). Composed native context delivery in one TypeScript transaction and retained process-exit evidence before namespace disposal. [#7768](https://github.com/loopx-project/loopx/pull/7768), [#7546](https://github.com/loopx-project/loopx/pull/7546). - [@mikamikasuki](https://github.com/mikamikasuki) — Lark timestamp precision and encoded local-path redaction. [#6084](https://github.com/loopx-project/loopx/pull/6084), [#5978](https://github.com/loopx-project/loopx/pull/5978). -- [@songoow](https://github.com/songoow) — mobile task modality, managed observer ownership, report routing and offline analysis cancellation. [#7410](https://github.com/loopx-project/loopx/pull/7410), [#7354](https://github.com/loopx-project/loopx/pull/7354), [#7353](https://github.com/loopx-project/loopx/pull/7353), [#7352](https://github.com/loopx-project/loopx/pull/7352), [#7415](https://github.com/loopx-project/loopx/pull/7415). Also bound fallback recovery to the current capture. [8640c514](https://github.com/loopx-project/loopx/commit/8640c514ce7c25e0fa35f3b5562146bbc7501698). Delivered related-outcome navigation, exact native delivery-cost selection, execution-bound provider admission, incremental responses and pinned checkpoint compatibility. [#7560](https://github.com/loopx-project/loopx/pull/7560), [#7775](https://github.com/loopx-project/loopx/pull/7775), [#7777](https://github.com/loopx-project/loopx/pull/7777), [#7776](https://github.com/loopx-project/loopx/pull/7776), [#7769](https://github.com/loopx-project/loopx/pull/7769), [#7500](https://github.com/loopx-project/loopx/pull/7500), [#7778](https://github.com/loopx-project/loopx/pull/7778). -- [@steven-kid](https://github.com/steven-kid) — original evidence search and revision comparison, retained-work search and report downloads. [#7370](https://github.com/loopx-project/loopx/pull/7370), [#7129](https://github.com/loopx-project/loopx/pull/7129), [#7228](https://github.com/loopx-project/loopx/pull/7228), [#7041](https://github.com/loopx-project/loopx/pull/7041), [#7048](https://github.com/loopx-project/loopx/pull/7048), [#7297](https://github.com/loopx-project/loopx/pull/7297). Deliver bounded UTF-8 source documents through local managed Codex conversations. [#7740](https://github.com/loopx-project/loopx/pull/7740). Preserved complete original operator material in native conversations. [#7549](https://github.com/loopx-project/loopx/pull/7549). +- [@songoow](https://github.com/songoow) — mobile task modality, managed observer ownership, report routing and offline analysis cancellation. [#7410](https://github.com/loopx-project/loopx/pull/7410), [#7354](https://github.com/loopx-project/loopx/pull/7354), [#7353](https://github.com/loopx-project/loopx/pull/7353), [#7352](https://github.com/loopx-project/loopx/pull/7352), [#7415](https://github.com/loopx-project/loopx/pull/7415). Also bound fallback recovery to the current capture. [8640c514](https://github.com/loopx-project/loopx/commit/8640c514ce7c25e0fa35f3b5562146bbc7501698). Delivered related-outcome navigation, exact native delivery-cost selection, execution-bound provider admission, incremental responses and pinned checkpoint compatibility. [#7560](https://github.com/loopx-project/loopx/pull/7560), [#7775](https://github.com/loopx-project/loopx/pull/7775), [#7777](https://github.com/loopx-project/loopx/pull/7777), [#7776](https://github.com/loopx-project/loopx/pull/7776), [#7769](https://github.com/loopx-project/loopx/pull/7769), [#7500](https://github.com/loopx-project/loopx/pull/7500), [#7778](https://github.com/loopx-project/loopx/pull/7778). Authenticated best-only benchmark result retrieval. [#7770](https://github.com/loopx-project/loopx/pull/7770). +- [@steven-kid](https://github.com/steven-kid) — original evidence search and revision comparison, retained-work search and report downloads. [#7370](https://github.com/loopx-project/loopx/pull/7370), [#7129](https://github.com/loopx-project/loopx/pull/7129), [#7228](https://github.com/loopx-project/loopx/pull/7228), [#7041](https://github.com/loopx-project/loopx/pull/7041), [#7048](https://github.com/loopx-project/loopx/pull/7048), [#7297](https://github.com/loopx-project/loopx/pull/7297). Deliver bounded UTF-8 source documents through local managed Codex conversations. [#7740](https://github.com/loopx-project/loopx/pull/7740). Preserved complete original operator material in native conversations. [#7549](https://github.com/loopx-project/loopx/pull/7549). Retired stopped quota failures from pending Chat readback. [#7791](https://github.com/loopx-project/loopx/pull/7791). - [@xianth123](https://github.com/xianth123) — single-owner periodic-report field rules and NoKV qualification. [#7210](https://github.com/loopx-project/loopx/pull/7210), [#7155](https://github.com/loopx-project/loopx/pull/7155). - [@gcl-coder](https://github.com/gcl-coder) — corrected the registry ownership claim in the status-vocabulary documentation. [#7539](https://github.com/loopx-project/loopx/pull/7539). Preserved whole-word status display and failed closed on unreadable quota events. [#7553](https://github.com/loopx-project/loopx/pull/7553), [#7679](https://github.com/loopx-project/loopx/pull/7679). - [@shangzh0](https://github.com/shangzh0) — rejected session rebinding in Codex rollouts. [#7566](https://github.com/loopx-project/loopx/pull/7566). Stream trajectory capture parsing/source verification and avoid renewing healthy runtime leases at every proof check. [#7757](https://github.com/loopx-project/loopx/pull/7757), [#7760](https://github.com/loopx-project/loopx/pull/7760). Bound Explore measurements to executed results, preserved replan evidence and retired superseded next steps; added context discovery and tool-context usage visibility. [#7764](https://github.com/loopx-project/loopx/pull/7764), [#7759](https://github.com/loopx-project/loopx/pull/7759), [#7766](https://github.com/loopx-project/loopx/pull/7766), [#7761](https://github.com/loopx-project/loopx/pull/7761), [#7758](https://github.com/loopx-project/loopx/pull/7758), [#7767](https://github.com/loopx-project/loopx/pull/7767), [#7765](https://github.com/loopx-project/loopx/pull/7765). @@ -100,6 +110,8 @@ Use Python 3.11+ and Node.js 22.22.3+; Node 24 LTS is recommended. Follow the or 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](https://github.com/loopx-project/loopx/pull/7338), [#7409](https://github.com/loopx-project/loopx/pull/7409), [#7429](https://github.com/loopx-project/loopx/pull/7429), [#7416](https://github.com/loopx-project/loopx/pull/7416), [#7288](https://github.com/loopx-project/loopx/pull/7288). +Source launcher discovery can recover past a broken equal-minor PATH entry while preserving the established minor-version and healthy-candidate order. [#7798](https://github.com/loopx-project/loopx/pull/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. @@ -162,11 +174,11 @@ loopx configure-goal --goal-id "$GOAL_ID" --clear-subagent-execution-config --ex ### Codex differential context -**Activation:** Native reuse defaults off. In Settings → This machine → Capabilities → Differential context → Codex, switch on through the existing exact-revision transaction. Supported native Codex App heartbeat, SSH Goal and explicit benchmark heartbeat consumers also require their exact native hook/configuration setup for the next supported session. A saved preference alone does not initialize a loaded thread. File selection itself is read-only; use the current returned source, digest and Pointers. +**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. Use the returned **current recovery** file/digest for the commands below, including when the delivery says delta. 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. +**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`. 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. +**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. @@ -175,13 +187,14 @@ loopx configure-goal --goal-id "$GOAL_ID" --clear-subagent-execution-config --ex ```bash loopx machine-config inspect loopx quota context-config --codex-app --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" -# Use the current returned recovery path/digest and known Pointers: +# 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 \ - --capture-file "$CAPTURE_FILE" --capture-sha256 "$CAPTURE_SHA256" \ + --reference-file "$RECOVERY_READER_REFERENCE" \ --select "$POINTER_A" --select "$POINTER_B" # Discover only the unfamiliar parent: loopx --format json quota context-read \ - --capture-file "$CAPTURE_FILE" --capture-sha256 "$CAPTURE_SHA256" \ + --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 off @@ -238,13 +251,13 @@ loopx dashboard ``` ### Native 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. +**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 and Login holders. An App and CLI watch sharing one policy elect one observer; a diagnostic responsible PID is not termination authority. +**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 restart/force permissions off independently. 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. +**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. No account purchase, reset-credit use, arbitrary process termination or replay of submitted jobs is granted. +**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](https://github.com/loopx-project/loopx/blob/v2.2.0/packages/loopx-codex-provider-routing/NATIVE.md) @@ -252,7 +265,9 @@ loopx dashboard python3 -m pip install ./packages/loopx-codex-provider-routing loopx-codex-accounts status loopx-codex-accounts clients +loopx-codex-accounts keys-status ``` + ### Explicit 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. @@ -271,11 +286,11 @@ loopx --format json research-checkpoint verify --root "$CHECKPOINT_ROOT" --expec ``` ### 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. Context delivery and HTTP429 retry windows are separate explicit flags; retry default is zero. +**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. Omit context-delivery and set retry window to zero to retain ordinary full/pass-through behavior. Preserve previous attempts and budget clocks. +**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. @@ -370,6 +385,22 @@ loopx --format json todo list --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --summ 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](https://github.com/loopx-project/loopx/blob/v2.2.0/loopx/capabilities/manager_context/README.md#several-recipients-in-one-conversation-turn) + +```bash +loopx --format json manager-inbox status --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" +``` + ## Install / Update For a new PyPI installation: @@ -394,7 +425,7 @@ For an existing installation, finish active work, run update check and plan, the **解决了什么:**原始证据难以跨版本追踪,完整报告与恢复请求可能丢失原投递上下文,竞态和过期 fixture 又掩盖真实工作状态。本版修复这些路径,验收与业务效果仍须独立读回。 -**是否有破坏性变更:**有。移除未迁移普通 authority 读 fallback 与退休协议/legacy bridge。先按既有备份、显式迁移与恢复契约处理。已有 canonical File/SQLite Goal 保留原 authority,不自动迁移或新增 writer;未配置的新 Goal 仍默认 SQLite/hard lease。差分上下文和本机 Explore mode 默认关闭;controller/executor-session RFC 仍是提案。 +**是否有破坏性变更:**有。移除未迁移普通 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 完成都不等于交付。 @@ -406,31 +437,41 @@ For an existing installation, finish active work, run update check and plan, the 普通 CLI 在 actor 明确等于 assignee、且未提供显式 lease proof 的自 claim 中,原子准备 execution,并返回可直接使用的 progress/completion 命令。progress 只续原来仍有效的 execution;过期、被替代、其他 holder 或 proof 不可用时显式拒绝,不自动另取授权。显式 lease、其他指派、soft-claim、只读 guard 与 App 手工完成权保持原语义。[#7510](https://github.com/loopx-project/loopx/pull/7510)。 +生成的结算步骤把既有 hard-lease 执行准备与后续验证、写回、spend 一起交付;步骤本身不创建执行权。 [#7793](https://github.com/loopx-project/loopx/pull/7793)。 + ### 能力与工作流 研究页先展示结果、报告与问题,再深入历史、数量与原引用;搜索和比较复用保存译文,导出原记录。新准备持久化忠实本地化指导,旧冻结方法、失败与用量保留。交付分析 producer 和打包 reader,科学校准另验。[#7051](https://github.com/loopx-project/loopx/pull/7051), [#7129](https://github.com/loopx-project/loopx/pull/7129), [#7370](https://github.com/loopx-project/loopx/pull/7370), [#7412](https://github.com/loopx-project/loopx/pull/7412), [#7423](https://github.com/loopx-project/loopx/pull/7423), [#7428](https://github.com/loopx-project/loopx/pull/7428), [#7444](https://github.com/loopx-project/loopx/pull/7444), [#7451](https://github.com/loopx-project/loopx/pull/7451)。 显式日/周报告沿原会话、原 Task/Turn 与独立验证和完整正文送达 owner;已知准入拒绝或缓存的合格结果仅恢复原许可剩余步骤,未知业务/发送效果继续保留。完成 Task 的周期复用仍是实验性 backend/配置阶段。历史工作搜索、团队报告下载及原项目会话 peer 请求继续保留真实来源与完整 brief。[#7173](https://github.com/loopx-project/loopx/pull/7173), [#7179](https://github.com/loopx-project/loopx/pull/7179), [#7267](https://github.com/loopx-project/loopx/pull/7267), [#7288](https://github.com/loopx-project/loopx/pull/7288), [#7418](https://github.com/loopx-project/loopx/pull/7418), [#7449](https://github.com/loopx-project/loopx/pull/7449), [#7458](https://github.com/loopx-project/loopx/pull/7458), [#7041](https://github.com/loopx-project/loopx/pull/7041), [#7048](https://github.com/loopx-project/loopx/pull/7048), [#7228](https://github.com/loopx-project/loopx/pull/7228), [#7419](https://github.com/loopx-project/loopx/pull/7419), [#7495](https://github.com/loopx-project/loopx/pull/7495)。 +可选的 Codex 原生 Provider 在同一设置页管理订阅和命名的 OpenAI project key。订阅优先;独立的按量付费 API fallback 默认关闭,须先以新鲜读数确认每个允许订阅均已耗尽。添加 key 不会开启路由;已接受请求保留原模型与执行身份。[#7783](https://github.com/loopx-project/loopx/pull/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](https://github.com/loopx-project/loopx/pull/7560), [#7670](https://github.com/loopx-project/loopx/pull/7670), [#7735](https://github.com/loopx-project/loopx/pull/7735), [#7768](https://github.com/loopx-project/loopx/pull/7768), [#7775](https://github.com/loopx-project/loopx/pull/7775), [#7784](https://github.com/loopx-project/loopx/pull/7784)。 +已识别的完整引用提供聚焦首读:把准入、停止条件、选中任务、完整 Goal/Todo 正文和后续证据入口一起交付,细节再按需展开。原生导航把完整 capture/selection 摘要保存在不可变的私有 reader 引用里,CLI 每页仍完整校验;精简导航不降低完整性检查,原显式文件/摘要读取继续兼容。 [#7800](https://github.com/loopx-project/loopx/pull/7800), [#7812](https://github.com/loopx-project/loopx/pull/7812)。 + 显式 CLI Todo 队列概览帮助选择下一项要读的工作:每个 role 最多展示八项匹配记录,保留 canonical ID、遗漏数量与完整读取入口。App/Lark、普通 CLI 和默认输出沿用原有视图;概览不授予执行权。[#7581](https://github.com/loopx-project/loopx/pull/7581)。 +同一受管对话可以把不同完整 brief 分别交给多个已登记 Agent;每个接收人保留自己的授权、原请求与结果,部分送达按接收人恢复。它不启动 worker,也不授予执行权。 [#7787](https://github.com/loopx-project/loopx/pull/7787)。 + +报告的长 highlight 可以正常换行,原有冻结报告不被重写。 [#7821](https://github.com/loopx-project/loopx/pull/7821)。 + ### 社区贡献者 -本范围包含 21 位非创始社区贡献者的 173 个已合并 PR,以及已核验账号和 tag 范围、但 GitHub 未关联 PR 的另外 12 个社区提交。归属沿 v2.1.1 至候选源码的 Git 范围及 merged PR 元数据导出,下列链接选取与产品相关的贡献;直接提交按 commit 标明。 +本范围包含 21 位非创始社区贡献者的 180 个已合并 PR,以及已核验账号和 tag 范围、但 GitHub 未关联 PR 的另外 12 个社区提交。归属沿 v2.1.1 至候选源码的 Git 范围及 merged PR 元数据导出,下列链接选取与产品相关的贡献;直接提交按 commit 标明。 -- [@BigDataDZ](https://github.com/BigDataDZ) — Windows 安装、时区、Unicode 与 PowerShell,以及 canonical 和打包旅程回归. [#7454](https://github.com/loopx-project/loopx/pull/7454), [#7453](https://github.com/loopx-project/loopx/pull/7453), [#7222](https://github.com/loopx-project/loopx/pull/7222), [#6862](https://github.com/loopx-project/loopx/pull/6862), [#6805](https://github.com/loopx-project/loopx/pull/6805), [#7441](https://github.com/loopx-project/loopx/pull/7441), [#7364](https://github.com/loopx-project/loopx/pull/7364), [#7232](https://github.com/loopx-project/loopx/pull/7232), [#7230](https://github.com/loopx-project/loopx/pull/7230), [#7225](https://github.com/loopx-project/loopx/pull/7225), [#7326](https://github.com/loopx-project/loopx/pull/7326). 另完成紧凑设置导航与上下文读取回归。 [d1a1de74](https://github.com/loopx-project/loopx/commit/d1a1de7443c389eafe8bb22541bbfd30a07a9fa8). 补齐原协作恢复的 worker/stdin 竞态及安装/来源读回。 [#6866](https://github.com/loopx-project/loopx/pull/6866), [#7226](https://github.com/loopx-project/loopx/pull/7226), [#7227](https://github.com/loopx-project/loopx/pull/7227), [#7229](https://github.com/loopx-project/loopx/pull/7229), [#7235](https://github.com/loopx-project/loopx/pull/7235)。 +- [@BigDataDZ](https://github.com/BigDataDZ) — Windows 安装、时区、Unicode 与 PowerShell,以及 canonical 和打包旅程回归. [#7454](https://github.com/loopx-project/loopx/pull/7454), [#7453](https://github.com/loopx-project/loopx/pull/7453), [#7222](https://github.com/loopx-project/loopx/pull/7222), [#6862](https://github.com/loopx-project/loopx/pull/6862), [#6805](https://github.com/loopx-project/loopx/pull/6805), [#7441](https://github.com/loopx-project/loopx/pull/7441), [#7364](https://github.com/loopx-project/loopx/pull/7364), [#7232](https://github.com/loopx-project/loopx/pull/7232), [#7230](https://github.com/loopx-project/loopx/pull/7230), [#7225](https://github.com/loopx-project/loopx/pull/7225), [#7326](https://github.com/loopx-project/loopx/pull/7326). 另完成紧凑设置导航与上下文读取回归。 [d1a1de74](https://github.com/loopx-project/loopx/commit/d1a1de7443c389eafe8bb22541bbfd30a07a9fa8). 补齐原协作恢复的 worker/stdin 竞态及安装/来源读回。 [#6866](https://github.com/loopx-project/loopx/pull/6866), [#7226](https://github.com/loopx-project/loopx/pull/7226), [#7227](https://github.com/loopx-project/loopx/pull/7227), [#7229](https://github.com/loopx-project/loopx/pull/7229), [#7235](https://github.com/loopx-project/loopx/pull/7235)。 另兼容 CRLF Python runtime 记录,并让 dashboard 复用控制面的 Node runtime 准入。 [#7796](https://github.com/loopx-project/loopx/pull/7796), [#7794](https://github.com/loopx-project/loopx/pull/7794)。 修复首个同 minor PATH 候选损坏时的 launcher 发现,保留健康候选的原优先级。 [#7798](https://github.com/loopx-project/loopx/pull/7798)。 - [@Dante-dan](https://github.com/Dante-dan) — 绑定准确会话与运行证据的手动诊断. [#7349](https://github.com/loopx-project/loopx/pull/7349). - [@Duang777](https://github.com/Duang777) — Goal 标识校验、等价 lease 范围与回归前置. [#7192](https://github.com/loopx-project/loopx/pull/7192), [#7204](https://github.com/loopx-project/loopx/pull/7204), [#7209](https://github.com/loopx-project/loopx/pull/7209). -- [@JasonBuildAI](https://github.com/JasonBuildAI) — 已完成 Turn 的停止竞态、canonical 创建恢复、Windows 签名更新、DSH 启动说明及 Unicode/隐私修复. [#7477](https://github.com/loopx-project/loopx/pull/7477), [#7381](https://github.com/loopx-project/loopx/pull/7381), [#6854](https://github.com/loopx-project/loopx/pull/6854), [#7473](https://github.com/loopx-project/loopx/pull/7473), [#7247](https://github.com/loopx-project/loopx/pull/7247), [#7251](https://github.com/loopx-project/loopx/pull/7251), [#7439](https://github.com/loopx-project/loopx/pull/7439). 另修复 Unicode glob/write-scope 大小写别名覆盖。 [843be494](https://github.com/loopx-project/loopx/commit/843be494266774b63b3de61d0adf5dd7f4f877a2). 在公开展示边界拒绝未标注的 provider token。 [#7732](https://github.com/loopx-project/loopx/pull/7732)。 恢复损坏的活跃 daemon locator,输出宿主可执行命令并完整观察 DSH 凭据形状。 [#6892](https://github.com/loopx-project/loopx/pull/6892), [#7074](https://github.com/loopx-project/loopx/pull/7074), [#7160](https://github.com/loopx-project/loopx/pull/7160), [#7733](https://github.com/loopx-project/loopx/pull/7733)。 其他 Unicode/glob 范围与展示回归提交:[e7e9afca](https://github.com/loopx-project/loopx/commit/e7e9afca86bc14fcc412b3c26bd62a01a106389d), [dee2a462](https://github.com/loopx-project/loopx/commit/dee2a46294002a60bc29f301835d7285f0da2bdd), [6fe86d62](https://github.com/loopx-project/loopx/commit/6fe86d62a0af50835966b3a0e2e993dc6ccacc42), [b824e348](https://github.com/loopx-project/loopx/commit/b824e348f25efbd01edcfc477f963427d4b29387), [1423efc8](https://github.com/loopx-project/loopx/commit/1423efc8c23fb592f787adc141e8e5347ad41fe3), [0feb8593](https://github.com/loopx-project/loopx/commit/0feb85934c0043d8891cdace44bdf594bdef6c79), [b4d2d59f](https://github.com/loopx-project/loopx/commit/b4d2d59fd23ae04dc88fa7c2bb3ff93d941be82a), [1f06fc0b](https://github.com/loopx-project/loopx/commit/1f06fc0be3f568358f3da9ac7143aaa4dddc0aa9), [36b9b972](https://github.com/loopx-project/loopx/commit/36b9b9721b55c7195bd3bc50867a508b36e662b0)。 +- [@JasonBuildAI](https://github.com/JasonBuildAI) — 已完成 Turn 的停止竞态、canonical 创建恢复、Windows 签名更新、DSH 启动说明及 Unicode/隐私修复. [#7477](https://github.com/loopx-project/loopx/pull/7477), [#7381](https://github.com/loopx-project/loopx/pull/7381), [#6854](https://github.com/loopx-project/loopx/pull/6854), [#7473](https://github.com/loopx-project/loopx/pull/7473), [#7247](https://github.com/loopx-project/loopx/pull/7247), [#7251](https://github.com/loopx-project/loopx/pull/7251), [#7439](https://github.com/loopx-project/loopx/pull/7439). 另修复 Unicode glob/write-scope 大小写别名覆盖。 [843be494](https://github.com/loopx-project/loopx/commit/843be494266774b63b3de61d0adf5dd7f4f877a2). 在公开展示边界拒绝未标注的 provider token。 [#7732](https://github.com/loopx-project/loopx/pull/7732)。 恢复损坏的活跃 daemon locator,输出宿主可执行命令并完整观察 DSH 凭据形状。 [#6892](https://github.com/loopx-project/loopx/pull/6892), [#7074](https://github.com/loopx-project/loopx/pull/7074), [#7160](https://github.com/loopx-project/loopx/pull/7160), [#7733](https://github.com/loopx-project/loopx/pull/7733)。 其他 Unicode/glob 范围与展示回归提交:[e7e9afca](https://github.com/loopx-project/loopx/commit/e7e9afca86bc14fcc412b3c26bd62a01a106389d), [dee2a462](https://github.com/loopx-project/loopx/commit/dee2a46294002a60bc29f301835d7285f0da2bdd), [6fe86d62](https://github.com/loopx-project/loopx/commit/6fe86d62a0af50835966b3a0e2e993dc6ccacc42), [b824e348](https://github.com/loopx-project/loopx/commit/b824e348f25efbd01edcfc477f963427d4b29387), [1423efc8](https://github.com/loopx-project/loopx/commit/1423efc8c23fb592f787adc141e8e5347ad41fe3), [0feb8593](https://github.com/loopx-project/loopx/commit/0feb85934c0043d8891cdace44bdf594bdef6c79), [b4d2d59f](https://github.com/loopx-project/loopx/commit/b4d2d59fd23ae04dc88fa7c2bb3ff93d941be82a), [1f06fc0b](https://github.com/loopx-project/loopx/commit/1f06fc0be3f568358f3da9ac7143aaa4dddc0aa9), [36b9b972](https://github.com/loopx-project/loopx/commit/36b9b9721b55c7195bd3bc50867a508b36e662b0)。 将未标注 provider token 的检查补齐到公开边界扫描器。 [#7713](https://github.com/loopx-project/loopx/pull/7713)。 - [@Jiaqiiii523](https://github.com/Jiaqiiii523) — 原生绑定会话回归与飞书上传确认. [#7293](https://github.com/loopx-project/loopx/pull/7293), [#7395](https://github.com/loopx-project/loopx/pull/7395). - [@Jim-jimu](https://github.com/Jim-jimu) — Pi 输入暂停,以及 Explore 输入与零证据语义. [#7401](https://github.com/loopx-project/loopx/pull/7401), [#7303](https://github.com/loopx-project/loopx/pull/7303), [#7143](https://github.com/loopx-project/loopx/pull/7143), [#7239](https://github.com/loopx-project/loopx/pull/7239). 保留 Pi 恢复时的新接续检查,拒绝目录/glob lease 范围冲突。 [#7637](https://github.com/loopx-project/loopx/pull/7637), [#7786](https://github.com/loopx-project/loopx/pull/7786)。 -- [@LIHUA919](https://github.com/LIHUA919) — 打包浏览器 fixture 启动、渲染/焦点与研究阅读回归. [#7508](https://github.com/loopx-project/loopx/pull/7508). 新增显式 Todo 队列概览,保留重新限定范围期间的来源导航。 [#7581](https://github.com/loopx-project/loopx/pull/7581), [#7550](https://github.com/loopx-project/loopx/pull/7550)。 +- [@LIHUA919](https://github.com/LIHUA919) — 打包浏览器 fixture 启动、渲染/焦点与研究阅读回归. [#7508](https://github.com/loopx-project/loopx/pull/7508). 新增显式 Todo 队列概览,保留重新限定范围期间的来源导航。 [#7581](https://github.com/loopx-project/loopx/pull/7581), [#7550](https://github.com/loopx-project/loopx/pull/7550)。 修正模拟原生客户端的平台 fixture,使 POSIX 测试进入 accepted-work fence,避免先停在平台发现。 [#7813](https://github.com/loopx-project/loopx/pull/7813)。 - [@hhyykk](https://github.com/hhyykk) — 共享 TypeScript 决策归属、完整 canonical 读取、恢复、排队会话归属与显式来源内容固定. [#7462](https://github.com/loopx-project/loopx/pull/7462), [#7325](https://github.com/loopx-project/loopx/pull/7325), [#7411](https://github.com/loopx-project/loopx/pull/7411), [#7298](https://github.com/loopx-project/loopx/pull/7298), [#6874](https://github.com/loopx-project/loopx/pull/6874), [#6855](https://github.com/loopx-project/loopx/pull/6855), [#7321](https://github.com/loopx-project/loopx/pull/7321), [#7386](https://github.com/loopx-project/loopx/pull/7386), [#7136](https://github.com/loopx-project/loopx/pull/7136), [#7137](https://github.com/loopx-project/loopx/pull/7137), [#7131](https://github.com/loopx-project/loopx/pull/7131). 另移除重复源码探测与规划序列化,保留完整决策事实。 [#7688](https://github.com/loopx-project/loopx/pull/7688)。 将原生上下文交付组合为一次 TypeScript 事务,清理 namespace 前保留真实进程退出证据。 [#7768](https://github.com/loopx-project/loopx/pull/7768), [#7546](https://github.com/loopx-project/loopx/pull/7546)。 - [@mikamikasuki](https://github.com/mikamikasuki) — 飞书时间戳精度与编码本地路径脱敏. [#6084](https://github.com/loopx-project/loopx/pull/6084), [#5978](https://github.com/loopx-project/loopx/pull/5978). -- [@songoow](https://github.com/songoow) — 移动任务交互、受管观察者归属、报告路由与离线分析取消. [#7410](https://github.com/loopx-project/loopx/pull/7410), [#7354](https://github.com/loopx-project/loopx/pull/7354), [#7353](https://github.com/loopx-project/loopx/pull/7353), [#7352](https://github.com/loopx-project/loopx/pull/7352), [#7415](https://github.com/loopx-project/loopx/pull/7415). 另将 fallback 恢复绑定到当前 capture。 [8640c514](https://github.com/loopx-project/loopx/commit/8640c514ce7c25e0fa35f3b5562146bbc7501698). 交付相关验收导航、原生完整交付成本选择、逐执行 provider 准入、增量响应与固定 checkpoint 兼容。 [#7560](https://github.com/loopx-project/loopx/pull/7560), [#7775](https://github.com/loopx-project/loopx/pull/7775), [#7777](https://github.com/loopx-project/loopx/pull/7777), [#7776](https://github.com/loopx-project/loopx/pull/7776), [#7769](https://github.com/loopx-project/loopx/pull/7769), [#7500](https://github.com/loopx-project/loopx/pull/7500), [#7778](https://github.com/loopx-project/loopx/pull/7778)。 -- [@steven-kid](https://github.com/steven-kid) — 原始证据搜索与版本比较、历史工作搜索及报告下载. [#7370](https://github.com/loopx-project/loopx/pull/7370), [#7129](https://github.com/loopx-project/loopx/pull/7129), [#7228](https://github.com/loopx-project/loopx/pull/7228), [#7041](https://github.com/loopx-project/loopx/pull/7041), [#7048](https://github.com/loopx-project/loopx/pull/7048), [#7297](https://github.com/loopx-project/loopx/pull/7297). 为本地托管 Codex 会话交付有界 UTF-8 原始文档附件。 [#7740](https://github.com/loopx-project/loopx/pull/7740)。 在原生会话中保留完整原始操作者材料。 [#7549](https://github.com/loopx-project/loopx/pull/7549)。 +- [@songoow](https://github.com/songoow) — 移动任务交互、受管观察者归属、报告路由与离线分析取消. [#7410](https://github.com/loopx-project/loopx/pull/7410), [#7354](https://github.com/loopx-project/loopx/pull/7354), [#7353](https://github.com/loopx-project/loopx/pull/7353), [#7352](https://github.com/loopx-project/loopx/pull/7352), [#7415](https://github.com/loopx-project/loopx/pull/7415). 另将 fallback 恢复绑定到当前 capture。 [8640c514](https://github.com/loopx-project/loopx/commit/8640c514ce7c25e0fa35f3b5562146bbc7501698). 交付相关验收导航、原生完整交付成本选择、逐执行 provider 准入、增量响应与固定 checkpoint 兼容。 [#7560](https://github.com/loopx-project/loopx/pull/7560), [#7775](https://github.com/loopx-project/loopx/pull/7775), [#7777](https://github.com/loopx-project/loopx/pull/7777), [#7776](https://github.com/loopx-project/loopx/pull/7776), [#7769](https://github.com/loopx-project/loopx/pull/7769), [#7500](https://github.com/loopx-project/loopx/pull/7500), [#7778](https://github.com/loopx-project/loopx/pull/7778)。 为 benchmark 的 best-only 结果读取补齐认证。 [#7770](https://github.com/loopx-project/loopx/pull/7770)。 +- [@steven-kid](https://github.com/steven-kid) — 原始证据搜索与版本比较、历史工作搜索及报告下载. [#7370](https://github.com/loopx-project/loopx/pull/7370), [#7129](https://github.com/loopx-project/loopx/pull/7129), [#7228](https://github.com/loopx-project/loopx/pull/7228), [#7041](https://github.com/loopx-project/loopx/pull/7041), [#7048](https://github.com/loopx-project/loopx/pull/7048), [#7297](https://github.com/loopx-project/loopx/pull/7297). 为本地托管 Codex 会话交付有界 UTF-8 原始文档附件。 [#7740](https://github.com/loopx-project/loopx/pull/7740)。 在原生会话中保留完整原始操作者材料。 [#7549](https://github.com/loopx-project/loopx/pull/7549)。 从 Chat 待处理读回中退休已停止的 quota 失败。 [#7791](https://github.com/loopx-project/loopx/pull/7791)。 - [@xianth123](https://github.com/xianth123) — 周期报告字段规则与 NoKV 资格的单一归属. [#7210](https://github.com/loopx-project/loopx/pull/7210), [#7155](https://github.com/loopx-project/loopx/pull/7155). - [@gcl-coder](https://github.com/gcl-coder) — 修正状态词表文档中 registry 归属的表述。 [#7539](https://github.com/loopx-project/loopx/pull/7539). 保留完整词状态展示,对不可读 quota 事件显式拒绝。 [#7553](https://github.com/loopx-project/loopx/pull/7553), [#7679](https://github.com/loopx-project/loopx/pull/7679)。 - [@shangzh0](https://github.com/shangzh0) — 拒绝 Codex rollout 中的会话重新绑定。 [#7566](https://github.com/loopx-project/loopx/pull/7566). 流式解析轨迹 capture 并核验来源,避免每次证明检查都续租健康运行时 lease。 [#7757](https://github.com/loopx-project/loopx/pull/7757), [#7760](https://github.com/loopx-project/loopx/pull/7760)。 将 Explore 测量绑定实际执行结果,保留重规划证据并退休已被替代的后续步骤;补齐上下文目录发现及工具上下文用量展示。 [#7764](https://github.com/loopx-project/loopx/pull/7764), [#7759](https://github.com/loopx-project/loopx/pull/7759), [#7766](https://github.com/loopx-project/loopx/pull/7766), [#7761](https://github.com/loopx-project/loopx/pull/7761), [#7758](https://github.com/loopx-project/loopx/pull/7758), [#7767](https://github.com/loopx-project/loopx/pull/7767), [#7765](https://github.com/loopx-project/loopx/pull/7765)。 @@ -458,6 +499,8 @@ native benchmark 保留失败、partial result、阶段截止、实际模型路 Python 3.11+、Node 22.22.3+(推荐 24 LTS)。沿原安装 owner 更新;已有状态、lease 与覆盖保留。新 Goal 默认和旧 Goal 迁移不同,普通未迁移读取会显式拒绝。原生差分需要实际生命周期验证;checkpoint、重复 Task 和 controller/executor 的阶段范围不能冒充完整产品旅程。[#7032](https://github.com/loopx-project/loopx/pull/7032), [#7381](https://github.com/loopx-project/loopx/pull/7381), [#7441](https://github.com/loopx-project/loopx/pull/7441), [#7338](https://github.com/loopx-project/loopx/pull/7338), [#7409](https://github.com/loopx-project/loopx/pull/7409), [#7429](https://github.com/loopx-project/loopx/pull/7429), [#7416](https://github.com/loopx-project/loopx/pull/7416), [#7288](https://github.com/loopx-project/loopx/pull/7288)。 +源码 launcher 发现可以绕过损坏的同 minor PATH 候选,并保留既有 minor 版本与健康候选顺序。 [#7798](https://github.com/loopx-project/loopx/pull/7798)。 + ### 可选能力启用与使用 #### Research reports and original evidence @@ -518,11 +561,11 @@ loopx configure-goal --goal-id "$GOAL_ID" --clear-subagent-execution-config --ex #### Codex differential context -**启用:** 原生复用默认关闭。在「设置 → 本机 → 能力 → 差分上下文 → Codex」开启,沿原精确 revision 事务保存。受支持的 Codex App heartbeat、SSH Goal 与显式 benchmark heartbeat,还须为下一次受支持会话完成准确 hooks/配置;保存偏好不初始化已载入线程。文件选读本身只读,使用当前返回的来源、摘要与 Pointer。 +**启用:** 没有保存本机偏好时,受支持的 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→默认文件引用→当前选读/原文深入。下面命令使用返回的**当前 recovery** 文件与摘要,delta 也可直接选读。已知地址批量读,陌生父节点再查目录;各组选读沿 next_command 连续读至 EOF。目录或一组选读的 EOF 不等于完整来源已读;设置成功或 hooks/list 可发现不等于实际采用或模型保留。 +**验证:** 读回机器设置,为实际 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`。撤回原生设置时删除所生成 hooks、developer instructions 与输出覆盖,恢复旧宿主值。保留原完整 capture 及未结工作的原身份供恢复;未知结构或差分成本不合适时保留完整交付。较小宿主预算可在生成的 guard/context-project 命令追加 `--max-page-output-bytes 7900`,批量总输出仍须满足宿主限制。 +**停用 / 回退:** 在同一编辑器关闭,或为单次命令显式传 `--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、费用或效果改善。 @@ -531,13 +574,14 @@ loopx configure-goal --goal-id "$GOAL_ID" --clear-subagent-execution-config --ex ```bash loopx machine-config inspect loopx quota context-config --codex-app --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" -# 使用当前返回的 recovery 路径、摘要和已知 Pointer: +# 从当前返回的导航复制 recovery.reference_file。 +# 使用这个原 recovery 引用;不能在固定选读的续页引用上更换地址。 loopx --format json quota context-read \ - --capture-file "$CAPTURE_FILE" --capture-sha256 "$CAPTURE_SHA256" \ + --reference-file "$RECOVERY_READER_REFERENCE" \ --select "$POINTER_A" --select "$POINTER_B" # 只展开需要发现结构的父节点: loopx --format json quota context-read \ - --capture-file "$CAPTURE_FILE" --capture-sha256 "$CAPTURE_SHA256" \ + --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 off @@ -594,13 +638,13 @@ loopx dashboard ``` #### Native Codex account handoff -**启用:** 在同一 Python 环境安装可选包并重启实际 App/Chat owner;在「设置 → 模型 Provider → Codex 原生账号」显式开启自动切换。客户端退出/重启和强退仍是独立权限,未授权时关闭。 +**启用:** 在同一 Python 环境安装可选包并重启实际 App/Chat owner;在「设置 → 模型 Provider → Codex 原生账号」显式开启自动切换。客户端退出/重启和强退仍是独立权限,未授权时关闭。同页的「OpenAI API keys」可添加有名称的项目 Key;确有需要时,再单独开启「订阅耗尽后使用 API(按用量付费)」。API 接续独立默认关闭;所有授权订阅都被新鲜观测确认为耗尽后,付费路径才有资格被选择。仅添加 Key 不启用路由或付费调用。 -**验证:** 用 status、clients 及页面的最新额度和「登录占用」读回;共享同一策略的 App/CLI watch 只选出一个 observer。诊断中的责任 PID 不等于可终止身份。 +**验证:** 用 status、clients 及页面的最新额度、「登录占用」和 Key 脱敏后缀读回。「检查连接」仅调用 `GET /v1/models`,成功不代表推理额度或账单余额可用。实际请求结果与可用的限流窗口观测另行显示。共享同一策略的 App/CLI watch 只选出一个 observer;诊断中的责任 PID 不等于可终止身份。 -**停用 / 回退:** 关闭自动切换,独立关闭重启/强退。部分失败后沿原 native owner 核对并恢复服务 intent;停止观察不删除进行中的凭据事务。 +**停用 / 回退:** 关闭自动切换,分别关闭 API 接续及重启/强退权限。关闭 API 接续后停止接收新 API 请求,并等待已接收请求结束。删除本地保存的 Key 不会在 OpenAI 撤销该 Key。部分失败后沿原 native owner 核对并恢复服务 intent;停止观察不删除进行中的凭据事务。 -**权限边界:** 保留 native 账号 owner、macOS/POSIX 前置;仅可重启身份核验通过的原进程/服务,未知或无托管 owner 的占用继续等待。不购买额度、不使用重置券、不任意杀进程、不重放业务。 +**权限边界:** 保留 native 账号 owner、macOS/POSIX 前置;仅可重启身份核验通过的原进程/服务,未知或无托管 owner 的占用继续等待。Key 留在扩展私有存储,浏览器及 CLI 不返回完整值。API 路由保留原模型和请求;效果不明或已经开始输出的请求不能换 Key 重放。不购买额度、不使用重置券、不任意杀进程、不重放业务。 **文档:** [Versioned contract](https://github.com/loopx-project/loopx/blob/v2.2.0/packages/loopx-codex-provider-routing/NATIVE.md) @@ -608,7 +652,9 @@ loopx dashboard python3 -m pip install ./packages/loopx-codex-provider-routing loopx-codex-accounts status loopx-codex-accounts clients +loopx-codex-accounts keys-status ``` + #### Explicit research checkpoints **启用:** CLI/Host 阶段,须显式调用。准备已静止、已结算的 canonical 源、合格 native Codex profile、完整声明的工作区文件和全新物理目录。先不加 --execute 预览,再仅执行已核对请求。 @@ -627,11 +673,11 @@ loopx --format json research-checkpoint verify --root "$CHECKPOINT_ROOT" --expec ``` #### Benchmark source and provider profiles -**启用:** 仅在另一个已授权实验中按命令启用。沿规范 source 命令准备/冻结 SForge cohort,复现时指定完整 SHA。新 heartbeat/Turn 默认 resume,显式 fresh 仍保留为对照;差分与 HTTP429 重试窗口独立显式指定,重试默认零。 +**启用:** 仅在另一个已授权实验中按命令启用。沿规范 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。省略差分、重试窗口设零可保留完整传输/直通行为;保留旧尝试和预算时钟。 +**停用 / 回退:** 新对照使用新 log 目录和显式旧 SHA/配置,不替换既有 cohort。新 heartbeat trial 显式指定 `--context-delivery off`、重试窗口设零,可保留完整传输/直通行为;保留旧尝试和预算时钟。 **权限边界:** source 准备不启动 worker 或 judge。模型、job、评估与预算须由实验独立授权;比较须对齐 judge/task/scoring 源、完整实耗和反馈。改默认值不重认证历史分数、不增加评估次数;本发布不启动新 benchmark。 @@ -726,6 +772,22 @@ loopx --format json todo list --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" --summ 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 投递仍分别验收。 + +**文档:**[版本化的逐接收人契约与对话示例](https://github.com/loopx-project/loopx/blob/v2.2.0/loopx/capabilities/manager_context/README.md#several-recipients-in-one-conversation-turn) + +```bash +loopx --format json manager-inbox status --goal-id "$GOAL_ID" --agent-id "$AGENT_ID" +``` + ### 安装与完成核对 沿上方安装/更新命令操作。核对 CLI 与 App/服务的独立版本和 owner、一项原结果/原报告的完整返回,以及所启用 provider 的停用路径。先保留未知操作与 native journal,再决定回退;桌面包仍为预览,各平台签名、安装和更新证据以正式发布页为准。