Commit graph

12 commits

Author SHA1 Message Date
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
Claude
d896015765 fix(compat): support Obsidian down to 1.11.0
Release 1.2.0 raised minAppVersion to 1.13.0, pushing users still on
Obsidian 1.11/1.12 back to the older 1.1.2 build via versions.json. Only
three 1.13-era APIs were in use; two were already runtime-guarded, but
ButtonComponent.setDestructive() would throw on older Obsidian.

- Guard setDestructive() behind applyDestructiveStyle() (no-ops on < 1.13).
- Declare SettingDefinitionItem locally and read update() via a cast so the
  forward-compatible settings code type-checks against 1.11 typings.
- Ship 1.2.1 with minAppVersion 1.11.0 (manifest.json + versions.json).
- Add tsconfig.compat.json and `npm run typecheck:compat` to type-check src
  against the 1.11 API, plus regression tests for applyDestructiveStyle.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SSikT9ZAfQF8K4SE3DatD3
2026-07-07 01:53:28 +00:00
ClaudiaFang
e89f6bad70 chore(release): bump minAppVersion to 1.13.0 and version to 1.2.0
Obsidian APIs used (getSettingDefinitions, PluginSettingTab.update,
setDestructive) all require 1.13.0+, but manifest.json still declared
1.12.7. Bump minAppVersion to match and cut a new release version.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-05 05:50:21 +00:00
semantic-release-bot
9a4d136e63 chore(release): 1.1.2 [skip ci]
## [1.1.2](https://github.com/firstsun-dev/git-files-sync/compare/1.1.1...1.1.2) (2026-06-16)

### Bug Fixes

* **lint:** replace activeWindow.setTimeout with setTimeout ([4099f44](4099f44fa5))
2026-06-16 13:34:20 +00:00
semantic-release-bot
e18851934a chore(release): 1.1.1 [skip ci]
## [1.1.1](https://github.com/firstsun-dev/git-files-sync/compare/1.1.0...1.1.1) (2026-06-16)

### Bug Fixes

* **ci:** switch to shared workflow v1 and fix repository url ([3a0f99e](3a0f99e383))
2026-06-16 03:54:45 +00:00
semantic-release-bot
d41d98d0b3 chore(release): 1.0.6 [skip ci]
## [1.0.6](https://github.com/firstsun-dev/git-files-sync/compare/1.0.5...1.0.6) (2026-05-20)

### Bug Fixes

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

### Code Refactoring

* code quality enhancements for issue [#23](https://github.com/firstsun-dev/git-files-sync/issues/23) ([7f223e3](7f223e33b8))
* code quality enhancements for issue [#23](https://github.com/firstsun-dev/git-files-sync/issues/23) ([31ac918](31ac9189cf))
* eliminate code duplication flagged by SonarCloud ([556f9e9](556f9e930d))
2026-05-20 09:12:47 +00:00
semantic-release-bot
438a4981b1 chore(release): 1.0.5 [skip ci]
## [1.0.5](https://github.com/firstsun-dev/git-files-sync/compare/1.0.4...1.0.5) (2026-04-26)

### Code Refactoring

* address SonarCloud issues and reduce code duplication ([#20](https://github.com/firstsun-dev/git-files-sync/issues/20)) ([4574abc](4574abc294))
* fix quality gate issues, improve type safety and pagination ([#21](https://github.com/firstsun-dev/git-files-sync/issues/21)) ([70171fd](70171fd5d7))
2026-04-26 18:17:27 +00:00
ClaudiaFang
f79f36d5aa
ci: use shared obsidian plugin workflow and update obsidian version (#19)
Co-authored-by: ClaudiaFang <tianyao.firstsun@gmail.coim>
2026-04-27 00:33:35 +08:00
ClaudiaFang
684551b8f8
fix: resolve SonarCloud Quality Gate failures and improve marketplace readiness (#10)
This commit consolidates several improvements to satisfy SonarCloud Quality Gate and enhance the overall plugin stability:

- Code Quality & Refactoring:
  - Reduced duplication to 0% by refactoring SyncManager and SyncStatusView.
  - Implemented centralized 'processBatch' logic for multi-file sync operations.
  - Fixed security hotspots by replacing legacy atob/btoa with Buffer.
  - Added memory safety limits to the diff algorithm to prevent DoS.

- Test Coverage & Reliability:
  - Improved SyncManager coverage to 81.8% and GitignoreManager to 92.8%.
  - Added comprehensive unit tests for batch operations and complex .gitignore patterns.
  - Resolved all ESLint 'unsafe-member-access' and 'unbound-method' warnings in tests.

- Infrastructure & Metadata:
  - Consolidated GitHub Actions into a single optimized 'ci.yml' using latest versions (v6-v8).
  - Synchronized manifest.json and versions.json to v1.1.0.
  - Fixed workflow permission issues identified by CodeQL.
2026-04-25 23:35:32 +08:00
ClaudiaFang
5214e39fb4 chore: initial release reset to 1.0.0 2026-04-25 04:50:03 +00:00
ClaudiaFang
4c98d19667 chore: manual version sync to 1.1.2 2026-04-25 04:45:24 +00:00
ClaudiaFang
b620e9eb40
Initial commit 2026-04-01 00:23:18 +08:00