Commit Graph
79 Commits
Author SHA1 Message Date
mroberts a7a561fbbd ci: add Gitea release workflow using tea CLI 2026-07-02 09:20:06 -05:00
mroberts 41a491564f ci: add Gitea Actions build/test workflow 2026-07-02 09:20:06 -05:00
mroberts 85f83a8aaf test(languages): tier-1 language comment-removal goldens 2026-07-02 09:20:06 -05:00
mroberts 2f37640302 feat(languages): register tier-1 languages and chroma routing 2026-07-02 09:20:06 -05:00
mroberts 22e2c2d169 docs: tier-1 language additions plan 2026-07-02 09:20:06 -05:00
mroberts fda9a8a295 fix(processor): annotate every removed line in multi-line preview windows 2026-07-02 09:20:06 -05:00
mroberts 2711f141fd docs: note .sass routes through SCSS lexer 2026-07-02 09:20:06 -05:00
mroberts b07ea41c60 test(processor): multi-line golden fixtures; route .sass through SCSS lexer 2026-07-02 09:20:06 -05:00
mroberts bbc49efbfe feat(processor): route preview paths through StripComments 2026-07-02 09:20:06 -05:00
mroberts 7ef198016e feat(processor): route mutation paths through StripComments 2026-07-02 09:20:06 -05:00
mroberts 3e73ce7b2e build: require go 1.25 (chroma v2.27) and align release workflow 2026-07-02 09:20:06 -05:00
mroberts 811f1c13ff feat(processor): StripComments chroma engine with legacy fallback 2026-07-02 09:20:06 -05:00
mroberts 82b84c12d2 feat(processor): add chroma dep, lexer resolution and drop rules 2026-07-02 09:20:06 -05:00
mroberts c348204a47 docs: multi-line comment implementation plan (chroma) 2026-07-02 09:20:06 -05:00
mroberts 711691559b docs: rewrite multi-line comment spec around chroma tokenizer 2026-07-02 09:20:06 -05:00
mroberts c59a782d7d docs: multi-line block comment support design spec 2026-07-02 09:20:06 -05:00
mroberts 16fc10c59a test(processor): remove code comments from wholefile_test 2026-07-02 09:20:06 -05:00
mroberts 31619dc7ee test(processor): guard -update against CI misuse; drop agent report md 2026-07-02 09:20:06 -05:00
mroberts 3db4911e7a test(processor): git-mode whole-file and line-range cases 2026-07-02 09:20:06 -05:00
mroberts a117f75bba test(processor): preservation, preserve-lines, backup cases 2026-07-02 09:20:06 -05:00
mroberts 42c46aa2d5 test(processor): single-line block + inline/block flag cases 2026-07-02 09:20:06 -05:00
mroberts d3ab6a41be test(processor): line-comment, string-protection, structure cases 2026-07-02 09:20:06 -05:00
mroberts f51fb3f170 test(processor): whole-file golden driver + seed python cases 2026-07-02 09:20:06 -05:00
mroberts 9e9b292a6f refactor(processor): inject cfg into file-mutating methods 2026-07-02 09:20:06 -05:00
mroberts 27681bc56a wip: baseline before wholefile tests 2026-07-02 09:20:06 -05:00
carraes d2df2ec3d4 docs: clean up docs 2025-07-09 09:13:33 -03:00
carraes 47d2c0ba43 feat: improve hook CLI interface and reduce timeout
- Replace -s project flag with cleaner --project boolean flag
- Reduce hook timeout from 30s to 5s for better responsiveness
- Update README with new syntax
2025-07-09 06:47:15 -03:00
carraes c3e401a19e chore: bump version to 0.3.2 2025-07-09 06:17:35 -03:00
carraes be0aea96de feat: add automatic .gitignore respect to file exclusion 2025-07-09 06:16:16 -03:00
carraes 64663b27a7 docs: update README with .shushignore and context lines features 2025-07-07 15:40:59 -03:00
carraes 6e78bc9700 feat: add .shushignore support for flexible file exclusion
- Add .shushignore file support (project root + global ~/.config/.shushignore)
- Support gitignore-style patterns: wildcards (*), directories (dir/), negation (\!pattern)
- Universal integration: works with all processing modes (files, directories, git-aware)
- Smart messaging: explicit ignore messages for direct file access
- Silent skipping: directory traversal automatically skips ignored files
- Enhanced verbose output: distinguishes between ignored vs unsupported files
- Pattern examples: *.tmp, build/, test*.js, \!important.js
2025-07-07 15:39:20 -03:00
carraes c50bd8f203 chore: bump version to 0.3.0 2025-07-07 14:37:17 -03:00
carraes d2dc3d8c36 feat: add context lines for preview mode with intelligent truncation
- Add --context-lines (-c) flag to control preview context display
- Add context_lines option to .shush.toml configuration
- Implement lazy-git style preview with context lines around changes
- Add intelligent truncation with "..." markers for distant changes
- Improve context line colors from dark gray to light for better visibility on dark terminals
- Support both regular and git-aware preview modes
- Default to 3 context lines, configurable via flag or config file
- Use -c 0 to show only changed lines (original behavior)
2025-07-07 14:36:58 -03:00
carraes 9109964235 fix: critical hooks bug - preserve all Claude Code settings
BREAKING BUG FIX: Hook installation was destroying existing Claude Code settings

