duh. I wasn't taking the correct arguments for handle_keyup/down. dartanalyzer would have found it if I ran it. pub serve should run it for me