Repository navigation
fix(turn): bind completion to the admitted Todo text - #6978
Open
loopx-agent wants to merge 1 commit into
Open
loopx-agent wants to merge 1 commit into
loopx-agent wants to merge 1 commit into
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goal And Delivered Outcome
A real native Turn could validate an artifact for the admitted Todo body, then mark a concurrently changed body done and consume quota. The immutable baseline reproduces this on both File and SQLite, including a changed requirement beyond the display preview.
Completion now binds the captured full Todo text to the existing atomic terminal owner. A changed body is refused; note edits and unrelated Todo changes remain compatible. Already accepted effects recover by their original receipt before checking fresh source state.
main; complete bounded bug fix within the existing convergence program.Author Declaration
5fb961c363c125589f3c0dd3d2cefd017c7b4f4e.turn_todo_writeback.pyhashes the captured exact bytes; terminal owner compares the canonical body under provider CAS.Scope And Continuation
The producer carries one verified-source witness and reuses the existing full-body/reference carriers. Python performs reference resolution and byte hashing; TypeScript retains source admission and terminal decisions. The source check and completion share the existing canonical transaction and CAS. Only definite typed authority refusals become failed effects; unavailable or lost responses retain receipt recovery.
The final no-followup path intentionally keeps its existing order: writeback and spend may already be accepted before terminal completion is refused. Replay preserves that prefix without duplicate spend. This PR does not claim atomicity of the entire settlement or close the parent convergence program. The paired RFC checkpoint records that remaining boundary.
The same-domain simplification removes duplicate source metadata from the context transport while preserving full instructions and historical packet signatures. Existing CLI output budgets are unchanged. There is no new configuration, public CLI option, provider or lifecycle owner.
Validation
2fd007378d9730cf4f53806dfc61b207e313f827.real_entrypointtests/control_plane/test_turn_completion_source.py; actual File/SQLite native CLI with independent artifact validation and concurrent source edits. Covers ordinary and final-no-followup ordering, exact full-body comparison, note/peer parity, retry and old receipt recovery.unitnpm run test:control-plane: 5,154 passed, 73 conditional integration skips; TS typecheck passed. Required real PostgreSQL runs are separate below.real_backendintegrationregression_paritystaticintegrationintegrationintegrationnode apps/presentation/dashboard/src/features/personal-workspace/personal-workspace-contract.test.mjsexits 7 at the Goal display-name assertion, line 378. Independent immutable baseline and final-head runs have identical complete failure signatures after checkout-root normalization. The required failure remains blocking.manualCoverage proves this source-bound completion slice, including real backends and packaged execution. It does not prove installed host adoption, live model decisions, overall outcome improvement or whole-settlement atomicity. No merge, release or live installation is included.
Frontend / Visual Evidence
Type of Change / Area
Boundary Checklist
Current CI Failure Attribution
CI tested immutable merge
ea373819ecb31b283139662fa7298c586f5f2806, combining this source head with targetdb4b000cf1926dff66a67c3d4f343a080a37bb07. The affected files below match that target's Git blobs; this PR did not edit them. Required failures remain blocking.previousinconversation_binding.ts, lines 500–506 and 563. The CI target includes the later private-routing change; the original source head retains the earlier version of this file.0.10000000000002274 <= 0.1. No native Windows success is claimed.The source validation above remains evidence for the tested source commit. It is not a passing qualification of the CI merge or a baseline waiver.