# changelog.md for @push.rocks/smartgit

## 2025-11-04 - 3.3.1 - fix(getUncommittedDiff)
Avoid false-positive diffs in getUncommittedDiff by detecting symlinked directories and skipping identical files

- Detect files reported as "added" that are actually inside symlinked directories (catch isomorphic-git error: "anticipated to be a tree but it is a blob") and skip them to avoid huge false-positive lists.
- Compare HEAD and workdir file contents and skip entries where contents are identical to filter out permission/timestamp/line-ending false positives.
- Add glob support for excludeFiles via minimatch and skip exact or glob-matching paths during diff collection.
- Files changed: ts/smartgit.classes.gitrepo.ts (symlink detection, content comparison, diff filtering), ts/smartgit.plugins.ts (export minimatch), readme.hints.md (notes).
- Observed impact: false positives reduced dramatically in reported case (1,883 → 2 files); output size reduced from ~59 MB → ~2 KB.

## 2025-11-04 - 3.3.0 - feat(GitRepo)
Add glob-pattern exclusions for getUncommittedDiff and add minimatch; bump dependencies

- getUncommittedDiff now supports glob patterns for excluded files via minimatch (skip files when filepath matches exact or glob pattern).
- Expose minimatch through plugins (ts/smartgit.plugins.ts) so plugin code can use glob matching consistently.
- Add minimatch to dependencies (minimatch ^10.1.1).
- Bump several dependencies: @push.rocks/smartenv to ^6.0.0, @push.rocks/smartfile to ^11.2.7, @push.rocks/smartshell to ^3.3.0, @push.rocks/smartstring to ^4.1.0, isomorphic-git to ^1.34.2.
- Bump devDependencies for build/test tooling: @git.zone/tsbuild ^2.7.1, @git.zone/tsrun ^1.6.2, @git.zone/tstest ^2.7.0.

## 2025-01-04 - 3.2.0 - feat(core)
Enhanced error handling, type safety, and documentation

- Add comprehensive error handling with try/catch blocks and meaningful error messages
- Improve type safety with proper IEnvDeps interface replacing 'any' types
- Add complete JSDoc documentation for all classes and methods
- Add return type annotations for better TypeScript support
- Add ensureInitialized() validation method
- Fix missing return statement in createRepoByClone() method
- Remove deprecated @types/minimatch dependency
- Complete readme rewrite with modern styling, accurate documentation, and proper API examples
- Update license from LICENSE to license.md following project guidelines

## 2024-06-23 - 3.1.1 - fix(documentation)
Remove outdated changelog entries

## 2024-06-23 - 3.1.0 - gitrepo 
Enhancements and fixes to GitRepo 

- Enhance GitRepo to include commit date and version information

## 2024-06-22 - 3.0.3 to 3.0.4 - core & GitRepo 
General updates and new feature addition

- Fixed core functionality
- Added diff function in GitRepo

## 2023-11-15 - 3.0.1 to 3.0.2 - core, tsconfig, npmextra
Minor updates and fixes

- Fixed core functionality
- Updated tsconfig and npmextra.json

## 2023-07-10 - 3.0.0 - core
Structural changes to organization scheme

- Switched to a new organizational scheme

## 2023-07-27 - 3.0.0 to 3.0.1 - core 
Structural changes and updates

- Fixed core functionality
- Switched to new organizational scheme

## 2022-07-31 - 2.0.2 to 3.0.0 - core
Breaking changes and updates 

- Switching to ESM for core
- Fixed core functionality

## 2021-10-22 - 1.0.18 to 2.0.1 - dependencies, core
Breaking changes and updates

- Switched to isomorphic git dependencies
- Fixed core functionality

## 2020-08-15 - 1.0.14 to 1.0.18 - core
Fixes 

- Fixed core functionality in multiple patches

## 2019-06-18 - 1.0.5 to 1.0.10 - core
Fixes 

- Fixed core functionality in multiple patches

## 2016-06-23 - 0.0.10 to 0.1.11 - gitlab & other fixes
Initial implementations and setup 

- Fixed README and merge issues
- Updated gitlab.yml and CI settings
- Implemented new class approach and other updates
- Removed unnecessary imports, postinstall
- Added npmextra.json, CI tests, SSH key support