Skip to content

C1: unify work sources and validate recovery - #8266

Open
loopx-agent wants to merge 96 commits into
mainfrom
codex/c1-work-contract-review-20261107
Open

loopx-agent wants to merge 96 commits into
mainfrom
codex/c1-work-contract-review-20261107

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Nov 7, 2026 •

Copy link
Copy Markdown
Collaborator

Latest integration at 0cdc8e1e649a

This is a clean sync of main@71190b6b4ef4 into the existing C1 branch. The comparison against its integrated main is still 152 files, +13,509 / −1,684. The pending standalone context slices are outside this merge commit.

  • The exact wheel passed a synthetic, single-session native CLI replay on File and SQLite. On both backends, the original Todo validator rejected an incomplete artifact and then accepted the same corrected artifact as the previous head. The replay rejected a wrong binding and verified same-Turn recovery and once-only settlement for both admitted Turns.
  • TypeScript typecheck passed. The broader source suite recorded 404 passes, one skip, and six failures. The same six cases also fail on the previous head, with the old staged-reader assertions, the scripted negative-reader setup and the progressive call-budget expectations. These cases still need current-path verification before qualification.
  • The branch update does not establish installed adoption, actual model cost or matched accepted benchmark outcomes. Independent review of this head is still required.

Previous integration at fedf8fc6d173

This head integrates main at a3b589610a83, including the 2.3.0 qualification changes. Saved historical guards stage their reads from the verified capture through the shared bounded reader. The progressive opening carries task operations with their continuation while still deduplicating exact v1 and v2 settlement commands.

  • File and SQLite coverage includes original and copied saved captures, exact numeric recovery, invalid source refusal before launch, and once-only settlement. Source suites passed 53 operation and selection cases, 197 capture and recovery cases, 38 acceptance and navigation cases, 31 workspace-boundary cases, and 20 steward recovery cases. TypeScript passed 134 tests and typecheck.
  • The rebuilt wheel passed 77 package tests. The two injected presentation-outage cases ran in the source suite. Forty-two product files matched the commit byte for byte across the wheel.
  • Standard local premerge passed six direct checks and 19 selected checks, including the CLI hard budgets and public boundary. The paired CLI probe ran 98 rows per arm and reported 28 review-required carrier and cost changes. Independent exact-head review is still required.
  • Installed adoption, model-level costs and matched accepted task outcomes remain unqualified. Each historical result below identifies its measured revision.

Current validation at 32fbc81f2f1f

Integrated main@69ddc610846f98b8d9b6c5c374ac4aefdd2d4ed0, including #8373, #8275, #8307, and #8309.

  • The complete Turn still resolves and validates against the original recorded plan. The saved quota selection uses main's prepared-root/window transport, and the native Hook restores the same ready source after lost output. Progressive first reads derive an address only when the original path, digest, and parent pointer match.
  • The final integrated runtime passed 256 source tests for native lifecycle, preparation and Progressive readback, plus 24 TypeScript checks and control-plane typecheck. An earlier integration checkpoint passed 149 source cases; 14 explicitly gated native Codex loopback cases were skipped there.
  • Standard local premerge ran 6 direct / 19 selected checks with zero mechanical failures. The gate reported manual_review_required for benchmark-sensitive paths. Historical wheel measurements below stay pinned to their measured revisions.
  • The remaining diff is 150 files changed, 13396 insertions(+), 1633 deletions(-). The original quota single-session outcomes and complete-cost qualification, and independent review of this head, remain open.

Previous validation at 8179b99730c7

This head integrates main@520a1ab4735dbb640d54e31a799fcaadb4338c38, including the Windows UTF-8 delegation fixture from #8360. The final main sync preserves the authored diff byte for byte.

When a saved quota decision is opened before SessionStart, its same-Turn selection now retains the caller's explicit output directory and page limit. A prepared capture reached through a parent alias binds its physical directory for the next capture. Explicit symlink output roots still fail before admission. The historical quota opening again uses its existing read projection. The current guard continues to use the complete source. Independent main proposal #8275

  • Before the repair, both File and SQLite dropped the page limit. Restoring transport alone left the alias cases failing. The six historical opening cases reproduced on the preceding package and pass after restoring the existing historical projection.
  • The integrated source passed 182 tests, with 14 native-host cases skipped. The exact wheel passed 18 cases with 152 real CLI subprocesses pinned to the wheel. Verified distinct output root, the explicit 8,000-byte cap, unchanged original bytes, original Turn/Todo identity and no spend during selection.
  • Configured Ruff and control-plane typecheck passed. Standard premerge passed all 7 direct and 19 selected checks. The aggregate gate remains manual_review_required. Remote CI and independent review remain open.
  • Current diff against the integrated main has 154 files, +14,013 / −1,738. The original quota single-session decision, accepted outcome and full-cost qualification remains open.
Previous CI checkpoint at 5f23c42

CI follow-up

Current head 5f23c424ff29a78e1705ba0b9a5d34607637d557. This commit registers the capability context module in the canonical digest consumer inventory, removes a duplicate File/SQLite replan test definition and removes an unused module-level import. The retained replay and CLI inspection cases pass. Full local Ruff and 40 TypeScript inventory/capability checks passed. Standard premerge passed 7 direct and 19 selected checks with aggregate status manual_review_required. The previous wheel run still applies to the unchanged product files. This head changes only tests. The remaining diff against main is 154 files, +13,918 / −1,711.

The prior main-slice Windows job failed in six delegation revalidation fixtures. The separate UTF-8 fixture change passed its Windows job. It still needs conflict resolution and exact-head qualification before it can land. Remote CI and independent review remain open. Windows failure · UTF-8 fixture PR #8365

Previous author checkpoint at c8b973e

Optional capability context and original Turn recovery

This head integrates main@aee77700812dd60e75375e8b329e552493da8069 and takes the independently reviewable complete Turn binding fix. Optional guidance now requires the exact admitted content hash and Turn key. When a caller submits a refreshed plan while retrying an earlier Turn, Session resolution and Host input both use the journaled original. The original bounded schema still decodes already validated results. A new Host call requires the complete binding for optional advice. Main slice #8373

  • Current head c8b973e3833c62a15281e770c3ed66ead9b82112. The diff against current main is 155 files, +13,969 / −1,711. The extraction can leave this diff once the main slice lands and C1 incorporates it. Historical bilingual experimental records stay together.
  • The exact-head wheel passed 22 File/SQLite cases, including original capture stability, changed-source and mixed-input refusal, a retry with a refreshed source, and old-result settlement without repeat effects. Six wheel product files match Git. 16 real CLI subprocesses were pinned to the wheel.
  • Standard diff premerge passed 7 direct and 19 selected checks. Aggregate gate is manual_review_required. Control-plane typecheck, configured mypy, touched Ruff, 23 TypeScript capability tests and the exact-scope author quality receipt passed.
  • The preceding integration ran 256 source cases including ordinary quota, progressive/thin recovery and reward memory. The final executor-only extraction was retested in the exact-head wheel. The prior budget and failure observations remain versioned in the checkpoints below.

Independent review, remote CI, real model adoption and original-quota single-session outcomes and full cost are still open. This evidence qualifies the engineering slice. No first-screen UI changed.

Previous author checkpoint at 610e2b5

Current change

Quota, Turn planning, Host input and recovery consume the complete v1 work source through the shared TypeScript owner. This update repairs a qualification gap: the differential still compared historical partial Markdown/signatures with the complete carrier. It now compares 19 original current-control values, validates Markdown's own declared JSON/binding, and rejects changed, missing or malformed witnesses. The frozen fixture owns the field inventory; independent mutation tests guard every field.

Thin recovery explicitly requests needed sections of the original source and retains its identity. Current work context, required reads, explicit full-read duties, capture/handoff flags and the prohibition on fresh admission remain. This clarifies recovery after context loss; it does not prove context retention.

Head 610e2b53655c6a0ad31814ad2584d11bcfeb393a integrates main through 1075c4cba8933410af8315dd8404f7548d70fc32. The remaining diff is 153 files, +13,649 / −1,658. Historical bilingual experimental ledgers remain together.

Cost decision and compatibility

The complete inline carrier still costs more than the historical short view. The matched main 36289306 / C1 94cd16bb diagnostic retains its original 28 failures out of 98. A new, bounded qualification recognizes only registered original/v0-to-v1 rows with matching controls. It converts known carrier/heading/signature transitions into explicit review signals and gives measured one-time regression allowances. Same-v1 growth, altered controls, unsupported carriers and oversize output still fail. Absolute v1, collection/per-Todo, host hard limits, off behavior, source integrity and frozen experiments retain their gates. See the versioned budget decision.

That repair-only diagnostic completes all 98 rows with no mechanical failures and 28 semantic/cost review rows. All measured candidate stdout sizes are unchanged by the consumer repair. This accepts declared additional information; it establishes no output saving, model adoption, accepted-outcome gain or complete-cost benefit. The 19-control witness is a subset, not full instruction/source equivalence.

Validation and remaining gates

  • Exact-head wheel: 116 passed; 39 product files match committed Git, 1,233 imported product modules and eight real CLI subprocess calls are pinned to the wheel. File/SQLite cover original-session selection/recovery, rejection, once-only effects, carrier witnesses and current thin read duties. This is packaged synthetic qualification; installed and real-model adoption remain open.
  • Source and main integration: 263 final differential/probe cases pass. The post-main native/source integration group passed 86 cases; the final repair changes fixture/comparator code and preserves those runtime bytes. Progressive context, root projection, digest and lease/scope TypeScript cases passed 106 tests on unchanged final TypeScript. Configured mypy's 17 entries, control-plane typecheck and touched Ruff pass. Counts overlap; this is not a full-repository test claim.
  • Standard premerge: all six direct and 19 selected checks pass, including the real 98-row CLI matrix, retirement ratchet, bilingual RFC and public-boundary checks. Overall status remains manual_review_required for the benchmark-sensitive hold. The exact-scope author quality receipt is valid; independent exact-head review and maintainer merge authority remain required.
  • Failed runs are preserved: the first integration had a 21-module legacy-field inventory against the unchanged 20-module anchor. Removing the duplicate consumer inventory fixed it without raising the retirement budget. An earlier run at the final head timed out the CLI check at 120 seconds while wheel qualification was also running; a later standard run passed at the same head and timeout after the other author validations ended. The old carrier failures and author/harness iterations remain version-bound evidence.

Current C1 acceptance still requires real caller retirement, maintenance qualification, independent reader/instruction review, and original-quota single-session decisions, independently accepted outcomes and complete costs. Dual-session evaluation follows that boundary. The existing shared source, authority, original-version recovery and once-only settlement obligations remain.

No first-screen UI changed. No new model-backed benchmark, installation, promotion, release or merge was performed.

Previous author checkpoint at 94cd16b

Current change

C1's native task preparation still reconstructed a legacy adapter before consuming the complete work source. It now consumes the checked source directly, including automatic selection, while retaining ordinary claim-before-plan, original Task/Turn/Session binding, independent validation and exactly-once recovery. Explicit adapter/header inputs still take their validation path; an identity-only preparation request cannot construct a Host wire.

Head 94cd16bb81d49cfebed4d904431b8f86bdd2882b integrates main through 36289306d0e33c3c038972a79cf211531b99a8c2, including the previously landed Turn, acceptance-detail and chat-persistence recovery slices. The remaining diff against that integrated main is 152 files, +13,018 / −1,649, down from the earlier 239-file comparison (+21,097 / −2,586). This reduces review scope; it does not establish runtime or outcome benefit. The bilingual experimental ledgers remain together.

