Skip to content

Release v0.6.0 - #20

Merged
Esysc merged 1 commit into
mainfrom
release/v0.6.0
Aug 10, 2026
Merged

Esysc merged 1 commit into
mainfrom
release/v0.6.0

Conversation

@Esysc

@Esysc Esysc commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Added

Changed

  • update changelog with recent fixes and additions
  • virtualize log window, cache fetch, harden backend
  • Fix Renovate package rule matchers
  • fix(renovate): remove invalid schedule from vulnerabilityAlerts

Fixed

  • enforce virtual row height; preserve stored context on transient fetch failure
  • start credential refresher only for winning cache entry to prevent goroutine leak
  • guard ResizeObserver for environments where it is unavailable
  • update test to expect info instead of unknown for unrecognized log patterns
  • stale context validation, log level defaults, filtering UX, auto-reconnect
  • Virtualized rendering of log rows so DOM work stays constant regardless of how many logs are buffered
  • Client-side response caching with in-flight deduplication for autocomplete and cluster UI data
  • WebSocket origin allowlist (same-origin or ALLOWED_ORIGINS) to prevent arbitrary web pages from proxying this backend
  • Precompiled client-side log filters reused across log lines
  • Log message keyword and level filtering via Search and Level controls in stream panels
  • Automatic WebSocket reconnection when pod/container selector changes
  • Reuse a single Kubernetes client per context across WebSocket streams and cluster API endpoints
  • Autocomplete data cached with TTLs (60s for namespaces/contexts/nodes, 8s for pods/containers)
  • Log entries carry a stable monotonic id used as the render key, avoiding row remounts when the buffer rolls over
  • Log append path avoids a double array copy for every incoming message
  • WebSocket connections no longer leak when a stream panel unmounts (e.g. when switching views)
  • Parse-failure log entries are now buffered while paused instead of being dropped
  • kubectl namespace filters use --namespace= form so a value starting with - cannot be parsed as a flag
  • Stale Kubernetes context from localStorage validated against available contexts on app load
  • Context cleanup on error targets the correct localStorage key (stern-ui-cluster)
  • Default query . no longer reappears after clearing the pod selector
  • Unrecognized log lines default to info level instead of unknown
  • Search and Level filter inputs are now editable (removed double-unwrapping of onChange values)
  • Log lines are copyable (removed select-none CSS on pod name)
  • Credential refresher goroutine only starts for the cache entry that wins insertion (prevents leak on race)
  • Virtual row height enforced via inline style to match virtualization scroll math
  • Stored context preserved on transient /api/contexts fetch failure
  • ResizeObserver guarded for environments where it is unavailable

@Esysc
Esysc merged commit 670fccf into main Aug 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant