mirror of
https://github.com/garrytan/gstack.git
synced 2026-10-03 01:46:55 +02:00
test: one owner per case id, a structural devex 0B setup rule, and correct design/gbrain actors
- plan-design-review-plan-mode was registered by two files; the PTY smoke is now plan-design-review-plan-mode-smoke, and a registry test requires one owner per case in case-sharded files. - plan-devex-finding-floor: the template's 0B narrative-confirmation question is classified as setup structurally instead of timing out a Haiku assessor. - setup-gbrain-remote: the actor accepted 'skip' on the MCP-registration question the test asserts; it now accepts that question and declines others. - design-review-plugin-handoff: the fake engine cited a file absent from the fixture repo and index.html linked a missing styles.css. Captured-question regressions with negative controls; each case passed a focused paid run.
This commit is contained in:
1 parent
8cf87d4729
commit
dfe5e733fb
10 files changed
+152
-21
No files matched your search
@@ -26,7 +26,7 @@ import * as path from 'path';
|
||||
import * as http from 'http';
|
||||
import { runAgentSdkTest, toSkillTestResult, passThroughNonAskUserQuestion, resolveClaudeBinary, type AgentSdkResult, type QueryProvider, type RunAgentSdkOptions } from './helpers/agent-sdk-runner';
|
||||
import { runRecordedOfficeHoursAttempt, OFFICE_HOURS_BUN_GRACE_MS } from './helpers/office-hours-attempt';
|
||||
import { publicEvents, redactPublicValue } from './helpers/setup-gbrain-sandbox';
|
||||
import { publicEvents, redactPublicValue, setupGbrainRemoteAnswer } from './helpers/setup-gbrain-sandbox';
|
||||
import { EvalCollector } from './helpers/eval-store';
|
||||
import { resolveEvalModel } from '../lib/eval-model';
|
||||
import { buildSetupGbrainFixture } from './helpers/setup-gbrain-fixture';
|
||||
@@ -263,17 +263,16 @@ describeE2E('/setup-gbrain Path 4 (Remote MCP) — happy path', () => {
|
||||
askUserQuestions.push({ input });
|
||||
const q = (input.questions as Array<{
|
||||
question: string;
|
||||
header?: string;
|
||||
options: Array<{ label: string }>;
|
||||
}>)[0];
|
||||
// Auto-decline / skip everything except the path-pick (which the
|
||||
// user-prompt already directed to Path 4).
|
||||
const decline =
|
||||
q.options.find((o) => /skip|decline|no thanks|local/i.test(o.label)) ?? q.options[q.options.length - 1]!;
|
||||
// Register at Step 5a (the contract under test); decline or skip every other gate.
|
||||
const answer = setupGbrainRemoteAnswer(q);
|
||||
return {
|
||||
behavior: 'allow',
|
||||
updatedInput: {
|
||||
questions: input.questions,
|
||||
answers: { [q.question]: decline.label },
|
||||
answers: { [q.question]: answer },
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user