All tests run on an 8-year-old MacBook Air. When you send logcat lines to Gemini for diagnosis, how many lines should you include? Too few: the model lacks context, gives a generic answer. Too many: you hit token limits, slow down the response, and bury the relevant signal in noise. Here's what I found after testing different window sizes in HiyokoLogcat. The naive approach: send everything First attempt: grab the last 500 lines and send them all. Problems: Gemini 1.5 Flash has a large context window, but 500 verbose logcat lines is a lot of tokens Response latency increases noticeably The model sometimes focuses on unrelated noise rather than the actual error What actually works: 50 lines before, 50 after After testing, ±50 lines around the target error hits the sweet spot: pub fn get_diagnosis_context ( buffer : & LogRingBuffer , error_idx : usize , ) -> String { let window = 50 ; let lines = buffer .context_around ( error_idx , window ); lines .iter () .map (| l | format!…