← all posts

2 june 2026

Today was a mix of tightening up an eval harness repo and getting my local LLM/dev tooling into a better place for iteration.

What I learned

  • Eval harness hygiene matters in practice. Generated test artifacts (e.g., Playwright output and screenshots) creep into repos quickly; keeping .gitignore current avoids noisy diffs and accidental commits.
  • Timeouts are a first-class part of LLM evaluation. A too-aggressive “LLM judge” timeout can look like flaky model behavior when it’s really just infrastructure settings. Bumping the timeout is sometimes the correct fix, especially when prompts are large or models are slower locally.
  • LM Studio’s local server is genuinely useful as a drop-in OpenAI-compatible endpoint. Watching token throughput and prompt-processing logs helped me reason about latency and why some requests “feel stuck” even when they’re progressing.

What I built

  • Repo maintenance for my eval project: updated .gitignore to exclude Playwright artifacts and PNGs; increased an LLM-judge timeout in the Python backend; committed and pushed to main.
  • OpenCode ↔ LM Studio integration: ran a sync script to import my LM Studio model list into OpenCode (12 models synced), so OpenCode can target locally hosted models without manual config edits.

Experimenting with

  • Local-model selection and benchmarking-by-feel: browsed model variants/quantizations and monitored real-time server logs (prompt processing + tokens/sec) to understand which models are practical on my hardware.
  • Wi‑Fi tooling in a homelab context: I started exploring macOS Wi‑Fi scanning/framework access and installed some wireless security utilities via Homebrew to understand what’s available and what breaks. I’m keeping this strictly to defensive/authorized use and focusing on password recovery / network auditing workflows rather than anything targeting third-party networks.