if you change it to the above code it should have the right size even if you change your vector.
As for the problem of the colours does hard coding a colour into your shader change it to that colour? So something likeout_color = vec4(1.0, 0.0, 0.0, 1.0);
that should change the triangle to red. I know you don't want just a red one but this will eliminate the shader as the problem
Actually it does not change anything.
I have to take the time to try all the other suggestions.