The integration reuses main's shared context reader, keeps unchanged TypeScript helpers in their main positions, and removes redundant native preparation arguments and merge leftovers. The scheduler ACK smoke now reads the complete source's actual ACK/backoff fields while retaining registry/runtime routing, identity, reset and capability assertions. A duplicate keyword introduced by the merge in the CLI probe runner was corrected.

Validation and remaining gates

  • Packaged exact head: an isolated wheel at 94cd16bb passed 53 tests. Its 38 checked product files match the committed source; 1,227 imported product modules and eight CLI subprocess calls were pinned to the wheel. File/SQLite and synthetic native conversations cover automatic/explicit selection, rejection, original-session binding, failed validation and once-only recovery. This qualifies the packaged test journey, not an installed deployment or real model adoption.
  • Main integration: 17 chat-pressure/native recovery cases passed at this head, including durable-event ordering before deferring non-forced ENOSPC progress metadata. Forced close, permission and journal/identity failures retain their rejection behavior.
  • Source integration: the complete-source and additional cohorts passed 251 and 389 cases. An earlier broader run had 196 passes, one skip, six failures and three setup errors; the native/Host, probe and terminal corrections passed focused groups of 40, 21 and 54 cases. Counts overlap and are not a full-repository pass. TypeScript context/selection and owner groups passed 77 and 110 cases, with one existing source-checkout skip. Control-plane typecheck, configured mypy (17 files), touched Python Ruff, bilingual RFC checks and the public boundary scan passed.
  • Premerge remains failed: six direct checks passed and all 19 selected checks executed; the required agent-facing CLI output qualification failed. Scheduler routing, maintainability, public boundary and risk-profile smokes passed. There is also an independent-review manual hold. Exact-scope change-quality qualification remains failing. No merge-readiness claim is made.
  • The cost failure is retained: the full matched 071a6098 / main fe36f31f comparison has 98 rows, 28 failed and 22 requiring review, with no candidate-only rows. It includes carrier version/shape transitions, body growth and thin heartbeat growth of 104 JSON / 100 Markdown characters. The newer 94cd16bb / main 36289306 premerge independently reran the required qualification and still failed it. No allowance, hard limit or frozen experiment criterion was relaxed.

The next qualification work is to separate justified carrier migration costs from avoidable body/heartbeat growth, resolve the required differential, and obtain an independent review of the new exact head. Original-quota single-session decisions, accepted outcomes and complete costs remain required before broader adoption; dual-session evaluation follows that boundary. Existing telemetry failures below remain version-bound historical evidence, not a current-head pass or a newly attributed main defect.

What the matched replay establishes

The version-bound main fe36f31f / C1 071a6098 File/SQLite replay uses the same 5,758-byte narrative and fixture. Both preserve full content, warm reads from three pages to two, exact/full and PostCompact recovery, and once-only settlement. C1 uses 18 CLI calls versus main's 19 through the existing composed settlement. The subsequent main merge changes chat persistence, its baseline and tests, not those quota owners. This is a synthetic contract/recovery result; it does not establish model-output, latency, accepted-outcome or net-cost improvement.

No first-screen UI was changed. No new model-backed benchmark, installation, promotion or release was performed, and remote CI was not queried or waited on for this update.

Previous author checkpoint (before the main/native preparation integration)

Complete source migration

Quota, Turn planning, Host input and journal recovery previously used different decision projections. This proposal composes one complete v1 work_contract with the existing TypeScript owner, retaining original source/capture and settlement identities. Python retains provider IO and transport. Progressive reads and verified field reuse deliver needed sections; explicit off delivers the full current carrier. --turn-envelope aliases the current complete producer, an intentional output-version change.

Current head: bd87f47cae89c1488e8a0ce1d7f7803c25a1132e; integrated main snapshot: d9ac37bbc40fa0d0c532b26051e6e8f18873d105. Later main commits are outside this integration snapshot. The namespace safeguard #8334 is now in main and retained here. Historical ledgers remain together below.

Current recovery correction

A valid v1 Host request could execute normally but fail Session retry: the shared recovery reader passed an absent turn_envelope as {} to the provider's binding callback. Callbacks that ignored their argument hid the defect. Recovery now validates supplied complete material with the existing source owner and delivers the callback body by the declared Host version. V1 receives the checked complete decision; recorded v0 retains its original envelope, including when a complete sidecar exists. Returned Goal/Agent/Todo bindings still go through the existing lineage owner. Malformed or mixed current input fails before provider IO.

The new File/SQLite cases execute the real run-once/capture/journal path with a source-reading synthetic provider, original-Session resume, independent artifact check, read-only refusal and exactly-once callback observations. These observations are not canonical settlement or model-adoption qualification. No new decision owner, scoring, model task, live installation or transport ceiling is introduced.

Validation and limits

  • At 69b727fea518, 18 of 20 new recovery cases failed; the two pure historical controls passed. A first repair then failed both v0-with-sidecar controls. The final implementation preserves that boundary instead of selecting solely by field presence.
  • After main integration: 247 passed across complete source/session/interruption/settlement, capability and acceptance-context modules; 139 passed across main's canonical projection, transport, outcome-review and Steward modules. Differential/budget/probe modules: 254 passed, 1 existing deep-temporary-path skip. Relevant TypeScript: 76 passed; control-plane typecheck, configured mypy's 17 entries, Ruff and exact-head bilingual checks passed.
  • Rebuilt wheel: 50 passed with all source planning routed through independent CLI processes. Thirteen committed product files byte-match; 1,182 loaded product modules and 50 CLI subprocess calls are pinned to the wheel. The first package harness passed the 50 in-process cases but failed its missing-subprocess-coverage assertion; the corrected harness keeps the same product assertions and adds the real CLI boundary. No live installation occurred.
  • One focused executor telemetry test still fails at this head because its synthetic duration file is absent. The clean 69b727fea518 baseline reproduces the same failure; the pre-integration broader executor/Steward run had 160 passed, 1 failed. The cause remains unresolved. This is disclosed as an inherited issue relative to that baseline, not a passing suite or a claim about main.
  • Standard premerge: 7 direct + 19 selected checks passed, zero mechanical failures. Overall status remains manual_review_required (exit 1) for the benchmark-sensitive hold and current-head independent review. No remote CI was queried or triggered. The public-boundary scan is clean.

Costs and remaining scope

The complete carrier is intentionally larger than the old short envelope. Earlier small-fixture quota JSON / Markdown / transaction JSON were 9,113 / 2,425 / 11,283 characters on main versus 24,248 / 24,536 / 26,886 on C1. Historical ceiling failures remain failures; versioned presentation recalibration does not waive hard transport, growth or frozen experiment gates. This retry correction adds source validation on recovery and establishes no new model-cost or efficiency gain.

Live capability registration/source-binding and checked planning/Host projections still use signature documents. They must migrate together with original-version recovery before retirement. The current diff remains large; this integration is not proof that maintenance locations or review cost have materially decreased. Broader reader/instruction-equivalence review, supported recovery, installed/model adoption and original-quota single-session accepted outcomes with complete costs remain open; dual-session evaluation follows separately. Earlier evidence stays version-bound below.

Earlier version-bound evidence and negative results

Shared capability boundary and live readers · 22c268c

The independent main proposal #8334 reserves Core work-source fields in the existing capability namespace owner. C1 adopts its signed commit 8fc2a8217a2b via b998c3166719 and qualifies the complete Host path at 22c268c69eaad1cd1a2f762af87cac776e7a7260. Optional registration/readback, context and result contributions cannot use work_contract or source_decision_hash; invalid optional data follows the existing failure path while the original Host source remains usable. The valid-extension control still reaches the Host.

  • Main: the two new namespace cases failed before the fix; 21 TypeScript and 120 Python cases pass afterward, along with control-plane typechecking and configured mypy (17 entries). Its rebuilt wheel passes six boundary cases with 183 loaded product modules verified from the wheel. Standard premerge passes.
  • C1: the new File/SQLite complete-Host cases initially had eight failures and four valid-control passes. After the same owner change, all 192 affected Python cases pass; 23 TypeScript cases and typechecking pass. The rebuilt wheel passes all 12 complete-Host cases, with 1,173 loaded product modules verified from the wheel. Owned source/adapter bytes match both wheels.
  • Initial C1 typechecking lacked the local TypeScript executable; dependency preparation resolved it. Initial wheel builds rejected stale assets because their fingerprint includes shared TS; normal asset rebuilds and qualification then passed. These failed preparation attempts remain recorded.
  • C1 Standard premerge has zero mechanical failures (seven direct, 19 selected checks) and retains manual_review_required for benchmark_sensitive. Staged/exact-head bilingual checks and Ruff pass. Both budget-checkpoint links now resolve to the actual contract, addressing the current P3.

The remaining live signature users are explicit in the paired annex: capability_context.ts::contextSource, reward_memory_automation_enabled, and the checked planning/Host action projections. They are not all historical-only readers. Current capability registration, source binding and original-version recovery must migrate together before retirement. This change demonstrates one shared rule edit reaching the actual Host journey; main already had one owner too, so it does not establish fewer maintenance locations. #8334 is a focused independent safeguard, not a claim that the large C1 proposal has already shrunk or merged.

Current-head independent reader/instruction-equivalence review, broader retirement, installed/model adoption and original-quota single-session accepted outcomes with complete costs remain open. Historical measurements below retain their original versions and limits.

Projection owner import repair · d37e041

Integrated main@87a153d4d206. The moved projection helper still had two reverse imports through cli_projection; the configured CI mypy entrypoint reproduced two attr-defined errors. Both calls now resolve directly to the helper in its defining module. The existing self-repair pattern now covers this relocation failure and requires the exact CI type-check entrypoint. Bounded refactoring applied: remove the stale import cycle without adding an export shim or another projection owner.

Validation on this source revision:

  • uv run --extra test python -m mypy: before, two errors across the 17 configured entry files; after, passed. The separate --no-incremental --follow-imports=silent check of todo_event.py and todos/markdown.py also passed.
  • python -m pytest on test_complete_numeric_transport.py, test_complete_turn_decision.py, test_replan_host_context_projection.py and test_saved_context_project.py: 175 passed, 14 skipped. The skips require explicit native Codex configuration; native execution was not exercised in this repair.
  • Rebuilt wheel: File and SQLite complete CLI/capture journeys at the supported long route, four carrier/version rejection cases and two CLI help checks passed. All loaded LoopX modules resolved from the wheel; five packaged source/guidance files byte-matched. The initial package probe stopped before product execution because its external test fixtures were absent from the harness search path; fixture resolution was corrected and the provenance-checked retry passed.
  • Standard premerge: seven direct checks and all 19 selected mechanical checks passed. Its final status remains manual_review_required, exit 1, for the existing benchmark_sensitive hold. Ruff and staged/exact-head bilingual checks passed.

This closes the import/type-check finding. C1 still needs current-head independent review, consumer/legacy-reader retirement evidence, and the original-quota single-session comparison of actual decisions, accepted outcomes and complete costs before its separate dual-session evaluation. Earlier versioned observations below retain their original scope; this repair establishes no new net-efficiency result.

Complete inline caller qualification

