Bug: AI reads old state, overrides positions