- Fix critical data loss in --install-hook and --uninstall-hook commands
- Change ClaudeSettings to preserve ALL existing JSON settings via Data map
- Add automatic timestamped backup creation before any settings modification
- Implement surgical hook installation that adds to existing config structure
- Implement surgical hook removal that only removes shush hooks
- Prevent loss of user settings like includeCoAuthoredBy, themes, etc.
- Add comprehensive error handling for malformed settings files

This was a critical data loss bug that could destroy users' Claude Code configurations.
All existing settings are now preserved during hook operations.

Fixes: Users losing their Claude Code settings during hook installation
Added: Automatic backups with timestamp (settings.json.backup.TIMESTAMP)
Improved: Hook management now respects existing PostToolUse configurations
2025-07-07 14:18:59 -03:00
carraes 3aff5e644a chore: bump version to 0.2.2 2025-07-07 09:32:18 -03:00
carraes 79b20776fc feat: update acronym to 'Hushing' and fix backup creation bug
- Update SHUSH acronym from 'Hiding' to 'Hushing' (better reflects removal)
- Fix critical error handling bug in file backup creation using io.Copy
- Remove golangci-lint references from Makefile and CLAUDE.md
- Update README, LLM guide, and CLI description with new acronym
- Create TASKS.md to track project improvements
2025-07-07 09:31:37 -03:00
carraes 8152e62cf5 feat: add support for 30+ languages and update README
- Add support for Rust, C#, PHP, Swift, Kotlin, SQL
- Add support for HTML, XML, CSS, SCSS markup languages
- Add support for JSX/TSX, Dart, Scala
- Add support for shell variants, config files, and more
- Add AlternateLineComment support for INI files
- Update README with comprehensive language tables
- Bump version to 0.2.1
2025-07-06 22:02:41 -03:00
carraes 0b9067daf5 chore: bump version to 0.2.0 2025-07-06 19:26:31 -03:00
carraes fae70c6b2b style: apply code formatting and linting fixes
- Remove unnecessary blank lines and improve spacing
- Fix linting warnings (remove redundant nil checks)
- Standardize indentation and formatting
- No functional changes, only style improvements
2025-07-06 12:01:32 -03:00
carraes ea1a50ba33 test(processor): fix and enhance string-aware parsing tests
- Fix broken string literals in test cases (caused by previous shush bug)
- Add comprehensive tests for all supported comment types
- Add edge case tests for string literals with comment markers
- Verify --inline, --block, and no-flag behaviors
- All tests now passing with improved coverage
2025-07-06 12:01:22 -03:00
carraes 64231c18fc fix(processor): implement universal string-aware comment parsing
- Fix block comment start detection to use string-aware parsing
- Fix block comment end detection to use string-aware parsing
- Fix lineHasComment to use string-aware parsing instead of strings.Contains
- Prevents removal of comment markers inside string literals
- Protects all supported languages: Go, JS, Python, Lua, etc.
2025-07-06 12:01:15 -03:00
carraes f941ac23cb refactor(main): simplify main.go by extracting functions to modules
- Reduce main.go from 589 lines to 69 lines (88% reduction)
- Extract LLM guide, hook commands, config commands, and validation
- Use new modular components for better separation of concerns
- Maintain exact same functionality with cleaner architecture
2025-07-06 12:01:04 -03:00
carraes 7b0f7f878a refactor: extract modular components from main.go
- Add internal/cli/validation.go for CLI flag validation
- Add internal/commands/hooks.go for hook management commands
- Add internal/commands/config.go for configuration commands
- Add internal/guide/guide.go for LLM usage guide
- Follows Go project layout standards for better maintainability
2025-07-06 12:00:56 -03:00
carraes 08a8da9b59 chore: add .claude directory to gitignore 2025-07-06 12:00:48 -03:00
carraes 40b50f0dd5 chore: remove .claude directory from git tracking 2025-07-06 12:00:41 -03:00
carraes d4295b4329 docs(readme): document --preserve-lines flag and indentation safety 2025-07-06 11:21:24 -03:00
carraes 70a2dd7612 fix(processor): preserve indentation and implement proper line deletion 2025-07-06 11:21:24 -03:00
carraes 4f54db9c8e feat(cli): add --preserve-lines flag for line structure control 2025-07-06 11:21:24 -03:00
carraes 34e194e70c docs: update architecture documentation for in-memory processing 2025-07-06 11:21:24 -03:00
carraes 28501c6823 refactor(processor): migrate from sed to unified in-memory processing 2025-07-06 11:21:24 -03:00