Repository navigation
fix(pixel): a harness revision or continuation prompt keeps the owner's request scope - #6756
Open
Lightheartdevs wants to merge 1 commit into
Open
Lightheartdevs wants to merge 1 commit into
Lightheartdevs wants to merge 1 commit into
Conversation
…'s request scope observeRun re-derived the owner's request from every attempt's prompt. A later attempt of the same run carries OpenClaw's text, not the owner's: the before_agent_finalize revision or the mid-turn continuation. The source revision "...or remove that URL and mark the claim as unverified" matched the visual-follow-up classifier, so in a chat with a published preview the research run became a visual continuation of that preview: - its page reads were refused with the visual-scope reason, the run hit its tool limit, and the old preview link was appended to the research answer; - or Pixel was sent to read, edit and republish that project page in a turn that said "Do not create files", and the outcome was reported as passed. A continuation prompt likewise dropped a requested test run from the verification contract (status failed became none). The first attempt's classification now stands for the whole run. A resubmission of the owner's own text (OpenClaw's retry after a pre-prompt overflow) is classified as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Sep 26, 2026
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.
What went wrong
In the fleet's live event search (rounds 105–112), the journey runs in the same chat as the website and coding journeys, so the chat already has a published preview. When the answer cited pages Pixel had not opened, completion assurance asked for one revision:
OpenClaw sends that revision as the next attempt's prompt of the same run.
observeRunre-derived the owner's request from every attempt's prompt, and "remove that URL" matches the visual-follow-up classifier (remove+that). With a verified preview in the session, the research run became a visual continuation of that preview. Every source-attribution revision that reached the model in these rounds went wrong this way:web_fetchandpixel_ods_web_extractof the cited pages refused: "Keep this visual follow-up in the bound artifact directory…"pixel_outcomefailedweb_searchandweb_fetchpublic/index.html("Philadelphia Events & Expense Report CLI")pixel_outcomepassed, in a turn that said "Do not create files"The trajectories show the prompt each attempt received, so the revision text is not inferred. The same re-derivation also changes the verification contract after a continuation prompt. In a unit probe, an owner request to run the unit tests went from
failed(not run) tononeonce the mid-turn continuation text was observed.The change
A run answers one owner message, and its first attempt carries it.
observeRunnow treats a later attempt of the same run whose text differs from that message as a harness attempt. A harness attempt keeps what the first attempt established and re-derives nothing from its own text:Session bookkeeping and cancellation handling still run on every attempt. When OpenClaw resubmits the owner's own text after a pre-prompt overflow, it is classified as before.
Tests
tool_loop_guard.test.mjs, new test (fleet replay). A website preview is published in the session. The research run's source revision is armed, then the revision attempt is observed with OpenClaw's exact prefix and ODS's instruction. The cited page read is not refused, the revised answer is accepted without a visual-continuation pass, and delivery isnone. Onmainthis fails at the page read: it is blocked with the visual-scope reason.tool_loop_guard.test.mjs, second new test. A coding request that asks to run unittest keeps itsfailed(not run) verification after the mid-turn continuation prompt, after a revision prompt, and after a resubmission of the owner's text. Onmainit becomesnone.preview_directory_hint.test.mjs. One test had observed a second owner message ("Do not display or publish any preview.") inside the same run. That cannot happen: a new owner message is a new run. The test now carries that instruction in the run's own owner message. It still checks that no publication hint is given, and the adjacent test still shows the hint when publication is allowed.main5afd46c: 3203 tests, 3165 pass, 0 fail.mainand this head:runtime_cancel_recoveryandruntime_preview_delivery: 8/8 on both.runtime_progress_finalization,runtime_stop_synthesisandruntime_owner_visible_reply: 8/8 on both.Not in this PR (found in the same investigation)
pixel_ods_web_extract. OpenClaw refuses abefore_agent_finalizerevision after any plugin tool, even one declared replay-safe (runtime_completion_assurance.integration.mjsdocuments this). In 5 in-scope failures the model had used targeted extraction, so the armed partial or replacement delivery was final: tower3 r107, tower2 r108, laptop r108, tower1 r109 and tower2 r110. Host citation verification is the path that works there, which is what fix(pixel): accept year-less event page dates the page does not contradict #6730 and fix(pixel): show schema.org event and offer data from a page's markup in the shared reader #6733 improve.observeRunlines that fix(pixel): plan within the output limit, continue a cut Portal turn once, report otherwise #6743 and fix(pixel): a refused rm -rf keeps a current passing test, and the owner gets a receipt instead of guard text #6753 also change, so the conflicts are textual:ownerChatUserandoutputLimitRetriedstatements above the guardedif.receiptAnswersOwnerRequestline should also get&& !harnessAttempt.🤖 Generated with Claude Code