[{"data":1,"prerenderedAt":331},["ShallowReactive",2],{"project-47557921":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":44,"post_text":45,"what":46,"said":70,"maker_in_thread":164,"shape":175,"grid":179,"attempts":293,"same_week":294,"maker_shows":33,"maker_hidden":323,"reader_version":324,"card":325},"47557921","Git bayesect","Bayesian Git bisection for non-deterministic bugs","title","Show HN: Git bayesect – Bayesian Git bisection for non-deterministic bugs","https:\u002F\u002Fgithub.com\u002Fhauntsaninja\u002Fgit_bayesect","github.com","hauntsaninja",1774729921,2026,337,43,110,4366,3,"legend","dev_tools","git bisection","cli",[24,25,26,27],"git bisect","flaky tests","bayesian inference","non-deterministic bugs","loved",0.204,{"positive":31,"neutral":32,"mixed":33,"critical":34},6,21,2,0,29,{"performance":37,"idea":38,"execution":40,"docs":41,"design":42},{"positive":34,"critical":34},{"positive":39,"critical":34},5,{"positive":34,"critical":34},{"positive":34,"critical":34},{"positive":43,"critical":34},1,[18,18,18,34,34,18,34,18,18,18,34,39,18,18,34,34,34,18,34,34,18,34,34,18,18,18,18,39,18,18,34,18,18,34,39,18,39,34,34,39],null,{"problem":47,"audience":54,"pricing":45,"motivation":63,"time_to_build":45,"stack":67,"openness":68,"stage":69,"team_size":69},{"value":48,"source":49,"evidence":50},"git bisect assumes bugs reproduce deterministically, so flaky bugs are hard to locate in history","maker",[51],{"id":52,"by":11,"text":53},"47558065","git bisect works great for tracking down regressions, but relies on the bug presenting deterministically. But what if the bug is non-deterministic? Or worse, your behaviour was…",{"value":55,"source":56,"evidence":57},"developers debugging flaky tests or intermittent regressions","inferred",[58,59],{"id":52,"by":11,"text":53},{"id":60,"by":61,"text":62},"47609352","belden","My team doesn’t always have cleanly bisectable branches being merged to main —- it’s not uncommon to see “fix syntax error” types of commits. But, to merge we need to have all…",{"value":64,"source":49,"evidence":65},"git bisect breaks down when the bug presents non-deterministically",[66],{"id":52,"by":11,"text":53},[],"open_source","unknown",{"praise":71,"objections":99,"requests":118,"questions":130,"alternatives":145},[72,88],{"value":73,"source":74,"evidence":75},"Elegant math and Bayesian approach","commenter",[76,80,84],{"id":77,"by":78,"text":79},"47607352","rs545837","Really fun work, and the writeup on the math is great. The Beta-Bernoulli conjugacy trick making the marginal likelihood closed-form is elegant. We ran benchmarks comparing…",{"id":81,"by":82,"text":83},"47606721","ajb","Nice! I implemented a similar thing a while back: https:\u002F\u002Fgithub.com\u002FEaldwulf\u002FBBChop I'm going to have to check out how you got linear time with Shannon entropy, because I used…",{"id":85,"by":86,"text":87},"47608374","volume_tech","the test-only commit case is an interesting edge for the priors. when bisecting flakiness regressions, commits that only touch test files are often the actual culprit (tightened…",{"value":89,"source":74,"evidence":90},"Useful for flaky tests and CI efficiency",[91,95],{"id":92,"by":93,"text":94},"47609693","Caum","Integrating Bayesian priors into bisection is exactly how debugging feels in your head, but formalized. The biggest win here might be in CI efficiency -- if you have a finite…",{"id":96,"by":97,"text":98},"47605757","davidkunz","Useful for tests with LLM interactions.",[100,107],{"value":101,"source":74,"evidence":102},"Posterior can mislead; top commit may only shift timing, not be the cause",[103],{"id":104,"by":105,"text":106},"47610634","hrmtst93837","Bayesian bisection helps when the failure rate shifts enough to measure. Once a bug rides on scheduler jitter or some external side effect you don't control, the posterior gets…",{"value":108,"source":74,"evidence":109},"Assumes equal test cost per commit, ignoring slow rebuilds",[110,114],{"id":111,"by":112,"text":113},"47607801","IshKebab","Does this tool assume it takes the same amount of time to test two commits once as it does to test one commit twice? Maybe true for interpreted languages, but if you're waiting…",{"id":115,"by":116,"text":117},"47606346","__s","recompiling can be high constant overhead",[119,126],{"value":120,"source":74,"evidence":121},"Support for noisy benchmark scores instead of pass\u002Ffail",[122],{"id":123,"by":124,"text":125},"47605255","Retr0id","Super cool! A related situation I was in recently was where I was trying to bisect a perf regression, but the benchmarks themselves were quite noisy, making it hard to tell…",{"value":127,"source":74,"evidence":128},"Option to consider only merge commits",[129],{"id":60,"by":61,"text":62},[131,138],{"value":132,"source":74,"evidence":133},"What is the practical application and how does it work",[134],{"id":135,"by":136,"text":137},"47606543","SugarReflex","I hope this comment is not out of place, but I am wondering what the application for all this is? How can this help us or what does it teach us or help us prove? I am asking out…",{"value":139,"source":74,"evidence":140},"How does it compare to git bisect accuracy at fixed budget",[141],{"id":142,"by":143,"text":144},"47607432","sfink","> We ran benchmarks comparing bisect vs bayesect across flakiness levels. At 90\u002F10, bisect drops to ~44% accuracy while bayesect holds at ~96%. At 70\u002F30 it's 9% vs 67%. I don't…",[146,153,157],{"value":24,"source":74,"evidence":147},[148,152],{"id":149,"by":150,"text":151},"47624417","menaerus","> I know git-bisect doesn’t support this It does.",{"id":77,"by":78,"text":79},{"value":154,"source":74,"evidence":155},"BBChop",[156],{"id":81,"by":82,"text":83},{"value":158,"source":74,"evidence":159},"CUSUM change-point detection",[160],{"id":161,"by":162,"text":163},"47610553","tazsat0512","The HMM framing connects to change-point detection. CUSUM (Cumulative Sum) charts solve a related problem: detecting when a process parameter has shifted by accumulating…",{"comments":165,"answered":166,"key":167},7,4,[168,171,172],{"id":169,"text":170},"47609902","Yep, you can run bayesect to an arbitrary confidence level. This script in the repo https:\u002F\u002Fgithub.com\u002Fhauntsaninja\u002Fgit_bayesect\u002Fblob\u002Fmain\u002Fscripts\u002Fcalibration.py will show you…",{"id":52,"text":53},{"id":173,"text":174},"47609830","That sounds right. `git_bayesect` currently uses `--first-parent`, so I think belden's use case should work, but I haven't tested it much on complicated git histories.",{"commenters":176,"max_depth":31,"maker_replies":165,"first_comment_mins":177,"lifespan_hours":178},30,28,132,[180,182,184,186,188,190,194,195,199,200,201,205,206,208,211,212,214,218,220,222,224,227,229,231,233,236,238,240,243,244,247,251,253,256,259,261,264,265,267,270,271,275,280,283,285,289,291],[77,34,18,181,78,34],"project\u002Fmixed\u002Fperformance",[142,34,18,183,143,34],"project\u002Fneutral\u002Fperformance",[185,34,18,183,78,34],"47607761",[169,34,34,187,11,43],"project\u002Fpositive\u002Fdocs",[52,43,34,189,11,43],"project\u002Fpositive\u002Fidea",[191,43,18,192,193,34],"47605366","project\u002Fneutral\u002Fidea","Myrmornis",[161,43,18,192,162,34],[196,43,34,197,198,34],"47613314","commenter\u002Fcritical\u002Fnone","basilikum",[81,43,18,192,82,34],[60,43,18,192,61,34],[202,43,18,203,204,34],"47609692","project\u002Fneutral\u002Fexecution","sluongng",[173,43,34,203,11,43],[149,43,34,207,150,34],"commenter\u002Fneutral\u002Fnone",[209,43,39,189,210,34],"47615852","llasram",[123,33,18,192,124,34],[213,33,18,192,82,34],"47606895",[215,33,34,216,217,34],"47609178","other\u002Fneutral\u002Fnone","furyofantares",[219,33,34,216,78,34],"47610401",[221,33,34,192,11,43],"47610592",[223,33,18,192,143,34],"47617070",[225,18,18,192,226,34],"47558862","supermdguy",[228,18,34,203,11,43],"47559080",[115,18,34,230,116,34],"other\u002Fneutral\u002Fperformance",[232,18,18,183,82,34],"47606792",[234,18,34,235,143,34],"47607195","commenter\u002Fneutral\u002Fidea",[237,18,34,235,82,34],"47607472",[239,18,34,192,11,43],"47609980",[241,18,18,203,242,34],"47613278","rjmunro",[135,166,18,192,136,34],[245,166,18,192,246,34],"47606607","curuinor",[248,166,18,249,250,34],"47606611","project\u002Fneutral\u002Fdocs","augusto-moura",[252,166,39,189,124,34],"47606718",[254,166,34,255,82,34],"47607132","other\u002Fneutral\u002Fidea",[257,166,18,192,258,34],"47607316","teckywoe",[104,166,18,260,105,34],"project\u002Fmixed\u002Fidea",[262,166,34,216,263,34],"47607996","ncruces",[111,39,18,183,112,34],[266,39,18,192,78,34],"47610429",[268,31,34,216,269,34],"47612166","shiandow",[96,165,39,189,97,34],[272,273,39,189,274,34],"47610853",8,"OfirMarom",[276,277,18,278,279,34],"47607529",9,"project\u002Fneutral\u002Fdesign","convexly",[281,277,39,282,82,34],"47608612","project\u002Fpositive\u002Fdesign",[284,277,34,278,11,43],"47609710",[286,287,34,216,288,34],"47610178",10,"ju571nk3n",[85,290,18,192,86,34],11,[92,292,39,189,93,34],12,[],[295,300,304,309,314,319],{"id":296,"name":297,"points":298,"category":299},"47593422","1-Bit Bonsai",430,"ai",{"id":301,"name":302,"points":303,"category":299},"47536761","nullclaw",340,{"id":305,"name":306,"points":307,"category":308},"47580350","30u30.fyi",256,"other",{"id":310,"name":311,"points":312,"category":313},"47571183","korb",205,"consumer_social",{"id":315,"name":316,"points":317,"category":318},"47589856","pg_textsearch",203,"data",{"id":320,"name":321,"points":322,"category":318},"47534283","Turbolite",185,false,"v2",{"id":326,"name":5,"line":6,"ai":323,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":327,"top":18,"kw":328,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":329,"url":9,"mix":330,"praise":73,"objection":101,"sub":21},47557921,0.2,[24,25,26,27],"3330030333053300030030033335330330535005",[31,32,33,34],1794036697147]