v1.87.5.0 perf: remove idle waits from tests and CI planning (#2897)

* v1.87.5.0 perf: remove idle waits from tests and CI planning

* fix: settle split PTY redraws before routing input

* docs: record final burst-safe test benchmarks

* fix: keep cold-setup snapshot metadata dependency-free

* fix: avoid early-reader pipe races in artifact URL parsing

* fix: preserve safety matches for multiline command payloads

* fix: recognize concurrent CSO publication removal

* test: preload the UI design-review target before invocation

* docs: record validation blocker fixes

* fix: bind plan observer rejection to the invoked command

* fix: count only native design decisions in the UI gate

* docs: clarify UI-positive eval evidence requirements

* test: recognize native UI decisions without weakening finding counts

* test: decouple native UI evidence from question punctuation

* test: recognize concrete native UI decisions independently of prose format

* fix: retain failed eval logs under the hidden CI cache

* test: await telemetry completion instead of racing disk writes
This commit is contained in:
Garry Tan
2026-09-21 12:27:25 -04:00
committed by GitHub
parent a6b3a57512
commit 35dd014c58
42 changed files with 1583 additions and 284 deletions
+3 -3
View File
@@ -17,7 +17,7 @@ export function pickDesignCountOutsideVoices(
if (active.signature !== identity) return null;
const q = call.questions[index]!;
if (q.multiSelect || !/^outside(?: design)? voices$/i.test(q.header.trim()) ||
!/<gstack-qid:outside-voices-design>/.test(q.question)) return null;
!/<gstack-qid:(?:outside-voices-design|plan-design-review-outside-voices)>/.test(q.question)) return null;
question = q.question;
labels = q.options.map(option => option.label);
} else {
@@ -31,11 +31,11 @@ export function pickDesignCountOutsideVoices(
labels = active.options.map(option => option.label);
while (labels.length > 2 && /^(?:Type something\.?|Chat about this)$/i.test(labels.at(-1)!.trim())) labels.pop();
}
if (!/\b(?:want|run|include|enable)\b[^?]{0,90}\boutside design voices\b/i.test(question) ||
if (!/\b(?:want|run|include|enable)\b[^?]{0,90}\boutside(?: design)? voices\b/i.test(question) ||
!/\b(?:before|for)\s+(?:the\s+)?(?:detailed\s+)?(?:design\s+)?review\b/i.test(question)) return null;
labels = labels.map(label => label.trim().replace(/\s*\(recommended\)\s*$/i, ''));
if (labels.length !== 2) return null;
const yes = labels.map(label => /^Yes,?\s+run outside design voices$/i.test(label));
const yes = labels.map(label => /^Yes,?\s+run outside(?: design)? voices$/i.test(label));
const no = labels.map(label => /^No,?\s+proceed without$/i.test(label));
if (yes.filter(Boolean).length !== 1 || no.filter(Boolean).length !== 1) return null;
return no.findIndex(Boolean) + 1;