S00-012: Record blocked task and remediation handoff
Changes: Preserve incomplete work and blocker metadata for S00-012. This checkpoint does not mark implementation accepted. Validation: Session ended with status blocked. Blocker: Required automation suite fails in existing all-prompts budget test: S21-006 exceeds even a diagnostic 90000-character prompt limit. This blocks verification of the stdin remediation; production limit remains 80000. Task: S00-012 Agent: manual-ci-cd-stdin-20261015b Role: ci-cd Action: escalate Status: blocked Task title: Fix runner prompt delivery after partial stdin timeout
This commit is contained in:
1 parent
59b9ff62fe
commit
c28412ae8f
20 files changed
+491
-25
No files matched your search
@@ -220,6 +220,30 @@ else:
|
||||
self.assertEqual(state['tasks']['S00-001']['status'], 'blocked')
|
||||
self.assertTrue(state['retired_agents'])
|
||||
|
||||
def test_delayed_reader_receives_complete_large_utf8_prompt_and_eof(self):
|
||||
fake = self.root / 'fake_agent.py'
|
||||
fake.write_text(fake.read_text().replace(
|
||||
"prompt=sys.stdin.read();assert 'fresh session' in prompt",
|
||||
"import time;time.sleep(.5)\n"
|
||||
"payload=sys.stdin.buffer.read()\n"
|
||||
"assert payload == pathlib.Path(os.environ['LUMA_PROMPT_FILE']).read_bytes()\n"
|
||||
"prompt=payload.decode('utf-8');assert 'fresh session' in prompt\n"
|
||||
"print('Complete UTF-8 prompt and EOF:',len(payload),flush=True)"))
|
||||
(self.root / 'state/first-blocker').write_text('skip fixture blocker')
|
||||
prompt = 'This is a fresh session.\n' + '\U0001f642\u0416\n' * 20000
|
||||
runner = RUN_MODULE.Runner(self.root, dict(self.config, max_sessions=1,
|
||||
timeout_seconds=3))
|
||||
with patch.object(runner, 'prompt', return_value=prompt):
|
||||
result = runner.run()
|
||||
self.assertEqual(result['launched'], 1)
|
||||
self.assertEqual(self.tracker.state()['tasks']['S00-001']['status'], 'review')
|
||||
record_path = next((self.root / 'state/runs').glob('*/run.json'))
|
||||
record = json.loads(record_path.read_text())
|
||||
self.assertEqual(record['result'], {'status': 'review'})
|
||||
self.assertEqual(record['scope_violations'], [])
|
||||
self.assertIn('Complete UTF-8 prompt and EOF: ' + str(len(prompt.encode('utf-8'))),
|
||||
record_path.with_name('output.log').read_text())
|
||||
|
||||
def test_scope_violation_quarantines_and_requires_input(self):
|
||||
runner = RUN_MODULE.Runner(self.root, {'git_commits': False, 'argv': [sys.executable, '-c', "from pathlib import Path;Path('bad-edit.txt').write_text('wrong scope')"]})
|
||||
result = runner.run()
|
||||
|
||||
Reference in new issue
Block a user