<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/tests/test-org-config-noop-state-log.el, branch main</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-07-04T22:48:49+00:00</updated>
<entry>
<title>fix(org): log state changes into LOGBOOK and drop no-op transitions</title>
<updated>2026-07-04T22:48:49+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-04T22:48:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=389a4005b48d186fe4956f0455605b6fdb1dbb65'/>
<id>urn:sha1:389a4005b48d186fe4956f0455605b6fdb1dbb65</id>
<content type='text'>
State-change log lines were written inline (org-log-into-drawer nil), where a line landing between a heading and its DEADLINE/SCHEDULED line broke org's planning-line parser and dropped the entry from agenda views. org also logged no-op "State X from X" transitions that carry no information.

Set org-log-into-drawer to t so state changes land in :LOGBOOK: drawers, and add an around-advice on org-add-log-setup that skips identical from/to transitions. The suppression decision lives in a pure predicate so it's tested without driving org-todo. This removes the cause rather than stripping the lines after they appear.
</content>
</entry>
</feed>
