live-sfu-demo/internal/server/static/assets
noelorin c7f70970ac feat: POST+JWT SSE + permission visibility
Backend:
- SSE endpoints changed from GET to POST for JWT auth compliance
- Chat subscription moved to /api/room/{room}/chat/subscribe (avoids route conflict)
- handleAuthCheck now returns config:write permission (was missing from response)

Frontend:
- EventSource replaced with fetch POST + Authorization Bearer header
- Token persisted in localStorage, cleared on logout
- postSSE helper with exponential backoff reconnection
- rooms.tsx: SSE/loading gated on can('room:list'), not just isAuthed
- watch.tsx: room events SSE gated on can('room:watch'), chat SSE on can('room:chat')
- watch.tsx: subscribe button disabled when lacking room:subscribe
- permissions.ts: added isPublisher() helper
2026-08-23 23:55:23 +08:00
..
arrow-right-BCxmjqZf.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
globe-C1LJ7PVd.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
hash-B2c-3y-y.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
index-DwOmVRa5.css feat: realtime rooms via SSE (global rooms/events) 2026-08-23 23:19:12 +08:00
index-LUhOsKYd.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 feat(web): rewrite frontend as SolidJS + Tailwind v4 SPA with chat UI 2026-08-20 15:03:03 +08:00
jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 feat(web): rewrite frontend as SolidJS + Tailwind v4 SPA with chat UI 2026-08-20 15:03:03 +08:00
jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 feat(web): rewrite frontend as SolidJS + Tailwind v4 SPA with chat UI 2026-08-20 15:03:03 +08:00
jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 feat(web): rewrite frontend as SolidJS + Tailwind v4 SPA with chat UI 2026-08-20 15:03:03 +08:00
jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 feat(web): rewrite frontend as SolidJS + Tailwind v4 SPA with chat UI 2026-08-20 15:03:03 +08:00
login-Dm3sGplk.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
manage-D14QE2VO.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
message-square-DqzerHoB.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
monitor-play-CRKwliz8.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
radio-tower-Beh88DAK.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
rooms-Qe281PmY.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
routes-BYNCPaRS.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
shield-check-OBDPf7l7.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2 feat(web): rewrite frontend as SolidJS + Tailwind v4 SPA with chat UI 2026-08-20 15:03:03 +08:00
space-grotesk-latin-wght-normal-BhU9QXUp.woff2 feat(web): rewrite frontend as SolidJS + Tailwind v4 SPA with chat UI 2026-08-20 15:03:03 +08:00
space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2 feat(web): rewrite frontend as SolidJS + Tailwind v4 SPA with chat UI 2026-08-20 15:03:03 +08:00
sse-BNt7h9If.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
ui-CTx2ZrLp.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
user-round-D606vhD9.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
users-3wlaTGls.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
users-DgV7UF3Q.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00
watch-C90bE29J.js feat: POST+JWT SSE + permission visibility 2026-08-23 23:55:23 +08:00