aboutsummaryrefslogtreecommitdiff
path: root/.gitignore
Commit message (Collapse)AuthorAgeFilesLines
* chore: gitignore slime-history.eldCraig Jennings3 days1-0/+1
|
* feat(signal): add Signal client foundation on a signel forkCraig Jennings10 days1-0/+1
| | | | | | | | | | I'm building a Signal client in Emacs on signal-cli (linked as a secondary device) with a fork of the signel package as the front end. signel is on MELPA but effectively abandoned, and the behavior I want needs internal edits, so owning a fork beats advising a dead package. Full rationale and the rejected alternatives are in docs/design/signal-client.org. This lands the signal-cli-independent foundation: contact-list parsing for a completing-read picker, and the predicate that suppresses a notification for the chat being actively viewed. Both are pure and unit-tested without a linked account. cj/signal--parse-contacts was corrected against a live account (signal-cli 0.14 puts givenName/familyName at the top level, not under profile), and verified across all 94 real contacts. The use-package wiring loads the fork from ~/code/signel, sources the account from a gitignored signal-config.local.el (a phone number is an identifier, not a credential, and this keeps it off the mirror without a GPG prompt), and turns off auto-open so an incoming message can't steal a window. Verified live: signel-start spawns the jsonRpc process, loads the account, and receives over the channel. The fork edits (notify routing, the upstream input-clobber bug) and the contact-picker command are still to come.
* chore: drop the stray butterfly PNG backup and ignore .bak filesCraig Jennings10 days1-0/+3
| | | | assets/M-x_butterfly.png.bak was a tracked duplicate of the banner PNG, an accidental backup that got committed. I removed it and added *.bak to .gitignore so editor and image backups stay out of the tree.
* feat(calendar-sync): add Python helper for Google Calendar API syncCraig Jennings2026-05-191-0/+4
| | | | | | | | | | | | Google's .ics export drops per-occurrence response statuses on recurring events. When OOO auto-declines a meeting, the master event keeps PARTSTAT=ACCEPTED and declined instances inherit it. The .ics path can't filter the declines out. The API path expands recurrences server-side via singleEvents=True, and each occurrence carries its own attendees[].self.responseStatus. scripts/calendar_sync_api.py fetches events and renders them as org entries. OAuth is one-time per account. The refresh token lives at ~/.config/calendar-sync/token-<account>.json under 0600. Output matches the existing .ics shape: heading sanitization, LOCATION/ORGANIZER/STATUS/URL property drawer, HTML-stripped descriptions, org timestamps with weekday abbreviations. I wrote 30 stdlib-unittest tests against fixture JSON, covering rendering, filtering, timestamp formatting, and HTML cleanup. I left auth and HTTP uncovered — they're thin wrappers around the Google client libraries, best checked by running the script once after OAuth setup. docs/calendar-sync-api-setup.org walks through the Google Cloud OAuth client setup and the per-account auth bootstrap. .gitignore picks up Python bytecode now that the project has a Python helper. The Elisp dispatch (:fetcher 'api routing in calendar-sync.el) lands in a follow-up commit.
* chore: stop gitignoring /todo.orgCraig Jennings2026-05-131-1/+0
|
* chore: gitignore .emacs-theme runtime stateCraig Jennings2026-05-081-0/+1
|
* Make calendar sync startup safe without configCraig Jennings2026-05-041-0/+1
|
* chore: gitignore Emacs backup, auto-save, and lock filesCraig Jennings2026-05-031-0/+5
|
* feat(coverage): wire make coverage target + simplecov pipelineCraig Jennings2026-04-221-0/+1
| | | | | | | | | | | | | | | | Completes the coverage v1 pipeline by adding the Makefile target, the undercover driver script, the exclusion list, and the .gitignore entry. Uses simplecov JSON rather than LCOV as the collection format. The LCOV vs simplecov choice: Undercover's :merge-report t option only supports simplecov. Since the pipeline runs tests per-file (matching test-unit's isolation pattern) and accumulates coverage across runs, merge-report is required. LCOV is better-supported by external coverage viewers, but for a primarily interactive workflow the on-disk format is an internal detail. Other moves in this commit: - Renamed cj/--coverage-parse-lcov to cj/--coverage-parse-simplecov and rewrote its tests for the JSON schema. Same signature, same semantics (file to set of covered lines), different parser. - Renamed the backend protocol's :lcov-path key to :report-path, format-neutral and matching the renamed cj/--coverage-elisp-report-path function. - The coverage target deletes modules/*.elc before running so undercover can instrument the .el sources. Without this, byte-compiled versions shadow the instrumentation and only a handful of pre-loaded modules end up with coverage data. - Excluded tests/test-all-comp-errors.el from make coverage runs. That test byte-compiles every module, which fails under undercover's instrumentation. Excluded only from coverage. Normal make test still runs it. - Updated docs/design/coverage.org to reflect the simplecov pivot with a historical note on why we moved off LCOV. Verified end-to-end: make coverage produces .coverage/simplecov.json with 2717 of 4559 executable lines hit across 44 tracked modules.
* chore: rename /docs/ → /.ai/ in gitignore and CLAUDE.mdCraig Jennings2026-04-201-2/+2
| | | | | | .gitignore: rename the private-tooling entry from /docs/ to /.ai/. CLAUDE.md: expand Layout to list /.ai/ (gitignored) and docs/ (reserved for real project documentation, if/when created).
* chore: gitignore *.eln (native-compiled artifacts from validate-el.sh)Craig Jennings2026-04-191-0/+3
|
* chore: track CLAUDE.md and .claude/ bundle, narrow gitignoreCraig Jennings2026-04-191-3/+3
| | | | | | | | | | | | | | | | | | | | Swap blanket /CLAUDE.md + /.claude/ gitignore rules for personal-only overrides (.claude/settings.local.json, .claude/.cache/). Add the tracked bundle content from ~/code/rulesets install-elisp: - CLAUDE.md (project instructions) - .claude/rules/elisp.md - .claude/rules/elisp-testing.md - .claude/rules/verification.md - .claude/hooks/validate-el.sh (portable via $CLAUDE_PROJECT_DIR) - .claude/settings.json (allowlist + hook wiring) Hooks now use $CLAUDE_PROJECT_DIR with script-relative fallback, so a fresh clone of this repo works on any machine without path edits. Project-local skills under .claude/skills/ were stale DeepSat-flavored copies; deleted and replaced with symlinks into ~/.claude/skills/ via the rulesets repo's global install.
* chore: gitignore and untrack data/ directoryCraig Jennings2026-04-051-5/+2
|
* chore: gitignore and untrack CLAUDE.mdv0.7.2Craig Jennings2026-04-051-0/+1
|
* chore: gitignore and untrack build artifacts, vendored assets, personal filesCraig Jennings2026-04-051-0/+15
| | | | | | 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.
* feat(reveal): add org-reveal presentation workflow with ERT testsCraig Jennings2026-02-141-0/+3
| | | | | | | 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.
* feat(calendar-sync): add RECURRENCE-ID exception handling for recurring eventsCraig Jennings2026-02-031-0/+1
| | | | | | | | | | | | | | | | | | | | | 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.
* chore: untrack calendar sync generated dataCraig Jennings2026-01-271-0/+5
| | | | These files change every sync and don't belong in version control.
* chore: add .stignore to gitignore, add terminal pinentry TODOCraig Jennings2026-01-241-0/+1
| | | | | - Ignore .stignore (Syncthing config) - Add TODO [#C] for terminal GPG pinentry work (branch: terminal-pinentry)
* chore: updated tasksCraig Jennings2025-11-141-0/+1
|
* chore: Move .claude folder to .gitignoreCraig Jennings2025-11-061-0/+3
| | | | | | | | | | | | 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.
* chore: Move docs folder to .gitignoreCraig Jennings2025-11-061-0/+3
| | | | | | | | | | | | | | | 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.
* chore: ignoring flycheck temp filesCraig Jennings2025-10-251-0/+1
|
* chore:gitignore: Add client secret JSON file to ignore listCraig Jennings2025-10-251-0/+1
| | | | | Prevent tracking of sensitive client secret file in version control by ignoring it in .gitignore.
* ignoring browser-choice.el persistence fileCraig Jennings2025-10-231-0/+1
|
* ignoring recent emoji value persistence fileCraig Jennings2025-10-191-0/+1
|
* changing repositoriesCraig Jennings2025-10-121-0/+48