I was not able to fix the early pass/resignation issue directly in Oakfoam code. These two issues significantly weakened the Oakfoam in CPU_ONLY mode.
My workaround only works for DGS like turn based go, not live go because my perl code will feed all the gtp command (play white, play back) from beginning to end, then last
"genmove" to get answer from Oakfoam, then quit. waiting for next move could be hours or days in corresponding games so that turn based go is fine with this workaround.
Obviously, this does not work in live mode games like in KGS. On 1 minute per move when Oakfoam CNN early pass/resign bug happens, my perl wrapper spend another minute
to redo the same thing in another session, if the answer is still buggy, then redo again UCT in third session. In other word, my turn based perl wrapper could spend 3 minutes maximum per move when the early PASS/RESIGN bug hits. In live mode games, my perl wrapper would lose on time out easily.
2 commands the perl wrapper used :
/usr/local/bin/oakfoam --nobook -c /usr/local/share/oakfoam/configs/nicego-cnn-06.gtp
last resort (early pass/resign bug free):
/usr/local/bin/oakfoam --nobook -c /usr/local/share/oakfoam/configs/uct.gtp
My perl wrapper which powers the DGS Oakfoam Bot account is significantly stronger than the default Oakfoam code with 2 bugs.
with 2 bugs, Oakfoam lost in 5 games match against GNUGO 3.8 on 9 handicap stones, won 2, lost 3
the perl wrapper beat gnugo 3.8 on 9 handicap stones in 10 games match, won 8, lost 2.