How to overlay searxng together with its python dependency?

I want to overlay searxng into a slightly newer commit to test it with brave search engine fixed, but in that commit it required a newer version 0.20.0 of a python package msgspec, but it still complain it is using 0.19.0 but not 0.20.0 in the following code:

final: prev:
let
  searxng-overrideAttrs = prev.searxng.overrideAttrs (
    finalAttrs: previousAttrs: {
      version = "0-unstable-2025-12-17";
      src = prev.fetchFromGitHub {
        owner = "searxng";
        repo = "searxng";
        rev = "896863802e0d14b1d7003b442a842317a0272b0f";
        hash = "sha256-9vSO69On9MQ2J4zqAweMTW4ZKGE1Iex575INv+/VsPs=";
      };
      # This preBuild block is copied from searxng package
      preBuild =
        let
          versionString = lib.concatStringsSep "." (
            builtins.tail (lib.splitString "-" (lib.removePrefix "0-" finalAttrs.version))
          );
          commitAbbrev = builtins.substring 0 8 finalAttrs.src.rev;
        in
        ''
          export SEARX_DEBUG="true";

          cat > searx/version_frozen.py <<EOF
          VERSION_STRING="${versionString}+${commitAbbrev}"
          VERSION_TAG="${versionString}+${commitAbbrev}"
          DOCKER_TAG="${versionString}-${commitAbbrev}"
          GIT_URL="https://github.com/searxng/searxng"
          GIT_BRANCH="master"
          EOF
        '';
    }
  );
  python3o = prev.python3.override {
    packageOverrides = pyfinal: pyprev: {
      # msgspec = prev.python3.pkgs.msgspec.overridePythonAttrs rec {
      msgspec = prev.python3.pkgs.msgspec.overrideAttrs rec {
        version = "0.20.0";
        src = prev.fetchFromGitHub {
          owner = "jcrist";
          repo = "msgspec";
          tag = version;
          hash = "";
        };
      };
    };
  };
in
{
  searxng = searxng-overrideAttrs.override { python3 = python3o; };
}