تمام مضامین پر واپس

31 گھنٹے کی دوڑ

شائع کردہ:
agent-runcandyrushevidence

4 جولائی کی صبح اور 5 جولائی کی سہ پہر کے درمیان، ایک ایجنٹ بیڑے نے کسی انسان کے ایک سطر کوڈ لکھے بغیر ایک گیم فیچر سیٹ کو ڈیزائن ریکارڈ سے گرین بلڈ تک پہنچا دیا۔ اس نے 4 منٹ 45 سیکنڈ میں 17 issues دائر کیے، دو ریپازٹریوں میں 18 pull requests مرج کیے، اور بجلی کی بندش سے سیشن ختم ہونے سے 65 منٹ پہلے خود اپنی ہدف کی شرط پر مہر ثبت کر دی۔ اس وقفے میں کچھ بھی واپس (revert) نہیں کیا گیا۔

یہ رہی رسید۔ ہر بار (bar) ایک pull request ہے، جسے اس کے کھلنے اور مرج ہونے کے وقت کے مطابق رکھا گیا ہے؛ تفصیل کے لیے ان پر ہوور کریں یا Tab سے گزریں۔ سبز نشان وہ لمحہ ہے جب ہدف کی شرط پوری ہوئی؛ نقطہ دار (dashed) نشان بجلی کی بندش ہے۔

CandyRush PR (opened → merged)UTools PRGoal metPower lostOvernight
06:56 design record08:04 · 17 issues filed14:50 goal met15:56 power lost
Jul 4 · 06:0012:0018:00Jul 5 · 00:0006:0012:00
18 pull requests، کھلنے → مرج ہونے تک، دوڑ کی اپنی گھڑی پر (US Eastern)۔ سایہ دار پٹی = رات بھر؛ سبز لکیر = ہدف پورا 14:50؛ نقطہ دار لکیر = بجلی گئی 15:56۔ کسی بار کی مدت، سائیکل اور diff کے لیے اس پر ہوور یا فوکس کریں۔
دائر کیے گئے issues
17
4m 45s میں
مرج ہوئے PRs
18
17 CandyRush + 1 UTools
PR سائیکل کا وسط (median)
40m
کھلنے → مرج
بھیجا گیا diff
+16,213
−2,885 · 398 فائلیں تبدیل
ٹیسٹ، 0 ناکام
4,048
3,546 EditMode + 502 PlayMode
انخلا کا مارجن
65m 53s
ہدف پورا → بجلی گئی

پیش بندی

دوڑ کا آغاز کوڈ سے نہیں ہوا۔ اس کا آغاز ایک دستاویز سے ہوا۔ رات بھر جاری رہنے والے ایک ڈیزائن سیشن سے پندرہ فیصلوں کا ایک ریکارڈ برآمد ہوا، جسے اُن سترہ جوابات کے ساتھ یکجا کیا گیا جنہوں نے اِن فیصلوں کو حل کیا، اور یہ 06:56 پر PR #329 کے طور پر CandyRush کی dev برانچ پر پہنچا۔ پوری دوڑ کو اسی ریکارڈ کے مقابلے میں پرکھا گیا۔

پھر منصوبے کو دس منٹ کے اندر تین کمٹ میں خودمختاری کے لیے مضبوط کیا گیا: 07:22 پر خودکار عملدرآمد کی رن بُک، 07:30 پر جائزے کی پالیسی، اور 07:32 پر ہدف کمانڈ کا مسودہ۔ کوئی بھی issue دائر ہونے سے پہلے، آٹھ ایجنٹس پر مشتمل ایک مخالفانہ (adversarial) فین-آؤٹ نے مسودوں کو اصل سورس کے مقابلے میں پڑھا اور چھ تصحیحات لوٹائیں — ہر ایک ایسی بگ جس پر بصورتِ دیگر دوڑ آگے تعمیر کرتی رہتی۔ ایک نے بوس-اسٹال کے نظریے کو سرے سے رد کر دیا۔ ایک نے دریافت کیا کہ محض director.Time = 0 ویو کلپس کو دوبارہ فائر نہیں کر سکتا، چنانچہ کومبیٹ لوپ کو RebuildGraph راستے سے گزرنا پڑا — اور فلیگ شپ بالکل اسی طرح شپ ہوا۔

