I've been trying to find where the node limits are defined in the Lichess code so that I can see what they use for the current version of Stockfish. From what I can tell, they are defined in the
Work.scala file with different limits for the different categories of analysis. For official broadcasts, the limit is 5,000,000 nodes/move, for manually requested analyses on a game or study, the limit is 1,000,000 nodes, and then there are some further limits for some automated analyses.
These limits are the basis for the actual limits which are returned to the Fishnet client's request for work in the
JsonAPI.scala file. For Stockfish 16 & 17.1, the limits are used as defined above. However, for classical Stockfish (i.e. the version with a handcrafted evaluation function), the limit is 3 times what is defined above.
The timeout for analyzing each move is defined in the
Cleaner.scala file and is 7 seconds regardless of what type of analysis is being performed. It also appears that Lichess has a maximum game length of 300 ply for their analysis, but I can't remember which files I saw that in.
It's probably wasn't super necessary for me to dig through this to find these specific details, but I've been wanting to implement something like this myself as well, and seeing what Lichess is using for their limits seems useful for getting an idea for where to start when running the engine analysis.