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
perf(identity): add validation cache and remove deprecated aliases (#402)
* perf(identity): add validation cache and remove deprecated aliases
Cache getIdentitiesWithValidation() results in a module-level variable
to avoid redundant VS Code config reads and schema validation on every
call (up to MAX_IDENTITIES=1000 per invocation). Cache is invalidated
on configuration change via onDidChangeConfiguration.
Also removes 6 deprecated aliases (isPathSafe, isSecurePath,
validateNoControlChars, validateNoInvisibleUnicode, isKeyLoaded,
getGitAuthorFlag) and fixes valuesEqual() to return false (safe-side)
for large objects instead of a length-based heuristic.
🖥️ IDE: [Cursor](https://cursor.sh)
🔌 Extension: [Claude Code](https://claude.ai/download)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Model-Raw: claude-opus-4-6
* fix(test): invalidate identity cache in E2E test setup/teardown
The identity cache introduced in the previous commit persists across
test cases. E2E tests that set up mock VS Code configurations need to
also call invalidateIdentityCache() alongside _resetCache() to ensure
each test starts with a fresh cache.
🖥️ IDE: [Cursor](https://cursor.sh)
🔌 Extension: [Claude Code](https://claude.ai/download)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Model-Raw: claude-opus-4-6
* fix(ci): fix printf treating checklist items as options
printf interprets '- [ ] ...' as an invalid option flag because it
starts with a hyphen. Use '%s
' format string to pass the checklist
text as an argument instead of a format string.
🖥️ IDE: [Cursor](https://cursor.sh)
🔌 Extension: [Claude Code](https://claude.ai/download)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Model-Raw: claude-opus-4-6
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: extensions/git-id-switcher/CHANGELOG.md
+22Lines changed: 22 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [0.18.0] - 2026-03-30
11
+
12
+
### Changed
13
+
14
+
-**Identity validation caching**: `getIdentitiesWithValidation()` now caches validated results in a module-level variable, avoiding redundant VS Code config reads and schema validation on every call. Cache is automatically invalidated on configuration change via `onDidChangeConfiguration`
15
+
-**Config change detection**: `valuesEqual()` in `ConfigChangeDetector` now returns `false` (changed) for large objects exceeding `MAX_STRINGIFY_SIZE`, instead of the previous length-based heuristic that could miss same-length but different-content objects
16
+
-**Renamed**`resetValidationNotificationFlag()` to `invalidateIdentityCache()` to reflect its expanded responsibility (cache invalidation + notification flag reset)
17
+
18
+
### Removed
19
+
20
+
-**Deprecated aliases removed** (BREAKING for consumers importing these symbols directly):
21
+
-`isPathSafe` — use `isShellSafePath` instead
22
+
-`isSecurePath` — use `validatePathSecurity` instead
23
+
-`validateNoControlChars` — use `controlCharValidator` instead
24
+
-`validateNoInvisibleUnicode` — use `invisibleUnicodeValidator` instead
25
+
-`isKeyLoaded` — use `checkKeyLoadedInAgent` instead
26
+
-`getGitAuthorFlag()` — use `formatGitAuthor()` with template literal instead
0 commit comments