Continuous masking of masked variables above 4KiB
## Release notes {placeholder for release notes} ## Problem In https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/2979, we introduced a fix for masked variables above 4KiB, but it involved sometimes tailing the end of the variable. We discovered this was not a breaking change, as the previous masking implementation would also occasionally reveal masked variables, but in full, at any length, based on how a log line could be split across multiple `Write()` calls non-deterministically. ## Proposal: Remove the phrase transform and reliance on `text/transform` which has an internal 4 KiB buffer. Have an implementation that doesn't require a buffer, but instead counts how much of a phrase as been matched and act accordingly when it's either fully matched (write `[MASKED]`) or encounters a character that cannot be matched (write back all currently matched characters). ## Tasks - [X] New masking solution: https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/3482 - [x] Conduct regression testing - [x] Conduct performance testing
issue