From 06d4548fbcba4e6345f23fbfc054b3a624ab7049 Mon Sep 17 00:00:00 2001 From: JinWoo Lee Date: Fri, 13 Nov 2026 18:31:34 +0900 Subject: [PATCH] test(g01): correct v3 fixture header oracle --- docs/evidence/g01-live-canary.md | 23 +++++++++++++++++++ .../controller_process_broker_fixture_test.go | 4 +++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/docs/evidence/g01-live-canary.md b/docs/evidence/g01-live-canary.md index 26abde1..18a63bd 100644 --- a/docs/evidence/g01-live-canary.md +++ b/docs/evidence/g01-live-canary.md @@ -1029,3 +1029,26 @@ These remain synthetic offline proofs. They do not establish live GitHub workflow stability, Scale Set cleanup, or runner execution. Issue #1 remains OPEN and Project #2 remains In progress; no live provider, runner, credential, Docker or host operation was performed. + +### Post-merge Public CI G01-core correction — 2026-11-13 + +Public CI [run 43399911927](https://github.com/1XP-AI/gh-runnerd/actions/runs/43399911927) +completed on merge SHA `4b9b7be9179224f02a87c555d1743ced6652f11a`. G01 core +failed in `TestControllerProcessHandoffV3ActualBrokerChild` for the +`selected-callee`, `changed-callee`, and `forged-receipt` cases; the other eight +jobs passed. The failed trace showed G02's explicit User-Agent and an unset +Accept-Encoding on `/app`, while the fixture incorrectly required `gzip`. +This was a fixture-oracle mismatch: `github.go` sets User-Agent but does not +set Accept-Encoding, and the synthetic RoundTripper records the client request +headers rather than final wire-level transport behavior. + +| Check | Result | +|---|---| +| Public CI `TestControllerProcessHandoffV3ActualBrokerChild` | FAIL before fixture correction; three cases rejected the unset Accept-Encoding | +| Go 1.27.3 `go test -race -p=1 -count=1 -tags=g01_pair_fixture -run '^TestControllerProcessHandoffV3ActualBrokerChild$' ./livecanary` | FAIL before correction with the same three cases; PASS after correcting the expected unset header | +| Remaining Public CI jobs on merge SHA `4b9b7be` | PASS (8 jobs); aggregate Go check failed due to G01 core | + +Local build/module caches and temporary files remained on `/Volumes/worktree`. +The correction changes only the tagged fixture header expectation. A fresh +fix PR and its exact-head review/CI are still required; no production behavior +or live canary is changed by this correction. diff --git a/experiments/g01-scaleset/livecanary/controller_process_broker_fixture_test.go b/experiments/g01-scaleset/livecanary/controller_process_broker_fixture_test.go index e31401e..8cfb640 100644 --- a/experiments/g01-scaleset/livecanary/controller_process_broker_fixture_test.go +++ b/experiments/g01-scaleset/livecanary/controller_process_broker_fixture_test.go @@ -268,7 +268,9 @@ func assertProcessBrokerTrace(t *testing.T, transport *processBrokerHTTP, want [ requestPath, _, _ := strings.Cut(trace.RequestURI, "?") g02IdentityRequest := requestPath == "/app" || requestPath == "/orgs/fixture-org/installation" g01Headers := trace.Accept == "application/vnd.github+json" && trace.APIVersion == "2022-11-28" && trace.ContentType == "application/json" && trace.AcceptEncoding == "identity" && trace.UserAgent == "gh-runnerd-g01-broker-evidence" - g02Headers := trace.Accept == "application/vnd.github+json" && trace.APIVersion == "2022-11-28" && trace.ContentType == "" && trace.AcceptEncoding == "gzip" && trace.UserAgent == "gh-runnerd-g02-evidence" + // The G02 github.go client sets User-Agent but leaves Accept-Encoding + // unset; this synthetic RoundTripper records the client request headers. + g02Headers := trace.Accept == "application/vnd.github+json" && trace.APIVersion == "2022-11-28" && trace.ContentType == "" && trace.AcceptEncoding == "" && trace.UserAgent == "gh-runnerd-g02-evidence" if (g02IdentityRequest && !g02Headers) || (!g02IdentityRequest && !g01Headers) { t.Fatalf("broker request headers differ at %d: %+v", index, trace) }