2 min lesson
A tiny repro harness beats prose
Answer this as if it were happening now: "AI tools are allowed in the debugging screen and the agent suggests a fix that looks plausible. What is the strongest move?" Say what supports your choice.
Step 1 of 2
- Layer
- Client (editor/Electron)
- Tell-tale signs
- Crashes, UI freezes, settings or extension conflicts, version-specific
- How to confirm
- Bisect versions, disable extensions, check the dev console and local logs
- Layer
- Server / network
- Tell-tale signs
- Timeouts, 5xx, auth or region issues, fails for many users at once
- How to confirm
- HAR capture, status of the request, retry, compare across networks
- Layer
- Model / agent
- Tell-tale signs
- Hallucinated or oversized diffs, lost context, agent loops, nondeterministic output
- How to confirm
- Re-run with a different model, shrink the context, check whether it reproduces deterministically
| Layer | Tell-tale signs | How to confirm |
|---|---|---|
| Client (editor/Electron) | Crashes, UI freezes, settings or extension conflicts, version-specific | Bisect versions, disable extensions, check the dev console and local logs |
| Server / network | Timeouts, 5xx, auth or region issues, fails for many users at once | HAR capture, status of the request, retry, compare across networks |
| Model / agent | Hallucinated or oversized diffs, lost context, agent loops, nondeterministic output | Re-run with a different model, shrink the context, check whether it reproduces deterministically |
Distinguishing client vs server vs model is the core triage axis for an AI-native desktop app.
# minimal repro: does the oversized-diff bug depend on the model or the context size?
for model in gpt-class claude-class; do
for ctx in small large; do
run-agent --model "$model" --context "$ctx" --task fixtures/refactor.md \
--record runs/$model-$ctx.json
done
done
# then diff the recorded edits to see which variable flips the failureWhen AI tools are allowed, use them and narrate your judgment. Ask the agent to draft a repro script or summarize a log, then say what you accept and what you reject and why. Pasting raw model output into a bug report is the anti-signal here; rejecting a plausible-but-wrong suggestion out loud is the signal they want.
General-industry pattern for support and escalation screens: they reward clarity, speed and a tidy artifact at the end. Even if you don't fully root-cause in the time box, close with a written summary - repro steps, expected vs actual, evidence captured, suspected layer and the next test you'd run. That artifact is often what is actually being graded.