{"receipts":[{"ledger_sha":"6fd0f69fd9b476b37f8e9910","prev_ledger_sha":null,"receipt_sha":"demo_code_seed_0001","kind":"code_agent","task":"[demo] make hello.py print 42 and run it","verdict":"shipped","ok":true,"files":["hello.py"],"green_runs":1,"failed_runs":0,"verifies":0,"attempts":null,"html_sha":null,"ts":1785057152,"source":"demo_seed","demo":true,"selftest":false},{"ledger_sha":"384cc17a77e4684c54bb7441","prev_ledger_sha":"6fd0f69fd9b476b37f8e9910","receipt_sha":"demo_visual_seed_0001","kind":"visual_build","task":"[demo] tiny animated canvas pulse","verdict":"verified","ok":true,"files":[],"green_runs":null,"failed_runs":null,"verifies":null,"attempts":1,"html_sha":"demo_visual_seed_html","ts":1785057152,"source":"demo_seed","demo":true,"selftest":false},{"ledger_sha":"72b908079e8c9a554a41a909","prev_ledger_sha":"384cc17a77e4684c54bb7441","receipt_sha":"5c2466d6a331594626af9333","kind":"code_agent","task":"selftest: write hello.py that prints 42 and run it","verdict":"shipped","ok":true,"files":["hello.py"],"green_runs":1,"failed_runs":0,"verifies":0,"attempts":null,"html_sha":null,"ts":1785059210,"source":"selftest","demo":false,"selftest":true},{"ledger_sha":"5a3f3515a5e37658621cfc78","prev_ledger_sha":"72b908079e8c9a554a41a909","receipt_sha":"593ada39bc8ddc517f33456f","kind":"visual_build","task":"code me a fps game with lots of blood","verdict":"verified","ok":true,"files":[],"green_runs":null,"failed_runs":null,"verifies":null,"attempts":2,"html_sha":"554c46e67ef310d763017e4c","ts":1785117544,"source":"api.demo.code.visual.build","demo":false,"selftest":false},{"ledger_sha":"169bae914d575d897f1d6f6b","prev_ledger_sha":"5a3f3515a5e37658621cfc78","receipt_sha":"cd51344cd8aba11d2fd341e0","kind":"visual_build","task":"create a first-person shooter game with lots of blood and address your concerns about the lack of camera logic, perspective, and map, we can start by implementi","verdict":"verified","ok":true,"files":[],"green_runs":null,"failed_runs":null,"verifies":null,"attempts":2,"html_sha":"8790c99f7b1df1954e5ba7ce","ts":1785117665,"source":"api.demo.code.visual.build","demo":false,"selftest":false},{"ledger_sha":"31f5b8abf9a516e6709f470c","prev_ledger_sha":"169bae914d575d897f1d6f6b","receipt_sha":"44baa7a067fab3eb59f3a4c2","kind":"code_agent","task":"Create solution.py defining parse_duration(s) -> float that converts an ISO-8601 duration to seconds. Examples: P3DT4H5M6S -> 273906.0, PT0.5S -> 0.5. Raise Val","verdict":"shipped","ok":true,"files":["solution.py"],"green_runs":2,"failed_runs":0,"verifies":1,"attempts":null,"html_sha":null,"ts":1785420035,"source":"api.demo.code.run","demo":false,"selftest":false},{"ledger_sha":"7fb8dda82f411bf42a4ac02b","prev_ledger_sha":"31f5b8abf9a516e6709f470c","receipt_sha":"0f5e12f682d212b438a7d3ba","kind":"code_agent","task":"Create solution.py defining is_palindrome(s) that ignores case, spaces and punctuation. Print a couple of checks.","verdict":"shipped","ok":true,"files":["solution.py"],"green_runs":2,"failed_runs":0,"verifies":1,"attempts":null,"html_sha":null,"ts":1785420317,"source":"api.demo.code.run","demo":false,"selftest":false},{"ledger_sha":"104b37a046069c92a24b945c","prev_ledger_sha":"7fb8dda82f411bf42a4ac02b","receipt_sha":"a2a8556f58ff36a20858b91e","kind":"code_agent","task":"Create solution.py defining add(a,b) that returns a+b. Print add(2,3).","verdict":"shipped","ok":true,"files":["solution.py"],"green_runs":2,"failed_runs":0,"verifies":1,"attempts":null,"html_sha":null,"ts":1785421391,"source":"api.demo.code.run","demo":false,"selftest":false},{"ledger_sha":"e53d7d7ce90b487701d17451","prev_ledger_sha":"104b37a046069c92a24b945c","receipt_sha":"01edb6bc04d9a84d8610c308","kind":"code_agent","task":"Create solution.py defining double(n) returning n*2. Print double(21).","verdict":"shipped","ok":true,"files":["solution.py"],"green_runs":2,"failed_runs":0,"verifies":1,"attempts":null,"html_sha":null,"ts":1785421647,"source":"api.demo.code.run","demo":false,"selftest":false},{"ledger_sha":"6e2544142541402f32303b49","prev_ledger_sha":"e53d7d7ce90b487701d17451","receipt_sha":"ce02214c1581bccd6ea70a7c","kind":"code_agent","task":"Create report.py defining summarize(rows) that returns a dict with keys n and total, where total sums the 'amount' field. Also create helpers.py defining clean(","verdict":"shipped","ok":true,"files":["report.py","helpers.py"],"green_runs":4,"failed_runs":0,"verifies":3,"attempts":null,"html_sha":null,"ts":1785422657,"source":"api.demo.code.run","demo":false,"selftest":false},{"ledger_sha":"79c8a97168f33124cc5812b7","prev_ledger_sha":"6e2544142541402f32303b49","receipt_sha":"8ed2df474bc9baaee2c3b2db","kind":"code_agent","task":"Create solution.py defining evaluate(s) that returns the length of s. Print evaluate(\"abcd\").","verdict":"shipped","ok":true,"files":["solution.py"],"green_runs":2,"failed_runs":0,"verifies":1,"attempts":null,"html_sha":null,"ts":1785424196,"source":"api.demo.code.run","demo":false,"selftest":false},{"ledger_sha":"36f2c6ba4a2f60f6f6f74bb1","prev_ledger_sha":"79c8a97168f33124cc5812b7","receipt_sha":"20b2146ee3e1e5d64840aea2","kind":"code_agent","task":"Create solution.py defining slugify(s) that lowercases, replaces non-alphanumerics with single hyphens, and strips leading/trailing hyphens. Print slugify(\"Hell","verdict":"shipped","ok":true,"files":["solution.py"],"green_runs":2,"failed_runs":0,"verifies":1,"attempts":null,"html_sha":null,"ts":1785428561,"source":"api.demo.code.run","demo":false,"selftest":false},{"ledger_sha":"7e01669e6479d72162b94c62","prev_ledger_sha":"36f2c6ba4a2f60f6f6f74bb1","receipt_sha":"d51043ed1f9c26e9a7f37e4d","kind":"code_agent","task":"Create solution.py defining slugify(s): lowercase, non-alphanumerics become single hyphens, strip leading and trailing hyphens. Print slugify('Hello, World! 123","verdict":"shipped","ok":true,"files":["solution.py"],"green_runs":2,"failed_runs":0,"verifies":1,"attempts":null,"html_sha":null,"ts":1785428597,"source":"api.demo.code.run","demo":false,"selftest":false},{"ledger_sha":"89dc0d4bd6d34caef9cdbe60","prev_ledger_sha":"7e01669e6479d72162b94c62","receipt_sha":"073f6e78247d8c9264381bb1","kind":"code_agent","task":"Create solution.py defining to_roman(n) and from_roman(s) for 1..3999 using subtractive forms. from_roman must raise ValueError for malformed numerals like 'III","verdict":"shipped","ok":true,"files":["solution.py"],"green_runs":2,"failed_runs":0,"verifies":1,"attempts":null,"html_sha":null,"ts":1785428624,"source":"api.demo.code.run","demo":false,"selftest":false},{"ledger_sha":"e480f14cc16125aba7719ec8","prev_ledger_sha":"89dc0d4bd6d34caef9cdbe60","receipt_sha":"5ab2371eda96063e12e6d2fd","kind":"code_agent","task":"Create solution.py defining to_roman(n) and from_roman(s) for 1..3999 using subtractive forms. from_roman must raise ValueError for malformed numerals like IIII","verdict":"shipped","ok":true,"files":["solution.py"],"green_runs":2,"failed_runs":0,"verifies":1,"attempts":null,"html_sha":null,"ts":1785429366,"source":"api.demo.code.run","demo":false,"selftest":false},{"ledger_sha":"5ddfefe5766190406284f9ec","prev_ledger_sha":"e480f14cc16125aba7719ec8","receipt_sha":"3dd95c6848892efe836399a4","kind":"code_agent","task":"Create solution.py defining to_roman(n) and from_roman(s) for 1..3999 using subtractive forms. from_roman must raise ValueError for malformed numerals like IIII","verdict":"shipped","ok":true,"files":["solution.py"],"green_runs":2,"failed_runs":0,"verifies":1,"attempts":null,"html_sha":null,"ts":1785429575,"source":"api.demo.code.run","demo":false,"selftest":false},{"ledger_sha":"116e82121eb90fb7f9f841ab","prev_ledger_sha":"5ddfefe5766190406284f9ec","receipt_sha":"e8edee922b9f4e6b05cd744c","kind":"code_agent","task":"Create solution.py defining parse_csv(text) that returns a list of rows. Handle quoted fields containing commas, doubled quotes meaning one literal quote, embed","verdict":"shipped","ok":true,"files":["solution.py"],"green_runs":2,"failed_runs":0,"verifies":1,"attempts":null,"html_sha":null,"ts":1785429594,"source":"api.demo.code.run","demo":false,"selftest":false},{"ledger_sha":"057e839b1de19111373c5202","prev_ledger_sha":"116e82121eb90fb7f9f841ab","receipt_sha":"f0174be9973de9d88ac28193","kind":"code_agent","task":"code  it","verdict":"shipped","ok":true,"files":["main.py"],"green_runs":16,"failed_runs":2,"verifies":9,"attempts":null,"html_sha":null,"ts":1785461364,"source":"api.demo.code.run","demo":false,"selftest":false},{"ledger_sha":"e20a9e8df341049ceb36bf73","prev_ledger_sha":"057e839b1de19111373c5202","receipt_sha":"36dd8b2446b857f48b5acdab","kind":"visual_build","task":"code a snake gam","verdict":"failed","ok":false,"files":[],"green_runs":null,"failed_runs":null,"verifies":null,"attempts":3,"html_sha":"05898cf4ea0ecbadcde87d6c","ts":1785474944,"source":"api.demo.code.visual.build","demo":false,"selftest":false},{"ledger_sha":"728025b5f8992ef1f120a998","prev_ledger_sha":"e20a9e8df341049ceb36bf73","receipt_sha":"93a5fe3d4e94559425fcf62e","kind":"visual_build","task":"there is no snake nor food","verdict":"verified","ok":true,"files":[],"green_runs":null,"failed_runs":null,"verifies":null,"attempts":3,"html_sha":"521030ad40d3ea192b58f4b8","ts":1785475132,"source":"api.demo.code.visual.build","demo":false,"selftest":false}],"stats":{"path":"/opt/apps/lolm/runs/code_receipts.jsonl","recent":20,"ok":19,"fail":1,"last_sha":"728025b5f8992ef1f120a998"}}