Checkpoint 017 · local vision candidate

Ready for human screenshot testing

The 404 path
is out of the loop.

The failed screenshot was not missing. Ollama's OpenAI-compatible route timed out twice, then a text-only Nous fallback returned the 404. Nagato now uses Ollama's bounded native image route and refuses to leak an image to an unconfirmed text-only fallback.

436
focused tests passed
7.7s
direct local smoke
19s
end-to-end image analysis
200
bridge response

What changed

Explicit Ollama vision now calls /api/generate directly, accepts the model's structured result from either response channel, and performs one concise retry only when local JSON is truncated or malformed.

What stays bounded

A full-budget vision timeout is not repeated. Main-agent image fallback is allowed only when model capability metadata explicitly confirms vision. Unknown or text-only models do not receive the screenshot.

Evidence chain

Failure reproducedThe attached image reached Hermes intact. Local Ollama consumed two 120-second compatibility-route attempts; the later Nous 404 was only the fallback failure.
Exact runtime line preservedThe hotfix is stacked on the live memory-receipt and closed trace-page lineage, so the candidate does not remove Gate 1 or Mnemosyne receipt work.
Real bridge turn passedA fresh isolated Game Assist session described the Nagato overlay, its previous 404 message, buttons, run panel, and visible campaign panel. The local VLM completed before Nous generated the concise final answer.
Runtime isolation heldOnly the Game Assist gateway moved. Personal Hermes remained healthy on its own port, and the bridge remained healthy throughout the final acceptance run.

Candidate identity

Runtime head 9501cc5d036d
Draft stacked review: runtime PR #7
Independent exact-head review requested.

Rollback retained

The prior immutable runtime, its environment, and a timestamped launcher backup remain intact. This is a reversible Game Assist-only candidate, not a personal-Hermes change.

Your next check

1. Attach a fresh game screenshotAsk “Explain what is on this screen and what matters right now.” The old 404 remains visible in chat history, but the new turn should describe the new image.
2. Try a second screenshotThis checks the warm local path and the one-retry guard. A malformed first local result should recover without falling through to a text-only image backend.
3. Report anything visually wrongAccuracy, latency, cancellation behavior, and GPU contention are the useful human-test signals now. Screenshot transport itself is proven.

Still open

Conversation tail anchoring, inactive-game startup state, Sources resource lookup, artifact opening/scoping, and explicit receipt discoverability remain separate product slices.

Privacy boundary

The screenshot is analyzed locally by Qwen3-VL. The remote Nous model receives the resulting text description for the final answer; it is not used as an image fallback.

Generated 25 July 2026, Pacific/Auckland. Sanitized, unlisted, noindex, and unauthenticated. No credentials, raw trace payloads, private memory, or local filesystem paths are included.