Governor risk-sized autonomy for GitLab Duo agents

Every change an agent makes gets autonomy sized to its risk: low-risk changes ship on their own, risky ones get fewer privileges and more verification.

T0 docs T1 low T2 elevated T3 high (restricted agent, dark launch) T4 refused

Hash chain verified: 230 entries

Add DELETE /items/{item_id} endpoint

T1live, issue closed

issue #5 · 12 Oct 08:49:06 to 12 Oct 12:54:05 (4 h 05 min) · 22 ledger entries · raw JSON

Run timeline

Issue

08:49:06

Triage

08:49:06
59 s

Delivery

08:51:05
2 min 01 s

Pipeline

08:54:05
10 min 02 s

Canary

09:05:05
3 h 41 min
problem
Owner resume 12:45:42

Promoted

12:52:05

Close

12:54:05

GitLab DevSecOps stages this run touched

Tier and evidence

Tier T1 (prior from triage: T1), 1 points. A signal's floor sets a minimum tier; points add to it. No LLM is in this decision.

SignalDetailPointsFloor
touched_line_coverageunknown, +1 (no coverage data yet, so the scorer assumes worse)1

Human actions

Owner resume · 12 Oct 12:45:42 · L29-819907224914
Actor: arnavgupta2004. Fix: 67c6c661.
owner approved resume after IAM fix: governor service account granted roles/artifactregistry.reader on the governor repository; preflight release_permissions now passes as the governor

Ledger entries

TimeEntryKindWhat happened
Issue
08:49:06L13-63e80c30a442issue_seenissue opened: Add DELETE /items/{item_id} endpoint
Triage
08:49:06L14-77532b9925ccflow_requestedtriage flow requested
08:49:08L15-2535398262cbflow_startedsession 9314326 started; session privileges [1,2,3,4,5,6,7]
08:50:06L16-1ff4ccbf230dprior_tierprior tier T1 from triage labels area::app, type::feature
Delivery
08:51:05L17-32af36402af7flow_requesteddelivery flow requested, tier T1
08:51:07L18-3c05917a7901flow_startedsession 9314405 started; session privileges [1,2,3,4,5]
08:53:07L19-2620d0a7cb10mr_openedMR !2 opened on gov/issue-5-1
Pipeline
08:54:05L20-a730ff4d129atier_computedtier T1 (1 points, scorer v1)
08:55:07L21-fb02fc6785f3pipeline_startedpipeline 2937849035 started: RISK_TIER=T1
08:57:05L22-2f31eb3631bapipeline_finishedpipeline 2937849035 finished: success
08:58:09L23-312b1664fd7dmergedMR !2 merged as 6fe095d6
09:04:07L24-e4ae99987273deployedrevision app-00024-dim deployed with no traffic (pipeline 2937859658)
Canary
09:05:05L25-12610db84f60step_failedstep releasing failed (attempt 1): HTTPError: 403 Client Error: Forbidden for url: https://run.googleapis.com/v2/projects/governor-hackathon/locations/europe-west9/services/app
09:06:06L26-1d9c731b7d97step_failedstep releasing failed (attempt 2): HTTPError: 403 Client Error: Forbidden for url: https://run.googleapis.com/v2/projects/governor-hackathon/locations/europe-west9/services/app
09:08:05L27-3393254b30c1step_failedstep releasing failed (attempt 3): HTTPError: 403 Client Error: Forbidden for url: https://run.googleapis.com/v2/projects/governor-hackathon/locations/europe-west9/services/app
09:08:05L28-bd503382b843stopstopped (T4): Step `releasing` failed 3 times in a row; the governor stops rather than guess.
Human action
12:45:42L29-819907224914owner_resumearnavgupta2004: owner approved resume after IAM fix: governor service account granted roles/artifactregistry.reader on the governor repository; preflight release_permissions now passes as the governor
Canary
12:47:03L30-53fec7bab9edtraffic_shift25% of traffic to app-00024-dim, soak 5 min
Promote / roll back
12:52:05L31-cabfa6478128traffic_shift100% of traffic to app-00024-dim
12:52:06L32-342cd543cbcbpromotedapp-00024-dim promoted to 100% (flag off)
12:52:06L33-d0ab921abfecrelease_outcomerelease outcome: clean_release
Close
12:54:05L34-00f54d9dd446issue_closed_by_governorissue #5 closed by the governor after app-00024-dim went live