At 76936fcfb9bc2f23b1670a0fc55c1e3e3f794ca2, this proposal integrates main b78246ff7925a34084d16520040d69ecd6b92316. Supported CLI consumers now qualify the complete v1 carrier rather than expecting v0's capsule/signature keys or its shorter narrative. The retained --turn-envelope flag is a spelling of the same producer; --context-delivery off still delivers every source fact and clause inline. The old Markdown heading is restored, and CLI/benchmark help explains the version and independent delivery configuration. Benchmark options, recorded boolean identities, scoring and execution are unchanged.

The full transaction inspection remains inline because native and structured Hosts consume that complete contract. Default inspection, immutable recovery, original identities, authority, explicit off and existing rejection rules remain intact. The same budget semantic owner now checks version/fields for both normal qualification and measurement-only probes. Historical comparison reads dispatch only on declared v0/v1 carriers; strict v1 inspection and effect assertions stay in force.

Cost decision

This is an intentional acceptance of additional inline cost, not an output reduction. On the same small File fixture, main emits 9,113 / 2,425 / 11,283 characters for explicit quota JSON / Markdown / transaction JSON. C1 emits 24,248 / 24,536 / 26,886. The original 13,000 / 4,800 / 15,000 failures remain recorded. Thirty File/SQLite observations also cover enabled multi-subagent policy, 128-character routes and bound Turn/capture inputs: maxima are 28,928 / 27,414 / 28,955. The versioned presentation allowances are 30,000 / 28,000 / 30,000; original line limits remain 300 / 140 / 380.

A complete 98-row diagnostic found and preserved ten further inline-v1 overruns. The interface contract records the original values, revised ordinary/detail allowances, measured margins and information-value rationale. The same frozen caller now completes all 98 rows against both main and C1 under each declared contract and budget. This does not claim unchanged-wire parity: v1 intentionally carries more information. Collection, growth, line, hard transport, authority and frozen experiment limits are unchanged.

Validation and remaining qualification

  • Real complete-source consumers, full CLI budget/probe suite, wrong-version/missing-field and oversized-output cases are tested at this head; the combined final suite passed 164 tests with one existing skip (the native temporary namespace cannot fit the depth-12 fixture). Eleven synthetic benchmark option/interrupted-cursor compatibility tests passed; no benchmark or model job was launched.
  • The independently unpacked wheel byte-matches all four changed shipped Python modules and passes File/SQLite long-route complete-capture/Host-request readback, version/incomplete/overflow negatives, and actual CLI help. No candidate was installed into the live runtime.
  • Standard premerge passes seven direct and 19 selected mechanical checks, with zero failures. The benchmark-sensitive maintainer hold and independent exact-head review remain open. No remote CI was queried.
  • Native Windows, installed/model adoption and original-quota single-session accepted outcomes with complete costs remain unqualified; dual-session comparison follows separately. This slice does not close C1 or claim lower model cost. Earlier numeric/claim-scope evidence stays versioned below.

The bounded refactor shares carrier semantics between normal budget checks and measurement-only probes; it adds no runtime decision owner. Initial package preparation and private harness failures remain in local evidence, followed by the qualified source/wheel results. The semantic ratchet's original limit is retained; complete-source validation owns the full field set rather than duplicating it in budget metadata.

Earlier versioned evidence

Staged-reader qualification at 6ef40e1

At 6ef40e1ac531b7ea930e9d0335ebc41cc3814aaf, C1 integrates main caf3da0b0656, including its staged original-number repair, while retaining the complete source contract and claim-scope optimization. The shared transport slice is updated separately in #8330 at 99aa26d82da0f643542483df2018423139a3fffc.

The preceding C1 head a287ac70fb6c reproduces 2^53+1 becoming 2^53 in both historical and complete-v1 staged reads. The integration preserves original scalar provenance through review, writeback, Explore and acceptance lookup. Outcomes collapsed by JavaScript number decoding receive distinct source-bound references; ambiguous historical references are rejected. C1 still indexes every supported acceptance carrier and its requirement facts. Original capture bytes, modern integrity checks, identities and historical recovery remain in place.

The focused Core suite passed 213 Python tests with 14 existing legacy-shape skips; its Core/test blobs are unchanged across the final UI-only upstream merge. All 90 focused TypeScript tests and typechecking passed. The verified final wheel passed both numeric counterexamples and eight real File/SQLite × ordinary/replan × off/on preflight/readback cases. Package-source assertions bind these results to the unpacked wheel. Initial private harness setup errors (fixture imports, macOS logical/physical temporary paths, and strings supplied to a boolean fixture parameter) were retained. The final qualification uses the fixture’s actual boolean off/on inputs. Standard passed seven direct and 19 selected mechanical checks, retaining the benchmark-sensitive manual gate. Independent current-head review remains open.

This repairs correctness and integration; it makes no new efficiency claim. The explicit-caller audit still records quota JSON 24,248–24,274 characters against 13,000, Markdown 24,527–24,553 against 4,800, and complete transaction JSON 26,886–26,912 against 15,000. The quota alias now emits v1 rather than the old v0 keys/title. Those caller migration and budget decisions remain open; no thresholds were raised or assertions removed. The earlier 15-row diagnosis is retained, without claiming that all 15 rows were requalified in this run. Original-quota single-session model adoption, outcomes and complete costs remain separate from engineering qualification.

普通宿主就绪计划同源按需读取 · f352142

已集成 main@8a4d4f9dab17。普通 ready_for_host 的 JSON turn plan 复用重规划已有的同源预览和回读。首屏保留当前 Todo、权限、调度和交接约束、有效规划范围及必读与不可用信息。工作来源和诊断可用同一快照的 detail_ref.command 选读。显式完整模式和私有目录不可用时保留完整内联;恢复全文和事务字段仍不能把预览变成执行。

同一源码 CLI 夹具,单位为工具 stdout 字节。普通路径重启 effect runtime 后测一次,再连续测三次。

场景 main 首屏 上一 C1 首屏 当前首屏 当前首屏加来源选读 当前首屏加全文
单 Agent 10,553 26,179 12,277 14,505 40,375
多 Agent 10,300 33,932 11,929 17,959 48,300
单 Agent 较长路径 12,404 27,699 13,365 16,027 42,983

常规两行通过原 14,000/15,500 字符门槛,拥挤重规划首屏仍为 21,758 字符。温态首次命令为 57/100 次 RPC,与上一 C1 相同,比 main 各少两次。相比上一 C1,初始 RPC 传输各增加约 2.2 KB,另写约 24.6/32.4 KB 的私有快照。选读增加一次调用和一次内部 RPC。全文回读会增加总输出,真实模型的读取比例、token、成本和任务成果待验。

真实 File/SQLite CLI 读回完整未知字段、Unicode 和大整数,验证原权限、选中 Todo 及恢复原文后的预览不可执行。DeepSWE 现有诊断只消费首屏已保留的路由、Todo 和调度事实。相同 96 项输出矩阵修复普通计划的两条绝对门槛,另有 13 条既有输出失败按原阈值保留,包含显式完整事务、退役窄格式别名门槛和完整 Markdown。实际产品采用与当前精确头独立评审仍待验。

精确提交重点用例 10 通过,扩展源码 479 通过、2 条既有预算测试失败、1 跳过。TypeScript 110 通过,类型检查、Ruff 和双语差异检查通过。隔离 wheel 从打包代码复验同样的首屏、选读和全文结果。Standard 本地预合并 7 项直接、19 项所选检查无机械失败,benchmark 人工门仍开。

有界重规划预览与旧捕获恢复 · 1469c0a

已集成 main@e58ba30bc949。默认 JSON turn plan 在完整契约的重规划分支直接给出当前 Todo、决策、权限及停止边界、必读项和完整 Vision 写回规则。Goal 与验收来源、重规划依据和诊断可通过 detail_ref.command 从同一不可变快照按字段补读。显式 --include-transaction-detail 与私有捕获不可用时给出完整内联来源。预览保持只读,执行仍校验完整原契约。

同一拥挤夹具的本机源码 CLI 对照。普通路径各运行三次,输出字节一致。首屏既有上限为 26,000 字符。

场景 main 首屏 旧 C1 首屏 当前首屏 当前首屏加选读 当前首屏加全文
无已记录 Vision,B 21,985 54,210 21,758 36,232 78,972
有已记录 Vision,B 25,448 61,609 23,686 38,160 89,294
有 Vision,较长路径,B 27,411 63,565 24,556 40,118 92,338

选读在一次调用里读取 Goal 工作上下文和重规划材料,多一次内部 RPC。首次命令仍为 64 次 RPC,main 为 67 次。新首屏比旧 C1 少约 60%–62% 输出,带选读少约 33%–38%。初始 RPC 传输比旧 C1 多约 2.1–2.9 KB,并新增约 53–60 KB 私有快照写入。全文补读合计比旧 C1 多约 45%–46% 工具输出。收益取决于实际读取范围,当前样本只验证确定性 CLI 路径。

使用 172d80d630f4 的真实旧 CLI 生成捕获,在认领成功后中断 ready。当前 main 和 C1 共 16 个 File/SQLite 组合通过。连续 Hook、重启和异会话重放均保留原租约记录,已释放、过期或被替换的旧捕获不会出现新代次或 ready。无法证明绑定的旧捕获留在只读恢复,重新取得有效准入的新捕获仍可准备。来源防线已由 #8279 合入主干,C1 直接继承。

精确版本重点源码 162 通过,TypeScript 110 通过,类型检查、Ruff 和双语差异检查通过。扩展源码有两条既有预算失败,旧 C1 复跑为同值。小型 turn plan 为 26,179/14,000 字符,显式 quota envelope 为 24,248/13,000 字符。相应门槛保持原值。Windows 私有捕获路径尚未资格验证。原 quota 单会话的模型采用、任务成果及完整成本待验,当前 head 待独立复审。

Standard 本地预合并的 7 项直接检查和 19 项所选检查均无机械失败,benchmark 人工门仍待处理。

Progressive 首读成果地址 · 83b59e5

已集成主干 e2371c4 的首读开场分段。C1 保留一体化结算和签名验收。合入原始准入绑定后,重新展示同一捕获仍只会自动准备一次,旧捕获或改写副本走恢复。附带首读支持显式分页窗口,沿原有字节校验处理。对于未展开成果,首读复用 ID 的父地址来定位补充材料。只有原地址与父地址精确匹配且首读包含说明时,才省略第二份地址。旧捕获、不同地址和缺少说明的情况仍显示原地址。独立主干切片 #8309。

  • 用同一份不可变捕获和当前 C1 集成树做仅关闭此去重的对照。首读从 104,799 降至 98,235 字节,省下 22 条可推导地址。42 条适用要求完全相同,原证据补读相同,替换来源仍拒绝。两边均为两页。这是 CLI 字节收益。
  • 源码 47 通过、0 跳过,TypeScript 121 通过,隔离 wheel 5 通过。Standard 本地预合并 7 项直接、19 项选择检查,机械失败 0,人工门 1。源码和 wheel 验证原始准入绑定、认领后中断、同源重展和旧捕获拒绝。真实模型、全任务成本及独审仍待验收。

原生 Hook 准备恢复 · 977be7e

