[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"branding":3,"analytics":7,"article-chronicle-turns-recorded-agent-failures-into-ci-tests":10,"sections":35},{"siteName":4,"siteTagline":5,"publisherName":4,"contactEmail":6},"The Revision","Tech news, decoded.","editor@therevision.news",{"gaMeasurementId":8,"adsenseClientId":9},"G-ZW2MV82GYR","ca-pub-8533917693782264",{"article":11},{"id":12,"slug":13,"title":14,"dek":15,"body_md":16,"tags_json":17,"published_at":18,"created_at":19,"updated_at":20,"status":21,"review_note":22,"review_notes":23,"image_url":22,"persona_id":22,"persona_name":22,"section":24,"tags":25,"sources":30,"feedback":34,"feedback_at":22,"cost_usd":34,"total_tokens":34},6917,"chronicle-turns-recorded-agent-failures-into-ci-tests","Chronicle Turns Recorded Agent Failures Into CI Tests","A new record-and-replay tool called Chronicle lets teams replay a single recorded LLM agent failure as a repeatable regression test without burning model calls.","LLM agents fail in ways you can't reproduce, and now there's a tool built to fix that.\n\nChronicle records an agent run at its non-deterministic boundaries - model calls, tool outputs, anything that won't repeat the same way twice - and saves them as immutable envelopes. Its key trick is \"cut-point replay\": you replay most of a recorded run from the log, but let a chosen slice execute live against new code. That turns a one-off production incident into a regression test that runs in CI. On a benchmark of 6 recorded failures, recording overhead was 23 microseconds per crossing, and full replay made zero live model calls while staying bit-identical across 20 runs. The tests correctly failed on faulty code and passed on fixed code for all 6 cases.\n\nThis matters because agent debugging today mostly means staring at a trace and hoping the bug shows up again. Existing record-and-replay tools capture runs to score or inspect them, not to gate a code change - Chronicle is explicitly built for the CI use case, which is the missing piece between \"we saw it fail once\" and \"we can stop it from failing again.\" The mutation-testing result is the more interesting data point: cut-point tests caught every mutant that let an unsafe tool action through, while a baseline that just stubs every boundary caught none, using the identical assertion.\n\nThat gap - not the latency numbers - is the real finding: stubbing everything gives you a test that always passes, which is worse than no test at all. Whether Chronicle's approach holds up outside a 6-incident benchmark and simulated model boundaries is the open question worth watching.","[\"llm-agents\",\"testing\",\"ci-cd\",\"regression-testing\"]","2026-09-18T04:00:00.000Z","2026-09-18T22:35:14.890Z","2026-09-18T22:35:26.880Z","published",null,[],"dev-tools",[26,27,28,29],"llm-agents","testing","ci-cd","regression-testing",[31],{"name":32,"url":33},"arXiv cs.AI","https:\u002F\u002Farxiv.org\u002Fabs\u002F2609.20625",0,{"sections":36},[37,41,45,50,55,59,63,68,71,76,81,86,91,96],{"name":38,"slug":39,"count":40,"latest_published_at":18},"AI","ai",4082,{"name":42,"slug":43,"count":44,"latest_published_at":18},"Security","security",661,{"name":46,"slug":47,"count":48,"latest_published_at":49},"Policy","policy",339,"2026-09-17T12:00:00.000Z",{"name":51,"slug":52,"count":53,"latest_published_at":54},"Deals","deals",179,"2026-06-29T20:02:07.000Z",{"name":56,"slug":57,"count":58,"latest_published_at":18},"Hardware","hardware",155,{"name":60,"slug":61,"count":62,"latest_published_at":18},"Science","science",125,{"name":64,"slug":65,"count":66,"latest_published_at":67},"Consumer Tech","consumer-tech",99,"2026-09-09T17:27:33.000Z",{"name":69,"slug":24,"count":70,"latest_published_at":18},"Dev Tools",78,{"name":72,"slug":73,"count":74,"latest_published_at":75},"Software","software",75,"2026-09-10T20:41:21.000Z",{"name":77,"slug":78,"count":79,"latest_published_at":80},"Startups","startups",55,"2026-09-09T23:14:29.000Z",{"name":82,"slug":83,"count":84,"latest_published_at":85},"Gaming","gaming",43,"2026-09-10T12:18:06.000Z",{"name":87,"slug":88,"count":89,"latest_published_at":90},"General","general",41,"2026-09-08T01:57:23.000Z",{"name":92,"slug":93,"count":94,"latest_published_at":95},"Reviews","reviews",20,"2026-06-24T12:00:01.000Z",{"name":97,"slug":98,"count":99,"latest_published_at":100},"How-To","how-to",6,"2026-06-16T09:00:00.000Z"]