Description: When in Analyze Mode the board ‘refreshes’ after ~50 seconds (hand stopped 48.28). The board jumps to the last position and all the entered branches are deleted. This renders the analyze mode virtually unusable
Steps to reproduce:
- Go to the game (e.g. https://online-go.com/game/8564909)
- go to analyze mode
- go back some moves (e.g go to move 180)
- wait some time
- see the board jumping to the last position
expected behaviour:
the board should not be refreshed. entered moves/branches should no be removed. the board should not jump to the last position in the game.
Affected System:
iOS 10.3.2 with latest chrome, firefox, safari
windows 10 with latest chrome, edge, firefox
Log from Chrome/Windows
sockets.ts:36 Connection to server established
sockets.ts:41 Termination server: Object {hostname: “ogs-termserver-1525607765-mft2t”, clients: 356, uptime: 105085.331}clients: 356hostname: "ogs-termserver-1525607765-mft2t"uptime: 105085.331__proto__: Objectconstructor: function Object()arguments: nullassign: function assign()arguments: nullcaller: nulllength: 2name: "assign"proto: function ()apply: function apply()arguments: nullcaller: nulllength: 2name: "apply"proto: function ()apply: function apply()arguments: nullcaller: nulllength: 2name: "apply"proto: function ()apply: function apply()arguments: (…)bind: function bind()arguments: nullcaller: nulllength: 1name: "bind"proto: function ()apply: function apply()arguments: nullcaller: nulllength: 2name: "apply"proto: function ()apply: function apply()arguments: (…)bind: function bind()call: function call()caller: (…)constructor: function Function()length: 0name: ""toString: function toString()Symbol(Symbol.hasInstance): function Symbol.hasInstanceget arguments: function ThrowTypeError()set arguments: function ThrowTypeError()get caller: function ThrowTypeError()set caller: function ThrowTypeError()proto: Object[[FunctionLocation]]: arguments: (…)bind: function bind()call: function call()caller: (…)constructor: function Function()length: 0name: ""toString: function toString()Symbol(Symbol.hasInstance): function Symbol.hasInstanceget arguments: function ThrowTypeError()set arguments: function ThrowTypeError()get caller: function ThrowTypeError()set caller: function ThrowTypeError()proto: Object[[FunctionLocation]]: call: function call()caller: (…)constructor: function Function()length: 0name: ""toString: function toString()Symbol(Symbol.hasInstance): function Symbol.hasInstanceget arguments: function ThrowTypeError()set arguments: function ThrowTypeError()get caller: function ThrowTypeError()set caller: function ThrowTypeError()proto: Object[[FunctionLocation]]: arguments: (…)bind: function bind()call: function call()caller: (…)constructor: function Function()length: 0name: ""toString: function toString()Symbol(Symbol.hasInstance): function Symbol.hasInstanceget arguments: function ThrowTypeError()set arguments: function ThrowTypeError()get caller: function ThrowTypeError()set caller: function ThrowTypeError()proto: Object[[FunctionLocation]]: arguments: (…)bind: function bind()call: function call()caller: (…)constructor: function Function()length: 0name: ""toString: function toString()Symbol(Symbol.hasInstance): function Symbol.hasInstanceget arguments: function ThrowTypeError()set arguments: function ThrowTypeError()get caller: function ThrowTypeError()set caller: function ThrowTypeError()proto: Object[[FunctionLocation]]: caller: nullcreate: function create()defineProperties: function defineProperties()defineProperty: function defineProperty()entries: function entries()freeze: function freeze()getOwnPropertyDescriptor: function getOwnPropertyDescriptor()getOwnPropertyDescriptors: function getOwnPropertyDescriptors()getOwnPropertyNames: function getOwnPropertyNames()getOwnPropertySymbols: function getOwnPropertySymbols()getPrototypeOf: function getPrototypeOf()is: function is()isExtensible: function isExtensible()isFrozen: function isFrozen()isSealed: function isSealed()keys: function keys()length: 1name: "Object"preventExtensions: function preventExtensions()prototype: Objectseal: function seal()setPrototypeOf: function setPrototypeOf()values: function values()proto: function ()[[FunctionLocation]]: hasOwnProperty: function hasOwnProperty()isPrototypeOf: function isPrototypeOf()propertyIsEnumerable: function propertyIsEnumerable()toLocaleString: function toLocaleString()toString: function toString()valueOf: function valueOf()defineGetter: function defineGetter()defineSetter: function defineSetter()lookupGetter: function lookupGetter()lookupSetter: function lookupSetter()get proto: function proto()set proto: function proto()