Repository navigation
Release v0.10.1
Fixed
refreshnow invalidates the whole resource instead of one window of it. A
windowed read caches each rendered window under its own key -- the resource's
key plus the offset -- andrefreshonly ever skipped the cache read for
the exact key it was passed. So refreshing at offset 1000 re-fetched that
window and left every sibling in place: the next read of offset 0 or 2000 was
served the bytes from before the refresh, markedcached: true. A caller who
had asked for the current state was told about the state it was replacing,
and told it in the one way that reads as merely old rather than superseded.
The body held for continuations needed the same treatment. Declining to
serve it underrefresh-- which it already did -- is not dropping it: if
the refreshed response has nonext_offset, because the resource shrank or
now fits in one window, nothing overwrites the slot and the pre-refresh body
is still there for the next continuation that does not passrefresh. It is
released only when it belongs to the resource being refreshed; releasing
another one would cost a re-download nobody asked for.
Both halves are 0.9.x bugs rather than fallout from 0.10.0's one-download
change -- the per-offset key and the single-slot store both predate it.
Therefreshdescription shipped in everytools/listclaimed the old
behaviour re-cut every window, which was never true of any release. It now
says what happens: the windows are discarded and re-downloaded when next
read, which is still a reason to finish a walk before re-reading.
Release Information:
- Version: 0.10.1
- Release Date: 2026-09-06
- Commit: 444a392
- Workflow: 34004200936
Installation:
pip install gopher-mcp==0.10.1Verification:
All packages are signed and can be verified using Sigstore.