Commit graph

21 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
a20d30844b
Merge pull request #43 from firstsun-dev/claude/git-files-sync-issue-31-54izdm
Gitea support, symlink handling, sync reliability fixes, and dependency security updates
2026-07-05 15:19:32 +08: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
Claude
fbbb70a0c6 chore: update authorUrl to personal blog 2026-06-28 12:43:30 +08: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
1bde1c33e9 chore(release): 1.1.0 [skip ci]
## [1.1.0](https://github.com/firstsun-dev/git-files-sync/compare/1.0.6...1.1.0) (2026-06-16)

### Features

* support hidden file sync and expand binary extension list ([649d732](649d732781))

### Documentation

* remove SonarCloud quality gate badge from README ([d907baf](d907baf229))
* update README badges ([7cd9e38](7cd9e38e65))

### Code Refactoring

* **test:** eliminate duplicate code flagged by SonarCloud ([f49600e](f49600eb66))
* **test:** extract shared SyncManager mock setup to reduce duplication ([1f71a43](1f71a43980))
2026-06-16 03:50:36 +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
7f21cad9db
chore(ci): update minAppVersion to 1.12.7 and add git plugin to release (#18) 2026-04-26 11:35:55 +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
4c8c280138 chore: update author to ClaudiaFang and repo name to git-files-sync 2026-04-24 18:46:31 +00:00
ClaudiaFang
a27d3fdba5 fix: enable automatic versioning and sync manifest to 1.1.0 2026-04-24 18:32:29 +00:00
ClaudiaFang
cab60ad9fa docs: overhaul README and add Traditional Chinese usage guide 2026-04-24 17:33:19 +00:00
ClaudiaFang
282e4bfc7b style: improve RWD and fix button layouts 2026-04-24 17:23:52 +00:00
ClaudiaFang
d5539434dc
feat(core,ui,ci,docs): add GitHub support, sync status view, batch operations, and CI/CD workflows (#1)
Major feature release including:
- GitHub service support alongside GitLab
- Sync status view with visual diff
- Batch push/pull operations
- Conflict resolution modal
- Vault folder filtering
- File rename detection
- Complete CI/CD workflows (check, auto-release, semantic-release)
- Comprehensive documentation (CHANGELOG, COMPLIANCE, RELEASE guides)

Co-authored-by: tianyao <tianyao@heavendev01.royal-powan.ts.net>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 11:03:05 +08:00
tianyao
362def7cd3 feat: integrate SyncConflictModal into SyncManager
- Implement conflict detection in pushFile and pullFile using SHA comparison.
- Use SyncConflictModal to prompt users for manual resolution ('Use local' or 'Use remote').
- Added unit tests in sync-manager.test.ts to verify conflict handling logic.
- Fixed linting issues related to unhandled promises and mock type safety.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 16:43:10 +00:00
ClaudiaFang
b620e9eb40
Initial commit 2026-04-01 00:23:18 +08:00