mirror of
https://github.com/garrytan/gstack.git
synced 2026-10-03 18:06:54 +02:00
v1.91.7.0 feat: add functional QA and pre-publication docs checks (#2983)
* feat: add surface-aware exploratory QA and ship documentation gates * test: preserve delegated QA setup authority after main integration * fix(qa): clarify exploration order and preserve report artifacts * test(qa): follow the shared setup reference directly * refactor(ship): make verification and recovery routes explicit * test(ship): align evidence and review guards with explicit routes * fix(workflows): clarify ship recovery and functional QA evidence * fix(workflows): clarify approval recovery and full QA coverage * refactor(workflows): order review transactions and clarify ship state * fix(ship): clarify final verification and fail closed at publication * fix(evals): attribute native atomic documentation writes * fix(ship): clarify recovery and documentation lifecycle guidance * fix(test): preserve observed native placeholder styling in CI * fix(codex): report watchdog timeouts without a process-exit race * Checkpoint functional QA implementation and workflow validation repairs * Fix documentation and shared-review fixture contracts * docs: clarify judge reuse and evaluation supervision * test: align review evidence and selected case contracts * test: verify append-only documentation checkpoints and recovery * fix: qualify QA workflows and CI validation repairs * fix: launch shared-libs fixture scripts on Windows * fix: qualify QA deadlines, fixture isolation, and shard cleanup * fix: preserve qualified QA and cancellation repairs * fix: enforce functional fixture authority and share strict event decoding * fix: retain free-test evidence and explain recovery * fix: reject malformed native evidence after decoder consolidation * test: use reliable capture for telemetry privacy filters * test: refresh measured quick coverage and document validation costs * Fix native fixture receipts and preserve VM validation evidence * Align negative judge controls with upstream clarity policy * Fix report-only QA preparation and public evidence handling * Clarify QA-only preparation and current-report preservation * Stream Ship quality judgments with an explicit 64k response contract * Validate compact judge reasoning locally with supported wire schema * Align functional QA fixture instructions with evidence acceptance * Bind native browser diagnostics to execution evidence and align review verdicts * Preserve native diagnostic line boundaries * Serialize functional QA evidence from native captures * Keep large QA evidence fixture payload out of Windows argv
This commit is contained in:
1 parent
65bfb0ce49
commit
dcaea52800
333 files changed
+41755
-7357
No files matched your search
Vendored
+14
-3
@@ -15,7 +15,8 @@ if(scenario==='wrong-start')status.procStart+='0';
|
||||
if(scenario==='wrong-domain')status.pidDomain+='-different';
|
||||
if(scenario==='startup-waiting')status.waitingFor='permission prompt';
|
||||
fs.writeFileSync(statusFile,JSON.stringify(status));
|
||||
fs.writeFileSync(path.join(dir,'launch.json'),JSON.stringify({argv:process.argv.slice(2),planModeHint:process.env.GSTACK_PLAN_MODE??null,planModeForce:process.env.GSTACK_PLAN_MODE_FORCE??null,term:process.env.TERM??null,forceColor:process.env.FORCE_COLOR??null}));
|
||||
fs.writeFileSync(path.join(dir,'launch.json'),JSON.stringify({argv:process.argv.slice(2),planModeHint:process.env.GSTACK_PLAN_MODE??null,planModeForce:process.env.GSTACK_PLAN_MODE_FORCE??null,term:process.env.TERM??null,forceColor:process.env.FORCE_COLOR??null,
|
||||
terminalEnv:Object.fromEntries(['CI','TERM','COLORTERM','FORCE_COLOR','NO_COLOR'].map(key=>[key,process.env[key]??null]))}));
|
||||
const event=(kind,value)=>fs.appendFileSync(events,JSON.stringify({kind,value,at:Date.now()})+'\n');
|
||||
const row=(type,content,stop)=>JSON.stringify({type,sessionId:sid,cwd,message:{role:type,content,stop_reason:stop}})+'\n';
|
||||
const text=s=>[{type:'text',text:s}];
|
||||
@@ -30,7 +31,11 @@ let input='',seed='',submitted=false;
|
||||
process.stdin.setRawMode(true);process.stdin.resume();
|
||||
const hint='Try "refactor <filepath>"';
|
||||
if(scenario==='startup-prior-conversation')append('user',text('An earlier request'));
|
||||
if(scenario==='startup-terminal-placeholder-cursor')frame(process.env.TERM==='dumb'||!process.env.TERM?hint:'\x1b[7mT\x1b[27m\x1b[2m'+hint.slice(1)+'\x1b[22m');
|
||||
if(scenario==='startup-terminal-placeholder-cursor'){
|
||||
const styled=process.env.TERM&&process.env.TERM!=='dumb'&&process.env.FORCE_COLOR!=='0'
|
||||
&&(process.env.FORCE_COLOR==='1'||!process.env.CI&&!process.env.NO_COLOR);
|
||||
frame(styled?'\x1b[7mT\x1b[27m\x1b[2m'+hint.slice(1)+'\x1b[22m':hint);
|
||||
}
|
||||
else if(scenario==='startup-ci-placeholder')frame(process.env.CI==='true'&&process.env.FORCE_COLOR!=='1'?hint:'\x1b[2m'+hint+'\x1b[22m');
|
||||
else if(scenario==='startup-ci-typed-hint')frame(hint);
|
||||
else if(scenario==='startup-placeholder-cursor')frame('\x1b[7mT\x1b[27m\x1b[2m'+hint.slice(1)+'\x1b[22m');
|
||||
@@ -50,7 +55,13 @@ process.stdin.on('data',chunk=>{
|
||||
if(input==='\r'&&!submitted){
|
||||
submitted=true;input='';event('enter',seed);frame('');
|
||||
if(scenario==='no-ack')return;
|
||||
append('user',text(scenario==='fused'?seed+'\n/plan-eng-review':seed));
|
||||
if(scenario.startsWith('native-paste')){
|
||||
const body=scenario==='native-paste-changed'?seed.replace('Keep','Alter'):scenario==='native-paste-fused'?seed+'\n/plan-eng-review':seed;
|
||||
let native='\n\n<pasted_content id="1aab">\n'+body+'</pasted_content id="'+(scenario==='native-paste-mismatched'?'1aac':'1aab')+'">\n';
|
||||
if(scenario==='native-paste-duplicate')native+=native;
|
||||
if(scenario==='native-paste-appended')native+='/plan-eng-review';
|
||||
append('user',scenario==='native-paste-block'?text(native):scenario==='native-paste-multiple-blocks'?[...text(native),...text('extra request')]:native);
|
||||
}else append('user',text(scenario==='fused'?seed+'\n/plan-eng-review':seed));
|
||||
if(scenario==='duplicate')append('user',text(seed));
|
||||
if(scenario==='session-switch'){status.sessionId='bbbbbbbb-1111-2222-3333-aaaaaaaaaaaa';fs.writeFileSync(statusFile,JSON.stringify(status));return;}
|
||||
if(scenario==='foreign-cwd'){fs.writeFileSync(file,row('user',text(seed)).replace(cwd,cwd+'-other'));return;}
|
||||
|
||||
Reference in new issue
Block a user