From ac8b391c930d832aba10ade4b2d0f00757b34330 Mon Sep 17 00:00:00 2001 From: juliantellez <4896851+juliantellez@users.noreply.github.com> Date: Tue, 1 Sep 2026 09:29:49 +0000 Subject: [PATCH] docs: pick pull request 4 as the subject to land --- ...ubject-4-sixteen-open-and-one-red-check.md | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 docs/subject-4-sixteen-open-and-one-red-check.md diff --git a/docs/subject-4-sixteen-open-and-one-red-check.md b/docs/subject-4-sixteen-open-and-one-red-check.md new file mode 100644 index 0000000..d1b08f2 --- /dev/null +++ b/docs/subject-4-sixteen-open-and-one-red-check.md @@ -0,0 +1,136 @@ +# The pull request to land + +I fetched first, then I read. I read this on 1 September 2026 at 09:26 in Coordinated Universal +Time. `origin/main` is at `3b5f6cc2038dfd13b17fc55714b525be076336e4`. + +Sixteen pull requests are open in `atlantic-blue/transcript`. They are the numbers 4 to 19. + +## The subject + +- Number: 4 +- Address: https://github.com/atlantic-blue/transcript/pull/4 +- Title: fix: report what the platform actually answered instead of a missing video +- Head branch: `diagnose-the-boundary-and-report-the-real-cause` +- Head commit: `9e819482aad60f86b7c085402545b1c49f7cfb53` +- Base branch: `main` +- Draft: no +- Conflicts with `main`: no +- Checks that are not passing: `plan and apply` + +## Why I picked this one + +A pull request qualifies on a conflict with `main`, or on a failing check, or on both. + +No open pull request conflicts with `main`. So the conflict test selects nothing. + +Pull request 4 is the only open pull request with a check that is not passing. It is also the +oldest of the sixteen. It opened on 31 August 2026 at 11:30. Every other one opened on +1 September 2026. + +## The check that is not passing + +The name is `plan and apply`. It started at 09:01 and it completed at 09:05 on 1 September 2026. +Its conclusion is failure. The job is here: + +https://github.com/atlantic-blue/transcript/actions/runs/33490002826/job/99798994134 + +Three check runs exist on the head commit: + +- `code`, completed, success. +- `infrastructure`, completed, success. +- `plan and apply`, completed, failure. + +## The pull request summary hides that check + +`gh pr checks 4` prints two lines. It prints `code` and it prints `infrastructure`. It calls both a +pass, and it exits 0. It does not print `plan and apply`. + +Read the check runs on the head commit instead: + +``` +gh api repos/atlantic-blue/transcript/commits/9e819482aad60f86b7c085402545b1c49f7cfb53/check-runs \ + --jq '.check_runs[] | "\(.name) \(.status) \(.conclusion)"' +``` + +That command prints three names. One of them is a failure. + +The trigger causes the difference. `plan and apply` is the only job in the `deploy` workflow. That +workflow starts on a push to `main`, and it starts on a manual start. It does not start on a pull +request, so GitHub keeps the run out of the pull request summary. An absent check looks the same as +a passing check. + +## No check is mandatory in this repository + +I read three endpoints today. `branches/main/protection` answers 404 with "Branch not protected". +`rulesets` answers with an empty list. The combined status endpoint answers `pending` with zero +contexts. + +So no check is mandatory here, and no check blocks a merge. I read the test as "a check that is not +passing", not as "a check that a branch rule makes mandatory". I name that judgement, because it +decides the answer. Under the strict reading nothing is eligible, and a real red check on the +oldest pull request stays hidden. + +## The exclusions I checked + +Draft: no pull request is a draft. `isDraft` is false on all sixteen. + +A head branch that another pull request is based on: every `baseRefName` is `main`. No pull request +is based on another pull request's head branch. So landing pull request 4 breaks no child. + +Conflicts: GitHub answers `MERGEABLE` and `CLEAN` for all sixteen. I did not trust that answer +alone. I ran `git merge-tree --write-tree origin/main ` for each one. Each command exits 0 and +prints no conflict line. + +## The other fifteen open pull requests, and why each is not eligible + +Each one is newer than pull request 4. Each one carries two check runs, `code` and +`infrastructure`, and both pass. None conflicts with `main`. None is a draft. None is the base of +another pull request. So none qualifies. + +- Number 5, `docs: name the pull request to land`, head `46b9460a`, opened 00:57. Adds `subject.md`. +- Number 6, `docs: the subject to land is pull request 4`, head `9597c60c`, opened 07:12. Adds `subject.md`. +- Number 7, `docs: name pull request 4 as the subject to land`, head `e44acfdb`, opened 07:13. Adds `subject.md`. +- Number 8, `docs: say what landing pull request 4 found`, head `c2878ae4`, opened 07:23. Adds `land.md`. +- Number 9, `docs: record pull request 4 as the subject to land`, head `d3ced9d9`, opened 07:33. Adds `docs/subject.md`. +- Number 10, `docs: record what landing pull request 4 found`, head `a258d485`, opened 07:44. Adds `docs/land.md`. +- Number 11, `docs: name pull request 4 as the subject to land`, head `b09ec2fc`, opened 07:51. Adds `docs/the-subject-to-land.md`. +- Number 12, `docs: record what landing pull request 4 found`, head `0a959240`, opened 07:58. Adds `docs/landing-pull-request-4.md`. +- Number 13, `docs: name pull request 4 as the subject to land`, head `f5f866f9`, opened 08:04. Adds `docs/subject-pull-request-4.md`. +- Number 14, `docs: record what landing pull request 4 found`, head `cd85b465`, opened 08:12. Adds `docs/land-pull-request-4-the-address-is-refused.md`. +- Number 15, `docs: the subject to land is pull request 4, red on plan and apply`, head `4ba306a0`, opened 08:20. Adds `docs/the-subject-is-pull-request-4.md`. +- Number 16, `docs: record what landing pull request 4 found`, head `0a694313`, opened 08:29. Adds `docs/land-pull-request-4-the-check-is-red-on-main.md`. +- Number 17, `docs: name pull request 4 as the subject to land`, head `0279053a`, opened 08:36. Adds `docs/subject-4-the-oldest-with-a-red-check.md`. +- Number 18, `docs: record pull request 4 as the only open one with a red check`, head `cd720f35`, opened 09:13. Adds `docs/subject-4-the-only-red-check-of-fourteen.md`. +- Number 19, `docs: record why the deploy gate on pull request 4 stays red`, head `864f2c1b`, opened 09:23. Adds `docs/land-4-the-address-is-refused-and-the-code-is-proved.md`. + +Numbers 5, 6, 7, 9, 11, 13, 15, 17 and 18 are the output of earlier rounds of this same task. Each +one names pull request 4. Numbers 8, 10, 12, 14, 16 and 19 report the round that worked it. + +## A collision that is already there + +Numbers 5, 6 and 7 each add `subject.md` at the root of the repository. `main` holds no such file, +so none of the three conflicts with `main` today. The first of them to merge creates the file. Then +the other two conflict on add over add, and a person must resolve them by hand. + +The pull request that carries this report adds `docs/subject-4-sixteen-open-and-one-red-check.md`. +I read the file list of all sixteen open pull requests. No other one touches that path, so it +conflicts with none of them. + +## What an earlier round already found on pull request 4 + +One earlier round worked pull request 4 to the end. Its report ships as numbers 10, 12, 14, 16 and +19. I did not measure these readings again. Read them as context, not as facts I verified today. + +- The branch needs no merge. `origin/main` at `3b5f6cc2` is an ancestor of the head. +- Every gate that runs in a sandbox passes on the branch. The suite is 127 tests. +- The red step is a correct gate. It asks the deployed page for a transcript and does not get one. +- The platform refuses the deployed function with a bot check. +- The block is on the address the function calls from, not on the client the request claims to be. +- The fix needs an egress address that the platform accepts. Every option for that bills while + nobody visits, and `CLAUDE.md` refuses those by name. A person must decide. + +## What I verified today + +I verified the state that decides the pick: the list of open pull requests, the draft flag, the +base branch, the mergeability by `git merge-tree`, and the check runs on every head commit. I read +each one on 1 September 2026 after a fetch.