<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/.gitignore, branch v0.7.2</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=v0.7.2</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=v0.7.2'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-04-05T11:15:49+00:00</updated>
<entry>
<title>chore: gitignore and untrack CLAUDE.md</title>
<updated>2026-04-05T11:15:49+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-05T11:15:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=5aa212398eebd764ddc2dc0a31d829279517be40'/>
<id>urn:sha1:5aa212398eebd764ddc2dc0a31d829279517be40</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: gitignore and untrack build artifacts, vendored assets, personal files</title>
<updated>2026-04-05T11:15:13+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-05T11:15:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=1b87b6f9e1e4d552a32a6ded9186ac8b8d5961ec'/>
<id>urn:sha1:1b87b6f9e1e4d552a32a6ded9186ac8b8d5961ec</id>
<content type='text'>
Untrack .cask/, .localrepo/ (61M), emojis/ (7.2M), inbox/, todo.org,
v2mom.org, .time-zones.el. Move test-reporter-spec.org to docs/ (already
gitignored). Reduces tracked repo size significantly.
</content>
</entry>
<entry>
<title>feat(reveal): add org-reveal presentation workflow with ERT tests</title>
<updated>2026-02-14T09:21:13+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-14T09:21:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=ad4a5d7ba23a5871b241c4a41b3d1dede036a028'/>
<id>urn:sha1:ad4a5d7ba23a5871b241c4a41b3d1dede036a028</id>
<content type='text'>
Replaced pandoc-based reveal.js export with native ox-reveal integration.
New org-reveal-config.el module provides offline, self-contained HTML export
with keybindings under C-; p. Includes setup script for reveal.js 5.1.0
and 34 ERT tests covering header template and title-to-filename helpers.
</content>
</entry>
<entry>
<title>feat(calendar-sync): add RECURRENCE-ID exception handling for recurring events</title>
<updated>2026-02-03T13:39:50+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-03T13:39:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=d0f928114f096af39c8231b7c4a9c9b05fc45f08'/>
<id>urn:sha1:d0f928114f096af39c8231b7c4a9c9b05fc45f08</id>
<content type='text'>
Handle rescheduled instances of recurring calendar events by processing
RECURRENCE-ID properties from ICS files. When someone reschedules a single
instance of a recurring meeting in Google Calendar, the calendar-sync module
now shows the rescheduled time instead of the original RRULE time.

New functions:
- calendar-sync--get-recurrence-id: Extract RECURRENCE-ID from event
- calendar-sync--get-recurrence-id-line: Get full line with TZID params
- calendar-sync--parse-recurrence-id: Parse into (year month day hour minute)
- calendar-sync--collect-recurrence-exceptions: Collect all exceptions by UID
- calendar-sync--occurrence-matches-exception-p: Match occurrences to exceptions
- calendar-sync--apply-single-exception: Apply exception data to occurrence
- calendar-sync--apply-recurrence-exceptions: Apply all exceptions to occurrences

Also adds DeepSat calendar configuration (dcal-file) to user-constants,
init.el, and org-agenda-config.

48 unit and integration tests added covering normal, boundary, and error cases.
</content>
</entry>
<entry>
<title>chore: untrack calendar sync generated data</title>
<updated>2026-01-27T14:22:42+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-27T14:22:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=036613ae2396f3174255ee92d1333a1d9a2f58f4'/>
<id>urn:sha1:036613ae2396f3174255ee92d1333a1d9a2f58f4</id>
<content type='text'>
These files change every sync and don't belong in version control.
</content>
</entry>
<entry>
<title>chore: add .stignore to gitignore, add terminal pinentry TODO</title>
<updated>2026-01-24T18:39:40+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-24T18:39:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=ee94d5e29d6b9c1518affa775c5f7337e53b3d83'/>
<id>urn:sha1:ee94d5e29d6b9c1518affa775c5f7337e53b3d83</id>
<content type='text'>
- Ignore .stignore (Syncthing config)
- Add TODO [#C] for terminal GPG pinentry work (branch: terminal-pinentry)
</content>
</entry>
<entry>
<title>chore: updated tasks</title>
<updated>2025-11-15T00:37:43+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-15T00:37:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=8444c97f56d7483948735f5aee58f4a50daab56e'/>
<id>urn:sha1:8444c97f56d7483948735f5aee58f4a50daab56e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: Move .claude folder to .gitignore</title>
<updated>2025-11-06T06:48:12+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-06T06:48:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=020de91f83f16ad2b218b548fea5301a1e770ace'/>
<id>urn:sha1:020de91f83f16ad2b218b548fea5301a1e770ace</id>
<content type='text'>
Removed .claude/ from version control to keep personal Claude Code
configuration and custom commands private. The folder remains on disk
but is no longer tracked by git.

Files removed from tracking:
- .claude/commands/wrap-it-up.md (custom command)
- .claude/settings.local.json (local settings)

The .claude/ folder still exists locally but is now gitignored.
</content>
</entry>
<entry>
<title>chore: Move docs folder to .gitignore</title>
<updated>2025-11-06T06:44:46+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-06T06:44:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=fd426c1980926c1c4a240262a0f9322156ea40f3'/>
<id>urn:sha1:fd426c1980926c1c4a240262a0f9322156ea40f3</id>
<content type='text'>
Removed docs/ from version control to keep session notes, personal
workflows, and V2MOM documentation private. These files remain on disk
but are no longer tracked by git.

Files removed from tracking:
- docs/NOTES.org (session history)
- docs/EMACS-CONFIG-V2MOM.org (personal goals)
- docs/SOMEDAY-MAYBE.org (research backlog)
- docs/values-comparison.org
- docs/workflows/*.org (workflow templates)

The docs/ folder still exists locally but is now gitignored.
</content>
</entry>
<entry>
<title>chore: ignoring flycheck temp files</title>
<updated>2025-10-26T01:14:35+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-26T01:14:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=7f7c8bb51fc745ee1eaf8d7fa01b67c7dde8e722'/>
<id>urn:sha1:7f7c8bb51fc745ee1eaf8d7fa01b67c7dde8e722</id>
<content type='text'>
</content>
</entry>
</feed>
