{"source":"live","generatedAt":"2026-09-25T05:47:18.657Z","windowDays":30,"summary":{"runs":671,"merged":156,"escalated":510,"costUsd":3000.26,"costPerMergeUsd":6.69,"gatePassRate":0.9367602299628002,"escalationRate":0.7657657657657657,"autoMergeRate":0.23423423423423423,"mergedByRepo":{"libs/edilint":2,"libs/fi-fhir":2,"libs/mcp-go":1,"services/loom-core":151},"escalationsByClass":{"code":204,"config":83,"external_dependency":2,"external_dependency_incident":1,"infra":153,"substrate":10,"transient":51,"transient_quota":1,"unclassified":5},"retryBurnCostUsd":1026.84,"externalMergeCandidates":103},"stageStats":[{"stage":"ci_watch","attempts":461,"errors":173,"errorRate":0.375,"p50Seconds":842,"p90Seconds":1800,"retryAttempts":152},{"stage":"cleanup","attempts":160,"errors":0,"errorRate":0,"p50Seconds":2,"p90Seconds":3,"retryAttempts":1},{"stage":"implement","attempts":1023,"errors":183,"errorRate":0.179,"p50Seconds":328,"p90Seconds":2536,"retryAttempts":400},{"stage":"merge","attempts":920,"errors":496,"errorRate":0.539,"p50Seconds":1801,"p90Seconds":1802,"retryAttempts":702},{"stage":"mr","attempts":350,"errors":8,"errorRate":0.023,"p50Seconds":4,"p90Seconds":7,"retryAttempts":39},{"stage":"operator_pause","attempts":1,"errors":0,"errorRate":0,"p50Seconds":0,"p90Seconds":0,"retryAttempts":0},{"stage":"plan_slice","attempts":1041,"errors":404,"errorRate":0.388,"p50Seconds":140,"p90Seconds":347,"retryAttempts":364},{"stage":"post_implement_gate","attempts":51,"errors":0,"errorRate":0,"p50Seconds":0,"p90Seconds":0,"retryAttempts":7},{"stage":"pr_self_review","attempts":499,"errors":54,"errorRate":0.108,"p50Seconds":173,"p90Seconds":610,"retryAttempts":143},{"stage":"research","attempts":671,"errors":46,"errorRate":0.069,"p50Seconds":50,"p90Seconds":253,"retryAttempts":45},{"stage":"tests","attempts":1478,"errors":907,"errorRate":0.614,"p50Seconds":480,"p90Seconds":1385,"retryAttempts":946}],"gateStats":[{"gate":"branch_pushed","evaluations":838,"passes":820,"fails":18,"skips":0},{"gate":"commit_format","evaluations":838,"passes":790,"fails":48,"skips":0},{"gate":"diff_size","evaluations":838,"passes":789,"fails":49,"skips":0},{"gate":"docs_guardrail","evaluations":838,"passes":833,"fails":5,"skips":0},{"gate":"fabricated_slice","evaluations":838,"passes":616,"fails":1,"skips":221},{"gate":"nonempty_diff","evaluations":839,"passes":817,"fails":22,"skips":0},{"gate":"path_policy","evaluations":838,"passes":813,"fails":25,"skips":0},{"gate":"pr_self_review","evaluations":430,"passes":410,"fails":20,"skips":0},{"gate":"scope","evaluations":869,"passes":725,"fails":144,"skips":0},{"gate":"secret_scan","evaluations":838,"passes":838,"fails":0,"skips":0},{"gate":"spec_conformance","evaluations":429,"passes":352,"fails":77,"skips":0},{"gate":"tested_head","evaluations":277,"passes":185,"fails":92,"skips":0},{"gate":"tests_verdict","evaluations":381,"passes":321,"fails":60,"skips":0}],"escalationFunnel":[{"lastStage":"tests","outcome":"error","count":166},{"lastStage":"ci_watch","outcome":"error","count":91},{"lastStage":"plan_slice","outcome":"error","count":41},{"lastStage":"merge","outcome":"error","count":40},{"lastStage":"implement","outcome":"success","count":36},{"lastStage":"post_implement_gate","outcome":"gate_fail","count":31},{"lastStage":"pr_self_review","outcome":"success","count":28},{"lastStage":"implement","outcome":"error","count":20},{"lastStage":"tests","outcome":"success","count":17},{"lastStage":"implement","outcome":"none","count":7}],"runs":[{"id":"dcf0db2e8259","repo":"services/loom-core","title":"mills: per-run pause/resume must resume the SAME run from its stage journal instead of leaking a zombie queued run and restarting a new run from stage 0","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-25T05:43:03.37010225Z","startedAt":"2026-09-24T23:23:04.329250135Z","endedAt":"2026-09-25T05:43:03.37010225Z","mrIid":2201,"attempts":1,"costUsd":36.12,"gatesFailed":[],"grade":null,"diff":{"files":32,"added":2513,"removed":39},"testedSha":"38e1a66b426d","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":399,"costUsd":2.2863},{"stage":"research","outcome":"success","attempt":1,"seconds":46,"costUsd":0.002},{"stage":"implement","outcome":"success","attempt":1,"seconds":2695,"costUsd":11.8952},{"stage":"implement","outcome":"success","attempt":2,"seconds":986,"costUsd":0.6324},{"stage":"tests","outcome":"success","attempt":1,"seconds":1077,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":1261,"costUsd":5.4672},{"stage":"tests","outcome":"success","attempt":2,"seconds":1000,"costUsd":0},{"stage":"mr","outcome":"success","attempt":1,"seconds":5,"costUsd":0},{"stage":"ci_watch","outcome":"error","attempt":1,"seconds":634,"costUsd":0},{"stage":"implement","outcome":"success","attempt":3,"seconds":1877,"costUsd":2.8135},{"stage":"tests","outcome":"success","attempt":3,"seconds":1267,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":2,"seconds":1855,"costUsd":13.0117},{"stage":"tests","outcome":"success","attempt":4,"seconds":1205,"costUsd":0},{"stage":"mr","outcome":"success","attempt":2,"seconds":2,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":2,"seconds":3,"costUsd":0},{"stage":"merge","outcome":"error","attempt":1,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":2,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":3,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":4,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"success","attempt":5,"seconds":2564,"costUsd":0},{"stage":"cleanup","outcome":"success","attempt":1,"seconds":2,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"abc5a04d8da0","repo":"services/loom-core","title":"council: MemoryBlock renders the council journal into the prompt with no byte budget (same uncapped pattern that broke pipeline spawns at 149 KB)","outcome":"escalated","escalationClass":"transient_quota","escalationWeekOccurrences":4,"mergedAt":null,"startedAt":"2026-09-25T05:22:32.271135107Z","endedAt":"2026-09-25T05:38:02.725141573Z","mrIid":null,"attempts":3,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":11,"added":847,"removed":1},"testedSha":null,"stages":[{"stage":"plan_slice","outcome":"error","attempt":1,"seconds":96,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":2,"seconds":163,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":3,"seconds":102,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":4,"seconds":104,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":5,"seconds":85,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":6,"seconds":97,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":7,"seconds":75,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":8,"seconds":119,"costUsd":0}],"gates":[]},{"id":"91608018d888","repo":"services/loom-core","title":"devbox lint:parity: for a non-home target repo run the TARGET repo's golangci config and pinned version, not loom-core's — edilint !22 passed the tests stage a…","outcome":"escalated","escalationClass":"transient_quota","escalationWeekOccurrences":4,"mergedAt":null,"startedAt":"2026-09-25T05:08:47.879052682Z","endedAt":"2026-09-25T05:26:49.606469459Z","mrIid":null,"attempts":3,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":8,"added":1126,"removed":40},"testedSha":null,"stages":[{"stage":"plan_slice","outcome":"error","attempt":1,"seconds":76,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":2,"seconds":80,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":3,"seconds":87,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":4,"seconds":83,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":5,"seconds":188,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":6,"seconds":229,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":7,"seconds":110,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":8,"seconds":133,"costUsd":0}],"gates":[]},{"id":"4bf599fae175","repo":"services/loom-core","title":"ci_watch: with deterministic failures now classed code (!2160), the code-class cap of 1 fires on stage RE-ENTRY after a review push fixed the failure, before t…","outcome":"escalated","escalationClass":"transient_quota","escalationWeekOccurrences":4,"mergedAt":null,"startedAt":"2026-09-25T05:07:31.963896637Z","endedAt":"2026-09-25T05:24:04.820685538Z","mrIid":null,"attempts":1,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[{"stage":"plan_slice","outcome":"error","attempt":1,"seconds":91,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":2,"seconds":74,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":3,"seconds":80,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":4,"seconds":81,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":5,"seconds":81,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":6,"seconds":165,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":7,"seconds":215,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":8,"seconds":116,"costUsd":0}],"gates":[]},{"id":"15410848d81f","repo":"services/loom-core","title":"mills: the merge queue's main_red_external hold can never engage (DefaultBranchCIRecorder has no production caller), and the health poller counts scheduled pip…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-25T05:22:28.95212703Z","startedAt":"2026-09-24T17:39:11.048394993Z","endedAt":"2026-09-25T05:22:28.95212703Z","mrIid":2197,"attempts":1,"costUsd":23.57,"gatesFailed":[],"grade":null,"diff":{"files":18,"added":774,"removed":27},"testedSha":"eac02c3d0d9e","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":444,"costUsd":3.6031},{"stage":"research","outcome":"success","attempt":1,"seconds":36,"costUsd":0.0019},{"stage":"implement","outcome":"success","attempt":1,"seconds":1229,"costUsd":5.011},{"stage":"tests","outcome":"success","attempt":1,"seconds":973,"costUsd":0},{"stage":"implement","outcome":"success","attempt":2,"seconds":1115,"costUsd":1.3035},{"stage":"implement","outcome":"success","attempt":3,"seconds":1466,"costUsd":0.9246},{"stage":"tests","outcome":"success","attempt":2,"seconds":557,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":1652,"costUsd":3.4444},{"stage":"tests","outcome":"success","attempt":3,"seconds":602,"costUsd":0},{"stage":"mr","outcome":"success","attempt":1,"seconds":3,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":1,"seconds":280,"costUsd":0},{"stage":"merge","outcome":"error","attempt":1,"seconds":1861,"costUsd":0},{"stage":"merge","outcome":"error","attempt":2,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":3,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":4,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":5,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":6,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":7,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":8,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":9,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":10,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":11,"seconds":1661,"costUsd":0},{"stage":"implement","outcome":"success","attempt":4,"seconds":1050,"costUsd":3.9444},{"stage":"tests","outcome":"success","attempt":4,"seconds":642,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":2,"seconds":1297,"costUsd":5.3218},{"stage":"tests","outcome":"success","attempt":5,"seconds":663,"costUsd":0},{"stage":"mr","outcome":"success","attempt":2,"seconds":2,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":2,"seconds":902,"costUsd":0},{"stage":"merge","outcome":"error","attempt":12,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":13,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":14,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":15,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":16,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":17,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"success","attempt":18,"seconds":1330,"costUsd":0},{"stage":"cleanup","outcome":"success","attempt":1,"seconds":2,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"8a9398380ee8","repo":"services/loom-core","title":"devbox lint:parity: for a non-home target repo run the TARGET repo's golangci config and pinned version, not loom-core's — edilint !22 passed the tests stage a…","outcome":"escalated","escalationClass":"transient_quota","escalationWeekOccurrences":4,"mergedAt":null,"startedAt":"2026-09-25T03:28:44.134867879Z","endedAt":"2026-09-25T05:08:47.75601976Z","mrIid":2203,"attempts":2,"costUsd":4.37,"gatesFailed":[],"grade":null,"diff":{"files":8,"added":1126,"removed":40},"testedSha":"f6086ea08374","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":299,"costUsd":0.9202},{"stage":"research","outcome":"success","attempt":1,"seconds":42,"costUsd":0.0028},{"stage":"implement","outcome":"success","attempt":1,"seconds":12,"costUsd":0},{"stage":"tests","outcome":"success","attempt":1,"seconds":599,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":276,"costUsd":0.5594},{"stage":"mr","outcome":"success","attempt":1,"seconds":4,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":1,"seconds":2,"costUsd":0},{"stage":"merge","outcome":"error","attempt":1,"seconds":610,"costUsd":0},{"stage":"implement","outcome":"success","attempt":2,"seconds":1395,"costUsd":2.8148},{"stage":"tests","outcome":"success","attempt":2,"seconds":791,"costUsd":0},{"stage":"pr_self_review","outcome":"error","attempt":2,"seconds":230,"costUsd":0},{"stage":"pr_self_review","outcome":"error","attempt":3,"seconds":123,"costUsd":0},{"stage":"pr_self_review","outcome":"error","attempt":4,"seconds":127,"costUsd":0},{"stage":"pr_self_review","outcome":"error","attempt":5,"seconds":165,"costUsd":0},{"stage":"pr_self_review","outcome":"error","attempt":6,"seconds":102,"costUsd":0},{"stage":"pr_self_review","outcome":"error","attempt":7,"seconds":317,"costUsd":0},{"stage":"pr_self_review","outcome":"error","attempt":8,"seconds":117,"costUsd":0},{"stage":"pr_self_review","outcome":"error","attempt":9,"seconds":111,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"}]},{"id":"38e6cda13551","repo":"services/loom-core","title":"pipeline resume: an operator restart must not consume a new stage attempt number for non-spawn stages (ci_watch attempt 6, merge attempt 8 after 11 rollouts)","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-25T05:07:30.548776943Z","startedAt":"2026-09-24T13:24:45.034057247Z","endedAt":"2026-09-25T05:07:30.548776943Z","mrIid":2190,"attempts":1,"costUsd":14.39,"gatesFailed":[],"grade":null,"diff":{"files":8,"added":678,"removed":22},"testedSha":"62b04a1c2a47","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":347,"costUsd":2.0238},{"stage":"research","outcome":"success","attempt":1,"seconds":34,"costUsd":0.0019},{"stage":"implement","outcome":"error","attempt":1,"seconds":1574,"costUsd":0},{"stage":"implement","outcome":"success","attempt":2,"seconds":803,"costUsd":1.2041},{"stage":"post_implement_gate","outcome":"gate_fail","attempt":1,"seconds":0,"costUsd":0},{"stage":"implement","outcome":"success","attempt":3,"seconds":801,"costUsd":1.3732},{"stage":"tests","outcome":"success","attempt":1,"seconds":474,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":905,"costUsd":5.4458},{"stage":"tests","outcome":"success","attempt":2,"seconds":478,"costUsd":0},{"stage":"mr","outcome":"success","attempt":1,"seconds":4,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":1,"seconds":924,"costUsd":0},{"stage":"merge","outcome":"error","attempt":1,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":2,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":3,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":4,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":5,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":6,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":7,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":8,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":9,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":10,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":11,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":12,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":13,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":14,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":15,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":16,"seconds":1411,"costUsd":0},{"stage":"implement","outcome":"success","attempt":4,"seconds":563,"costUsd":1.1614},{"stage":"tests","outcome":"success","attempt":3,"seconds":447,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":2,"seconds":609,"costUsd":3.1443},{"stage":"tests","outcome":"success","attempt":4,"seconds":521,"costUsd":0},{"stage":"mr","outcome":"success","attempt":2,"seconds":4,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":2,"seconds":338,"costUsd":0},{"stage":"merge","outcome":"error","attempt":17,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":18,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":19,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":20,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":21,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":22,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":23,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":24,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":25,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":26,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":27,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"success","attempt":28,"seconds":431,"costUsd":0},{"stage":"cleanup","outcome":"success","attempt":1,"seconds":2,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"26ce1b10c780","repo":"services/loom-core","title":"merge queue: early conflict eviction (!2147) needs a policy off-switch and an interval knob for the soak","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-25T04:21:43.903656641Z","startedAt":"2026-09-24T21:48:52.944257304Z","endedAt":"2026-09-25T04:21:43.903656641Z","mrIid":2200,"attempts":1,"costUsd":8.96,"gatesFailed":[],"grade":null,"diff":{"files":10,"added":431,"removed":7},"testedSha":"532ffa94e238","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":257,"costUsd":1.1623},{"stage":"research","outcome":"success","attempt":1,"seconds":32,"costUsd":0.0019},{"stage":"implement","outcome":"success","attempt":1,"seconds":734,"costUsd":6.4916},{"stage":"tests","outcome":"success","attempt":1,"seconds":476,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":246,"costUsd":1.2897},{"stage":"mr","outcome":"success","attempt":1,"seconds":3,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":1,"seconds":3,"costUsd":0},{"stage":"merge","outcome":"error","attempt":1,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":2,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":3,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":4,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":5,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":6,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":7,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":8,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":9,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":10,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":11,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":12,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"success","attempt":13,"seconds":82,"costUsd":0},{"stage":"cleanup","outcome":"success","attempt":1,"seconds":2,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"7396b691e24d","repo":"services/loom-core","title":"mr stage: Mills-produced MRs have an empty description (!2158, !2163) — fill it from the item spec, the slice, and the commit list so reviewers and rescuers ha…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-25T03:28:43.350341723Z","startedAt":"2026-09-24T19:27:48.382602833Z","endedAt":"2026-09-25T03:28:43.350341723Z","mrIid":2199,"attempts":1,"costUsd":7.48,"gatesFailed":[],"grade":null,"diff":{"files":7,"added":893,"removed":7},"testedSha":"34f0806e4d9a","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":283,"costUsd":1.7701},{"stage":"research","outcome":"success","attempt":1,"seconds":28,"costUsd":0.0019},{"stage":"implement","outcome":"success","attempt":1,"seconds":1109,"costUsd":3.8773},{"stage":"tests","outcome":"success","attempt":1,"seconds":361,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":344,"costUsd":1.8296},{"stage":"tests","outcome":"success","attempt":2,"seconds":722,"costUsd":0},{"stage":"mr","outcome":"success","attempt":1,"seconds":3,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":1,"seconds":648,"costUsd":0},{"stage":"merge","outcome":"error","attempt":1,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":2,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":3,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":4,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":5,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":6,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":7,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":8,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":9,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":10,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":11,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":12,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":13,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":14,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"success","attempt":15,"seconds":120,"costUsd":0},{"stage":"cleanup","outcome":"success","attempt":1,"seconds":2,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"32dbad2c2089","repo":"services/loom-core","title":"gates: golangci-lint \"context loading failed: no go files to analyze\" (exit 5) is a package-loader failure, not a lint verdict — classify it degraded like exit…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-25T03:06:34.290210882Z","startedAt":"2026-09-24T15:49:42.687886427Z","endedAt":"2026-09-25T03:06:34.290210882Z","mrIid":2193,"attempts":1,"costUsd":6.38,"gatesFailed":[],"grade":null,"diff":{"files":6,"added":268,"removed":10},"testedSha":"d0108b3bfad2","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":275,"costUsd":1.9159},{"stage":"research","outcome":"success","attempt":1,"seconds":32,"costUsd":0.002},{"stage":"implement","outcome":"success","attempt":1,"seconds":860,"costUsd":2.0609},{"stage":"tests","outcome":"success","attempt":1,"seconds":464,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":528,"costUsd":2.3801},{"stage":"tests","outcome":"success","attempt":2,"seconds":199,"costUsd":0},{"stage":"mr","outcome":"success","attempt":1,"seconds":5,"costUsd":0},{"stage":"ci_watch","outcome":"error","attempt":1,"seconds":1800,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":2,"seconds":916,"costUsd":0},{"stage":"merge","outcome":"error","attempt":1,"seconds":1800,"costUsd":0},{"stage":"merge","outcome":"error","attempt":2,"seconds":1800,"costUsd":0},{"stage":"merge","outcome":"error","attempt":3,"seconds":1800,"costUsd":0},{"stage":"merge","outcome":"error","attempt":4,"seconds":1800,"costUsd":0},{"stage":"merge","outcome":"error","attempt":5,"seconds":2161,"costUsd":0},{"stage":"merge","outcome":"error","attempt":6,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":7,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":8,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":9,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":10,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":11,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":12,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":13,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":14,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":15,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":16,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":17,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":18,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":19,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"success","attempt":20,"seconds":520,"costUsd":0},{"stage":"cleanup","outcome":"success","attempt":1,"seconds":2,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"99f5609172a8","repo":"services/loom-core","title":"ci: the fmt job only runs gofmt, so import grouping that the pre-commit/pre-push goimports -local hook rejects passes CI — run the same goimports check in CI","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":3,"mergedAt":null,"startedAt":"2026-09-24T16:11:42.743600226Z","endedAt":"2026-09-25T02:22:40.190410581Z","mrIid":2194,"attempts":3,"costUsd":5.36,"gatesFailed":[],"grade":null,"diff":{"files":14,"added":718,"removed":32},"testedSha":"faaf7bf9e016","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":254,"costUsd":0.7652},{"stage":"research","outcome":"success","attempt":1,"seconds":34,"costUsd":0.0027},{"stage":"implement","outcome":"success","attempt":1,"seconds":8,"costUsd":0},{"stage":"tests","outcome":"success","attempt":1,"seconds":744,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":303,"costUsd":1.5072},{"stage":"tests","outcome":"success","attempt":2,"seconds":761,"costUsd":0},{"stage":"mr","outcome":"success","attempt":1,"seconds":8,"costUsd":0},{"stage":"ci_watch","outcome":"error","attempt":1,"seconds":1800,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":2,"seconds":838,"costUsd":0},{"stage":"merge","outcome":"error","attempt":1,"seconds":1800,"costUsd":0},{"stage":"merge","outcome":"error","attempt":2,"seconds":1800,"costUsd":0},{"stage":"merge","outcome":"error","attempt":3,"seconds":2641,"costUsd":0},{"stage":"merge","outcome":"error","attempt":4,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":5,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":6,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":7,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":8,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":9,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":10,"seconds":901,"costUsd":0},{"stage":"implement","outcome":"success","attempt":2,"seconds":480,"costUsd":1.1307},{"stage":"tests","outcome":"success","attempt":3,"seconds":893,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":2,"seconds":612,"costUsd":1.8146},{"stage":"mr","outcome":"success","attempt":2,"seconds":3,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":3,"seconds":2,"costUsd":0},{"stage":"merge","outcome":"error","attempt":11,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":12,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":13,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":14,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":15,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":16,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":17,"seconds":800,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"82ac28b22c93","repo":"services/loom-core","title":"docs: no markdownlint gate exists (pre-commit has none, npx markdownlint-cli is not installed), so runbook edits ship unchecked; MILLS_RUNBOOK.md already carri…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-25T01:44:45.761958939Z","startedAt":"2026-09-24T15:16:42.722553978Z","endedAt":"2026-09-25T01:44:45.761958939Z","mrIid":2192,"attempts":1,"costUsd":9.6,"gatesFailed":[],"grade":null,"diff":{"files":6,"added":106,"removed":3},"testedSha":"3c3ecb03a0dd","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":445,"costUsd":1.9524},{"stage":"research","outcome":"success","attempt":1,"seconds":27,"costUsd":0.0014},{"stage":"implement","outcome":"success","attempt":1,"seconds":428,"costUsd":2.547},{"stage":"post_implement_gate","outcome":"gate_fail","attempt":1,"seconds":0,"costUsd":0},{"stage":"implement","outcome":"success","attempt":2,"seconds":238,"costUsd":0.9521},{"stage":"tests","outcome":"success","attempt":1,"seconds":114,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":269,"costUsd":1.0023},{"stage":"tests","outcome":"success","attempt":2,"seconds":190,"costUsd":0},{"stage":"implement","outcome":"success","attempt":3,"seconds":322,"costUsd":1.7195},{"stage":"tests","outcome":"success","attempt":3,"seconds":79,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":2,"seconds":302,"costUsd":1.3045},{"stage":"tests","outcome":"success","attempt":4,"seconds":145,"costUsd":0},{"stage":"mr","outcome":"success","attempt":1,"seconds":4,"costUsd":0},{"stage":"ci_watch","outcome":"","attempt":1,"seconds":null,"costUsd":0},{"stage":"ci_watch","outcome":"error","attempt":2,"seconds":1800,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":3,"seconds":1479,"costUsd":0},{"stage":"merge","outcome":"error","attempt":1,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":2,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":3,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":4,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":5,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":6,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":7,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":8,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":9,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":10,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":11,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":12,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":13,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":14,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":15,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":16,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":17,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"success","attempt":18,"seconds":300,"costUsd":0},{"stage":"cleanup","outcome":"success","attempt":1,"seconds":3,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"fail"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"01f4d8d5e72a","repo":"services/loom-core","title":"spawn: give plan-stage spawns a narrow MCP tool profile so a local lane can find agent_plan_* instead of hunting for a daemon socket","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":3,"mergedAt":null,"startedAt":"2026-09-24T20:23:19.08508462Z","endedAt":"2026-09-25T00:45:02.500974959Z","mrIid":2145,"attempts":9,"costUsd":7.88,"gatesFailed":[],"grade":null,"diff":{"files":11,"added":996,"removed":45},"testedSha":"c94fa81b3c7e","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":344,"costUsd":0.5553},{"stage":"research","outcome":"success","attempt":1,"seconds":59,"costUsd":0.0031},{"stage":"implement","outcome":"success","attempt":1,"seconds":16,"costUsd":0},{"stage":"implement","outcome":"success","attempt":2,"seconds":768,"costUsd":0.8882},{"stage":"tests","outcome":"success","attempt":1,"seconds":668,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":383,"costUsd":2.2365},{"stage":"tests","outcome":"success","attempt":2,"seconds":533,"costUsd":0},{"stage":"mr","outcome":"success","attempt":1,"seconds":2,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":1,"seconds":1498,"costUsd":0},{"stage":"merge","outcome":"error","attempt":1,"seconds":70,"costUsd":0},{"stage":"implement","outcome":"success","attempt":3,"seconds":1037,"costUsd":1.4705},{"stage":"tests","outcome":"success","attempt":3,"seconds":858,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":2,"seconds":365,"costUsd":2.7184},{"stage":"tests","outcome":"success","attempt":4,"seconds":280,"costUsd":0},{"stage":"mr","outcome":"success","attempt":2,"seconds":2,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":2,"seconds":817,"costUsd":0},{"stage":"merge","outcome":"error","attempt":2,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":3,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":4,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":5,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":6,"seconds":751,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"5999671aeba8","repo":"services/loom-core","title":"merge queue: every \"row gets a new base\" site must clear both targetMovedClearedKeys and the 405 merge-not-ready wait — one helper instead of two lists at thre…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-24T23:23:03.979089253Z","startedAt":"2026-09-24T13:04:35.871451028Z","endedAt":"2026-09-24T23:23:03.979089253Z","mrIid":2188,"attempts":1,"costUsd":4.46,"gatesFailed":[],"grade":null,"diff":{"files":4,"added":230,"removed":31},"testedSha":"1f01424730ae","stages":[{"stage":"plan_slice","outcome":"error","attempt":1,"seconds":314,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":2,"seconds":131,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":3,"seconds":132,"costUsd":0},{"stage":"plan_slice","outcome":"error","attempt":4,"seconds":135,"costUsd":0},{"stage":"plan_slice","outcome":"success","attempt":5,"seconds":416,"costUsd":0.8236},{"stage":"research","outcome":"success","attempt":1,"seconds":37,"costUsd":0.0019},{"stage":"implement","outcome":"success","attempt":1,"seconds":1227,"costUsd":1.9942},{"stage":"tests","outcome":"success","attempt":1,"seconds":363,"costUsd":0},{"stage":"pr_self_review","outcome":"error","attempt":1,"seconds":391,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":2,"seconds":439,"costUsd":1.6195},{"stage":"tests","outcome":"success","attempt":2,"seconds":277,"costUsd":0},{"stage":"mr","outcome":"success","attempt":1,"seconds":4,"costUsd":0},{"stage":"ci_watch","outcome":"","attempt":1,"seconds":null,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":2,"seconds":585,"costUsd":0},{"stage":"merge","outcome":"","attempt":1,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":2,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":3,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":4,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":5,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":6,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":7,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":8,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":9,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":10,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":11,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":12,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":13,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":14,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":15,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":16,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":17,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":18,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":19,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"success","attempt":20,"seconds":480,"costUsd":0},{"stage":"cleanup","outcome":"success","attempt":1,"seconds":1,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"4d959d4d24af","repo":"services/loom-core","title":"operator: GET /api/mills/status takes ~58s on the production store (other endpoints <100ms) — profile handleStatusFull, fix the slow read, bound each component","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":2,"mergedAt":null,"startedAt":"2026-09-24T11:53:52.999429798Z","endedAt":"2026-09-24T23:06:51.485115014Z","mrIid":2189,"attempts":1,"costUsd":9.01,"gatesFailed":[],"grade":null,"diff":{"files":10,"added":764,"removed":26},"testedSha":"bcbdf729a452","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":379,"costUsd":1.8129},{"stage":"research","outcome":"success","attempt":1,"seconds":62,"costUsd":0.0007},{"stage":"implement","outcome":"error","attempt":1,"seconds":1803,"costUsd":0},{"stage":"implement","outcome":"success","attempt":2,"seconds":2620,"costUsd":1.7824},{"stage":"implement","outcome":"error","attempt":3,"seconds":143,"costUsd":0},{"stage":"implement","outcome":"success","attempt":4,"seconds":957,"costUsd":2.1904},{"stage":"tests","outcome":"success","attempt":1,"seconds":663,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":640,"costUsd":3.1639},{"stage":"tests","outcome":"error","attempt":2,"seconds":184,"costUsd":0},{"stage":"tests","outcome":"success","attempt":3,"seconds":1029,"costUsd":0},{"stage":"mr","outcome":"error","attempt":1,"seconds":0,"costUsd":0},{"stage":"mr","outcome":"error","attempt":2,"seconds":0,"costUsd":0},{"stage":"mr","outcome":"success","attempt":3,"seconds":6,"costUsd":0},{"stage":"ci_watch","outcome":"","attempt":1,"seconds":null,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":2,"seconds":4,"costUsd":0},{"stage":"merge","outcome":"","attempt":1,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":2,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":3,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":4,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":5,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":6,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":7,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":8,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":9,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":10,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":11,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":12,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":13,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":14,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":15,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":16,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":17,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":18,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":19,"seconds":1311,"costUsd":0},{"stage":"merge","outcome":"error","attempt":20,"seconds":0,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"0c14e8605642","repo":"services/loom-core","title":"mills: decide and prove the policy-propagation contract (fsnotify hot reload vs checksum roll): reload/watch-liveness metrics first, one live ConfigMap-only ed…","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":"2026-09-24T15:58:42.68536358Z","endedAt":"2026-09-24T21:48:30.108649204Z","mrIid":2195,"attempts":3,"costUsd":22.86,"gatesFailed":[],"grade":null,"diff":{"files":30,"added":2168,"removed":165},"testedSha":"2f7c3c11bb39","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":157,"costUsd":0.8046},{"stage":"research","outcome":"success","attempt":1,"seconds":56,"costUsd":0.0033},{"stage":"implement","outcome":"success","attempt":1,"seconds":9,"costUsd":0},{"stage":"implement","outcome":"success","attempt":2,"seconds":899,"costUsd":1.7812},{"stage":"tests","outcome":"success","attempt":1,"seconds":473,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":1103,"costUsd":9.0376},{"stage":"tests","outcome":"error","attempt":2,"seconds":234,"costUsd":0},{"stage":"tests","outcome":"success","attempt":3,"seconds":506,"costUsd":0},{"stage":"mr","outcome":"success","attempt":1,"seconds":2,"costUsd":0},{"stage":"ci_watch","outcome":"error","attempt":1,"seconds":1800,"costUsd":0},{"stage":"ci_watch","outcome":"error","attempt":2,"seconds":1800,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":3,"seconds":996,"costUsd":0},{"stage":"merge","outcome":"error","attempt":1,"seconds":1800,"costUsd":0},{"stage":"merge","outcome":"error","attempt":2,"seconds":1800,"costUsd":0},{"stage":"merge","outcome":"error","attempt":3,"seconds":1800,"costUsd":0},{"stage":"merge","outcome":"error","attempt":4,"seconds":930,"costUsd":0},{"stage":"implement","outcome":"success","attempt":3,"seconds":1667,"costUsd":5.1505},{"stage":"post_implement_gate","outcome":"gate_fail","attempt":1,"seconds":0,"costUsd":0},{"stage":"implement","outcome":"success","attempt":4,"seconds":892,"costUsd":1.114},{"stage":"tests","outcome":"success","attempt":4,"seconds":957,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":2,"seconds":611,"costUsd":4.843},{"stage":"tests","outcome":"success","attempt":5,"seconds":603,"costUsd":0},{"stage":"mr","outcome":"success","attempt":2,"seconds":2,"costUsd":0},{"stage":"ci_watch","outcome":"error","attempt":4,"seconds":1791,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"5df03afb0ee3","repo":"services/loom-core","title":"merge queue: early conflict eviction evicted a freshly pushed head seconds after enqueue while GitLab's mergeability was still unsettled — the MR reports merge…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-24T20:47:48.394580242Z","startedAt":"2026-09-24T10:47:26.226219051Z","endedAt":"2026-09-24T20:47:48.394580242Z","mrIid":2185,"attempts":1,"costUsd":10.72,"gatesFailed":[],"grade":null,"diff":{"files":14,"added":548,"removed":64},"testedSha":"f30391d1d520","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":377,"costUsd":2.779},{"stage":"research","outcome":"success","attempt":1,"seconds":30,"costUsd":0.0017},{"stage":"implement","outcome":"success","attempt":1,"seconds":1581,"costUsd":6.0077},{"stage":"tests","outcome":"success","attempt":1,"seconds":465,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":332,"costUsd":1.9234},{"stage":"tests","outcome":"success","attempt":2,"seconds":478,"costUsd":0},{"stage":"mr","outcome":"success","attempt":1,"seconds":5,"costUsd":0},{"stage":"ci_watch","outcome":"","attempt":1,"seconds":null,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":2,"seconds":631,"costUsd":0},{"stage":"merge","outcome":"","attempt":1,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":2,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":3,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":4,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":5,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"","attempt":6,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":7,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":8,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":9,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":10,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":11,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":12,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":13,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":14,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":15,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":16,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":17,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":18,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":19,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":20,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"success","attempt":21,"seconds":170,"costUsd":0},{"stage":"cleanup","outcome":"success","attempt":1,"seconds":1,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"450050c141ad","repo":"services/loom-core","title":"tests: TestSpawnInitExitsOnSIGTERMOnlyAfterThePreStopHook (5 s) and TestBuildTargetMap_HubModeUsesResolvedWrapper (3 s) fail under a loaded full-suite run and…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-24T20:23:18.195772502Z","startedAt":"2026-09-24T08:43:56.065993027Z","endedAt":"2026-09-24T20:23:18.195772502Z","mrIid":2183,"attempts":1,"costUsd":6.91,"gatesFailed":[],"grade":null,"diff":{"files":5,"added":186,"removed":5},"testedSha":"dc2ea99ce14d","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":463,"costUsd":1.7968},{"stage":"research","outcome":"success","attempt":1,"seconds":37,"costUsd":0.002},{"stage":"implement","outcome":"success","attempt":1,"seconds":2150,"costUsd":2.4492},{"stage":"post_implement_gate","outcome":"gate_fail","attempt":1,"seconds":0,"costUsd":0},{"stage":"implement","outcome":"success","attempt":2,"seconds":564,"costUsd":1.3511},{"stage":"tests","outcome":"success","attempt":1,"seconds":560,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":330,"costUsd":1.3035},{"stage":"tests","outcome":"success","attempt":2,"seconds":751,"costUsd":0},{"stage":"mr","outcome":"success","attempt":1,"seconds":4,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":1,"seconds":328,"costUsd":0},{"stage":"merge","outcome":"","attempt":1,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":2,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":3,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":4,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":5,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":6,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"","attempt":7,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":8,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":9,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":10,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":11,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"","attempt":12,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":13,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":14,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":15,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":16,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":17,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":18,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":19,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":20,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":21,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":22,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":23,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":24,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":25,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"success","attempt":26,"seconds":501,"costUsd":0},{"stage":"cleanup","outcome":"success","attempt":1,"seconds":1,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"a4c3eed9cfe0","repo":"services/loom-core","title":"Mills canary: update heartbeat fixture","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-24T19:58:16.48732849Z","startedAt":"2026-09-24T09:25:03.945116472Z","endedAt":"2026-09-24T19:58:16.48732849Z","mrIid":2182,"attempts":3,"costUsd":0.22,"gatesFailed":[],"grade":null,"diff":{"files":1,"added":1,"removed":1},"testedSha":"7c57562c79a0","stages":[{"stage":"plan_slice","outcome":"skipped","attempt":1,"seconds":0,"costUsd":0},{"stage":"research","outcome":"success","attempt":1,"seconds":24,"costUsd":0.0018},{"stage":"implement","outcome":"success","attempt":1,"seconds":13,"costUsd":0},{"stage":"tests","outcome":"success","attempt":1,"seconds":312,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":100,"costUsd":0.2209},{"stage":"mr","outcome":"success","attempt":1,"seconds":1,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":1,"seconds":2,"costUsd":0},{"stage":"merge","outcome":"","attempt":1,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":2,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":3,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":4,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":5,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":6,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":7,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":8,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":9,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"","attempt":10,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":11,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":12,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":13,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":14,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"","attempt":15,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":16,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":17,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":18,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":19,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":20,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":21,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":22,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":23,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":24,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":25,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":26,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":27,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"success","attempt":28,"seconds":800,"costUsd":0},{"stage":"cleanup","outcome":"success","attempt":1,"seconds":2,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"4e4a5bb18962","repo":"services/loom-core","title":"ci_watch: read failing test names from GitLab's pipeline test_report (JUnit) before falling back to trace parsing","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-24T19:27:46.64665062Z","startedAt":"2026-09-24T01:43:57.684594517Z","endedAt":"2026-09-24T19:27:46.64665062Z","mrIid":2167,"attempts":1,"costUsd":13.24,"gatesFailed":[],"grade":null,"diff":{"files":10,"added":957,"removed":7},"testedSha":"3d72cab2cdbc","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":345,"costUsd":1.2469},{"stage":"research","outcome":"success","attempt":1,"seconds":32,"costUsd":0.0018},{"stage":"implement","outcome":"success","attempt":1,"seconds":953,"costUsd":3.1678},{"stage":"tests","outcome":"success","attempt":1,"seconds":625,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":519,"costUsd":3.1132},{"stage":"tests","outcome":"success","attempt":2,"seconds":590,"costUsd":0},{"stage":"mr","outcome":"success","attempt":1,"seconds":4,"costUsd":0},{"stage":"ci_watch","outcome":"","attempt":1,"seconds":null,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":2,"seconds":592,"costUsd":0},{"stage":"merge","outcome":"error","attempt":1,"seconds":0,"costUsd":0},{"stage":"merge","outcome":"error","attempt":2,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":3,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":4,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":5,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":6,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":7,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":8,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":9,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":10,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":11,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"","attempt":12,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":13,"seconds":1261,"costUsd":0},{"stage":"implement","outcome":"success","attempt":2,"seconds":869,"costUsd":3.9959},{"stage":"tests","outcome":"success","attempt":3,"seconds":564,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":2,"seconds":436,"costUsd":1.7019},{"stage":"tests","outcome":"success","attempt":4,"seconds":405,"costUsd":0},{"stage":"mr","outcome":"success","attempt":2,"seconds":2,"costUsd":0},{"stage":"ci_watch","outcome":"","attempt":3,"seconds":null,"costUsd":0},{"stage":"ci_watch","outcome":"error","attempt":4,"seconds":1800,"costUsd":0},{"stage":"ci_watch","outcome":"success","attempt":5,"seconds":3,"costUsd":0},{"stage":"merge","outcome":"","attempt":14,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":15,"seconds":1803,"costUsd":0},{"stage":"merge","outcome":"","attempt":16,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":17,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":18,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":19,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":20,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":21,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":22,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":23,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":24,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"","attempt":25,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":26,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":27,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":28,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":29,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"","attempt":30,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"","attempt":31,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":32,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":33,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":34,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"","attempt":35,"seconds":null,"costUsd":0},{"stage":"merge","outcome":"error","attempt":36,"seconds":1802,"costUsd":0},{"stage":"merge","outcome":"error","attempt":37,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":38,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":39,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":40,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"error","attempt":41,"seconds":1801,"costUsd":0},{"stage":"merge","outcome":"success","attempt":42,"seconds":771,"costUsd":0},{"stage":"cleanup","outcome":"success","attempt":1,"seconds":2,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"pass"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"pass"}]},{"id":"cf4639ee1028","repo":"services/loom-core","title":"policyaudit: a policy field counts as \"read\" when a compose accessor exists even if no operator code calls it — require reachability from cmd/loom-mills-operat…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-24T18:17:34.030713Z","startedAt":null,"endedAt":null,"mrIid":2178,"attempts":1,"costUsd":10.73,"gatesFailed":[],"grade":null,"diff":{"files":6,"added":797,"removed":94},"testedSha":null,"stages":[],"gates":[]},{"id":"592bf5d932ff","repo":"services/loom-core","title":"hud spawn: the spawn-runtime image bundles `loom` from loom-core:latest but its build tag fingerprints only the Dockerfile text, so spawn pods run an 8-day-old…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-24T16:42:09.302290741Z","startedAt":null,"endedAt":null,"mrIid":2180,"attempts":1,"costUsd":9.58,"gatesFailed":[],"grade":null,"diff":{"files":11,"added":1057,"removed":15},"testedSha":null,"stages":[],"gates":[]},{"id":"52e268f71bc9","repo":"services/loom-core","title":"council: MemoryBlock renders the council journal into the prompt with no byte budget (same uncapped pattern that broke pipeline spawns at 149 KB)","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":"2026-09-24T15:19:42.695093416Z","endedAt":"2026-09-24T15:58:40.239311818Z","mrIid":null,"attempts":2,"costUsd":4.64,"gatesFailed":["tested_head"],"grade":null,"diff":{"files":11,"added":847,"removed":1},"testedSha":"34f597c9ff85","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":301,"costUsd":1.3486},{"stage":"research","outcome":"success","attempt":1,"seconds":161,"costUsd":0.0041},{"stage":"implement","outcome":"success","attempt":1,"seconds":11,"costUsd":0},{"stage":"tests","outcome":"success","attempt":1,"seconds":272,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":1,"seconds":1257,"costUsd":3.286},{"stage":"tests","outcome":"error","attempt":2,"seconds":335,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"}]},{"id":"7f0c6d7cc96d","repo":"services/loom-core","title":"ci: the fmt job only runs gofmt, so import grouping that the pre-commit/pre-push goimports -local hook rejects passes CI — run the same goimports check in CI","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":2,"mergedAt":null,"startedAt":"2026-09-24T15:30:29.042945167Z","endedAt":"2026-09-24T15:34:42.64288989Z","mrIid":null,"attempts":2,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":14,"added":703,"removed":32},"testedSha":"7f1ce5b21a0d","stages":[{"stage":"plan_slice","outcome":"skipped","attempt":1,"seconds":0,"costUsd":0},{"stage":"research","outcome":"success","attempt":1,"seconds":30,"costUsd":0.0021},{"stage":"implement","outcome":"success","attempt":1,"seconds":10,"costUsd":0},{"stage":"tests","outcome":"error","attempt":1,"seconds":208,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"}]},{"id":"570435b38dca","repo":"services/loom-core","title":"ci: the fmt job only runs gofmt, so import grouping that the pre-commit/pre-push goimports -local hook rejects passes CI — run the same goimports check in CI","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":2,"mergedAt":null,"startedAt":"2026-09-24T14:29:40.687174211Z","endedAt":"2026-09-24T15:24:47.908896625Z","mrIid":null,"attempts":1,"costUsd":6.24,"gatesFailed":[],"grade":null,"diff":{"files":14,"added":703,"removed":32},"testedSha":"7f1ce5b21a0d","stages":[{"stage":"plan_slice","outcome":"success","attempt":1,"seconds":668,"costUsd":1.3919},{"stage":"research","outcome":"success","attempt":1,"seconds":52,"costUsd":0.0008},{"stage":"implement","outcome":"success","attempt":1,"seconds":1102,"costUsd":2.1472},{"stage":"post_implement_gate","outcome":"gate_fail","attempt":1,"seconds":0,"costUsd":0},{"stage":"implement","outcome":"success","attempt":2,"seconds":1024,"costUsd":2.7037},{"stage":"tests","outcome":"error","attempt":1,"seconds":273,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"}]},{"id":"e5a2a796a8d2","repo":"services/loom-core","title":"mills: decide and prove the policy-propagation contract (fsnotify hot reload vs checksum roll): reload/watch-liveness metrics first, one live ConfigMap-only ed…","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":"2026-09-24T13:14:43.156468657Z","endedAt":"2026-09-24T15:19:20.143013939Z","mrIid":null,"attempts":2,"costUsd":9.05,"gatesFailed":["pr_self_review","spec_conformance"],"grade":null,"diff":{"files":26,"added":1866,"removed":147},"testedSha":"015f2d4fe5e9","stages":[{"stage":"plan_slice","outcome":"error","attempt":1,"seconds":137,"costUsd":0},{"stage":"plan_slice","outcome":"success","attempt":2,"seconds":509,"costUsd":1.8861},{"stage":"research","outcome":"success","attempt":1,"seconds":55,"costUsd":0.0013},{"stage":"implement","outcome":"success","attempt":1,"seconds":7,"costUsd":0},{"stage":"tests","outcome":"success","attempt":1,"seconds":306,"costUsd":0},{"stage":"pr_self_review","outcome":"error","attempt":1,"seconds":1555,"costUsd":0},{"stage":"pr_self_review","outcome":"success","attempt":2,"seconds":1619,"costUsd":4.3398},{"stage":"tests","outcome":"success","attempt":2,"seconds":421,"costUsd":0},{"stage":"implement","outcome":"error","attempt":2,"seconds":685,"costUsd":0.7925},{"stage":"implement","outcome":"success","attempt":3,"seconds":574,"costUsd":1.9313},{"stage":"tests","outcome":"error","attempt":3,"seconds":498,"costUsd":0}],"gates":[{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"fail"},{"afterStage":"post_tests_gate","gate":"tests_verdict","outcome":"pass"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"fail"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"fail"},{"afterStage":"post_review_gate","gate":"tested_head","outcome":"pass"},{"afterStage":"post_review_gate","gate":"spec_conformance","outcome":"fail"},{"afterStage":"post_review_gate","gate":"pr_self_review","outcome":"fail"},{"afterStage":"post_implement_gate","gate":"nonempty_diff","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"branch_pushed","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"diff_size","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"scope","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"fabricated_slice","outcome":"skip"},{"afterStage":"post_implement_gate","gate":"path_policy","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"secret_scan","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"commit_format","outcome":"pass"},{"afterStage":"post_implement_gate","gate":"docs_guardrail","outcome":"pass"}]},{"id":"826de177cf6a","repo":"services/loom-core","title":"hygiene: four files on main fail the goimports local-grouping check the hooks report but never block, and a code comment still names pkg/mills/policy_manager.g…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-24T15:07:40.57205614Z","startedAt":null,"endedAt":null,"mrIid":2179,"attempts":1,"costUsd":4.04,"gatesFailed":[],"grade":null,"diff":{"files":8,"added":26,"removed":19},"testedSha":null,"stages":[],"gates":[]},{"id":"2ed3784747c9","repo":"services/loom-core","title":"mcp-agent-context: nothing scrapes the package's Prometheus metrics (no /metrics listener, no ServiceMonitor) — serve them and alert on a returning ensure-coll…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-24T14:03:25.225077766Z","startedAt":null,"endedAt":null,"mrIid":2173,"attempts":1,"costUsd":13.03,"gatesFailed":[],"grade":null,"diff":{"files":7,"added":885,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"10dd5eae4f2a","repo":"services/loom-core","title":"policy: Validate must reject a per-stage spawn timeout that exceeds 2× the stage's poll deadline, and the runbook needs the \"Spawn wall clock per stage\" sectio…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-24T12:33:57.991482844Z","startedAt":null,"endedAt":null,"mrIid":2174,"attempts":1,"costUsd":5.38,"gatesFailed":[],"grade":null,"diff":{"files":4,"added":232,"removed":2},"testedSha":null,"stages":[],"gates":[]},{"id":"6829d54fd316","repo":"services/loom-core","title":"devbox: build sandbox images with buildah overlay storage instead of vfs so a cold loom-core build takes minutes, not the 28-31 minutes that time out tests sta…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-24T03:59:17.22893833Z","startedAt":null,"endedAt":null,"mrIid":2158,"attempts":1,"costUsd":13.65,"gatesFailed":[],"grade":null,"diff":{"files":9,"added":1016,"removed":21},"testedSha":null,"stages":[],"gates":[]},{"id":"c4ea68411afd","repo":"services/loom-core","title":"ci: branch-pipeline image builds (allow_failure, gate nothing) add 3-8 min after all gates to every ci_watch and merge-queue candidate pipeline — build branch…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-24T02:21:01.812681521Z","startedAt":null,"endedAt":null,"mrIid":2152,"attempts":1,"costUsd":9.32,"gatesFailed":[],"grade":null,"diff":{"files":6,"added":426,"removed":81},"testedSha":null,"stages":[],"gates":[]},{"id":"172a16ccc7a2","repo":"services/loom-core","title":"admission: runs waiting in the merge queue (state merging) must not hold max_concurrent_runs slots — merge_queue.max_depth already bounds them; 3 of 4 slots sa…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-23T19:20:39.157359104Z","startedAt":null,"endedAt":null,"mrIid":2144,"attempts":1,"costUsd":7.15,"gatesFailed":[],"grade":null,"diff":{"files":15,"added":765,"removed":51},"testedSha":null,"stages":[],"gates":[]},{"id":"a5568563cb53","repo":"services/loom-core","title":"spawn budget: implement on claude-code inherits the HUD 100-turn default sized for review — add pipeline.spawn_max_turns_by_stage (implement 200 built in) so i…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-23T18:24:47.487382042Z","startedAt":null,"endedAt":null,"mrIid":2143,"attempts":1,"costUsd":6.08,"gatesFailed":[],"grade":null,"diff":{"files":13,"added":419,"removed":3},"testedSha":null,"stages":[],"gates":[]},{"id":"22c5e7eeb711","repo":"services/loom-core","title":"Mills canary: update heartbeat fixture","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-23T16:31:53.927056917Z","startedAt":null,"endedAt":null,"mrIid":2139,"attempts":1,"costUsd":0.84,"gatesFailed":[],"grade":null,"diff":{"files":1,"added":1,"removed":1},"testedSha":null,"stages":[],"gates":[]},{"id":"326bfb52ab58","repo":"services/loom-core","title":"merge queue: re-stack speculation when a predecessor's head changes — a stale speculative SHA plus a failed_onto stamp silently disables pre-testing for the re…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-23T16:03:36.119602648Z","startedAt":null,"endedAt":null,"mrIid":2137,"attempts":1,"costUsd":10.03,"gatesFailed":[],"grade":null,"diff":{"files":8,"added":1443,"removed":71},"testedSha":null,"stages":[],"gates":[]},{"id":"cdd5d5675d21","repo":"libs/fi-fhir","title":"ci(fi-fhir): lint the X12 fixtures with edilint in CI, fixing the three SE01 miscounts it found","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-22T23:51:12.438774012Z","startedAt":null,"endedAt":null,"mrIid":213,"attempts":8,"costUsd":5.08,"gatesFailed":[],"grade":null,"diff":{"files":8,"added":181,"removed":1},"testedSha":null,"stages":[],"gates":[]},{"id":"91b506de1590","repo":"services/loom-core","title":"mills policy: Validate() parses cron expressions, bounds the unbounded ints, logs every clamp, and rejects or deletes knobs that nothing reads (council.trigger…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-22T21:25:42.800393155Z","startedAt":null,"endedAt":null,"mrIid":2110,"attempts":2,"costUsd":14.05,"gatesFailed":[],"grade":null,"diff":{"files":23,"added":1187,"removed":382},"testedSha":null,"stages":[],"gates":[]},{"id":"e06cf453480f","repo":"services/loom-core","title":"hud: move ConfigMap and pod I/O out from under c.mu and driversMu (per-spawn stripes for the CAS path, per-owner driver locks)","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-22T20:42:06.039127782Z","startedAt":null,"endedAt":null,"mrIid":2109,"attempts":3,"costUsd":12.34,"gatesFailed":[],"grade":null,"diff":{"files":12,"added":653,"removed":179},"testedSha":null,"stages":[],"gates":[]},{"id":"7461847ee44f","repo":"services/loom-core","title":"mills: the auto-requeue sweep must not be budget_blocked by the concurrency ceiling (requeuing costs nothing; substrate recoveries starve behind a deep queue)","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":"2026-09-22T20:11:22.38316145Z","startedAt":null,"endedAt":null,"mrIid":2108,"attempts":3,"costUsd":2.31,"gatesFailed":[],"grade":null,"diff":{"files":6,"added":410,"removed":19},"testedSha":null,"stages":[],"gates":[]},{"id":"478ceb0e5212","repo":"services/loom-core","title":"agent-context: find and bound the producer writing agent_memory_v1 / agent_patterns_v1 at hundreds of points per minute (02:20-03:20Z on 2026-09-24)","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2175,"attempts":1,"costUsd":23.18,"gatesFailed":[],"grade":null,"diff":{"files":39,"added":2373,"removed":115},"testedSha":null,"stages":[],"gates":[]},{"id":"224b0a7043e1","repo":"services/loom-core","title":"runbook: 2026-09-23 catch-up — rewrite the ci_watch classification paragraph (!2160) and document the new knobs: pipeline.scope_overlap (!2162), merge_queue st…","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2186,"attempts":1,"costUsd":7.02,"gatesFailed":[],"grade":null,"diff":{"files":5,"added":31,"removed":19},"testedSha":null,"stages":[],"gates":[]},{"id":"a4cb063018e7","repo":"services/loom-core","title":"merge stage: the queue-wait anchor must restart when a run re-enters merge after a rebase_conflict/head_moved rewind — rollout-churn escalated at 19:38Z while…","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":2,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2177,"attempts":1,"costUsd":7.23,"gatesFailed":[],"grade":null,"diff":{"files":4,"added":365,"removed":11},"testedSha":null,"stages":[],"gates":[]},{"id":"a21d5881d708","repo":"services/loom-core","title":"operator: buildDispatcherWithClients takes 20 positional parameters (8 same-typed closures) — every new per-stage knob conflicts there; pass resolvers through…","outcome":"escalated","escalationClass":"transient","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2181,"attempts":1,"costUsd":17.55,"gatesFailed":[],"grade":null,"diff":{"files":11,"added":470,"removed":88},"testedSha":null,"stages":[],"gates":[]},{"id":"c8c3b9ad3351","repo":"services/loom-core","title":"Immune S5: capability-typed admission — 8-atom requirement schema; out-of-lane specs rejected at enqueue with a structured split reason","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2187,"attempts":15,"costUsd":3.04,"gatesFailed":[],"grade":null,"diff":{"files":7,"added":470,"removed":6},"testedSha":null,"stages":[],"gates":[]},{"id":"912f0c6b173f","repo":"services/loom-core","title":"merge queue: when main is red, park heads instead of evicting them final ci_red, and let a main_repair enqueue jump behind the head — today's 08:20Z main-red t…","outcome":"escalated","escalationClass":"transient","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":1,"costUsd":16.32,"gatesFailed":["tested_head","tests_verdict"],"grade":null,"diff":{"files":16,"added":1357,"removed":31},"testedSha":null,"stages":[],"gates":[]},{"id":"30580eb8adbc","repo":"services/loom-core","title":"canary autopilot: the template's hard-coded budget (6 turns, $1) fails since the 09-23 prompt changes — plan needed 7 turns, then the run hit \"gate judge cost…","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2184,"attempts":1,"costUsd":22.58,"gatesFailed":[],"grade":null,"diff":{"files":19,"added":1539,"removed":5},"testedSha":null,"stages":[],"gates":[]},{"id":"34c902c00a54","repo":"services/loom-core","title":"backlog: link hand-implemented (paused) items to their MR so a sweep settles them merged — today they stay paused forever and block their dependents","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2166,"attempts":1,"costUsd":20.24,"gatesFailed":[],"grade":null,"diff":{"files":20,"added":1744,"removed":16},"testedSha":null,"stages":[],"gates":[]},{"id":"567d02acad9b","repo":"services/loom-core","title":"Mills canary: update heartbeat fixture","outcome":"escalated","escalationClass":"configuration","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":2,"costUsd":1.26,"gatesFailed":[],"grade":null,"diff":{"files":1,"added":1,"removed":1},"testedSha":null,"stages":[],"gates":[]},{"id":"c20d67fc536d","repo":"services/loom-core","title":"Mills canary: update heartbeat fixture","outcome":"escalated","escalationClass":"configuration","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":1,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"c8173680d70c","repo":"services/loom-core","title":"mrwatch shepherd: a 429 lane-full refusal from /merge-queue/enqueue must be OutcomeDeferred (retry next poll, no budget), not OutcomeError — two refusals exhau…","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":7,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2171,"attempts":1,"costUsd":7.28,"gatesFailed":[],"grade":null,"diff":{"files":4,"added":922,"removed":26},"testedSha":null,"stages":[],"gates":[]},{"id":"e56019e2ca04","repo":"services/loom-core","title":"hud: a spawn stopped at the poll deadline or by an operator rollout must still bill its streamed usage so the subscription pace and caps see it","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":7,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2172,"attempts":2,"costUsd":10.83,"gatesFailed":[],"grade":null,"diff":{"files":24,"added":2314,"removed":109},"testedSha":null,"stages":[],"gates":[]},{"id":"4a344b6deae2","repo":"services/loom-core","title":"git hooks: pre-commit and pre-push fall back to the native scripts on ANY framework failure, so a hook with no native equivalent (go-mod-tidy, check-yaml, gate…","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":7,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2170,"attempts":1,"costUsd":6.59,"gatesFailed":[],"grade":null,"diff":{"files":8,"added":377,"removed":3},"testedSha":null,"stages":[],"gates":[]},{"id":"80e5d8e8cd41","repo":"services/loom-core","title":"merge stage: a queue_full refusal must wait for a lane slot (bounded by the stall wait), not escalate a green run after three refusals in three minutes","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2168,"attempts":1,"costUsd":13.77,"gatesFailed":[],"grade":null,"diff":{"files":20,"added":963,"removed":100},"testedSha":null,"stages":[],"gates":[]},{"id":"80a0d13cf1c8","repo":"services/loom-core","title":"devbox lint:parity: for a non-home target repo run the TARGET repo's golangci config and pinned version, not loom-core's — edilint !22 passed the tests stage a…","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":1,"costUsd":5.78,"gatesFailed":[],"grade":null,"diff":{"files":8,"added":1113,"removed":36},"testedSha":null,"stages":[],"gates":[]},{"id":"b753c347fe19","repo":"services/loom-core","title":"operator: \"kpi snapshot failed: kpi window 30d: context deadline exceeded\" every 5 minutes after the retention sweep — the 30d KPI window still cannot be compu…","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":7,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2165,"attempts":1,"costUsd":17.04,"gatesFailed":[],"grade":null,"diff":{"files":11,"added":1324,"removed":91},"testedSha":null,"stages":[],"gates":[]},{"id":"8d0c0df275a2","repo":"services/loom-core","title":"council: MemoryBlock renders the council journal into the prompt with no byte budget (same uncapped pattern that broke pipeline spawns at 149 KB)","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":1,"costUsd":16.5,"gatesFailed":["spec_conformance"],"grade":null,"diff":{"files":5,"added":525,"removed":1},"testedSha":null,"stages":[],"gates":[]},{"id":"4d87e5df5fd9","repo":"services/loom-core","title":"pre-commit: the golangci-lint hook exits 3 (\"parallel golangci-lint is running\") and the commit still goes through — lock contention must retry, not pass silen…","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":7,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2164,"attempts":1,"costUsd":9.96,"gatesFailed":[],"grade":null,"diff":{"files":7,"added":377,"removed":27},"testedSha":null,"stages":[],"gates":[]},{"id":"1c4ff5599374","repo":"services/loom-core","title":"ci_watch: when an MR is red only because main WAS red and main has since recovered, rebase and re-run CI instead of escalating the run","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":7,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2163,"attempts":1,"costUsd":17.26,"gatesFailed":[],"grade":null,"diff":{"files":16,"added":1508,"removed":16},"testedSha":null,"stages":[],"gates":[]},{"id":"a274ee144b32","repo":"services/loom-core","title":"merge queue: a speculative/tree proof cannot merge while the MR's own head pipeline runs (GitLab 405 → final merge_failed eviction); wait instead of evicting,…","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":3,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2155,"attempts":1,"costUsd":16.06,"gatesFailed":[],"grade":null,"diff":{"files":11,"added":951,"removed":33},"testedSha":null,"stages":[],"gates":[]},{"id":"221def880582","repo":"services/loom-core","title":"mills operator: build each client once (PlanClient ×9, GitLab ×3, notify ×2, pattern ×3), fold stray env reads into Config with enum validation, and stop mutat…","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2157,"attempts":3,"costUsd":6.7,"gatesFailed":[],"grade":null,"diff":{"files":62,"added":1267,"removed":579},"testedSha":null,"stages":[],"gates":[]},{"id":"8a834bafdfd8","repo":"services/loom-core","title":"spawn: give plan-stage spawns a narrow MCP tool profile so a local lane can find agent_plan_* instead of hunting for a daemon socket","outcome":"escalated","escalationClass":"transient","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2145,"attempts":8,"costUsd":3.71,"gatesFailed":[],"grade":null,"diff":{"files":11,"added":980,"removed":45},"testedSha":null,"stages":[],"gates":[]},{"id":"e44e90dbb6db","repo":"services/loom-core","title":"mills: extract pkg/mills/policy (policy, manager, overseer policy, agent routing, provenance digest, throughput guardrail) behind root type aliases","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2153,"attempts":2,"costUsd":12.72,"gatesFailed":[],"grade":null,"diff":{"files":103,"added":8478,"removed":7899},"testedSha":null,"stages":[],"gates":[]},{"id":"6fa69368d3cd","repo":"services/loom-core","title":"merge queue: when main moves during awaiting_pipeline, cancel the stale pipeline and rebase immediately instead of waiting ~40 min for a result that cannot land","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2151,"attempts":1,"costUsd":9.49,"gatesFailed":[],"grade":null,"diff":{"files":11,"added":937,"removed":19},"testedSha":null,"stages":[],"gates":[]},{"id":"4d7b49579ae0","repo":"services/loom-core","title":"mills: measure operator rollout churn and stop rolling the operator for merges that do not change it (29 rollouts in 24h, each interrupting every in-flight run)","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2141,"attempts":3,"costUsd":9.22,"gatesFailed":[],"grade":null,"diff":{"files":10,"added":517,"removed":6},"testedSha":null,"stages":[],"gates":[]},{"id":"558a6d604102","repo":"services/loom-core","title":"mills: a requeue that adopts an existing implement branch for an item whose slices are already hydrated must not spend a plan_slice spawn re-planning it","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":1,"costUsd":2.94,"gatesFailed":[],"grade":null,"diff":{"files":18,"added":1636,"removed":8},"testedSha":null,"stages":[],"gates":[]},{"id":"50cda14d6d57","repo":"services/loom-core","title":"loom sync mirror: guard the SOURCE checkout too — a loom-core checkout behind origin/main reports phantom drift and --apply would regress the gitops registry m…","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":2,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2136,"attempts":1,"costUsd":8.72,"gatesFailed":[],"grade":null,"diff":{"files":5,"added":888,"removed":73},"testedSha":null,"stages":[],"gates":[]},{"id":"60344b013eca","repo":"services/loom-core","title":"hud: one finalizeSpawn with an explicit parser Verdict() contract replaces duck-typed vetoes and three finalizers that disagree on completion","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":2,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2135,"attempts":8,"costUsd":9.93,"gatesFailed":[],"grade":null,"diff":{"files":14,"added":1157,"removed":193},"testedSha":null,"stages":[],"gates":[]},{"id":"4bcbdc17f121","repo":"services/loom-core","title":"mills: the implement and review prompts must tell the agent to run only focused package tests in the spawn pod and leave the repo-wide gate to the tests stage","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":7,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2138,"attempts":1,"costUsd":6.78,"gatesFailed":[],"grade":null,"diff":{"files":8,"added":549,"removed":20},"testedSha":null,"stages":[],"gates":[]},{"id":"86b5867242e1","repo":"services/loom-core","title":"mills: slices C+D of de-hubbing — pkg/mills/ledger for run-verdict/escalation-binding/learning-signal types, Budget into pkg/mills/budget, then delete the inje…","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":2,"costUsd":3.48,"gatesFailed":["nonempty_diff"],"grade":null,"diff":{"files":28,"added":288,"removed":140},"testedSha":null,"stages":[],"gates":[]},{"id":"52c97db5931c","repo":"services/loom-core","title":"mills store: cap log_tail at write, project it only for error rows in telemetry, age out heavy blobs, and checkpoint/vacuum after sweeps","outcome":"escalated","escalationClass":"transient","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2133,"attempts":2,"costUsd":13.44,"gatesFailed":[],"grade":null,"diff":{"files":15,"added":1721,"removed":39},"testedSha":null,"stages":[],"gates":[]},{"id":"897e4cc815b4","repo":"services/loom-core","title":"spawn: give plan-stage spawns a narrow MCP tool profile so a local lane can find agent_plan_* instead of hunting for a daemon socket","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":3,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":7,"costUsd":1.05,"gatesFailed":[],"grade":null,"diff":{"files":11,"added":952,"removed":45},"testedSha":null,"stages":[],"gates":[]},{"id":"687be0f6377e","repo":"services/loom-core","title":"mills: subscription spawn (Claude Code via cluster OAuth) as an editor/judge backend so metered-API outages fall back to subscription time","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":4,"costUsd":30.48,"gatesFailed":["tested_head"],"grade":null,"diff":{"files":16,"added":1937,"removed":11},"testedSha":null,"stages":[],"gates":[]},{"id":"54054d240025","repo":"services/loom-core","title":"mills operator API: explicit snake_case wire views with mappers replace serializing store structs (PascalCase) directly, migrated one endpoint at a time behind…","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2130,"attempts":3,"costUsd":9.16,"gatesFailed":[],"grade":null,"diff":{"files":77,"added":14284,"removed":120},"testedSha":null,"stages":[],"gates":[]},{"id":"eca0e920003f","repo":"services/loom-core","title":"hud: one finalizeSpawn with an explicit parser Verdict() contract replaces duck-typed vetoes and three finalizers that disagree on completion","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":3,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":7,"costUsd":0.67,"gatesFailed":[],"grade":null,"diff":{"files":13,"added":996,"removed":193},"testedSha":null,"stages":[],"gates":[]},{"id":"0de9857f5a53","repo":"services/loom-core","title":"hud: one finalizeSpawn with an explicit parser Verdict() contract replaces duck-typed vetoes and three finalizers that disagree on completion","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":3,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":6,"costUsd":5.66,"gatesFailed":[],"grade":null,"diff":{"files":13,"added":996,"removed":193},"testedSha":null,"stages":[],"gates":[]},{"id":"9bc7ae84ecc2","repo":"services/loom-core","title":"spawn: give plan-stage spawns a narrow MCP tool profile so a local lane can find agent_plan_* instead of hunting for a daemon socket","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":8,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":6,"costUsd":10.43,"gatesFailed":["scope"],"grade":null,"diff":{"files":11,"added":952,"removed":45},"testedSha":null,"stages":[],"gates":[]},{"id":"9edf43f01488","repo":"services/loom-core","title":"mills operator: build each client once (PlanClient ×9, GitLab ×3, notify ×2, pattern ×3), fold stray env reads into Config with enum validation, and stop mutat…","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":8,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":2,"costUsd":0.63,"gatesFailed":[],"grade":null,"diff":{"files":60,"added":1075,"removed":536},"testedSha":null,"stages":[],"gates":[]},{"id":"6c423e9be3ac","repo":"services/loom-core","title":"hud: a spawn stopped at the poll deadline or by an operator rollout must still bill its streamed usage so the subscription pace and caps see it","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":8,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":1,"costUsd":4,"gatesFailed":[],"grade":null,"diff":{"files":8,"added":415,"removed":42},"testedSha":null,"stages":[],"gates":[]},{"id":"b4c4cc1d734e","repo":"libs/edilint","title":"docs(edilint): generate docs/rules/EL####.md from the rule catalog with a drift-guard test (Workstream G, slice 1)","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":22,"attempts":6,"costUsd":6.65,"gatesFailed":[],"grade":null,"diff":{"files":64,"added":3261,"removed":2},"testedSha":null,"stages":[],"gates":[]},{"id":"4e094155ac32","repo":"services/loom-core","title":"mills: give gate outcomes a closed reason Code, derive the known-gate list from the registry, dispatch gate specifics by capability interfaces, and short-circu…","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":3,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2112,"attempts":3,"costUsd":11.22,"gatesFailed":[],"grade":null,"diff":{"files":57,"added":2048,"removed":345},"testedSha":null,"stages":[],"gates":[]},{"id":"74f60ae57e1c","repo":"services/loom-core","title":"hud: one finalizeSpawn with an explicit parser Verdict() contract replaces duck-typed vetoes and three finalizers that disagree on completion","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":3,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":5,"costUsd":0.44,"gatesFailed":[],"grade":null,"diff":{"files":13,"added":996,"removed":193},"testedSha":null,"stages":[],"gates":[]},{"id":"a1d8f446a780","repo":"services/loom-core","title":"mills: subscription spawn (Claude Code via cluster OAuth) as an editor/judge backend so metered-API outages fall back to subscription time","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":3,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":3,"costUsd":11.52,"gatesFailed":[],"grade":null,"diff":{"files":16,"added":2031,"removed":11},"testedSha":null,"stages":[],"gates":[]},{"id":"242d96189bce","repo":"services/loom-core","title":"hud: one finalizeSpawn with an explicit parser Verdict() contract replaces duck-typed vetoes and three finalizers that disagree on completion","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":4,"costUsd":6.11,"gatesFailed":["path_policy"],"grade":null,"diff":{"files":13,"added":996,"removed":193},"testedSha":null,"stages":[],"gates":[]},{"id":"72c18e409529","repo":"services/loom-core","title":"mills clients: one retry policy (idempotency-aware, jittered, Retry-After-honoring) replaces seven bespoke loops; metered chat POSTs are never retried by the H…","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2113,"attempts":3,"costUsd":20.97,"gatesFailed":[],"grade":null,"diff":{"files":27,"added":1511,"removed":319},"testedSha":null,"stages":[],"gates":[]},{"id":"897ddce5d297","repo":"services/loom-core","title":"mills: give gate outcomes a closed reason Code, derive the known-gate list from the registry, dispatch gate specifics by capability interfaces, and short-circu…","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":2,"costUsd":17.53,"gatesFailed":["tested_head"],"grade":null,"diff":{"files":57,"added":1968,"removed":341},"testedSha":null,"stages":[],"gates":[]},{"id":"2a063dd3af0c","repo":"libs/fi-fhir","title":"ci(fi-fhir): lint the X12 fixtures with edilint in CI, fixing the three SE01 miscounts it found","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":7,"costUsd":9.56,"gatesFailed":["spec_conformance"],"grade":null,"diff":{"files":8,"added":154,"removed":18},"testedSha":null,"stages":[],"gates":[]},{"id":"0a8330738653","repo":"libs/edilint","title":"docs(edilint): generate docs/rules/EL####.md from the rule catalog with a drift-guard test (Workstream G, slice 1)","outcome":"escalated","escalationClass":"configuration","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":5,"costUsd":5.78,"gatesFailed":["diff_size"],"grade":null,"diff":{"files":64,"added":3188,"removed":2},"testedSha":null,"stages":[],"gates":[]},{"id":"e710f2a0c7aa","repo":"services/loom-core","title":"spawn: give plan-stage spawns a narrow MCP tool profile so a local lane can find agent_plan_* instead of hunting for a daemon socket","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":8,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":5,"costUsd":6.86,"gatesFailed":["branch_pushed","nonempty_diff"],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"279365fe9a61","repo":"services/loom-core","title":"mills clients: one retry policy (idempotency-aware, jittered, Retry-After-honoring) replaces seven bespoke loops; metered chat POSTs are never retried by the H…","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":8,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":2,"costUsd":0.48,"gatesFailed":[],"grade":null,"diff":{"files":7,"added":480,"removed":113},"testedSha":null,"stages":[],"gates":[]},{"id":"e77ec8860fe9","repo":"services/loom-core","title":"mills: the auto-requeue sweep must not be budget_blocked by the concurrency ceiling (requeuing costs nothing; substrate recoveries starve behind a deep queue)","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":8,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":2,"costUsd":9.2,"gatesFailed":["tested_head"],"grade":null,"diff":{"files":6,"added":410,"removed":19},"testedSha":null,"stages":[],"gates":[]},{"id":"5f775ed05190","repo":"services/loom-core","title":"hud: one finalizeSpawn with an explicit parser Verdict() contract replaces duck-typed vetoes and three finalizers that disagree on completion","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":8,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":3,"costUsd":0.3,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"178f4844c0a1","repo":"services/loom-core","title":"mills: measure operator rollout churn and stop rolling the operator for merges that do not change it (29 rollouts in 24h, each interrupting every in-flight run)","outcome":"escalated","escalationClass":"code","escalationWeekOccurrences":8,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":2,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"82f225831886","repo":"services/loom-core","title":"mills: put the declared file envelope, protected paths and diff budget into the implement prompt, and route scope/diff_size/path_policy verdicts to a same-bran…","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":3,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":2102,"attempts":2,"costUsd":3.05,"gatesFailed":[],"grade":null,"diff":{"files":12,"added":503,"removed":13},"testedSha":null,"stages":[],"gates":[]},{"id":"456969c4b023","repo":"services/loom-core","title":"spawn: give plan-stage spawns a narrow MCP tool profile so a local lane can find agent_plan_* instead of hunting for a daemon socket","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":3,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":4,"costUsd":0.62,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"5549a4f4ae72","repo":"services/loom-core","title":"mills: extract pkg/mills/metrics behind root aliases so five subpackages stop importing the root hub for Prometheus vars alone","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":1,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":3,"costUsd":0.55,"gatesFailed":[],"grade":null,"diff":{"files":24,"added":558,"removed":138},"testedSha":null,"stages":[],"gates":[]},{"id":"dacdbb52b66f","repo":"services/loom-core","title":"spawn: give plan-stage spawns a narrow MCP tool profile so a local lane can find agent_plan_* instead of hunting for a daemon socket","outcome":"escalated","escalationClass":"infrastructure","escalationWeekOccurrences":3,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":3,"costUsd":0.46,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"a028051107e8","repo":"services/loom-core","title":"admission: scope-overlap serialization blocks items for hours behind merge-queue waiters, mostly over docs/MILLS_RUNBOOK.md — make doc globs soft and (policy-g…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"8eaa48939fb0","repo":"services/loom-core","title":"ci_watch: a test job that fails every rerun with a script_failure must be class code and take the implement rewind, not escalate as retryable infra","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"e02166f4ea25","repo":"services/loom-core","title":"agent-context: EnsureCollection re-creates every payload index on EVERY write (3-8 PUT /index per persist) — 89k index PUTs in 70 min overloaded qdrant-vm, tim…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"1e8571e34d74","repo":"services/loom-core","title":"hud spawn: periodically autosave the agent's working tree to a wip ref and checkpoint from a preStop hook, so pod eviction or node loss mid-attempt no longer l…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"6f2ea4b06467","repo":"services/loom-core","title":"prompts: render the per-item journal within a byte budget (default 32 KiB) — a 149 KB journal made every implement spawn unlaunchable (argv > MAX_ARG_STRLEN) a…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"92050692059f","repo":"services/loom-core","title":"spawn wall clock: the in-pod agent timeout rides Budget.MaxPipelineMinutes (also eval's whole-run time-to-merge budget) and otherwise the HUD's hard-coded 60m…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"46fedcfa85c0","repo":"services/loom-core","title":"mills: carry the latest attempt handoff (branch head, checkpoint, summary, failing gate tail) across runs of the same item, so requeued and auto-retried runs c…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"fe0491e0801f","repo":"services/loom-core","title":"merge queue: evict a QUEUED candidate as soon as GitLab reports it conflicted, so the owning run rewinds now instead of holding a lane slot for hours and escal…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"4d166f139796","repo":"services/loom-core","title":"merge stage: the 180-minute queue wait bound must measure a stalled processor, not a deep lane, so green queued work is never escalated (and re-planned/re-revi…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"e04d1046d611","repo":"services/loom-core","title":"hud spawn: checkpoint (commit + push, ci.skip) the agent's working tree before any non-completion pod delete, so a stopped, stalled, timed-out or auth-rotated…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"2cae96e2bd15","repo":"services/loom-core","title":"devbox gate: the bare-main baseline must drop packages the branch adds, and a stopped-container exec error must be classed substrate before the baseline is con…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"2b1e648d1deb","repo":"services/loom-core","title":"mills: a vendor usage-limit / subscription-exhausted spawn failure must hold the stage until the vendor's reset time instead of looping free transient retries,…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"e32c2e4710f9","repo":"services/loom-core","title":"mills: the kill switch (policy enabled=false) must park in-flight runs for resume instead of escalating them class=config, never fall back to a direct merge, a…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"8e7ab4778b22","repo":"services/loom-core","title":"merge queue: an enqueue-time queue_full refusal must be infra pacing, not a code failure, and externally merged rows must be swept before they reach the head","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"320e15a154b5","repo":"services/loom-core","title":"spawn client: make the 30-minute spawn poll deadline a hot-reloadable per-stage policy value instead of a hard-coded default that kills 45-60 minute implement…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"14d5b0633036","repo":"services/loom-core","title":"gitlab MCP: merge_merge_request must refuse an MR that has a live Mills merge-queue row or a Mills branch prefix unless the caller passes bypass_merge_queue=tr…","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"1e2c6f0eb8cf","repo":"services/loom-core","title":"mills: an operator shutdown must park in-flight pipeline runs for boot resume instead of escalating them as \"pipeline drive failed: context canceled\"","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"04d91527150a","repo":"services/loom-core","title":"chore(custom-server): remove legacy /sse transport after full Streamable HTTP migration (endgame, human-gated)","outcome":"merged","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"0aaa38b308ce","repo":"services/loom-core","title":"waitForPodDone treats routine k8s watch expiry as pod failure — 15m+ buildah builds always fail","outcome":"retired","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"664c9d328e00","repo":"services/loom-core","title":"Classify liveness-watchdog stall errors as infra with free auto-retry — stall-infra-classify","outcome":"retired","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]},{"id":"949ed724b1fe","repo":"services/loom-core","title":"fix(hub): mcpo initContainer DNS warm — first-lookup race darkens the alphabetically-first upstream until the next restart","outcome":"retired","escalationClass":null,"escalationWeekOccurrences":null,"mergedAt":null,"startedAt":null,"endedAt":null,"mrIid":null,"attempts":0,"costUsd":0,"gatesFailed":[],"grade":null,"diff":{"files":0,"added":0,"removed":0},"testedSha":null,"stages":[],"gates":[]}],"publishedRepos":["services/loom-core","libs/mcp-go","libs/fi-fhir","libs/edilint","services/flexinfer","services/flexdeck","services/flexinfer-site","services/procmodel"],"note":"Sanitized from the Mills operator: identifiers are hashed, titles are scrubbed of paths and URLs, judge prose and log tails are dropped, and only runs against published repositories are listed. Escalations are counted, not hidden."}