[idempotence] add updateVisible method and track current selector