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:
wt committed 2026-10-15 01:37:36 +07:00
1 parent 59b9ff62fe
commit c28412ae8f
20 files changed
+491 -25

No files matched your search

+24
View File
@@ -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()