I suspect it’s matching the auto { "auto" } token you also for some reason have there, though your CodeAuto token specializes identifier. Because auto is specified as a direct literal, it’ll take precedence of identifier tokens that happen to match the same input.
That was indeed a bug in @lezer/generator. It didn’t properly handle specializations of local tokens. The below patch should help. (But also note that it is not typical to use local token groups for things like identifiers, and it may not be necessary when you don’t need the @else feature.)