You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(git-id-switcher): add event-driven sync check, settings, and i18n (#360)
Add syncCheck.enabled / syncCheck.onFocusReturn configuration settings,
integrate sync check into workspace folder change, config change, and
window focus return events (debounced 500ms), localize all sync check
UI strings to 17 languages, and document the feature in README (en/ja)
and CHANGELOG. Bump version to 0.17.0.
🖥️ IDE: [Cursor](https://cursor.sh)
🔌 Extension: [Claude Code](https://claude.ai/download)
Model-Raw: claude-opus-4-6-20250514
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: extensions/git-id-switcher/CHANGELOG.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [0.17.0] - 2026-03-18
11
+
12
+
### Added
13
+
14
+
-**Sync Check**: Real-time detection of mismatches between the selected profile and actual git config (`user.name`, `user.email`, `user.signingkey`). When a mismatch is detected, the status bar shows a ⚠️ warning with a clickable resolution flow (re-apply, select different profile, or dismiss)
15
+
-**Sync Check settings**: `syncCheck.enabled` (default: `true`) and `syncCheck.onFocusReturn` (default: `true`) to control sync check behavior
16
+
-**Event-driven sync check**: Automatically runs on profile apply, workspace folder change, configuration change, and window focus return (debounced 500ms)
17
+
-**Localization**: All sync check UI strings translated to 17 languages (`package.nls` and `l10n/bundle.l10n`)
4.**Submodules** (if enabled): Propagates settings to all submodules (default: depth 1)
353
+
5.**Sync Check**: Verifies that the applied profile matches the actual git config
354
+
355
+
### Sync Check
356
+
357
+
Compares the selected profile against the actual `git config --local` values (`user.name`, `user.email`, `user.signingkey`) and shows a status bar warning when a mismatch is detected.
358
+
359
+
**When checks run:**
360
+
361
+
- Immediately after profile apply
362
+
- On workspace folder change
363
+
- On configuration change
364
+
- On editor window focus return (debounced 500ms)
365
+
366
+
**When a mismatch is detected:**
367
+
368
+
- The status bar shows a ⚠️ icon with a warning background color
369
+
- The tooltip displays a table showing the mismatched fields (field, expected value, actual value)
370
+
- Clicking the status bar presents resolution options:
371
+
-**Re-apply profile** — Re-apply the current profile to git config
372
+
-**Select different profile** — Open the identity picker
373
+
-**Dismiss** — Suppress the warning until the next check
374
+
375
+
**To disable:**
376
+
377
+
Set `gitIdSwitcher.syncCheck.enabled` to `false` to disable all sync checks.
378
+
To disable only the focus-return check, set `gitIdSwitcher.syncCheck.onFocusReturn` to `false`.
4.**Submodules** (if enabled): Propagates settings to all submodules (default: depth 1)
349
+
5.**Sync Check**: Verifies that the applied profile matches the actual git config
350
+
351
+
### Sync Check
352
+
353
+
Compares the selected profile against the actual `git config --local` values (`user.name`, `user.email`, `user.signingkey`) and shows a status bar warning when a mismatch is detected.
354
+
355
+
**When checks run:**
356
+
357
+
- Immediately after profile apply
358
+
- On workspace folder change
359
+
- On configuration change
360
+
- On editor window focus return (debounced 500ms)
361
+
362
+
**When a mismatch is detected:**
363
+
364
+
- The status bar shows a ⚠️ icon with a warning background color
365
+
- The tooltip displays a table showing the mismatched fields (field, expected value, actual value)
366
+
- Clicking the status bar presents resolution options:
367
+
-**Re-apply profile** — Re-apply the current profile to git config
368
+
-**Select different profile** — Open the identity picker
369
+
-**Dismiss** — Suppress the warning until the next check
370
+
371
+
**To disable:**
372
+
373
+
Set `gitIdSwitcher.syncCheck.enabled` to `false` to disable all sync checks.
374
+
To disable only the focus-return check, set `gitIdSwitcher.syncCheck.onFocusReturn` to `false`.
0 commit comments