已集成 main@c0b6aded5d17。原生 Hook 在认领前记录本次捕获的自动准备尝试。如果认领后 ready 中断,后续 Hook 提供一次原认领回执和当前租约的读回入口。有效原租约可以在同一轮补到 ready。已释放的租约维持原代次,新捕获仍可准备。这个独立切片也已提交主干 #8307。

  • File、SQLite 用真实 CLI 注入认领后的 guard 超时,多次 PostToolUse 及一次 SessionStart 后仍只有一次自动认领和一次自动 guard。读回确认原回执、租约身份和同轮 ready。覆盖旧捕获替换拒绝与新捕获。
  • 源码 216 通过、0 跳过,隔离 wheel 9 通过。Standard 本地预合并 7 项直接检查、19 项选择检查,机械失败 0,人工门 1。 首次并行跑源码时,SQLite 根目录模式的 other-session 用例收到恢复提示,单独复跑通过,整组复跑也通过。首次失败的根因未确认。
  • 这些结果覆盖原生 CLI Hook 恢复。模型侧读回和任务总成本仍待验收。

Captured replan read reuse · 62cd14b

已集成 main@dee54966327e。C1 复用同一份已解析验收结果的哈希,也复用现有的 Unicode 码点比较器。分阶段读回保留完整捕获校验、不同版本的验收内容和原结算身份。对应的主干切片独立提交为 #8304,包含主干旧路径里重复计算整包哈希的收敛。

  • 同一份 569 KB 合成捕获中,审阅投影 22.1 → 7.3 ms,单项验收投影 22.4 → 6.8 ms。五组完整 CLI 的单项验收中位数 136.8 → 118.0 ms,小 SQLite 写回为 101.0 → 124.6 ms,小样本有波动。八个固定输入的输出逐字一致,内部请求字节一致。测量覆盖本机读回和投影,真实模型上下文及完整任务净收益仍待验收。
  • 作者验证以相同源代码树完成。最新合并提交与测试提交 3b9d4129d27f 的完整 Git tree 相等,已在最终头复跑读取拒绝和恢复。源码 274、TypeScript 120、隔离 wheel 9 用例通过,安装后的 TypeScript 与提交逐字匹配,类型检查和 Ruff 通过。Standard 预合并 7 直接 / 19 选择检查机械通过,仍有 benchmark 人工门和独立复审。

选择与认领准备按需查看写入范围

726ab94ccfecad83a8a0b8346e699ec62ca46c62 与 #8303 复用同一个 Turn 投影。准备阶段只在较长范围清单上给同源回读指针,完整审批与停止规则继续直接交付。普通认领仍原子检查,进入可执行阶段即拿到原回执和完整范围。明确关闭渐进时原保存恢复保持原文。

同一合成三段对照,C1 所选正文从 48,065 B 降至 40,607 B,可执行阶段读回一致;选择依赖范围时多一次同源读取。另补回不支持的初读命令的早拒诊断,沿原权限和恢复边界验证。主干 #8298 的诊断与输出预算另有同基线结果。

集成 main@94b91e48aa4a2cdafe9d4d31d918fe84d0112b41。当前提交通过 9 项源码、81 项 TypeScript 和 5 项隔离 wheel 用例。标准预合并 7 项直接检查和 19 项所选检查自动通过,既有 benchmark 人工评审门仍待评审。

仅渐进的恢复同返首屏

当前提交 fc1e93f8104f82b29cdde87bb09748562e0dfc12 已集成 main@94b91e48aa4a2cdafe9d4d31d918fe84d0112b41。保存恢复支持 context-project --initial-read --context-delivery on --delta-delivery off。同一响应交付有界首屏和恢复导航,必要时按原分页命令继续。首屏已用同源选择器计算,省去预先生成根索引的第二次请求;按需索引和原文恢复仍可用。 主干 #8298

固定同源 SQLite 重规划,含导航、审阅和写回契约 原两次首读入口 首屏同返
CLI 调用 4 3
内部 RPC 5 4
RPC 传输 B 317,495 264,492
首读所选正文 B 8,589 8,589
CLI stdout B 32,915 33,129

8 KiB 上限下,完整首读仍可分页,调用 3 → 2。两份呈现正文合计相同,保留独立原文,防止源被原地改写或移除后丢失恢复材料。小幅导航增加单列。模型 token 和原 quota 的整题成本继续验证。

实际只读 turn plan 另行计量。拥挤 Vision 完整计划 61,473 字符,原冻结上限 26,000。同份捕获只取 DeepSwe 诊断需要的路由和调度字段,读回约 1.6 KB;现有 DeepSwe 诊断已在进程内把这部分缩成五个字段,模型上下文仍需单独实测。

集成提交通过源代码用例 53 项、TypeScript 112 项、隔离 wheel 7 项。标准预合并检查执行 7 项直接检查和 19 项所选检查,自动检查零失败。既有 benchmark 敏感边界要求人工评审。

仅渐进时的分阶段重规划与 DSH 交付验证

当前提交 f83df730867e8831445cc36e4da6a43551774f25 已集成 main@32167518b3c2646fd9b6a3a6e0aaf74b258a7b70。已有捕获的 quota 首读和 context-project 恢复共用分阶段审阅。审阅和写回契约从原签名捕获取得,保持同一轮、同一摘要。主干的保存恢复切片独立审阅。 主干 #8298

上一版的八个 DSH 用例使用原始检视夹具,导致业务分派前的完整 Goal 来源尚未交付。现在测试经真实 quota 准入、完整来源交付、DSH 录制宿主和单次结算,覆盖 File 与 SQLite。两项故意保留缺材料的用例继续验证分派拒绝。恢复测试同时验证错源摘要拒绝、捕获不变和无新增权威状态变更。

固定同源对照开启 progressive、关闭 Delta。总输出包括导航、首读、同等审阅和已提供的写回契约。

样本 首读正文 B 该序列 CLI stdout B
File 19,955 → 8,599 44,692 → 32,999
SQLite 19,995 → 8,619 44,778 → 33,065
拥挤 Vision,需先选择 11,797 → 9,877 26,002 → 24,033

普通恢复的可选完整呈现由两页减为一页,单次保存恢复的呈现文件增加约 46 KB。这里测的是固定 CLI 字节和文件体积。自然模型 token、采用、内部 I/O 时延与原 quota 任务的完整成本继续验证。

源码组合 263 通过,隔离安装 12 通过。标准预合并的 7 项直接检查、19 项选择检查通过,benchmark 范围仍需人工评审。完整只读 turn plan 在拥挤样本中仍为 54,074/61,473 字符,两者均超过 26,000,与同一任务的渐进路径分别计量。 60 项完整输出矩阵的七项绝对上限和一项增长上限与上一版触发结果一致。 原 quota 单会话、独立复审和 #8211 继续跟踪。下方保留历史记录。

收窄规划输入与有界组装传输

当前提交 7b737f707fb74a6593196a8c9ae93991c87e4813 已集成 main@32167518b3c2646fd9b6a3a6e0aaf74b258a7b70。工作上下文规划只传已有 TypeScript 选择器使用的字段,C1 复用同一主干切片。C1 最终组装仍验证完整来源,用有界无损打包减少这一次传输。组装签名、数字原值、捕获格式、选读和原轮结算保持同一实现。混合输入、损坏压缩和超限膨胀均拒绝。渐进读回缺可选命令模板时保留路径和摘要。 主干 #8295

相同合成任务、渐进开启、auto 差分,File 和 SQLite 各两次观测,另各三次无探针回放。下表为 SQLite 进程间传输字节,包含请求、响应和快照。

序列 上一版 C1 当前 C1 同配优化的 main
准入 558,277 432,230 406,159
启动与三次读取 808,653 682,603 674,230
加错摘要拒绝与同捕获恢复 943,729 817,677 811,402

C1 组装请求和响应合计 64,365 → 26,071 B,普通序列比上一版少 15.6%,与同样优化的 main 仍差 1.2%。C1 的普通序列工具 stdout 两版均为 31,928 B,带恢复均为 44,491 B。独立主干切片把两次规划请求 89,059 → 1,306 B,准入总传输少 14.2%。耗时样本有波动,大来源负载、自然模型 token、安装采用和原任务完整成本待验收。

扩展源码组 111 项通过、8 项既有失败。上一版 C1 复现同一组失败,DSH 分派前要求完整 Goal 来源。最终提交 29 项隔离安装、139 项 TypeScript 测试通过。包括精确数字、普通记忆组合、真实重规划、错误来源和原轮单次结算。相同完整来源交替组装 200 次,返回编辑摘要相同。本地标准预合并的超时检查按原时限复跑通过,7 项直接检查和 19 项选定检查通过,benchmark 范围仍需人工评审。最终提交上拥挤计划无 Vision 为 54,074 字符,带 Vision 为 61,473 字符,都超过 26,000 上限。原四项预算、#8211、独立评审和原 quota 单会话验收继续跟踪。双语实验历史保留。

上一版的最终结算记忆绑定与两项主干拆分

当前提交 797bb60840d16e891794ab0f395000ba2e9a6d6a 已集成 main@32167518b3c2646fd9b6a3a6e0aaf74b258a7b70。普通 quota 和 thin heartbeat 的贡献与最终组合结算共用同一计划投影。真实重规划的贡献仍绑定动作、计划和结算命令,生成读回地址由捕获摘要单独校验。File 和 SQLite 均能读回有效贡献,并拒绝更改结算命令。状态回执没有可交付上下文时,跳过大来源对象的往返。状态回执的校验、预算和禁止复用保留。 主干 #8290 · 主干 #8292

相同合成 Todo 的 SQLite 渐进固定回放开启 auto 差分。相对上一版 C1,准入内部传输 617,911 → 558,275 B,均为 136 RPC。含启动和三次读取的普通序列 868,290 → 808,654 B,加错摘要拒绝和同捕获重试 1,003,368 → 943,732 B(−5.9%)。两版 C1 可见工具 stdout 分别等量于 31,928 B 和 44,491 B。带两项传输优化的主干固定回放普通序列为 762,476 B,C1 仍高约 6.1%,主要差在准入组装。固定回放衡量工具输出和内部传输,模型 token、自然采用和原任务完整成本尚待验证。

当前提交 TypeScript 165 通过。隔离安装 wheel 20 通过,覆盖普通路径的 16 种组合、真实重规划和同捕获结算恢复。本地标准预合并 7 项直接检查、19 项选定检查通过,保留 benchmark 路径人工评审门。原四项预览预算仍开,其中拥挤 Vision 仍为 61,473 字符,上限 26,000。当前差异为 231 个文件、+19,923/−2,385。双语实验账本保留,原 quota 单会话、独立评审和 #8211 继续跟踪。

上一版的准入减重、主干分页集成与 C1 记忆绑定

当前作者 head fbd4c033e2042786dae637810c1391546ad69fcb 集成 main 的 32167518b3c2646fd9b6a3a6e0aaf74b258a7b70。已保存上下文优先交付当前页,再附恢复导航。首读、续页、压缩后同捕获重读和错摘要拒绝均覆盖。C1 带入独立主干提案的同一优化,跳过未启用 Anti-Entropy 的两次校验。已启用但无适用目标、活跃和恢复分支继续验证并交付。 主干 #8286

隔离 File 和 SQLite 使用相同合成任务,开启渐进,差分设为 auto。SQLite 上 C1 的准入由 138 → 136 RPC,680,726 → 617,911 B,含启动、三读、一次错摘要拒绝和同捕获重试的总传输由 1,066,178 → 1,003,368 B(−5.9%)。模型可见工具 stdout 在 C1 两臂等量。两边都应用优化后,普通序列 C1 仍为 868,290 B,同样优化的 main 为 821,979 B(C1 高 5.6%)。C1 三次读取本身传输更少。差距主要来自准入 compose_complete,单次约 64.4 KB,其中 67 个字段值共约 58 KB 与上一校验相同。当前数据衡量固定 CLI 的内部传输,整题、自然模型和采用仍待验收。

