Record submitted P08 validator repair and environment receipt mismatch

This commit is contained in:
Takeshi
2026-10-14 10:08:59 +09:00
parent c395c83b69
commit 2f60685aec
3 changed files with 777 additions and 0 deletions
@@ -242,5 +242,41 @@ if prepared_review:
return {"path": ".review-material/manifest.json", "file_count": len(manifest["files"]), "byte_limit": None}
Runner.detached, Runner.review_materials = reused_detached, reused_materials
# Scoped submission must also stage deletions absent at the original task base.
_original_scope = Runner.check_scope
def complete_pending_scope(self, task_id, wt, commit=None):
names = _original_scope(self, task_id, wt, commit)
if commit is None and self.config['project'] == 'the-tree-p08-03-code' and task_id == 'P08-03':
from runner.core import allowed, secret_path
contract = json.loads(self.task(task_id)['contract'])
for name in git(wt, 'diff', '--name-only', '--no-renames', 'HEAD').splitlines():
require(allowed(name, contract['allowed_paths']) and not secret_path(name) and not (Path(wt)/name).is_symlink(), 'pending submission scope')
names.append(name)
return sorted(set(names))
Runner.check_scope = complete_pending_scope
if os.environ.get('OWNER_P08_RECOVER_PARTIAL_SUBMIT') == '647196f':
require('--project' in sys.argv and sys.argv[sys.argv.index('--project')+1] == 'the-tree-p08-03-code', 'exact partial submission project')
r = Runner('the-tree-p08-03-code')
task = r.task('P08-03'); wt = Path(task['worktree'])
head = git(wt, 'rev-parse', 'HEAD')
require(task['state'] == 'blocked' and task['submitted'] == '7dde98ccb749cbd1c1b82e066b59350e73191400' and head.startswith('647196f'), 'known partial Runner submission')
require(git(wt, 'rev-parse', 'HEAD^') == task['submitted'] and git(wt, 'status', '--porcelain').strip() == 'D tests/fixtures/p08-03/repair13_images.py', 'only pending approved fixture deletion')
result = read_json(r.root/'runs/f0aef4ce56ab474fb2460bebfa7590f2/result.json')
require(result['status'] == 'submitted' and result['task_id'] == 'P08-03', 'actual submitted worker receipt')
require(not r.db.execute("SELECT 1 FROM runs WHERE status='running'").fetchone(), 'no live writer')
r.event('P08-03', 'owner_partial_submission_recovery', {'runner_created_commit': head, 'prior_submitted': task['submitted'], 'pending_path': 'tests/fixtures/p08-03/repair13_images.py', 'reason': 'Original-base scope omitted deletion of a subsequently added fixture; finish original submitted worker output without reimplementation'})
r.state('P08-03', 'implementing', 'Finish verified partial Runner submission only')
actual_task = r.task
def submission_task(task_id):
value = dict(actual_task(task_id))
if task_id == 'P08-03': value['submitted'] = head
return value
r.task = submission_task
try: r.submit('P08-03')
finally: r.task = actual_task
print(json.dumps({'submitted': r.task('P08-03')['submitted'], 'state': r.task('P08-03')['state']}))
sys.exit(0)
from runner.cli import main
main()