core.completion: replace but not append to candidates list