评审待解决项。真实 CLI 召回了 Reward Memory,C1 组合最终结算后改变了记忆贡献原先绑定的计划和动作,重新校验拒绝这份贡献。修正测试以读取渐进捕获后,改动前 C1 和当前 C1 均复现四个用例,覆盖 quota 和 thin heartbeat、File 和 SQLite。主干对应场景通过。追加 SQLite 直连对照中,关闭差分时用普通或仅渐进都通过,仅打开差分也能复现。触发点是差分路径选择的组合结算。下一步先把有效贡献绑定到最终结算语义,再测同次准入能否复用相同来源。

源码 160 通过、11 跳过、4 失败。独立安装的 wheel 49 通过、4 失败,失败均为上述同一问题。控制面类型检查通过。标准预合并 7 项直接检查、19 项选择检查通过,保留人工门。原始预览四项超限仍开,拥挤 Vision 复测 61,473 字符,上限 26,000。相对当前基线的差异为 226 个文件、+19,686/−2,346,待独立复审及 #8211 收敛。双语实验账本保留。

上一版的原生上下文传输去重与归档后结算

作者 head 36a9ebe4197274b058ccab55e314464ff5588393 集成 main 172d80d630f424b0b44dd513863ba02b5f13d55c,包含原 Turn 在 Todo 自动归档后继续结算的 #8264。C1 和独立主干提案共用同一原生呈现修复。完整分支只把投影正文送过进程边界一次,宿主适配器从这份正文还原完整返回。差分继续使用原有编辑,签名捕获和结算身份继续由原有校验负责。 主干 #8285

File 和 SQLite 使用相同合成任务和真实 SessionStart 入口。开启渐进,差分为 auto,首读前没有旧正文基线。SQLite 上 C1 的受影响响应 55,158 → 39,162 B,首读至写回契约的 RPC 字节 265,585 → 249,577 B(约 −6.0%)。计入准入、启动钩子、一次错摘要拒绝和同捕获重试后,总 RPC 字节 1,082,187 → 1,066,151 B(约 −1.5%)。模型可见的工具输出量与 RPC 次数相同。这里测的是读取写回契约,实际归档后结算由下列回归单独验证。

普通序列计入准入、启动钩子与三次读取,当前 C1 为 931,081 B,同期未修改 main 为 884,711 B(高约 5.2%),同期带去重修复的 main 为 868,939 B。两边都去重时,C1 三次读取的 RPC 字节略少,差额主要来自 C1 准入时额外的完整契约组装 RPC,单次约 64.4 KB。实测仅涉及该固定 CLI 场景。自然模型输入、整题成本与实际采用待验证。

当前源码回归 116 通过、11 跳过。隔离 wheel 33 通过,含签名来源篡改拒绝、分段读取、压缩恢复和归档后一次结算。控制面类型检查及 110 项 TypeScript 测试通过。标准预合并 7 项直接检查和 19 项选择检查通过,保留人工门。完整原始预览仍有四项超限,拥挤 Vision 复测 61,473 字符,上限 26,000。当前差异 221 个文件、+19,626/−2,313。双语实验账本保留在本 PR,独立复审待完成。

上一版的主干集成、原领取恢复与分段重规划

作者 head 66735716190c12723d9fa4b62aa65d9df8dc9a04 集成 main 7108b92337949ddcd6c59f773cc2e0ef10c185c5。C1 让已保存的签名捕获使用主干 #8274 的分段呈现。首读交付决策和审阅入口。审阅后按需要读取写回。两条命令仍指向原始签名捕获,并保留原 Turn、权限和结算身份。直接选原始字段、禁用渐进以及仅启用差分的路径保留。

Host 在领取成功、就绪检查中断后重试时,复用同一捕获对应的原领取操作 ID,并复核当前租约。File 和 SQLite 的真实领取负例覆盖有效租约读回,以及租约释放后拒绝旧捕获。该修复独立提到主干 #8279。集成时发现的来源 Goal 类型检查错误另见 #8280。

固定合成重规划在 File 和 SQLite 上开启渐进,差分设为 auto。这是没有旧正文基线的冷读。读取同等阶段时,相比集成前的 C1,首读所选正文少约 56.2%,首读至写回三次工具 stdout 合计少约 26.4%。SQLite 三次读取合计 42,709 → 31,444 B。同期 main 已使用分段呈现,为 31,117 B,C1 高 1.05%。差距主要来自 C1 的补读命令模板。这里计入读取到写回契约的输出,实际写回、整题成本和自然模型 token 另待验证。

独立安装的当前 wheel 通过 26 项签名捕获、阶段补读和领取恢复测试。控制面类型检查和相关 76 项 TypeScript 测试通过。来源 Goal 类型修正前的集成版本另通过 165 项相关源码用例。标准预合并 7 个直接检查和 19 个选择检查通过,保留人工门。原始预览仍有四项已知超限,拥挤 Vision 夹具 61,473 字符,上限 26,000。这一路径仍交付完整检查契约。当前差异为 222 个文件、+19,604/−2,312。双语实验账本留在本 PR。独立复审仍待完成。

上一版的主干集成与原会话恢复

本版 16cf9af51e22b66c9efdbe9dbf59b79833600b74 已集成 main 3e3e3f841fb46c84c59fd31c94c88c15719a4085。两版的隔离 SQLite 恢复对照通过 117 项,均跳过 2 个需要 Docker 的用例。显式恢复在原会话继续;保留原窗口、回执和尝试计数,拒绝错源、迟到的回执和已停止的任务。恢复后的预算耗尽验证在两版均覆盖五种执行模式:一个唤醒回执、零 Host 启动、零新增扣额。共享测试修正提到 #8277;同轮选任务捕获另见 #8275。

File/SQLite 的原签名捕获和选择路径通过 21 项测试;隔离 wheel 跑了 50 项签名捕获和恢复验证。最终合并只更新 benchmark 适配器和测试,打包源码与验证过的 wheel 逐字一致,最终 benchmark 恢复测试用实际更新的适配器复跑。可选 DeepSeek SDK 和 EdgeBench SDK 的完整组合未验证。标准预合并 7 个直接检查、19 个选择检查,0 项阻塞失败,1 项人工门。四项已知预览预算仍未通过,保留原上限。当前仍需独立复审。

固定 SQLite 三步任务使用同一独立产物检查、原 quota 和 C1 的实际入口,计入宿主领取、同轮准入和结算子进程。温态一组复验:工具 stdout 225,616 → 181,864 B(-19.39%),所选正文 103,325 → 99,131 B(-4.06%),内部 RPC 860 → 863 次,传输字节 +0.74%。两版的任务和验收正文字段同为 46,722 B,均复用未变验收字段。C1 多省的部分主要来自重复 CLI 行动提示和结算指令。这里不计自然模型输入输出、费用或采用。

相对本次主干差异为 220 files changed, 19526 insertions(+), 2308 deletions(-)。若 #8211 按现有版本入主干,预览中 87 个文件与 C1 逐字相同;组合仍需处理 14 个文件冲突。双语实验账本继续放在本 PR。

历史版本与其各自的验证

原生预检沿用同一份签名捕获

已集成 main 97a34a4b0abb5a03d003cee9eb70e834941d5e23。主干 #8259 的原生预检复用已提交的捕获引用。C1 的完整来源已经包含重规划契约。旧展示投影会改写已签名正文,使 native projector 拒绝它。当前将原路径和摘要交给同一个 native reader。File 和 SQLite 的对照均复现旧失败,修复后保留原摘要、原 Turn 回执和规划指导,每个合成重规划预检少写一份约 33.7 KB 的展示副本。主干较早格式仍可走自己的分阶段读取。

共用 quota 修复让原捕获里的选 Todo 命令带上后续捕获位置和原生传输选项。实际执行该命令得到一个新的同轮捕获,原件逐字相同。独立主干提案 #8275。

三步合成验收对照使用同一编号任务、同一独立产物检查和原 quota/C1 真入口。SQLite 三组配对的温态整题工具输出为 225,009 → 181,751 B,所选正文 103,262 → 99,086 B,内部 RPC 860 → 863 次,线路字节约 +0.74%。两版已共享两个未变验收正文的复用。File 和压缩恢复也完成,短路径仍有额外 RPC。该固定实验不计自然模型请求、实际费用或线上采用。

作者 head 9857001c072730a8a9de7cb20911ed3f41b37826 的相关真实 CLI 16 项和隔离安装 14 项通过。标准预合并 7 个直接检查和 19 个选择检查通过,保留 benchmark 人工门和独立复审。四项既有输出预算失败保留。扩大测试时发现五个 benchmark scheduler 用例在默认渐进输出中仍直接取原始 JSON 的 should_run,在 main 和 C1 同样复现,未把这组算作通过。双语实验记录保留在本 PR。发布前另观察到主干 c3dcb92bdb4520d643a57912090252c51a7c0fcf,其合并预览无文本冲突,新增恢复相关路径与 C1 有重叠,仍需在该组合上复验。当前作者头保留已验证的集成基线。

C1 thin heartbeat 输出预算

C1 的 thin heartbeat 在完整 scope 和能力组合下有三个超限用例。现压缩原 capture 的按需读取与恢复指引,并去掉重复的等待扣额提醒。普通行动仍先读 work_context 和 required_reads。需要补读时使用原 capture,显式全文读取义务、原执行或上下文丢失后的完整来源与身份、选任务和同轮修复所需的 flags 都保留。

源码和隔离 wheel 复用同样的真实 CLI 夹具。六组配对的归一化正文各少 109 字符。未绑定和已绑定的 Codex App 完整组合分别由 5,208→5,099 和 5,108→4,999,沿用 5,100 上限。通用 320 字符 scope 的完整 JSON 从 5,092→4,981,沿用 5,000 上限。超长路由仍报超限,未绑定的最长合格夹具只有 1 字符余量。

默认 turn plan --format json 继续提供完整只读契约。对带 Vision 的拥挤夹具,直接输出 61,473 B。同一不可变 capture 只读路由 1,571 B,补读完整重规划包 15,426 B,全量分两页则 67,079 B。这些是 reader stdout,另有导航和文件开销。该结果支持有明确需求的补读,默认全量预览和权限没有变化。

当前作者 head 7ed3de8fd7a38f50ade524f5d1530236a1c16b2a 已集成 main 10f66ec5e5586453a5579e9943b189bba84698ca,包括保留合并结算失败诊断的主干修复。相关源码 125 通过、4 项既有超限,结算恢复与补读 124 项通过。当前 head 的 File/SQLite 隔离 wheel 都复现预算数据,6 项聚焦测试通过,1,818 个打包源与源码一致。共用 TypeScript 220 项通过,后续主干合并没有改动这些源码和测试。标准预合并 7 个直接检查与 19 个选择检查通过,仍有 benchmark-sensitive 人工审查和当前 head 独立复审。模型 token、整题成本和实际安装采用仍待验证。 主干 #8267

上一版的主干集成与结算验证

作者 head 5be1823fe3f86095165bdafbc441475ec9d254bc 已集成 main 17e614282c83871712614d561373720f3696d2f9,接入主干的按需历史和预览导入、结算读回复用、初次扣额窄读及 Turn 绑定。两处 Turn 绑定重叠已核对生产者指令和相关断言。相对此基线仍有 217 个文件,+19,464/−2,279,较重提时少 29 行变更。双语实验记录保留在本 PR。 #8212 #8218 #8243 #8248 #8254 #8232

