<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=2bec1356f457b9bc01be449a30c5a4fa16a6eaa0'/>
<id>urn:sha1:2bec1356f457b9bc01be449a30c5a4fa16a6eaa0</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=dcd14cd666e24d67368391b3f111d7716fbfde41'/>
<id>urn:sha1:dcd14cd666e24d67368391b3f111d7716fbfde41</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=09d466439293e1d8eee7d4b9f1115d97ff1e2bdb'/>
<id>urn:sha1:09d466439293e1d8eee7d4b9f1115d97ff1e2bdb</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=9f4e4a91046c104b1461d8ec22cecd81fc5135f8'/>
<id>urn:sha1:9f4e4a91046c104b1461d8ec22cecd81fc5135f8</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=3539c140b602b081d520deb18c00efabbadfa470'/>
<id>urn:sha1:3539c140b602b081d520deb18c00efabbadfa470</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=b9e9cef5a227b3950fe361e7ba40f249e92ea06e'/>
<id>urn:sha1:b9e9cef5a227b3950fe361e7ba40f249e92ea06e</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=99ec29afaa80a062eb58ad2598320454863f68de'/>
<id>urn:sha1:99ec29afaa80a062eb58ad2598320454863f68de</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=46ba31f6fd3770229499cd67586a0667f8d86fab'/>
<id>urn:sha1:46ba31f6fd3770229499cd67586a0667f8d86fab</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=1368b2862d8ea51f93fdaaaca2ec8eee4d69da34'/>
<id>urn:sha1:1368b2862d8ea51f93fdaaaca2ec8eee4d69da34</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>
