Finish agent-selection cleanup and restore merge validation (#28607)

* Retire newly translated None option labels

* Reserve required verify check for the complete PR gate

* Preserve headless default tab styling and stabilize import ordering test

* Restore the option mutation clock after crossing fixes

* Check both supported workflow extensions
This commit is contained in:
Neil
2026-10-13 23:57:33 -07:00
committed by GitHub
parent 1c274cc178
commit b83a6f74be
4 changed files with 25 additions and 4 deletions
+1
View File
@@ -70,6 +70,7 @@ concurrency:
jobs:
verify:
name: Mobile verify
if: github.event_name == 'pull_request'
# Why ARM: 209s of this job is Vitest and nothing here needs x86: no Android SDK, emulator, gradle,
# Hermes or Watchman, no docker, and no artifacts. The Gemfile.lock lists the generic `ruby`
@@ -0,0 +1,20 @@
import { readdirSync, readFileSync } from 'node:fs'
import { join } from 'node:path'
import { expect, it } from 'vitest'
import { parse } from 'yaml'
it('reserves the required verify check for the full PR gate', () => {
const directory = '.github/workflows'
const providers = readdirSync(directory)
.filter((file) => /\.ya?ml$/.test(file))
.flatMap((file) => {
const workflow = parse(readFileSync(join(directory, file), 'utf8'))
if (!Object.hasOwn(workflow.on ?? {}, 'pull_request')) {
return []
}
return Object.entries(workflow.jobs)
.filter(([id, job]) => (job.name ?? id) === 'verify')
.map(() => file)
})
expect(providers).toEqual(['pr.yml'])
})
@@ -241,8 +241,7 @@ describe('two concurrent imports into one partition', () => {
const fileB = writeSource('new-b', '.b.example')
const first = importCookiesFromFile(fileA, 'persist:concurrency-test')
// Let the first import reach its write and block there.
await new Promise((resolve) => setTimeout(resolve, 5))
await vi.waitFor(() => expect(events).toContain('set:new-a'))
const second = importCookiesFromFile(fileB, 'persist:concurrency-test')
await new Promise((resolve) => setTimeout(resolve, 20))
@@ -120,8 +120,9 @@ export async function provisionWorktreeTerminals(
let setupTerminalHandle: string | null = null
let shellSkippedForSetup = false
try {
const settings = host.getSettings()
const setupLaunchMode = settings.setupScriptLaunchMode ?? 'new-tab'
const setupLaunchMode = args.setup
? (host.getSettings().setupScriptLaunchMode ?? 'new-tab')
: 'new-tab'
// A cleared creation choice leaves Setup as the only surface; splits still need a shell.
const setupOnly =
args.setup !== undefined && setupLaunchMode === 'new-tab' && args.setupOnly === true