fix(live-proof): keep final results visible after cold builds - #1256
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@clawsweeper re-review |
|
🦞👀 Re-review progress:
|
|
Codex review: needs maintainer review before merge. Reviewed August 27, 2026, 12:08 AM ET / 04:08 UTC. ClawSweeper reviewWhat this changesThe branch removes one leading terminal step that duplicates the automatically executed entry command and preserves both the beginning and final result of long terminal output in verification artifacts and review comments. Merge readiness✅ Ready for maintainer review Keep open for normal maintainer review: this MEMBER-authored draft repairs a current-main live-verification defect with a narrow, tested patch and is not already implemented on main. Priority: P2 Review scores
Verification
Live VerificationCommand: Result: FAIL (failed) — step 1 Assertions:
How this fits togetherLive Verification runs a bounded terminal or browser plan against a reviewed checkout, then stores its result in a durable artifact and renders it into the public review comment. This change sits between plan parsing/output capture and those artifact/comment outputs. flowchart LR
A[Review plan] --> B[Plan parser]
B --> C[Terminal driver]
C --> D[Verification result]
D --> E[Durable artifact]
D --> F[Public review comment]
Before mergeNone. Agent review detailsSecurityNone. Review metrics
Technical reviewBest possible solution: Retain the parser-bound normalization and head-and-tail rendering approach, then land it after the draft receives normal maintainer review. Do we have a high-confidence way to reproduce the issue? Yes—source-reproducible. Current main executes the terminal entry separately from all typed steps and retains only the output prefix at both relevant limits; the PR tests the resulting duplicate-execution and missing-final-output cases. Is this the best way to solve the issue? Yes. Normalizing only the leading exact duplicate at the parser boundary and using bounded head-and-tail excerpts at the two output boundaries is the narrowest maintainable repair. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 387cf82c7eba. LabelsLabel changes:
Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
|
What Problem This Solves
Fixes an issue where terminal Live Verification could run the same entry command twice and publish only a cold-build warning prefix, hiding the final meaningful command result in the public review comment.
Observed on openclaw/openclaw#129535 in https://github.com/openclaw/clawsweeper/actions/runs/32900247296.
Why This Change Was Made
Terminal plan parsing now removes exactly one leading
runthat matches the trimmed automaticentry, while preserving the raw ten-step limit and rejecting plans left with no typed steps. Verification output uses bounded head-and-tail excerpts at both the schema-v1 16K artifact boundary and the 4K public-comment boundary, preserving startup/failure context and the final outcome without filtering dependency warnings.Browser plans, later repeated commands, distinct commands, sanitization, schema v1, and lifecycle/publication receipts are unchanged.
User Impact
ClawSweeper no longer repeats an identical terminal entry command, and long cold-build output cannot hide the final help text, result marker, or failure diagnostics from the public Live Verification block.
OpenClaw Bay Impact
OpenClaw Bay is unaffected. This change preserves Live Verification schema v1 and does not change lifecycle, publication, receipt, or observer contracts.
Documentation Impact
Updated the active live-proof documentation and review prompt to state that terminal
entryexecutes automatically and must not be repeated as the firstrun.Evidence
Pre-fix reproduction
Against
origin/main(5cb6777eea2da37e2c2481e15215c2f8be9c774f), the production parser and renderers produced:{ "parsedStepCount": 2, "artifactChars": 15997, "artifactHasHead": true, "artifactHasFinal": false, "publicHasHead": true, "publicHasFinal": false }Focused regression proof
Command, Node
v26.7.0:Exact result:
Additional focused validation:
The full local
pnpm run checkreached 3,761 tests with 3,742 passing and 10 host-fixture failures unrelated to this diff: one existing real-tmux setup failure before target execution and nine repair target-validation failures caused by unavailable local pnpm mirror fixtures or existing hook/timing fixtures. CI remains the authoritative clean-host gate.Pre-commit and committed-branch Autoreview both reported no actionable findings and
patch is correct; the final branch review confidence was0.98.Real Behavior Proof
parseLiveProofPlan, terminaldriveTerminal, schema-v1 artifact construction, encoded report parsing, and public review-comment rendering.counter.txt, emits more than 20K of build-warning output plus hostile Markdown/HTML marker text, and ends withFINAL_HELP_RESULT; the supplied plan contains the command as bothentryand the firstrun.v26.7.0and tmux3.7c, using the productionmediaProofCommandRunneranddriveTerminalagainst a private clean-config tmux server. The outer pane'sTMUX/TMUX_PANEvariables were unset so the real driver received the same default window-0 contract as the hosted environment; no synthetic runner was used.1; artifact output is at most 16K; public output is at most 4K; both retainCOLD_BUILD_STARTandFINAL_HELP_RESULT; hostile output is neutralized; private paths are absent; exactly one truncation marker remains.5439737c850fab3a507ba849f704e11f4f9aa52e.Real tmux trace
{ "head_sha": "5439737c850fab3a507ba849f704e11f4f9aa52e", "parser_steps_after_normalization": 1, "counter": 1, "drive_status": "completed", "artifact_chars": 16000, "artifact_at_most_16k": true, "artifact_has_head": true, "artifact_has_final": true, "artifact_truncation_markers": 1, "public_chars": 4000, "public_at_most_4k": true, "public_has_head": true, "public_has_final": true, "public_truncation_markers": 1, "public_sanitized_marker": true, "private_paths_absent": true, "command_identity": "node fixture.mjs" }The public excerpt began with
COLD_BUILD_STARTand ended with the sanitized hostile marker followed byFINAL_HELP_RESULT.Review Notes
Production code:
+25/-5(net+20). Tests:+249/-0. Prompt/docs:+12/-8.The production growth is the canonical parser normalization plus one reusable output-only truncation path. Generic text truncation and browser behavior remain unchanged.
Related draft #1221 overlaps
docs/live-proof.mdandtest/live-proof.test.tsbut does not implement this parser or presentation repair.Rank-up move disposition
Applied: removed the release-owned
CHANGELOG.mdentry. The release context remains in this PR body and the squash message.