08:04:24 پر دائر کرنے کا سیلاب شروع ہوا: سترہ issues، A سے Q تک ایک حروف-کوڈ شدہ منصوبہ، 4 منٹ 45 سیکنڈ میں GitHub پر آ پہنچے (#330–#346)، اور ریپازٹری کا پہلا سنگِ میل ساتھ لے آئے۔ بساط بچھ چکی تھی، اور ہدف کمانڈ چل پڑی۔

دوڑ، گھنٹہ بہ گھنٹہ

ہر issue کے ساتھ یکساں سلوک ہوا: ایک عملدرآمد ذیلی ایجنٹ نے تبدیلی لکھی، آرکسٹریٹر نے اس پر مکمل ٹیسٹ سویٹس چلائیں، ایک جائزہ لینے والے نے diff کو درجہ دیا، اور تب جا کر یہ مرج ہوا۔ Pull requests ایک وقت میں ایک کر کے شامل ہوئے، ہر ایک کے بعد dev گرین رہا۔ پوری دوڑ میں کھلنے سے مرج ہونے تک کے سائیکل کا وسط (median) 40 منٹ تھا۔

CandyRush PRUTools toolkit
14:50 goal met15:56 power lost
UTools #11
#347
#348
#349
#350
#351
#353
#354 ★
#355
#356
#357
#358
#359
#360
#361
#362
#363
#364
Jul 4 · 06:0012:0018:00Jul 5 · 00:0006:0012:00
مکمل سیڑھی: 18 pull requests بطور کھلنے → مرج کے دورانیے۔ عنبری (amber) = CandyRush، بنفشی (violet) = UTools ٹول کٹ PR۔ نقطہ دار لکیریں ہدف پورا (14:50) اور بجلی گئی (15:56) کو ظاہر کرتی ہیں، دونوں 5 جولائی کو۔
PRبند کرےفراہم کردہکھلامرجسائیکلفرقفائلیں
UTools #11SwarmTools CompileCheck: بیچ بوٹ میں csproj سنکJul 4 09:5510:2329m+14/−01
#347#330بوس-اسٹال کی جڑ: چیٹ ری سیٹ نے AutoKillBosses کو مٹا دیاJul 4 09:5610:4853m+104/−447
#348#331فینٹم دوسرا ایگزٹ پورٹل: جنریٹر درست + آرٹ سینیٹائزر11:0311:3835m+142/−1176
#349#332آرک-آگاہ سیگمنٹ ڈیٹا ماڈل — StageData بائٹ کے لحاظ سے یکساں12:4513:2641m+514/−28166
#350#333مستقل ایگزٹ گیٹس: Hades ڈور ماڈل، لاک مشین14:2515:1247m+1,034/−87419
#351#334اسکیلیشن فارمولا: 8 بوس مقامات پر Fixed64 گہرائی × ٹیئر16:0716:5346m+775/−3033
#353#352وقفہ: چیٹ-init ریس جو دوڑ نے اپنی ہی فکس میں پکڑی17:0717:4033m+83/−03
#354 ★#335Load/RebuildGraph کے ذریعے لامتناہی-لوپ کومبیٹ، tier++، 120s ورسز18:5719:5457m+1,483/−1,24423
#355#337اینٹی-فارم اکانومی: ٹریش-XP سطح مرتفع — دوڑ کا سب سے بھاری PR22:4523:2943m+2,888/−6934
#356#336دشمن ٹیئر ہیو شفٹ — کھیل میں شامل مشکل کا میٹر23:58Jul 5 00:3335m+480/−09
#357#338منی-بوس گنٹلیٹ: رسک روم، چیسٹ-اکانومی اجارہ داری01:3002:1040m+1,648/−2331
#358#339ہورڈ: 75 سیکنڈ کی متعین بقا کی کھڑکی03:0103:4039m+1,635/−1323
#359#340ہنٹ: کِل کوٹا، بیکن ایرو، مستقل نشانات05:0405:4541m+2,033/−1531
#360#341پراپس ری ورک: 50 سیکنڈ کی متعین لوٹ-گریب06:2006:5938m+388/−1914
#361#342رسک پورٹلز: ہر 3 میں 1 ایلیٹ راستہ، داخلے کا سونا، اسکل پپس07:3608:1640m+768/−6223
#362#345HUD اسٹیٹس لائن: فی-آرکی ٹائپ مراحل، ٹیئر بیج، کوٹے08:5509:3238m+570/−1531
#363#343رن نتائج: اضافی مجموعی اسکور + فی-آرک ستارے10:2511:0440m+942/−5715
#364#344لابی ری ورک، Run-first — حتمی تصدیق اسی سائیکل کے اندر چلی12:0114:152h 14m+712/−2229

اوقات US Eastern ہیں۔ دوڑ کے مجموعے: CandyRush پر +16,199/−2,885، 397 فائل-تبدیلیوں پر محیط، مزید UTools پر +14۔

رات بھر

اٹھارہ میں سے سات pull requests 23:29 اور 08:16 کے درمیان اُس وقت مرج ہوئے جب گھر سو رہا تھا — اُن میں اینٹی-فارم اکانومی، ٹیئر-ہیو مشکل میٹر، اور تین مکمل آرکی ٹائپس شامل تھیں۔ پوری دوڑ کا سب سے بھاری diff — اکانومی کے لیے +2,888 — نے 23:29 پر رات کی شفٹ کا آغاز کیا، اور صبح سے پہلے اس کے بعد آنے والی چھ مرجز نے سائیکل 35 اور 41 منٹ کے درمیان رکھے۔ لوپ اس لیے سست نہیں ہوا کہ اسے کوئی نہیں دیکھ رہا تھا۔

فلیگ شپ، #354، 19:54 پر بالکل اسی طرح مرج ہوا جیسا پیشگی (pre-flight) فین-آؤٹ نے کہا تھا کہ ہونا چاہیے: لامتناہی-لوپ کومبیٹ Load/RebuildGraph کے راستے سے گزرا۔ اس سے پہلے، دوڑ کے اپنے صبح والے فکس کے اپنے جائزے نے ایک اسٹارٹ اپ ریس کو سامنے لایا؛ اس نے #352 دائر کیا، اسے ٹھیک کیا، اور 45 منٹ کے اندر #353 مرج کر دیا۔ اسی قسم کا خود-احتساب وہ وجہ ہے کہ کسی چیز کو واپس کرنے کی ضرورت نہیں پڑی۔

وہ ٹول کٹ جس نے باقی سب کی راہ کھولی

ایجنٹ / ٹول کٹ

وہ واحد pull request جو CandyRush نہیں تھا، اپنے حجم کے تناسب سے کہیں زیادہ اہم ثابت ہوا۔ UTools #11 نے ایک ہی فائل کو چھوا — Assets/com.irsiksoftware.swarmtools/Editor/SwarmTools.cs، +14/−0، 09:55 پر کھلا اور 10:23 پر مرج ہوا، ایک 29-منٹ کا سائیکل — اور اس نے CompileCheck مرحلے کو سکھایا کہ IDE پروجیکٹ فائلوں کو اسی بیچ بوٹ کے اندر سنک کرے۔ اس نے دوڑ کے ہر بعد کے pull request کے لیے باسی-.csproj والی CS2001 ناکامی کی قسم کو ختم کر دیا۔

UTools ایک فرسٹ-پارٹی ٹول کٹ ہے جو 27 com.irsiksoftware.* پیکجز پر مشتمل ہے — animation، audio، determinism، economy، logging، navigation، save، simulation، swarmtools، اور باقی — جسے CandyRush UPM لوکل-فائل حوالوں کے طور پر استعمال کرتا ہے (Packages/manifest.jsonfile:../../UTools/…)۔ چونکہ دونوں ریپازٹریاں متوازی برانچز کو ٹریک کرتی ہیں، UTools کو بالکل اسی برانچ پر ہونا پڑتا ہے جس کی CandyRush توقع کرتا ہے، ورنہ CandyRush کمپائل نہیں ہوگا۔ دوڑ نے پورے وقت UTools کے main اور CandyRush کے dev کو ایک دوسرے کے مقابلے میں گرین رکھا۔

روداد

#364 14:15 پر مرج ہوا، ہینڈ-آف تبصرہ 14:17 پر پوسٹ ہوا، اور دوڑ نے عین dev ٹِپ 674f7745 پر ایک آخری مکمل پاس کے لیے انجن چالو رکھے۔ 14:50:03 پر ہدف کی شرط پر مہر ثبت ہوئی:

CompileCheck
exit 0
دوہرا-پاس · اینالائزر صاف
EditMode
3,546/3,547
0 ناکام · 1 ماحول-گیٹڈ اسکِپ
PlayMode
502/520
0 ناکام · 18 اسکِپس
failures.json
[ ]
دونوں سویٹس · ٹریز صاف

دوڑ کا خالص حاصل: +151 EditMode ٹیسٹ، دونوں failures.json خالی، اور دونوں ریپازٹریوں پر ورکنگ ٹریز صاف۔ دوڑ نے جن دو PlayMode ریڈز کے ساتھ آغاز کیا تھا، اُن کی جڑ تلاش کر لی گئی اور وہ پہلے ہی دن دوپہر تک ختم ہو گئیں، پھر کبھی واپس نہ آئیں۔

انخلا

Run موڈ کا پورا مقالہ یہ ہے کہ لالچ کی ایک قیمت ہوتی ہے: ایک ورس زیادہ رُکو اور وائپ سب کچھ لے اُڑے گا۔ ہدف کی شرط پر مہر لگنے کے چھیاسٹھ منٹ بعد، دوڑ کو اپنے ہی مفروضے کو جینے کا موقع ملا۔ Windows ایونٹ لاگ نے 15:55:56 پر ایک گندی (dirty) شٹ ڈاؤن ریکارڈ کی — بجلی چلی گئی۔ یہ 3 گھنٹے 31 منٹ بند رہی، اور 19:26:31 پر بحال ہوئی۔

14:15 حتمی مرج14:50 ہدف پورا15:56 بجلی گئی19:26 بجلی بحال
انخلا کی کھڑکی، 14:00 → 20:00 مشرقی (Eastern)۔ ہدف-شرط کی مہر اور گندی شٹ ڈاؤن کے درمیان مارجن 65m 53s تھا۔

مارجن 65 منٹ 53 سیکنڈ تھا۔ وائپ نے ایک خالی کمرے کو نشانہ بنایا: ہر بائٹ پہلے ہی origin پر موجود تھا، اور مشین دونوں ریپوز پر صاف ٹریز کے ساتھ واپس آئی۔ سب سے تنگ بچاؤ تو مہر بھی نہ تھی — تقریباً 33-منٹ کا حتمی تصدیقی پاس 14:50 تک چلا۔ ایک گھنٹہ پہلے ہوتا تو بندش اسے ٹیسٹ سویٹ کے بیچوں بیچ ختم کر دیتی۔ جیسا کہ ہوا: صفر نقصان۔

یہ کیا ثابت کرتا ہے

دوڑ کا نکتہ یہ نہیں کہ یہ تیز تھی، اگرچہ تھی۔ نکتہ یہ ہے کہ اس پوسٹ میں موجود ہر دعوے کے پیچھے ایک عدد ہے، اور ہر عدد کو دعوے کے بجائے ماپا گیا: سائیکل کے اوقات pull-request کے ٹائم اسٹیمپس سے آتے ہیں، diff کے مجموعے git سے، ٹیسٹ کی گنتی سویٹ کے آؤٹ پٹ سے، اور بندش kernel-power ایونٹ سے۔ ایک ایجنٹ بیڑا بغیر نگرانی کے ڈیڑھ دن کی حقیقی انجینئرنگ کر سکتا ہے — اور یہ اتنا صاف نشان چھوڑ سکتا ہے کہ آپ کو کسی کی بات پر بھروسا نہ کرنا پڑے۔


تمام ٹائم اسٹیمپس US Eastern (UTC−4) ہیں، جو git کی تاریخ، GitHub API، اور Windows ایونٹ لاگ (Event 6008 / Kernel-Power 41) سے دوبارہ ترتیب دیے گئے ہیں۔ CandyRush اور UTools ریپازٹریاں نجی ہیں؛ یہاں موجود ہر عدد ماپا گیا ڈیٹا ہے، اندازہ نہیں۔