NetLogo / NetLogo/Netlogo-LLM-Extension
polish: friendlier error messages with provider and HTTP context
Nobody has claimed this yet.
- Dominant language
- Scala
- Stars
- 1
- Forks
- 0
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 4
Description
Roadmap priority: B15
Summary
Surface provider and HTTP context in error messages so modelers can diagnose failures without reading extension source.
Why it matters
Errors currently reach the modeler as generic ExtensionException text. A student whose key is wrong, whose Ollama server is down, or who is being rate limited sees roughly the same unhelpful message and has no next step.
This is a small change with outsized effect in classroom and workshop settings, which is where most first-time failures happen.
What needs to be done
- Audit current error paths in
BaseHttpProviderand each provider'sparseProviderResponse— catalogue what the modeler actually sees today for: bad key, no key, wrong model name, 429, 5xx, timeout, Ollama not running, network unreachable. - For each, produce a message naming the provider, the HTTP status where relevant, and a concrete next action ("check
llm:provider-status", "runollama serve", "the model name is not in the registry — tryllm:list-models"). - Never leak the API key into an error string.
- Reuse the per-provider
helpTextalready inProviderDescriptorrather than duplicating setup guidance. - Rate-limit exhaustion after retries already has a decent message (
executeWithRetry) — use it as the template.
Open questions
- How much detail is too much for a NetLogo dialog box? Possibly a one-line message plus fuller detail to stderr.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by auditing the error paths in BaseHttpProvider and each provider’s parseProviderResponse for the listed failure cases. Read ProviderDescriptor.helpText and executeWithRetry to understand existing setup guidance and retry messaging. Done means provider and relevant HTTP context are surfaced, API keys are never leaked, and each failure includes a concrete next action.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- scala
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100