Skip to content

feat: add .ckignore file support for persistent exclusion patterns - #68

Merged
runonthespot merged 3 commits into
mainfrom
feature/ckignore-file
Sep 29, 2025
Merged

feat: add .ckignore file support for persistent exclusion patterns#68
runonthespot merged 3 commits into
mainfrom
feature/ckignore-file

Conversation

@runonthespot

Copy link
Copy Markdown
Contributor

Summary

Introduces .ckignore file to allow users to customize file exclusion patterns that persist across searches. This provides a clean solution for excluding media files and other non-code assets from semantic indexing.

Changes

Core Functionality

  • Auto-create .ckignore at repository root on first index with sensible defaults
  • Persistent exclusions: Patterns persist across searches without needing --exclude flags each time
  • Additive merging: .gitignore + .ckignore + CLI + defaults all merge together
  • --no-ckignore flag: Bypass .ckignore patterns when needed

Default Exclusions

  • Images: *.png, *.jpg, *.gif, *.svg, *.webp, etc.
  • Videos: *.mp4, *.avi, *.mov, *.mkv, etc.
  • Audio: *.mp3, *.wav, *.flac, etc.
  • Binaries: *.exe, *.dll, *.so, etc.
  • Archives: *.zip, *.tar, *.rar, etc.
  • Data files: *.db, *.sqlite, etc.
  • Config files: *.json, *.yaml (addresses ck should probably ignore JSON and YAML files by default #27)

Testing

  • ✅ 4 comprehensive unit tests added
  • ✅ Manual testing confirms auto-creation works
  • ✅ Verified patterns are respected during indexing
  • ✅ Confirmed --no-ckignore flag bypasses patterns
  • ✅ All existing tests pass

Documentation

  • Updated README with usage examples and "Why .ckignore?" rationale
  • Added CHANGELOG entry for 0.5.3
  • Help text includes new --no-ckignore flag

Closes

Fixes #66 - Indexing should probably ignore image/video files by default
Fixes #67 - Exclude options should persist on later usage
Addresses #27 - ck should probably ignore JSON and YAML files by default

🤖 Generated with Claude Code

runonthespot and others added 3 commits September 29, 2025 23:36
Introduces .ckignore file to allow users to customize file exclusion
patterns that persist across searches. This addresses issues #66 and #67
by providing a clean way to exclude media files and other non-code assets
from semantic indexing.

Key changes:
- Auto-create .ckignore on first index with sensible defaults
- Exclude images, videos, audio, binaries, archives by default
- Exclude JSON/YAML config files (issue #27)
- Add --no-ckignore flag to bypass .ckignore
- Patterns are additive: .gitignore + .ckignore + CLI + defaults
- Uses same glob pattern syntax as .gitignore
- Added comprehensive tests for .ckignore functionality
- Updated README with usage examples and rationale

Default exclusions include:
- Images: *.png, *.jpg, *.gif, *.svg, etc.
- Video: *.mp4, *.avi, *.mov, etc.
- Audio: *.mp3, *.wav, *.flac, etc.
- Binaries: *.exe, *.dll, *.so, etc.
- Archives: *.zip, *.tar, *.rar, etc.
- Data files: *.db, *.sqlite, etc.
- Config: *.json, *.yaml

Fixes #66, Fixes #67

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@runonthespot
runonthespot merged commit e809b1e into main Sep 29, 2025
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Exclude options should persist on later usage Indexing should probably ignore image/video files by default

1 participant