Skip to content

Offline banner + security-header/CSP hardening audit (#1412, #1413, #1414, #1415) - #1437

Open
constantvictory wants to merge 1 commit into
solutions-plug:mainfrom
constantvictory:fix/offline-banner-security-headers-audit
Open

Offline banner + security-header/CSP hardening audit (#1412, #1413, #1414, #1415)#1437
constantvictory wants to merge 1 commit into
solutions-plug:mainfrom
constantvictory:fix/offline-banner-security-headers-audit

Conversation

@constantvictory

Copy link
Copy Markdown

Summary

Changes

  • frontend/src/lib/hooks/useOnlineStatus.ts (new)
  • frontend/src/components/OfflineBanner.tsx, OfflineBanner.css (new)
  • frontend/src/app/layout.tsx — mount OfflineBanner app-wide
  • frontend/src/components/Statistics.tsx — pause/resume auto-refresh on connectivity change
  • frontend/src/proxy.ts — explanatory note for [Security] Recreate API-proxy request/response tests #1415

Tests intentionally skipped per request.

Closes #1412
Closes #1413
Closes #1414
Closes #1415

🤖 Generated with Claude Code

- solutions-plug#1412: new useOnlineStatus hook (navigator.onLine + online/offline
  events, debounced to avoid flicker on flaky connections) and an
  OfflineBanner shown app-wide while offline. Statistics now pauses its
  auto-refresh while offline and resumes (with an immediate refetch) on
  reconnect.
- solutions-plug#1413/solutions-plug#1414: verified already satisfied on main — proxy.ts sets CSP
  (no unsafe-inline in style-src), next.config.js sets HSTS/X-Frame-
  Options/X-Content-Type-Options/Referrer-Policy on every response, and
  no component uses inline style props. No inline styles found in an
  audit of src/components.
- solutions-plug#1415: documented in proxy.ts why request/response sanitization
  doesn't apply — the frontend has no server-side proxy route that
  forwards to services/api or services/tts; all API calls go directly
  from the browser to the public NEXT_PUBLIC_API_URL, so there's no
  proxied response that could leak an internal upstream URL or a
  server-only env var.

Closes solutions-plug#1412
Closes solutions-plug#1413
Closes solutions-plug#1414
Closes solutions-plug#1415
@drips-wave

drips-wave Bot commented Aug 27, 2026

Copy link
Copy Markdown

@constantvictory Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant