If a language calls SetAttr for an attribute that is not in the KindInfo it is set on the initial rule generation but can never be updated.
What version of gazelle are you using?
0.38+
What version of Bazel are you using?
6.5, 7.0+
Does this issue reproduce with the latest releases of all the above?
Yes
What operating system and processor architecture are you using?
All
What did you do?
Invoke SetAttr in a language.
What did you expect to see?
The attribute should be updated.
What did you see instead?
The attribute is only set when the target is initially generated but never updated when the target already exists.