@@ -2082,3 +2082,63 @@ func TestActorHeaders(t *testing.T) {
20822082 }
20832083 }
20842084}
2085+
2086+ func TestCoderAgentsInitiatorOverride (t * testing.T ) {
2087+ t .Parallel ()
2088+
2089+ const overrideActorID = "owner-id-from-coder"
2090+
2091+ cases := []struct {
2092+ name string
2093+ userAgent string
2094+ ownerIDHeader string
2095+ expectInitiator string
2096+ }{
2097+ {
2098+ name : "coder_agents_with_owner_id" ,
2099+ userAgent : "coder-agents/v2.24.0 (linux/amd64)" ,
2100+ ownerIDHeader : overrideActorID ,
2101+ expectInitiator : overrideActorID ,
2102+ },
2103+ {
2104+ name : "coder_agents_without_owner_id" ,
2105+ userAgent : "coder-agents/v2.24.0 (linux/amd64)" ,
2106+ ownerIDHeader : "" ,
2107+ expectInitiator : defaultActorID ,
2108+ },
2109+ {
2110+ name : "non_coder_agents_with_owner_id_header" ,
2111+ userAgent : "claude-code/1.0.0" ,
2112+ ownerIDHeader : overrideActorID ,
2113+ expectInitiator : defaultActorID ,
2114+ },
2115+ }
2116+
2117+ for _ , tc := range cases {
2118+ t .Run (tc .name , func (t * testing.T ) {
2119+ t .Parallel ()
2120+
2121+ ctx , cancel := context .WithTimeout (t .Context (), time .Second * 30 )
2122+ t .Cleanup (cancel )
2123+
2124+ fix := fixtures .Parse (t , fixtures .AntSimple )
2125+ upstream := newMockUpstream (t , ctx , newFixtureResponse (fix ))
2126+
2127+ bridgeServer := newBridgeTestServer (t , ctx , upstream .URL )
2128+
2129+ headers := http.Header {"User-Agent" : {tc .userAgent }}
2130+ if tc .ownerIDHeader != "" {
2131+ headers .Set ("X-Coder-Owner-Id" , tc .ownerIDHeader )
2132+ }
2133+
2134+ resp := bridgeServer .makeRequest (t , http .MethodPost , pathAnthropicMessages , fix .Request (), headers )
2135+ require .Equal (t , http .StatusOK , resp .StatusCode )
2136+ _ , err := io .ReadAll (resp .Body )
2137+ require .NoError (t , err )
2138+
2139+ interceptions := bridgeServer .Recorder .RecordedInterceptions ()
2140+ require .Len (t , interceptions , 1 )
2141+ require .Equal (t , tc .expectInitiator , interceptions [0 ].InitiatorID )
2142+ })
2143+ }
2144+ }
0 commit comments