firstsun-dev_git-files-sync/CHANGELOG.md
semantic-release-bot 49f16c6a2b chore(release): 1.3.0 [skip ci]
## [1.3.0](https://github.com/firstsun-dev/git-files-sync/compare/1.2.1...1.3.0) (2026-07-14)

### Features

* add i18n (multi-language) support ([#38](https://github.com/firstsun-dev/git-files-sync/issues/38)) ([144eb28](144eb286d8))
* add Simplified Chinese locale, settings what's-new banner, and 1.3.0 changelog ([72ed2cd](72ed2cde75))
* resize conflict modal, add connection status badge, and local ignore patterns ([28f4f8e](28f4f8efd0)), closes [#42](https://github.com/firstsun-dev/git-files-sync/issues/42) [#41](https://github.com/firstsun-dev/git-files-sync/issues/41)
* **settings:** add folder picker for root path and vault folder settings ([c107979](c107979427)), closes [#48](https://github.com/firstsun-dev/git-files-sync/issues/48)
* show new feature tips after update ([4eebebc](4eebebc765)), closes [#39](https://github.com/firstsun-dev/git-files-sync/issues/39)
* **ui:** show connection status in the global status bar ([83499c9](83499c92e8))

### Bug Fixes

* don't mark the symlink-pull fix as notable in 1.3.0 changelog ([1fc27ab](1fc27ab1b6))
* normalize vaultFolder-relative path before gitService.deleteFile ([fa42fea](fa42fea5fd))
* **push:** avoid stale remote-tree read right after a batch push ([7676325](7676325088))
* **push:** retry GitHub commit mutations on a stale expectedHeadOid ([33d41ac](33d41ac89b))
* remote-repo root path picker, delete-remote-only-file errors, symlinked-folder EISDIR ([896d77b](896d77bddf)), closes [firstsun-dev/blog#78](https://github.com/firstsun-dev/blog/issues/78)
* satisfy Obsidian plugin scan (undescribed directive, popout-window timers) ([09bdf0c](09bdf0c0c7))
* surface a clear error when requestUrl() itself rejects with HTML content ([a867217](a86721752a)), closes [#31](https://github.com/firstsun-dev/git-files-sync/issues/31)
* symlinked directories no longer break pull discovery ([4c8896b](4c8896b6fa)), closes [#33](https://github.com/firstsun-dev/git-files-sync/issues/33)
* **sync:** clear sync metadata on vault file delete ([1a369b3](1a369b36ed))
* **ui:** connection status badge text invisible on some themes ([12cce64](12cce6497e))

### Performance Improvements

* **delete:** batch-commit remote-only file deletion ([d8e3663](d8e3663b8f))
* **push:** batch-commit push-all files + SHA-based diffing ([c28e0ec](c28e0ec09a))
* **push:** GitHub batch push/delete via GraphQL createCommitOnBranch ([114a575](114a5759a7))
* **push:** parallelize blob creation within a batch commit ([c7ae0f6](c7ae0f6754))
* **refresh:** use tree blob SHAs to avoid per-file content fetches ([2ed5a43](2ed5a436b0)), closes [#36](https://github.com/firstsun-dev/git-files-sync/issues/36)

### Code Refactoring

* **tests:** dedupe TextComponent/TextAreaComponent mocks ([f5ae8ef](f5ae8ef16d)), closes [#49](https://github.com/firstsun-dev/git-files-sync/issues/49)
2026-07-14 13:37:29 +00:00

13 KiB

1.3.0 (2026-07-14)

Features

  • add i18n (multi-language) support (#38) (144eb28)
  • add Simplified Chinese locale, settings what's-new banner, and 1.3.0 changelog (72ed2cd)
  • resize conflict modal, add connection status badge, and local ignore patterns (28f4f8e), closes #42 #41
  • settings: add folder picker for root path and vault folder settings (c107979), closes #48
  • show new feature tips after update (4eebebc), closes #39
  • ui: show connection status in the global status bar (83499c9)

Bug Fixes

  • don't mark the symlink-pull fix as notable in 1.3.0 changelog (1fc27ab)
  • normalize vaultFolder-relative path before gitService.deleteFile (fa42fea)
  • push: avoid stale remote-tree read right after a batch push (7676325)
  • push: retry GitHub commit mutations on a stale expectedHeadOid (33d41ac)
  • remote-repo root path picker, delete-remote-only-file errors, symlinked-folder EISDIR (896d77b), closes firstsun-dev/blog#78
  • satisfy Obsidian plugin scan (undescribed directive, popout-window timers) (09bdf0c)
  • surface a clear error when requestUrl() itself rejects with HTML content (a867217), closes #31
  • symlinked directories no longer break pull discovery (4c8896b), closes #33
  • sync: clear sync metadata on vault file delete (1a369b3)
  • ui: connection status badge text invisible on some themes (12cce64)

Performance Improvements

  • delete: batch-commit remote-only file deletion (d8e3663)
  • push: batch-commit push-all files + SHA-based diffing (c28e0ec)
  • push: GitHub batch push/delete via GraphQL createCommitOnBranch (114a575)
  • push: parallelize blob creation within a batch commit (c7ae0f6)
  • refresh: use tree blob SHAs to avoid per-file content fetches (2ed5a43), closes #36

Code Refactoring

  • tests: dedupe TextComponent/TextAreaComponent mocks (f5ae8ef), closes #49

1.2.1 (2026-07-07)

Bug Fixes

  • compat: support Obsidian down to 1.11.0 (d896015)

Documentation

  • restyle README, host demo videos on R2, use official download stats (#44) (0a4cff5)

1.2.0 (2026-07-05)

Features

  • add Gitea support as third-party Git provider (130bd93), closes #26
  • sync: detect symbolic links and add a configurable handling setting (62b475d)
  • sync: real symbolic link support (GitHub) with configurable handling (9bcaed6)

Bug Fixes

  • deprecations: migrate off deprecated Obsidian APIs (5c64b96)
  • deps: resolve Dependabot security alerts in dev dependencies (a47cfcb)
  • lint: resolve Obsidian plugin linter warnings (d11ca94)
  • services: clear error when Git API returns HTML instead of JSON (bcc5cda)
  • services: omit blank sha so creating a new file doesn't 422 (339d5cb)
  • services: stop logging expected 404s as errors during refresh (c474a7e)
  • settings: mask personal access token fields (235d9e0)
  • sync: clearer branch-not-found errors and connection test (2f6859a)
  • sync: fall back to adapter read for symlinked files (76405cf)
  • sync: stop batch push/pull from silently overwriting conflicts (1364b94)
  • sync: stop false-positive rename detection and 422 on rename push (06953e1)
  • ui: keep ribbon/command labels in sync with configured Git service (acebafd)
  • ui: match Open sync status ribbon icon to the view icon (9bc8ab7)
  • use two-step branch→SHA resolution in GiteaService.listFiles (7648eef)

Performance Improvements

  • ui: parallelize refresh status checks and throttle re-renders (1e21061)

Documentation

  • add video (#30) (49bfe9f)
  • fix CLAUDE.md to match actual codebase and remove subagent delegation directives (#32) (85bcaba)
  • update intro video with refreshed content (df44a96)
  • update USAGE_zh.md with Gitea support and provider compatibility table (615819c)

Code Refactoring

  • ui: unify Sync Status icons via Lucide setIcon (d8d6f9d)

1.1.2 (2026-06-16)

Bug Fixes

  • lint: replace activeWindow.setTimeout with setTimeout (4099f44)

1.1.1 (2026-06-16)

Bug Fixes

  • ci: switch to shared workflow v1 and fix repository url (3a0f99e)

1.1.0 (2026-06-16)

Features

  • support hidden file sync and expand binary extension list (649d732)

Documentation

  • remove SonarCloud quality gate badge from README (d907baf)
  • update README badges (7cd9e38)

Code Refactoring

  • test: eliminate duplicate code flagged by SonarCloud (f49600e)
  • test: extract shared SyncManager mock setup to reduce duplication (1f71a43)

1.0.6 (2026-05-20)

Bug Fixes

  • release: trigger patch release on chore(deps) commits (910305a)
  • test: add @types/jsdom and fix Element type cast in setup-dom (8f7207a)
  • ui: real-time file status during refresh and unsynced file actions (c6152a6)

Code Refactoring

  • code quality enhancements for issue #23 (7f223e3)
  • code quality enhancements for issue #23 (31ac918)
  • eliminate code duplication flagged by SonarCloud (556f9e9)

1.0.5 (2026-04-26)

Code Refactoring

  • address SonarCloud issues and reduce code duplication (#20) (4574abc)
  • fix quality gate issues, improve type safety and pagination (#21) (70171fd)

Changelog