同一合成任务、同样的渐进读取和自动差分,通过两个精确作者 head 的真实 quota CLI 和隔离 File/SQLite 比较。两版验证同一产物、同一结算身份、一次写回和一次扣额,拒绝错误 workspace/身份,支持重试和缺失回执恢复。

Python–Effect 传输 File 字节 SQLite 字节 RPC
C1 合并写回 695,581 → 638,748 696,225 → 639,270 116 → 115
缺失扣额回执恢复 133,270 → 74,925 133,504 → 75,033 15 → 14

合并写回内部传输少约 8.2%。初次扣额读取使用紧凑回执,扣额后复用完整读回。guard、完整重试的内部传输以及默认 CLI 输出大小相同。两种存储的 turn plan 预览都从 661 降到 653 个 Python 模块,执行选择一致。该配对的观测范围是合成 CLI、传输和回执,模型 token、整题成本及新安装态仍待验收。

当前源码导入和预览 256 项通过,结算与历史恢复 153 项通过,heartbeat 和输出预算 122 项通过、7 项超限,TypeScript 137 项通过。7 项超限及数值在原 head 和本 head 相同。最大项为带 Vision 的拥挤 turn plan,输出 61,473 字符,上限 26,000。当前基线的标准预合并 7 个直接检查和 19 个选择检查均通过,benchmark-sensitive 人工门和当前 head 独立复审仍开放。

#8211 对当前 main 的合并预览中,有 88 个变更文件与 C1 逐字相同,其中 42 个在 Core 下。预览接入当前 C1 还有 13 个文件冲突,实际收敛规模待主干采用后复核。

重提与原有验证

在 #8265 回滚 #7430 后,从实际主干 2659e5f70c8a8ba6c23f7588151ea5c06576ef69 重新提交 C1。回滚后主干与 #7430 合入前逐字相同,保留已落地的 #8208 和 #8161。

重提时的作者 head 144c7d172ae08a544fea43dc9404cd88042d7ee8。重新应用原 C1,保留双语实验账本,并补两处恢复测试。测试从保存的 journal 工作契约和实际渐进读回命令读取,保留崩溃边界、损坏拒绝、原 capture 和一次结算断言。

该次重提的源码树与本地验证树逐字一致。scheduler、历史、capture、结算、中断恢复和 Goal 验收组 582 项通过,隔离 Docker 用例跳过一项。另用真实 quota CLI 和确定性 Host 验证,C1 拒绝篡改决定后保留原恢复阶段,收到有效决定后沿同一会话继续。安装态、模型整题和完整成本继续开放。新提交进入独立复审和合并门禁。

原 C1 范围与既有证据

本提案使 quota、Turn/Host、capture、journal 与恢复消费同一份完整 work_contract,复用既有 TypeScript 决策与结算 owner。progressive 和已验证字段复用沿实际调用链推进,受支持历史保留原版本、身份和一次效果边界。整体 C1 验收继续开放。

原 #7430 作者 head a4b78b424a38a3f877861f4a419296fcdb856b9a 已集成实际 main 44376963f8adb310f5f96d9407720a447c3b330e。本轮作者补丁把旧偏好测试改接生产 Host 请求构造入口。普通 turn plan 仍只供检查。File/SQLite 覆盖偏好读回、正文篡改拒绝、差分恢复和独立 scope,保留存储损坏时的缓存丢弃及依赖动作策略。

  • 相同集成基线的偏好测试为 3 通过、5 失败,原因是把预览当成 Host 请求。候选偏好、完整决定和首读组 173 通过,Host 请求、捕获和入口组 177 通过。首连 smoke、配对 RFC 检查、Ruff 和公开边界检查通过。
  • 独立预览导入检查仍因提前加载 loopx.extensions.process_runtime 失败,由 #8218 跟进。快速预合并的 7 项直接检查和 4 项选择检查均通过,仍有 quality_receipt_missing、benchmark-sensitive 人工门和当前 head 独立复审。整题成本与安装验收仍待补齐。
  • 相对最新 main 仍是 215 个文件,+19,441/−2,243。实际采用 #8211 后再同步并读回收敛规模。双语实验记录随本 PR。

