<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs-wttrin, branch release/0.4.0</title>
<subtitle>Emacs frontend for Igor Chubin's wttr.in weather service
</subtitle>
<id>https://git.cjennings.net/emacs-wttrin/atom?h=release%2F0.4.0</id>
<link rel='self' href='https://git.cjennings.net/emacs-wttrin/atom?h=release%2F0.4.0'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/'/>
<updated>2026-06-28T10:57:26+00:00</updated>
<entry>
<title>docs: point the geolocation-command docstring at the bundled examples</title>
<updated>2026-06-28T10:57:26+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-28T10:57:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=b1aca874b9a2b5282c0cc83bd4fece981a94e19c'/>
<id>urn:sha1:b1aca874b9a2b5282c0cc83bd4fece981a94e19c</id>
<content type='text'>
C-h v wttrin-geolocation-command now mentions examples/geolocation/, so the
ready-to-adapt scripts are discoverable from inside Emacs, not just the README.
</content>
</entry>
<entry>
<title>test: cover wttrin--reset-font-height</title>
<updated>2026-06-28T10:52:52+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-28T10:52:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=95a5e130deb4c73242c370ce239b3ba9a97e6ef5'/>
<id>urn:sha1:95a5e130deb4c73242c370ce239b3ba9a97e6ef5</id>
<content type='text'>
Restores the base height when a remap cookie exists, no-op without one.
</content>
</entry>
<entry>
<title>docs: document auto-fit and buffer centering</title>
<updated>2026-06-28T10:52:52+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-28T10:52:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=bcdb5889bc7f38ce1e87c495b6f186b62e45467a'/>
<id>urn:sha1:bcdb5889bc7f38ce1e87c495b6f186b62e45467a</id>
<content type='text'>
Add an "Auto-Fit and Centering" subsection to the README font settings: the
weather block centers automatically, and wttrin-auto-fit-font (with the
min/max floor and cap) opts into sizing the font to the window.
</content>
</entry>
<entry>
<title>fix: don't auto-fit the loading placeholder to a huge font</title>
<updated>2026-06-28T10:42:00+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-28T10:42:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=16be44154cf823332332d1df995ae1ed50ff43c4'/>
<id>urn:sha1:16be44154cf823332332d1df995ae1ed50ff43c4</id>
<content type='text'>
With auto-fit on, the one-line "Loading..." placeholder was sized to fill the
window height (capped huge), and a reused buffer kept the previous weather's
auto-fitted font while loading. Auto-fit now runs only once real weather has
rendered, and the placeholder resets to the base font.
</content>
</entry>
<entry>
<title>fix: don't steal focus when an async weather response renders</title>
<updated>2026-06-28T08:11:45+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-28T08:11:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=da7ee0841924dfbd91c9a944e0bfeff6903bd8a1'/>
<id>urn:sha1:da7ee0841924dfbd91c9a944e0bfeff6903bd8a1</id>
<content type='text'>
wttrin--display-weather ran switch-to-buffer from the async callback, so a
response arriving after the user moved to another buffer yanked them back to
*wttr.in*. It now renders with set-buffer; selecting the buffer is the
interactive command's job (wttrin-query already does it at invocation), so a
late response updates the buffer in place without changing the selected window.
</content>
</entry>
<entry>
<title>fix: drop stale async weather responses that overwrite a newer query</title>
<updated>2026-06-28T08:06:12+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-28T08:06:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=ce74e30562dfac3f599a94a45ac16c3c2319ab41'/>
<id>urn:sha1:ce74e30562dfac3f599a94a45ac16c3c2319ab41</id>
<content type='text'>
wttrin-query reuses the single *wttr.in* buffer, so requesting Paris then Berlin
and having Paris return last overwrote the Berlin buffer. Each query now stamps
a monotonic request id on the buffer; the callback displays only when its
captured id still matches, so a superseded response is ignored.
</content>
</entry>
<entry>
<title>fix: stop the mode-line cleanly when disabled before startup fires</title>
<updated>2026-06-28T08:01:06+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-28T07:56:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=19e103fea2e55a3e3bc3a777b4c618e644b57760'/>
<id>urn:sha1:19e103fea2e55a3e3bc3a777b4c618e644b57760</id>
<content type='text'>
The delayed initial fetch was scheduled with run-at-time but the one-shot timer
was discarded, and when the mode is enabled before after-init the start is
queued on after-init-hook. Disabling the mode before either fired could still
start timers, hit the network, or mutate mode-line state after the user turned
it off. Stop now cancels the stored startup timer and removes the after-init
hook, and the startup callback no-ops when the mode is off.
</content>
</entry>
<entry>
<title>fix: always evict at least one cache entry when over max</title>
<updated>2026-06-28T07:53:24+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-28T07:53:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=ec38418d6d3eb4342363af1714f0073a74d52fbc'/>
<id>urn:sha1:ec38418d6d3eb4342363af1714f0073a74d52fbc</id>
<content type='text'>
wttrin--cleanup-cache-if-needed removed floor(count * 0.20) entries, which is 0
for a small cache (e.g. two entries at max one), so the cache could sit over its
advertised maximum indefinitely. It now removes at least one whenever it is over.
</content>
</entry>
<entry>
<title>fix: key the cache on all response-shaping settings</title>
<updated>2026-06-28T07:50:53+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-28T07:50:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=944a52f0e33087dafba383edb3d97ec19a06d361'/>
<id>urn:sha1:944a52f0e33087dafba383edb3d97ec19a06d361</id>
<content type='text'>
wttrin--make-cache-key keyed only on location and unit system, but the request
body also depends on wttrin-display-options and wttrin-default-languages.
Changing display options or language mid-session served the old cached response,
and the staleness header then claimed it was current for the new settings. The
key now includes every setting that shapes the response.

Cache-key tests rewritten to assert behavior (distinct key per varying setting,
stable key for identical settings) instead of an exact key string.
</content>
</entry>
<entry>
<title>fix: require subr-x for string-trim</title>
<updated>2026-06-28T07:47:20+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-28T07:47:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=38b7812b3bce45372fd2f11a8da710cb73717092'/>
<id>urn:sha1:38b7812b3bce45372fd2f11a8da710cb73717092</id>
<content type='text'>
wttrin.el calls string-trim throughout but never required subr-x, so a clean
load could hit a void-function before something else pulled subr-x in.
</content>
</entry>
</feed>
