fix(maint): reuse recent hosted gates after rebase#100663
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 854ce5eef2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
854ce5e to
ebf54aa
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ebf54aa227
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if [ "$prep_sync_patch_id" != "$pre_sync_patch_id" ]; then | ||
| echo "Rebase changed the PR patch; fresh hosted evidence is required." | ||
| exit 1 |
There was a problem hiding this comment.
Allow exact-gate sync when rebase changes patch
When OPENCLAW_TESTBOX=1 and the rebase is not patch-identical, such as after a conflict resolution changes the diff, this exits before push_prep_head_to_pr_branch runs. The message says fresh hosted evidence is required, but the rebased head is never pushed, so GitHub cannot produce exact-head CI/Testbox for it and a later prepare-run still sees the old remote SHA. This regresses the existing exact-evidence path for non-identical rebases; continue the sync while disabling recent-evidence reuse instead of aborting here.
Useful? React with 👍 / 👎.
|
Codex review: needs real behavior proof before merge. Reviewed July 6, 2026, 2:37 AM ET / 06:37 UTC. Summary PR surface: Tests +379, Other +210. Total +589 across 5 files. Reproducibility: yes. from source inspection: in the PR head, a non-patch-identical rebase under Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Keep recent-evidence reuse for patch-identical Testbox rebases, but let changed-patch rebases push the new head and require fresh exact-head hosted gates. Do we have a high-confidence way to reproduce the issue? Yes from source inspection: in the PR head, a non-patch-identical rebase under Is this the best way to solve the issue? No. The patch-identical reuse design is plausible, but the best fix must preserve the existing exact-head path by pushing changed-patch rebases and only disabling recent-evidence reuse. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 4029f1c07e7a. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Tests +379, Other +210. Total +589 across 5 files. View PR surface stats
Acceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
Merged via squash.
|
* origin/main: (1287 commits) fix(android): block loopback canvas navigation (openclaw#99874) fix(hooks): suppress unhandled stdout/stderr stream errors in gmail watcher (openclaw#100519) fix(memory-core): guard qmd mcporter JSON.parse against non-JSON stdout (openclaw#98381) fix(build): fall back to tsx for build TypeScript scripts (openclaw#91262) feat(skills): suggest saving detected reusable workflows by default (openclaw#95477) (openclaw#100692) docs(changelog): remove generated release-note entries feat(telegram): offer BotFather web app flow in setup help and docs (openclaw#100540) fix(ios): unify Talk and Settings row typography on one branded detail row (openclaw#100515) feat(gateway): add persisted crash-loop breaker and fatal-config exit contract refactor(macos): lock and unify PortGuardian tunnel record persistence so concurrent app instances cannot lose orphan records (openclaw#100601) fix: stop reconnecting on protocol mismatch (openclaw#98414) fix(maint): reuse recent hosted gates after rebase (openclaw#100663) fix(ui): reopen web terminals without stale content (openclaw#100665) fix(browser): diagnose empty WSL2 Chrome replies (openclaw#100590) fix(ios): chat snaps back to bottom when scrolling to top via status-bar tap (openclaw#100502) Treat already-compacted CLI compaction as no-op (openclaw#99136) docs(changelog): remove direct main fix entry fix(feishu): strip internal tool-trace banners from outbound text (openclaw#98705) fix(message): thread --limit through to CLI formatter and surface provider pagination hints (openclaw#99089) fix(voyage): close response body stream when batch output JSONL parsing throws (openclaw#98840) ... # Conflicts: # extensions/memory-wiki/package.json
* fix(maint): reuse recent hosted gates after rebase * fix(maint): preserve whitespace in gate fingerprints
* fix(maint): reuse recent hosted gates after rebase * fix(maint): preserve whitespace in gate fingerprints
What Problem This Solves
Resolves an operational problem where a controlled PR rebase always invalidates otherwise-green hosted CI/Testbox evidence, forcing maintainers to wait for the complete exact-head suite again even when the PR patch is unchanged and the prior run is recent.
Why This Change Was Made
The prepare workflow now accepts successful hosted evidence from the immediately recorded pre-rebase PR head for up to 24 hours when the local and hosted pre-sync trees match and a whitespace-preserving patch ID proves the PR diff survived the rebase unchanged. Exact-head evidence remains preferred; a terminal failure on the new head blocks reuse, and every conditional hosted workflow scheduled on the new head must also have recent green evidence on the recorded head.
User Impact
Maintainers can finish preparing recently green PRs after a clean, patch-identical rebase without waiting for a redundant full hosted suite. This changes maintainer tooling only; it does not affect the OpenClaw runtime or end users.
Evidence
tbx_01kwty5d9yzm087es5nf93am7m: 53 focused tests passed across hosted-gate verification and PR preparation, including whitespace-sensitive patch fingerprints.pnpm check:changedfor the tooling lane with zero lint warnings or errors.node --check scripts/verify-pr-hosted-gates.mjs,bash -n scripts/pr-lib/gates.sh scripts/pr-lib/prepare-core.sh, andgit diff --checkpassed.AI-assisted change; implementation and policy bounds reviewed by the maintainer.