See this as well as one other recent post where a script in an infinite loop came to Jick's notice and resulted in a player ban.
Is there something KoLmafia might do to address this?
The techniques I have used elsewhere in general won't apply because they amount to writing a monitor process. Other techniques work best if there is a fairly compact representation of the "state" of the system and/or a quick way to determine whether the state has changed.
Since the thing that bothers Jick is server hits and reducing hits has always been a KoLmafia design goal, perhaps the focus should be on visited URLs?
My first thoughts are usually never the best ideas but I am wondering if the following would be both feasible and address the issue. First these checks only happen when running a script. I suspect I can detect that easily enough at least for scripts that get run in such a way that they appear on the script MRU list
If I am running a script I then record any URL submitted and the adventure count. I then check my "table" and if if the adventure count remains constant for X called URLs or the URL remains unchanged for Y I raise an error condition and let the existing mechanics abort the script.
Is this likely to make Jick happier than he is now?
I would try X and Y about 1000 each and then tune.
There is also an operator error in automated adventuring that can cause an infinite loop. I adventure, run the Summon daily deed, forget that the adventure location has changed and then blindly start auto-adventuring again. This results in effectively an infinite loop. I can imagine a similar check in automated adventuring that counts how many times the adventure loop has executed without the adventure counter changing and if that number is greater than Z, auto-adventuring aborts. I'm thinking Z as low as 10 might be reasonable.
Thoughts? Bad ideas? Won't solve the problem or solution won't scale generalize? Not as easy as I think?
I can see this being the most interesting thing for me to do between Christmas and New Years' so it might actually happen ;-)
Thanks.
Is there something KoLmafia might do to address this?
The techniques I have used elsewhere in general won't apply because they amount to writing a monitor process. Other techniques work best if there is a fairly compact representation of the "state" of the system and/or a quick way to determine whether the state has changed.
Since the thing that bothers Jick is server hits and reducing hits has always been a KoLmafia design goal, perhaps the focus should be on visited URLs?
My first thoughts are usually never the best ideas but I am wondering if the following would be both feasible and address the issue. First these checks only happen when running a script. I suspect I can detect that easily enough at least for scripts that get run in such a way that they appear on the script MRU list

Is this likely to make Jick happier than he is now?
I would try X and Y about 1000 each and then tune.
There is also an operator error in automated adventuring that can cause an infinite loop. I adventure, run the Summon daily deed, forget that the adventure location has changed and then blindly start auto-adventuring again. This results in effectively an infinite loop. I can imagine a similar check in automated adventuring that counts how many times the adventure loop has executed without the adventure counter changing and if that number is greater than Z, auto-adventuring aborts. I'm thinking Z as low as 10 might be reasonable.
Thoughts? Bad ideas? Won't solve the problem or solution won't scale generalize? Not as easy as I think?
I can see this being the most interesting thing for me to do between Christmas and New Years' so it might actually happen ;-)
Thanks.