feat: enforce proactive report gate during force-recall preflight
This commit is contained in:
@@ -73,6 +73,49 @@ const fixtures = [
|
||||
assert.equal(JSON.stringify(output.progressEvidence).includes('Wait for delegated log survey'), false, 'subagent wait: progressEvidence must not derive from taskRecord.task_name');
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'report binding fields preserved',
|
||||
input: {
|
||||
requestText: 'Dispatch a subagent to inspect logs and wait for the result.',
|
||||
canReplyNow: false,
|
||||
needsSubagent: true,
|
||||
needsWaiting: true,
|
||||
checkpointTrigger: 'when delegated work returns or the next checkpoint fires',
|
||||
externalizedTrigger: 'wrapper-derived checkpoint artifact',
|
||||
triggerKind: 'artifact',
|
||||
firstReportTrigger: 'when delegated work returns or at 10 minutes, whichever comes first',
|
||||
nextReportCondition: 'report again only after new verifier output or blocker-state change',
|
||||
fallbackState: 'blocked',
|
||||
reportMode: 'watchdog',
|
||||
ownerVisibleIfStalled: true,
|
||||
},
|
||||
assert(output) {
|
||||
assert.equal(output.firstReportTrigger, 'when delegated work returns or at 10 minutes, whichever comes first');
|
||||
assert.equal(output.nextReportCondition, 'report again only after new verifier output or blocker-state change');
|
||||
assert.equal(output.fallbackState, 'blocked');
|
||||
assert.equal(output.reportMode, 'watchdog');
|
||||
assert.equal(output.ownerVisibleIfStalled, true);
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'wrapper does not fabricate hard report binding fields',
|
||||
input: {
|
||||
requestText: 'Dispatch a subagent to inspect logs and wait for the result.',
|
||||
canReplyNow: false,
|
||||
needsSubagent: true,
|
||||
needsWaiting: true,
|
||||
checkpointTrigger: 'when delegated work returns or the next checkpoint fires',
|
||||
externalizedTrigger: 'wrapper-derived checkpoint artifact',
|
||||
triggerKind: 'artifact',
|
||||
},
|
||||
assert(output) {
|
||||
assert.equal(output.firstReportTrigger, 'when delegated work returns or the next checkpoint fires');
|
||||
assert.equal(output.nextReportCondition, 'After next meaningful milestone');
|
||||
assert.equal(output.fallbackState, '');
|
||||
assert.equal(output.reportMode, '');
|
||||
assert.equal(output.ownerVisibleIfStalled, false);
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
function runFixture(fixture) {
|
||||
|
||||
Reference in New Issue
Block a user