上一轮作者 head 8e0a4799ce05935fd555e80b30df78f0973f9d1c,已集成实际 main 79665b97a0a453380da02e15b1b62eee895147df(#8234,保留已有项目结果供只读复核,避免重放工作)。无冲突合并的三个相关源码模块 229 passed、共享绑定 TypeScript 61 passed;以下渐进首读修复另按准确候选验证。

已就绪的 C1 首读只展示有序计划中的一条合并写回命令。仅当备用列表与该原效果的计划逐字相同,才省去重复展示;扣额仍由运行时执行并返回回执。未知版本、另一效果、不同备用命令或意外的手动扣额命令继续展示。原 capture、直接输出、完整前提和精确补读保持。普通 quota 的两条手动命令版本单独提为 #8238。

  • File/SQLite 实际 C1 v2 入口的重复命令用例在集成基线失败,修复后通过;同一固定合成 capture 上源码和隔离安装选择相同,其余所选内容逐字一致。四个当前上下文源码模块 187 passed,隔离安装四模块(包含新 main 的结果读取路径) 315 passed,上下文 TypeScript 58 passed、类型检查和改动 Ruff 通过。
  • 本 head 的 quick premerge 7 个直接、4 个选择检查机械通过,仍有一项人工审查。没有取得独立批准或合入资格。
  • 该轮 C1 diff 215 个文件,+19,390/−2,200。refactor(turn): unify plan, host input and recovery on one source #8211 保持原 head 供独立复审;相对于当前实际 main 做无写入合并预览后,与 C1 有 88 个逐字相同的变更文件。实际主干采用和同步前,C1 尚未因此缩小。早期双语实验仍放在一起。

前一轮作者 head c4ea4c31cbcbc6a5e22665796dda01876a0a6d2b 已包含本次实际 main ac62962255322cd80a5b701a4187c6f47bc17d8c。该轮运行时提交 18e2b692868e52c53fd9f890e0565f68f2a66b34 同步了独立切片 #8211 的 Host 执行规则:Codex 和 structured Host 在判断验收或提出关闭前读取已声明的审计;允许尝试、等待和交付的条件继续来自原契约,通知不授予执行权限,Core 仍负责外层效果。无审计声明时不增加读取义务。保留 C1 自己的普通 quota 迁移路径。

  • 相同三个 Host 模块一次完整源码运行和一次隔离安装运行各 519 passed,包括通知/执行边界的四个回归用例。首次安装校验为 517/2:测试目录漏拷贝已跟踪的 DSH 入口脚本。补齐脚本后用同一 wheel 和新测试环境重跑,产品代码未变。所有 1,815 个 Core 分发源及 24 个 provider 文件与提交匹配。
  • 该轮 head 的 quick premerge 7 个直接、4 个选择检查机械通过。总体仍有 quality_receipt_missing 和 benchmark-sensitive 人工复审,未取得合入资格。
  • 面向 main 的 #8211 已处理旧 head 的原生执行、普通 quota v0、验收审计及安装示例问题。该轮两个 head 有 89 个逐字相同的变更文件,其中 43 个在 Core 下。拆分需经独立复审、合入 main 并集成到 C1 才会缩小此处 diff。

前一轮 c3c1f86b 的修复把已绑定 Turn 的生成职责与模型职责分开:生产者已经写入具体时间戳后,提示不再要求模型换一个新唤醒时间戳。具体赋值、独立 guard、原身份、必读/恢复、传输 flags、停止和结算命令保持,未绑定模板保留原唤醒指引;共用原 binding owner,不增字段、开关或 reader。相同问题也已独立面向 main 提出 PR #8232。

  • 原四个真实 CLI 预算用例的路径、scope 和断言保持。长用例原始 JSON 从 5,519 降至 5,379 字符,正文少 139 字符,另少一个 JSON 转义字符。5,400 / 5,500 / 4,000 的各自上限和溢出负例不变。同条件 main 为 5,363;当时 C1 仍多 16 个原始 JSON 字符,这次修复不证明相对 main 的完整流程净节省。
  • 八个模式/宿主语法反事实在修复前失败、修复后通过。32 个实际 builder 对照中,16 个未绑定默认/off 输出逐字一致,16 个已绑定输入只移除生产者已履行的指令,其余命令和生成字段保持。Windows 语法为模拟,未声称 Windows 安装资格。
  • 一次完整、源码稳定的九模块回归 865 passed;一次完整隔离安装三模块回归 90 passed。保留原 worker 的选择、同 Turn 修复、捕获、重入、重放、一次写回与扣额断言。不是把上一版通过和局部复跑拼接:此前 193801b322 的 855/2、80/2 及 5,519 超预算原失败仍保留各自版本。
  • 该轮默认 17 个 Mypy 入口、改动 Ruff 和有限语义 advisory 通过。全部 1,816 个受跟踪产品源、1,815 个 Core 分发源、24 个可选 provider 文件与该轮提交、冻结实测及隔离安装逐字一致;五个已观测 Python 进程、1,179 个 Core 模块、六处子进程来源无已观测 checkout Core 导入。部分子进程覆盖审计环境,故不声称审计覆盖全部进程。模型和外部服务为合成 fixture。
  • c3c1f86b 的 quick 检查 7 个直接、4 个选择检查机械通过;总体仍因 quality_receipt_missing 和 benchmark_sensitive 人工门而 hold,未声称 ready、独立批准或合并。

前一运行时 c0020f47a 修复可见 Goal 的额外完整 capture 前置读取和 Host 验收审计触发:普通/off 不新增前提;required_reads、明确完整读取义务、原身份、恢复、flags、停止和结算保持。24 个同条件 builder 输入没有丢失 main 合法配置。完整 Codex/structured Host 只对已声明审计恢复“判断 Goal 验收或提出关闭前读取”的原触发,历史 renderer 十二例保持逐字一致。heartbeat 消费者迁移到完整来源和摘要校验的原 capture reader;refresh fixture 的实际 project cwd 修正保留,生产守卫未放宽。

更早 5091fb82a9 / main 9d276f6cb9 的 native/私聊两模块源码、正确安装可选 provider 后各一次完整 466 passed,首次 459/7 漏可选分发失败保留;da6779c0a 的 247 passed、a706379f70 的 357 passed、PostgreSQL 和科学成本证据也分别保留其原修订。未把它们重记为当前 head 全面通过。普通 quota v0 writer 和无调用方场景 builder 已删除,明确版本化历史 matrix 及受支持 writer/reader 保留,详见双语账本。

本轮只确认渐进首读中的重复命令减少、原计划可读及现有合成入口行为。真实 App/模型采用、原 quota 单会话整题成果和完整成本仍待验收;双会话另列。未启动模型或科学运行,未查询或手触远端 CI,未安装到活动环境、发布或合并。

Progressive Goal narrative reuse

The same shared slice is available for independent main review in #8323. C1 at e36e2f1bc586 uses it through the existing quota and complete Turn reader.

With the same synthetic Goal and real File/SQLite CLI, warm guard plus progressive reads used about 21.7% fewer output bytes and one fewer page. SQLite used 85 → 84 Effect RPCs and 551,369 → 539,126 transport bytes. Cold and post-compaction CLI bytes match the C1 baseline. A prompt exact-body re-read absorbs nearly all of the CLI byte savings. Actual model usage and installed adoption remain open.

This head passed 163 focused Python tests, 40 TypeScript context tests, typechecking, Ruff, bilingual diff validation, the SQLite replay from the verified wheel, and the Standard mechanical checks. The exact-head quality receipt remains pending.

Stride replan example budget

C1 at 54e00ad4d91d includes the independent one-file Stride example slice for main. In the matched C1 CLI fixture, crowded replanning output dropped from 21,769 to 21,651 normalized JSON characters. The small and multi-agent cases had identical output lengths. The example still binds the current context and obligation and passes the existing validators. Main proposal #8325

This head passed 66 focused Python tests, 43 TypeScript tests, typechecking, the real CLI replay from the verified wheel, and all 7 direct and 19 selected Standard mechanical checks. The cross-base budget smoke reproduces the same read_pinned_cli_body fixture import error on the previous and current C1 heads. The exact-head change-quality receipt and independent review remain pending.

Matched CLI budget comparison after the fixture import repair

C1 at f73bf1cc24894 loads the same frozen fixture helper for both checkouts and explicitly enables Progressive in the signed Todo recovery test. That test verifies the read-only view can recover and validate the original signed decision. The shared loader fix is separately reviewable on main. #8327

The full smoke now reaches the C1 product assertion for small quota Markdown. A diagnostic ran all 98 rows in each checkout and recorded every per-row check rather than stopping at the first failure. Main passed all per-row checks. C1 has 15 rows with size or shape failures, including the following representative comparisons.

Existing CLI view Main characters C1 characters Existing C1 ceiling
Quota small Markdown 7,476 24,527 10,000
Quota multi-agent JSON 25,514 29,574 26,500
Explicit Turn envelope small JSON 9,255 24,360 13,000
Turn plan transaction detail small JSON 11,424 26,984 15,000

C1's Markdown embeds the complete v1 decision. Compact JSON for the small case already takes 24,247 characters. The explicit envelope alias also uses v1 and differs from the expected legacy shape. These are separate compatibility and budget decisions. The full smoke retains its current assertions. The focused run has 198 passes and the existing multi-subagent explicit envelope budget failure at 25,802 characters against 13,000. Actual model adoption and the exact-commit quality review remain open.

Claim-scope first-read reuse and current main integration

C1 at a287ac70fb6c6bf1c05192281b6b9b56c5ebfd97 integrates main df67371c374a5ece11c1f6ceddae11b51e0f0330 and shares the independently reviewable claim-scope/transport slice with main proposal #8330.

The existing same-capture reference owner now covers the two registered claim-scope Todo lists. Count, ownership, order, unknown-row fallbacks, original signed recovery and complete transaction detail are preserved. The wire encoder chooses smaller lossless scalar edits and removes same-path numeric copies from transport while retaining identity lineage.

Against the integrated C1 baseline 6503dad7c2, matched File/SQLite CLI runs reduce the default required-read output from 37,719 to 36,402 bytes and Todo-detail output from 44,050 to 42,733 bytes. RPC count remains 68. Internal transport is still 126–158 bytes higher across these cases, so this establishes a context-output saving, with no full-cost or model-efficiency conclusion. The initial candidate's roughly 9.2 KB transport increase remains a negative result; the included encoding fix removes most of that overhead.

At this head, 85 focused TypeScript tests, typechecking and 113 focused Python tests passed, with 14 existing legacy-shape skips. The current-main integration independently passed 204 Python tests with 14 skips. Verified-wheel readback passed all eight File/SQLite off/auto and default/detail cases. Standard validation passed all seven direct and 19 selected mechanical checks; benchmark-sensitive manual review and exact-head quality qualification remain pending.

The previously reported 15 C1 output budget/shape failures remain open. Full transaction detail is an exercised caller contract, so this change preserves its complete inline work contract rather than shortening it to satisfy an old ceiling. Actual model adoption, the original single-session matched task and its complete costs remain unqualified.

Reward Memory: one participation read

Native quota and complete Host now request the typed capability facts once for recall and reflection. A disabled binding makes no eligibility read; oversized recall still leaves eligible reflection available. Registration, Host source integrity and settlement use their existing rules.

Matched File/SQLite fixtures at 32fbc81f2f → 7410b0577e: in 16 active App guard pairs (first call + replay across raw/progressive and delta settings), eligibility RPCs fell from 8 to 2. Whole-fixture Python↔TypeScript encoded request/response bytes fell 27.9%–35.8%; the both-enabled Turn Host cases fell 5.4%–6.2%. These are synthetic-provider transport measurements, with no measured model-token or full-task cost benefit.

Both comparison heads passed the same 162 Python cases. The candidate also passed 90 complete-source/Host cases, 102 TypeScript tests, typecheck and lint. Final head 9ebc353315 includes main 3b16b84914 and passed the selected recovery/Host/guard suite (187 passed). Six direct and 19 selected premerge checks passed; benchmark-sensitive manual review remains open.

原生 quota 和完整 Host 共用一次已验证的召回/反思资格读。16 组 App guard 首次调用加重放中,资格 RPC 从 8 次降为 2 次,整组内部传输负载少约 28%–36%;没有新的模型 token 或原任务总成本结论。

This reverts commit 2659e5f.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Read the saved work contract and the progressive liveness fields through their current public recovery paths. Retain the original Turn, crash boundaries, semantic checks, corruption rejection, and no-replay oracles.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…-reproposal-baseline-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Keep the shared producer-bound timestamp fix and the C1 settlement locator and recovery obligations. Preserve the existing long-path and paired transport regression assertions.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@mergify

mergify Bot commented Nov 7, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 7, 2026
…-reproposal-baseline-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 7, 2026
…-reproposal-baseline-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…-reproposal-baseline-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…-reproposal-baseline-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…-reproposal-baseline-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…-reproposal-baseline-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…-reproposal-baseline-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
(cherry picked from commit f7463a2c2ab24d32cb70295e80c5064ff5e1b30f)
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@mergify

mergify Bot commented Nov 7, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 7, 2026
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
(cherry picked from commit 90864e47767519ff9d2c2540a0d736c824c7abb0)
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
(cherry picked from commit 2effc18)
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 7, 2026
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent, gpt-6.1-sol, OpenAI, runtime_reported, reasoning_effort=max

Request changes conclusion (author-owned PR; GitHub blocks formal self-review)

评审提交 8179b99730c780d1384afdaa91af68b8e5729252,PR 基线 520a1ab4735dbb640d54e31a799fcaadb4338c38。同两版的反例都在隔离的 File 和 SQLite 上执行。

动机 / Motivation

管理型 Agent 执行或恢复一项任务时,需要沿用当初已准入的任务范围、证据和停止条件。 C1 原先要解决的是同一次运行在 quota、Host 和恢复入口各读一份裁剪过的任务描述。中断后,Agent 可能读不到原任务依据,或用不同范围验收旧结果,增加重做和人工核对的成本。

当前提交让多个入口共享原始工作来源,并把新 Host 建议绑定到来源哈希与 Turn key。正常路径已能验证这一绑定。 这轮评审覆盖源码中的捕获、Host、独立任务验证与结算,沿用 C1 的原会话和一次性效果契约。 两条中断路径还缺闭环。一次丢失的 Hook 响应可使原认领读回消失,缓存结果重试也可改用新计划通过任务校验。

改动思路 / Approach

quota 与 turn plan 经 TypeScript owner 验证完整来源,来源哈希和 Turn key 约束新 Host 调用的可选建议,已有 journal 保留原会话与结果。共享完整来源与原 Turn journal 应贯穿同一次恢复,避免各阶段各自选取一份 scope。 保留 TypeScript 的来源校验与 Python 的效果执行边界,把两处恢复修正在现有 journal 和 Hook owner 内。 允许旧结果按原 schema 解码的兼容路径有必要,独立的任务校验仍须消费这份原计划。

具体改动 / Changes

154 个文件,+14,013/−1,738。发布前提交变更,按两版的基线与 head 对照 Git blob 和 mode。151 条路径与本轮已审差异相同,重审三个变化的路径,并用新基线和新提交重跑两条反例。C1 原先迁移普通 quota 的 caller-visible carrier,需保留 v0 兼容边界与实际变更说明。

关键代码讲解

  • _turn_context_binding_source 将新 Host 建议交给完整来源校验,projectTurnContextContribution 依据哈希和 Turn key 投影。仅增加 capture 地址时仍可使用原建议,改变 capabilities、stop 或 Turn key 会失去该绑定。已有原始结果保留读取旧可选字段的兼容入口。 Binding producer, Contribution projection
  • project_saved_context_capture 在 SessionStart 之前也传递原调用者的页面上限和输出位置,历史捕获沿用原投影。File 与 SQLite 的真实 CLI 验证包括显式 8,000 bytes、独立输出根和物理父目录别名,显式符号链接输出根在准入前被拒绝。 Saved selection transport
  • [P2] 首个 Hook 响应丢失后保留原认领的只读恢复。 native_execution_preparation_request 在响应交付前写入 readback_sent。让首次 ready guard 在原认领提交后退出,再丢弃首次 Hook 输出。两种后端的原租约、回执和捕获均仍有效,head 的下一次 PostToolUse 和 SessionStart 却都静默;base 下一次 Hook 能读到原认领后的 ready。建议让同一来源能再次读取原回执、租约和 ready 依据,同时保留自动认领一次的约束。 Native readback
  • [P2] 缓存结果须沿用原计划完成独立任务验证。 run_loopx_turn_once 只在要调用 Host 时切换到 journal 里的计划。缓存路径按原 schema 解码,却把新计划传给独立 validator。真实来源和 journal 加合成回调的测试中,原计划要求额外 capability、首次校验失败,重试用同一 Turn key 提交较宽松的新计划后,两个后端均执行了一次写回和一次计费回调,Host 仍只调用了一次。base 拒绝旧可选字段,两个回调均为零。修复应沿用原计划贯穿验证和结算,或在效果前拒绝来源不一致。显式 --resume-turn-key 已先读取原计划,本反例覆盖提交新计划的入口。 Recovery selection, Independent validation

single-complete-source 已实现,当前源码保留同一来源的新 Host 绑定。saved-selection-transport 已实现,保留原选择的读取边界。native-preparation-recovery 和 cached-postcondition-fidelity 尚未满足,分别影响原认领读回和任务验证。original-quota-outcome-cost 留待原始 quota 对照、真实采用和完整成本验证。 C1 acceptance and reuse

对主干的风险 / Risks

当前提交的 saved-context 定向套件通过 74 项,另有 14 项需独立启动 Host 的用例跳过。标准 premerge 两轮均通过 7 项直接检查和 18/19 项选中检查,含双语 RFC 与公开边界扫描。CLI 输出预算 smoke 两次都触发 120 秒超时,标准门保留失败。同一当前 base/head 独立差分在 124.65 秒完成 98 组对照,无机械失败,保留 28 组载体或成本审阅信号。Benchmark CLI 的帮助文案另有一项手工门。当前 main@520a1ab473 已是提交祖先,合并预演与提交树相同。Benchmark 的 native readiness 参数和传递来自基线,本轮只核验帮助文字的差异。远端 CI、Windows 安装、真实模型和成本资格分别保留为未验证。 Benchmark CLI diff

我的整体评价 / Verdict

请求修改。保留完整来源、原会话与旧结果 schema 的兼容设计。先修复丢失 Hook 响应后的原认领读回,以及缓存结果的独立验收范围,再在相同后端重跑两个反例。当前结果支持工程验证与问题定位,C1 的实际成果和完整成本仍由后续对照验证。

English verdict: REQUEST_CHANGES. Preserve exact native claim readback after a lost Hook response, and validate cached results against the original admitted work before settlement.

if previous.get("state") == "attempted":
if previous.get("readback_sent") is True:
return None
previous["readback_sent"] = True

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] 首个 Hook 响应丢失后保留原认领的只读恢复

