The push and pull_request triggers both matched every branch, so each PR kicked off two identical runs of lint, the three-OS test matrix and the soulfind e2e job. Push now only covers master; branches are covered by the pull_request trigger. Adds a concurrency group so a follow-up push cancels the superseded run instead of queueing behind it.