import pathlib, subprocess, json, sys
root=pathlib.Path(sys.argv[1]); home=pathlib.Path(sys.argv[2]); port=sys.argv[3]
workspace=home/'fixture'/'Large review'
workspace.mkdir(parents=True,exist_ok=True)
def git(*args): subprocess.run(['git',*args],cwd=workspace,check=True,capture_output=True)
for f in range(1,7):
 (workspace/f'file{f:02}.txt').write_text(''.join(f'Original file{f:02} line {i:04}: original review content padding.\n' for i in range(1,1001)))
git('init','-q','-b','main'); git('add','.'); git('-c','user.name=Scenario','-c','user.email=scenario@example.invalid','commit','-qm','Initial fixture')
def cli(*args):
 return subprocess.run(['node','apps/server/src/bin.ts',*args,'--base-dir',str(home)],cwd=root,env={**__import__('os').environ,'T3CODE_PORT':port},check=True,capture_output=True,text=True).stdout
cli('project','add',str(workspace),'--title','Large review')
thread=json.loads(cli('thread','start',str(workspace),'Review large changes','--title','Incremental diff review','--provider','devReplay','--model','multi-turn','--wait','--json'))
for f in range(1,7):
 (workspace/f'file{f:02}.txt').write_text(''.join(f'Updated file{f:02} line {i:04}: updated review content padding.\n' for i in range(1,1001)))
(home/'fixture-thread.json').write_text(json.dumps(thread))
print(json.dumps({'workspace':str(workspace),'thread':thread}))
