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
refactor(git-id-switcher): design tokens round two — body tokens + pad→size rename (#463)
* refactor(git-id-switcher): add document-body design tokens and rename --gis-pad-* to --gis-size-*
Add six new design tokens to :root (--gis-width-readable, --gis-line-height-doc,
--gis-border-emphasis, --gis-pad-code, --gis-spinner-size, --gis-spinner-border)
and rename --gis-pad-btn/body/body-lg to --gis-size-btn/body/body-lg to reflect
their mixed padding/margin usage. Replace all remaining magic numbers in
document/loading/error templates with token references. Extend tokenSpec value
contracts and add SSOT literal check for --gis-border-emphasis.
Signed-off-by: Null;Variant <null@nullvariant.com>
🖥️ IDE: [VS Code](https://code.visualstudio.com/)
🔌 Extension: [Claude Code](https://claude.ai/download)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Model-Raw: claude-opus-4-6
* chore(git-id-switcher): bump version to 0.19.0 and update CHANGELOG
Signed-off-by: Null;Variant <null@nullvariant.com>
🖥️ IDE: [VS Code](https://code.visualstudio.com/)
🔌 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
+45Lines changed: 45 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,51 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [0.19.0] - 2026-04-10
11
+
12
+
### Security
13
+
14
+
-**Webview CSP hardening**: Tightened `img-src` from wildcard to explicit `assets.nullvariant.com` subdomain (#462)
15
+
-**Link scheme allowlist**: Externalized `linkInterceptScript` and restricted navigable href schemes to `http:`, `https:`, and fragment-only (#460)
16
+
-**SanitizedHtml branded type**: Introduced a compile-time brand on pre-sanitized HTML content so `buildDocumentHtml` cannot accept a raw `string` (#455)
17
+
-**Webview fail-safe fallback**: Hardened CSP construction with `CspValidationError` and a fail-closed error page when CSP assembly fails (#453)
18
+
-**Input length guard**: Added input length limit and field name validation to `toFieldError` (#444)
19
+
20
+
### Added
21
+
22
+
-**Defense-in-depth nonce/lang validation**: `buildHtmlShell` now validates nonce format and lang tag at the template boundary, throwing `CspValidationError` on invalid input (#457)
23
+
-**npm namespace placeholder**: Published `@nullvariant/git-id-switcher` placeholder package to prevent name squatting (#422)
24
+
-**DCO enforcement**: Added Developer Certificate of Origin check workflow for all PRs (#425)
25
+
-**CI auto-approval**: Justice bot now auto-approves PRs that pass all CI checks (#430)
26
+
-**Coverage thresholds**: Enforced c8 statement/branch/function/line thresholds via `.c8rc.json` (#434)
-**Snyk integration**: Added Snyk policy, vulnerability badge, and documented in SECURITY.md (#416)
29
+
-**FOSSA integration**: Added FOSSA license/security badges and documented in SECURITY.md (#424, #426)
30
+
31
+
### Fixed
32
+
33
+
-**Webview a11y**: Improved landmark structure, focus management, ARIA attributes, and forced-colors support in all webview templates (#446, #456)
34
+
-**Markdown tooltip escaping**: Escape Markdown special characters in status bar tooltip user values (#406)
35
+
36
+
### Refactored
37
+
38
+
-**htmlTemplates directory split**: Decomposed monolithic `htmlTemplates.ts` into `shell.ts`, `document.ts`, `loading.ts`, `error.ts`, `baseStyles.ts`, `csp.ts`, `linkIntercept.ts`, and `types.ts` (#447, #458, #459)
39
+
-**Design tokens round two**: Added six new tokens (`--gis-width-readable`, `--gis-line-height-doc`, `--gis-border-emphasis`, `--gis-pad-code`, `--gis-spinner-size`, `--gis-spinner-border`), renamed `--gis-pad-*` → `--gis-size-*`, and eliminated all remaining magic numbers from templates
40
+
-**Design tokens round one**: Scoped webview body overrides by `body.gis-*` class and introduced initial `--gis-border-subtle` / `--gis-space-*` / `--gis-pad-*` token set (#448)
41
+
-**Webview template extraction**: Extracted pure HTML template functions from webview provider for independent testability (#405)
0 commit comments