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
Types & contracts:
- Constrain SinkRotation.strategy to 'builtin' | 'external' union
- Replace text-[10px] with text-micro token in SinkCard, DependencyIndicator
- Replace shadow-lg with var(--so-shadow-card-hover) in FloatingSaveBar
- Replace min-w-[80px] with min-w-20 in TagInput
Semantic HTML & a11y:
- Fix button>h2 nesting in NamespaceSection (h2 now wraps button)
- Replace role="listbox" with role="group" in TagInput (not a true listbox)
- Add role="status" + aria-live="polite" to SearchInput result count
- Add a11y.test: 'error' to SearchInput stories
- Remove pointer-events-none from disabled SettingRow (blocks tooltip)
- Derive effectiveNamespace instead of setState in effect (ESLint rule)
Sink CRUD:
- Fix handleSave NaN: validate/default rotation numbers, add isConsole guard
- Merge custom_sinks with existing instead of overwriting
- Derive editSink from store state (not stale captured object)
- Default rotation strategy to 'none' (no rotation) instead of 'builtin'
- Fix SinkCard.stories/tests: strategy 'rotating' -> 'builtin'
Logic:
- Case-insensitive key matching in useSettingsKeyboard (Caps Lock safe)
- Deduplicate within batch in TagInput addItems
- Short-circuit parseArrayItems on blank input
- Add missing onSelect prop to SettingsHealthSection story
- Rename SourceBadge ConfigFile story to YamlRendersNull
- Fix RestartBanner test description: 'warning' -> 'alert'
- Update density-tokens comment to mention .density-medium
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0 commit comments