Skip to content

upstream-rebase: send open questions and refused pushes to review - #50

Merged
kaniini merged 1 commit into
edera/4.22from
automation/rebase-route-to-pr
Oct 8, 2026
Merged

kaniini merged 1 commit into
edera/4.22from
automation/rebase-route-to-pr

Conversation

@kaniini

@kaniini kaniini commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Two cases where the nightly rebase currently does the wrong thing, both seen in yesterday's runs.

1. A clean rebase with an open question would auto-push

Run 37816859023 passed every mechanical check: zero drift and all three builds passing. Claude's report still flagged that upstream 0822a2e890 (unaligned vPCI accesses by the hardware domain) now reaches downstream Arm dom0 vPCI, where nothing on the Arm config path can carry out an unaligned access. Under the current rule that result would have been force-pushed with the question unread. It wasn't pushed only because the push happened to be refused.

Now the push also requires that the report asks for no decision. .github/scripts/report-needs-decision.sh says a decision is needed when either:

  • the report's Needs a decision section contains anything other than None., or
  • any line is marked UNSURE.

It errs towards a pull request: a stray UNSURE costs one review, while a missed question costs an unreviewed hypervisor change. The skill now tells Claude that raising a question stops the push, and to reserve UNSURE for that.

2. A refused push dropped the result

When the force-push was refused by a branch rule (run #4) or would be refused because edera/4.22 moved under the lease, publish just failed. The result was lost, and the next night repeated the same rebase, paid for it again, and failed the same way. A refused push now falls back to a pull request, stating the refusal as the reason, e.g. the push to `edera/4.22` was refused (`error: GH013: Repository rule violations found …`). The backup branch made for the refused attempt is deleted. If the tip moved, the land workflow already refuses to land a stale result, and the next night supersedes it.

Testing

  • report-needs-decision.test.sh, 9 cases:
    • no decision: no section; None.; an empty section.
    • decision: an item; UNSURE outside the section; heading case and trailing space; a level-3 heading inside the section; the real run Fix static plugin linking in oxenstored #4 report.
    • error: an unreadable file.
  • The suite passes under gawk and busybox awk. The script avoids regex interval braces, which older mawk (the Ubuntu runner's awk) does not support.
  • Checked the reason extraction against the real GH013 rejection text from run Fix static plugin linking in oxenstored #4 and against a real --force-with-lease "stale info" rejection.
  • upstream-rebase-selftest.yml runs the new tests and shellchecks the new scripts.
  • actionlint and shellcheck are clean, and the existing checker suite still passes.
  • Not yet exercised end to end in Actions. The next run that hits either case will.

A rebase can pass every mechanical check and still raise a question the
checker cannot see. Run 37816859023 was clean (zero drift, all builds
passing) while Claude's report flagged that upstream 0822a2e now
reaches downstream Arm dom0 vPCI; it would have been force-pushed with
that question unread had the push not been refused.

Stop the automatic push when the report asks for a decision: its
"Needs a decision" section holds anything but "None.", or any line is
marked UNSURE. report-needs-decision.sh makes that call, errs towards a
pull request, and is tested alongside the checker. The skill now tells
Claude that a question stops the push and to reserve UNSURE for that.

When the push itself is refused (a branch rule, or edera/4.22 moving
under the lease), open the pull request with the refusal as the reason
instead of failing the job. Previously the result was dropped and the
next night repeated the same rebase, paid for again, and failed the
same way. The backup branch made for the refused push is deleted.

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

PR Review

Reviewed at ed4ae58.

This check did not finish, so it has nothing to say about the diff. The run log has the reason.

Test Coverage

Reviewed at ed4ae58.

This check did not finish, so it has nothing to say about the diff. The run log has the reason.

@kaniini
kaniini merged commit 9a684f4 into edera/4.22 Oct 8, 2026
5 checks passed
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.

2 participants