这里在 Hook 输出到达前就持久化 readback_sent。在 File 和 SQLite 上让原认领提交、首个 ready guard 退出,再丢弃这次 Hook 响应。原捕获、回执和活跃租约均未改变,后续 PostToolUse 和 SessionStart 却都静默。同输入的 base 在下一次 Hook 能读回原操作后的 ready。请让同一捕获继续提供只读的原回执、租约和 ready 路线,保留自动认领一次的约束,并用这两个后端覆盖丢失响应的恢复。

# Settlement recovery uses its cached host result and must not reserve
# another interval. A new host attempt, including failed-result retry,
# goes through admission before any host or journal attempt mutation.
needs_host, validation_reinvokes_host, recorded_plan = _host_attempt_requirements(journal)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] 缓存结果须沿用原计划完成独立任务验证

这个选择只在需要再次调用 Host 时恢复 journal 里的计划。复用缓存结果时,_host_result_stage 按原 schema 解码,随后 _task_validation_stage 却收到当前计划。在 File 和 SQLite 的真实来源和 journal 加合成回调中,原计划要求额外 capability 且首次校验失败,带同一 Turn key 的较宽松计划让缓存结果通过,并调用各一次写回和计费回调。请让独立校验及结算沿用已准入的原计划,或在效果前拒绝来源不一致。保留原捕获并验证失败时两个回调都为零。

@mergify

mergify Bot commented Nov 8, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 8, 2026
…ontroller-batch-20261109

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

# Conflicts:
#	docs/architecture/rfcs/controller-executor-unified-contract-v0/contract-and-context.md
#	docs/architecture/rfcs/controller-executor-unified-contract-v0/contract-and-context.zh-CN.md
#	loopx/cli_commands/quota.py
#	loopx/cli_commands/quota_capture.py
#	loopx/control_plane/quota/turn_envelope.py
#	loopx/control_plane/turn_driver/capability_context.ts
#	loopx/control_plane/turn_driver/executor.py
#	tests/control_plane/test_complete_host_request.py
#	tests/control_plane/test_replan_staged_read.py
#	tests/control_plane/test_saved_context_project.py
…ontroller-batch-20261109

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

# Conflicts:
#	loopx/cli_commands/quota_capture.py
#	loopx/control_plane/turn_driver/codex_context.py
#	loopx/control_plane/turn_driver/codex_execution_preparation.py
#	tests/control_plane/test_codex_context_lifecycle.py
#	tests/control_plane/test_quota_execution_preparation.py
…ontroller-batch-20261109

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

# Conflicts:
#	loopx/control_plane/quota/progressive_context.ts
#	tests/control_plane_ts/progressive_context.test.ts
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 8, 2026
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…ontroller-batch-20261109

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent, gpt-6.1-sol, OpenAI, runtime_reported, reasoning_effort=max

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

评审提交 9ebc353315221fdc128172e2b8966497020ed866,对照 PR 基线 3b16b849148817988535ae165d626da82f44356b。

动机 / Motivation

从原 Turn 恢复工作的用户,需要继续使用首次准入时的工作范围和回执。 前一提交在首个原生 Hook 响应丢失后读不到恢复指引,也可能拿较宽松的新计划验收旧结果。

当前提交保留原 claim 与 ready 捕获的读回,并让缓存验收和结算使用原计划。 这次结论覆盖固定提交的源码恢复和现有 CLI 入口。 C1 的原 quota 单会话效果、完整成本及 benchmark 人工资格仍需独立验收。

改动思路 / Approach

沿用现有 TypeScript 完整决策 owner、原捕获和 Turn journal。 当前评审边界是 C1 整合后的原始来源、恢复与结算。 Python 保留本地持久化和 Host transport。原 claim 的重试读取复用同一回执和租约,观测到对 ready 捕获的真实读取后才收起重复提示。原计划同时约束 Host 输入、缓存结果的任务校验和结算。

具体改动 / Changes

153 个文件,+13509/−1691。与上一提交逐对核对,146 个路径的基线、候选内容和文件模式一致;检查其余 7 条改动,并核对随主干合入的 #8379。

关键代码讲解

  • #8307 的 ready readback 路径保存原 claim、租约和摘要。当前 CLI 回归覆盖初次 guard 超时、已 ready 但 Hook 响应丢失、已释放原租约、篡改捕获及未验证副本。读取失败保留原回执,伪造的页内容无法关闭恢复提示。 原生恢复, File/SQLite 对照
  • #8373 已合入原计划回放。相同 File 和 SQLite 对照中,用较宽松的同 Turn 新输入重试,独立校验仍看到原范围,未触发写回或扣额,Host 只执行一次。历史可选结果 schema 由已有记录提供,不能授权新 Host 指引。 原计划恢复, 原回放修复
  • #8275 的 prepared capture 选择保留物理父目录和显式页限。#8309 仅在同一来源路径、摘要和父级指针都吻合时复用 outcome 地址。分阶段 Stride 的原建议仍在决策阶段可读,writer 保留原 authoring 和授权边界。 渐进选择, 分阶段读取
  • Reward Memory 的 Recall 和 Ingest 共用一次参与条件读取。该读取仍校验原始 Host 来源及 Goal/Agent 绑定,只有当前配置明确启用的操作才进入提示或结果。关闭、身份不符或来源无效时,路径不会给出指导或结果槽;实际写入仍要求独立验收。 参与条件, 来源校验

current-source-authority、native-hook-readback 和 recorded-plan-validation 已实现。真实采用、完整成本与长期结果留给 original-quota-qualification。 已接受的 C1 基线合同

对主干的风险 / Risks

当前固定提交的 Reward Memory、Host 切换与缓存范围回归共 156 项通过。Standard premerge 的 6 项直接与 19 项自动检查全部通过,保留 benchmark 人工门。上一提交的 457 项源码、35 项 TypeScript 与 File/SQLite 回放结果仅用于内容一致的路径;14 项受原生环境门限制,未运行。完整模型效果、成本及已安装路径仍需独立验收。

当前提交与主干 3b16b849148817988535ae165d626da82f44356b 的合并预演通过。旧评审所指的两项回归在当前源码已复测,GitHub 的旧讨论和人工门仍由相应流程处理。 此前评审, 原生读回修复

我的整体评价 / Verdict

通过固定提交的源码评审。原生读回能恢复同一 claim,缓存结果也重新受原计划独立验收。两项前轮问题的反例都已通过。C1 切换前仍需完成原 quota 对照、完整成本评估和 benchmark 人工资格。

English verdict: APPROVE. The exact source preserves native readback and validates cached results against the recorded plan. The CLI budget check passed on the pinned base. Full C1 qualification remains open.

@mergify

mergify Bot commented Nov 8, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 8, 2026
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 8, 2026

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent, gpt-6.1-sol, OpenAI, runtime_reported, reasoning_effort=max

Request changes conclusion (author-owned PR; GitHub blocks formal self-review)

动机 / Motivation

现有 quota CLI 消费方需要在关闭渐进交付时继续解析有界的 Turn Envelope。原入口同时提供受限的 JSON 和 Markdown。C1 把当前工作、原始读回和结果验收统一到同一个完整决策,但同一显式关闭命令现在也返回完整 v1,两个输出都超过原入口的上限。结论覆盖原 CLI 入口、候选源码和本地原生 Hook 的验证边界。实际模型采用、同 quota 的验收成果和完整成本仍待独立资格验证。

改动思路 / Approach

保留 TypeScript 完整决策、原捕获和 Turn journal 作为来源与恢复的 owner。当前交付范围是 C1 的原始来源、恢复、结算和现有入口兼容。区分内部完整决策与公开载体可以保留统一 owner,同时让已有显式关闭入口继续满足旧消费者的结构和输出界限。只调整门限会让旧读取方承担迁移。

具体改动 / Changes

评审 fedf8fc 对 a3b5896 的完整 152 个路径,+13,509/−1,684。与上次独立评审相比,130 个作者 base/head blob 和 mode 对保持一致,重新检查了变动路径和当前合入边界。当前 main 的 aa475b29 与候选合成无冲突。C1 的 current-source-authority、native-hook-readback 和 recorded-plan-validation 有源码和本地验证。caller-envelope-compatibility 失败,original-quota-qualification 保持待验收。 C1 基线要求

关键代码讲解

  • _emit_quota_result 的 should-run 分支即使在显式 --context-delivery off 时也调用 compose_turn_decision。关闭参数只约束组合结算的启用,后续投影直接保留完整决策。这样原来有界的 --turn-envelope 也携带 v1 的完整内容。 候选代码
  • native_execution_preparation_request 读取原生准备记录并恢复原 claim、lease 和 ready capture,_host_attempt_requirements 在缓存结果路径使用原 journal 的验收范围。新旧外部载体可以共用这些来源和恢复规则。 原始捕获 · 记录范围

对主干的风险 / Risks

P2 · 显式关闭路径越过原有 Turn Envelope 界限。 同一 small fixture、同一命令 quota should-run --context-delivery off --turn-envelope 和相同格式,基线的 JSON 是 v0、9,709 字符,候选是 v1、24,720 字符,原限额 13,000。Markdown 从 2,427 增至 25,008 字符,原限额 4,800。本次实测两边都保留 # LoopX Turn Envelope 标题。JSON 中旧 contract_capsule、action_signature 的读取约定也随 v1 切换。候选测试把两个上限调到 30,000 和 28,000。按原限额验证仍分别失败。依赖原结构或限制的调用者会收到无法按约定消费的输出。 已有讨论

请让显式关闭路径保留已有有界载体,或通过单独协商的兼容入口交付 v1,并用同一调用复验 JSON、Markdown、旧字段、原限额和已启用原生恢复。候选自己的 test_selected_work_requirements.py 还有四个失败。File 和 SQLite 的默认 Codex prompt 测试收到 --context-delivery off 的脚本,候选断言要求 --decision-output-root。短 Todo 测试在两种 provider 都多收到一次 goal_state 读取,候选断言要求零条。基线对应四项通过。当前独立复验将它们记作候选断言与该环境实际路径的差异,仍需区分配置门控与应保留的生产语义。

候选 159 项 TypeScript 测试、225 项 CLI 差分测试通过,基线差分套件 191 项通过。较广运行套件为 265 通过、上述 4 失败。standard premerge 的 6 项直接和 19 项自动检查通过,benchmark 人工门仍挂起。

我的整体评价 / Verdict

当前版本需恢复显式关闭入口的有界兼容,并补齐两种 provider 的默认捕获和短 Todo 预期证据。保留统一的决策和原始恢复 owner。C1 的原 quota 成果、完整成本与 benchmark 人工门另行验收。

English verdict: REQUEST_CHANGES for fedf8fc. With context delivery explicitly off, the existing Turn Envelope changes schema and grows past both established caller budgets. The candidate's own selected-work suite also has four File/SQLite failures.

…-isolated-native-settlement-20261109

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant