OpenVibe.Media

Another Claude Prompt

text · 21 views · 4 unique · 2026-04-08 18:59:12 · raw

You are working on the latest Hobo Network codebase.

Primary repo:
- HoboStreamer/HoboStreamer.com

Secondary repo for shared Hobo Tools / admin / notification / account-system work:
- HoboStreamer/HoboApp

Ground yourself in the real current code before changing anything.
HoboStreamer currently includes RTMP, JSMPEG, WebRTC, chat, VODs, clips, moderation, restreaming, and realtime systems :contentReference[oaicite:0]{index=0}
Relevant current files in the latest repo include:
- server/streaming/rtmp-server.js :contentReference[oaicite:1]{index=1}
- server/streaming/jsmpeg-relay.js :contentReference[oaicite:2]{index=2}
- server/streaming/routes.js :contentReference[oaicite:3]{index=3}
- server/streaming/restream-routes.js :contentReference[oaicite:4]{index=4}
- server/streaming/restream-manager.js :contentReference[oaicite:5]{index=5}
- server/streaming/broadcast-server.js :contentReference[oaicite:6]{index=6}
- public/js/broadcast.js :contentReference[oaicite:7]{index=7}
- public/js/chat.js :contentReference[oaicite:8]{index=8}
- public/js/messenger.js :contentReference[oaicite:9]{index=9}
- public/js/notification-ui.js :contentReference[oaicite:10]{index=10}
- public/js/pastes.js :contentReference[oaicite:11]{index=11}
- server/pastes/routes.js :contentReference[oaicite:12]{index=12}
- public/js/admin.js :contentReference[oaicite:13]{index=13}
- server/chat/dm-routes.js :contentReference[oaicite:14]{index=14}

HoboApp contains the hobo.tools/admin/email/notification side:
- hobo-tools/server/admin/routes.js :contentReference[oaicite:15]{index=15}
- hobo-tools/public/admin.html :contentReference[oaicite:16]{index=16}
- hobo-tools/server/notifications/email-service.js :contentReference[oaicite:17]{index=17}
- hobo-tools/server/notifications/notification-service.js :contentReference[oaicite:18]{index=18}

Your job is not to give vague advice. Audit the actual latest code, identify the exact files and root causes, and then implement the work below cleanly.

Today’s main roadmap:
1. Fix and finalize the RTMP streaming method.
2. Fix and finalize the JSMPEG streaming method.
3. Finish the built-in Discord/global chat feature.
4. Add built-in Cozmo support.
5. Make the FFmpeg/JSMPEG workflow solid for a long-running 3D printer stream running from a Steam Deck / Linux setup.

Additional backlog that must be analyzed and turned into real code changes:

A. Breaking news chat feature
- Add an optional breaking news system that can inject news updates into chat.
- Streamer must be able to turn it off completely.
- Pull from Twitter/X equivalents where practical, Reddit, news APIs, and scraping sources where legal/feasible.
- Design it so sources are modular and individually enable/disable-able.
- Do not spam chat.
- Add sane throttling, dedupe, cooldowns, and source labeling.
- Add per-stream or per-user settings for enable/disable.
- If source credentials are missing, fail clearly in admin/settings instead of silently.

B. Clickable links in DMs
- Make links clickable in DMs using the same safe/clickable link logic already used in stream chat.
- Reuse shared parsing/sanitizing logic rather than duplicating it.
- Preserve security/sanitization and do not introduce XSS.

C. Pastes NSFW protection
- Add NSFW tagging for the paste system.
- Text and image pastes flagged NSFW should not blast users immediately on open.
- Add blur/cover/interstitial behavior for NSFW image pastes.
- Add obvious but lightweight reveal controls.
- Make sure metadata, backend storage, and frontend rendering all support the flag consistently.

D. Requests system is still broken
- The requests system is still very broken.
- YouTube links fail to download or otherwise fail in the request flow.
- Audit the full request pipeline end to end: submission, validation, provider detection, queueing, downloads, retries, error states, UI states, and playback.
- Fix YouTube request failures.
- Harden provider-specific errors and show useful failure reasons in UI.
- Make the request system extensible for future request types, not just brittle one-off media links.

E. Notifications are unreliable
- Notifications often fail to load.
- DM notifications do not reliably appear on screen.
- Audit notification fetch, in-app toast/banner rendering, websocket or polling flow, unread/read state, stale data handling, dedupe, and timing.
- Make DM notifications appear reliably when they should.
- Remove weird stale/ghost notification behavior.

F. Live clip creation on /broadcast is buggy
- Improve the live clip feature on the Go Live page while the streamer is live.
- Audit the entire live clip path: UI state, VOD readiness, timestamps, chunk timing, duration validation, finalization, and error handling.
- Fix race conditions and misleading success states.
- Make clip creation feel reliable and immediate.

G. hobo.tools admin email editing feature is missing
- There is supposed to be an edit email feature in hobo.tools/admin and it was never properly added.
- Audit the admin panel and email service code in HoboApp/hobo-tools.
- Implement the missing feature fully, including backend route, frontend UI, validation, persistence, and any safe update flow needed.

H. Kick restreaming is broken
- Kick restreaming appears broken.
- Goosely keeps failing to go live on Kick.
- Auto-go-live for restream destinations is not being respected.
- Fix Kick restream startup, status handling, credential validation, and auto-start logic.
- Fix misleading “connected” or “ready” states.
- Verify restream manager behavior for enabled auto-start destinations.

I. RobotStreamer singular message deletion is broken
- Streamers can delete all RobotStreamer messages, but not individual RobotStreamer messages.
- Audit permissions, message ownership, moderation/delete routes, frontend actions, and backend enforcement.
- Add proper single-message deletion for the streamer where intended.
- Do not break delete-all or moderation behavior.

J. Kick and YouTube viewer counts are wrong or missing
- Fix Kick viewer count and YouTube viewer count.
- Add configurable API keys / credentials / settings into hobo.tools/admin where needed.
- Make status and credential validation clear.
- Do not fake exact live counts if the upstream source is unavailable; instead show degraded/unavailable state honestly.

K. Create pastes.hobo.tools and connect it to the existing pastes system
- Create a dedicated pastes.hobo.tools surface and link HoboStreamer’s text/image paste system to it.
- Reuse the existing paste data model where practical.
- Keep auth/account integration consistent with the Hobo network.
- Ensure old HoboStreamer paste links and new dedicated paste-domain behavior are handled cleanly.
- Do not break existing paste URLs unless you add explicit redirect/compat logic.

L. Chat needs drag-and-drop resizability on desktop
- Add desktop drag-resizable chat panes for:
  - stream pages
  - go live page
- Must be smooth, persistent if appropriate, and not janky.
- Do not break mobile layout.
- Avoid layout thrash and weird pointer-event bugs.

M. Discord/global chat finishing work
- Audit the built-in global chat and any Discord bridge/relay related code.
- Finish broken or partial paths.
- Make sure identity, attribution, message delivery, moderation, and failure states are coherent.
- Prevent duplicate relays and loopback behavior.

N. Cozmo support
- Add built-in Cozmo support in a way that fits the HoboStreamer broadcast ecosystem.
- Keep streamer setup easy.
- Design for future viewer interactions, not just broadcaster-only control.
- If native/hardware control is not already present, add the smallest real modular implementation path and a clean integration surface instead of fake UI.

O. RTMP and JSMPEG hardening
- RTMP and JSMPEG must become reliable first-class broadcast methods.
- Audit stream creation, endpoint generation, health reporting, ingest detection, reconnect behavior, viewer playback, docs/instructions, and status UI.
- Improve FFmpeg examples, especially for long-running unattended streams.
- Add a practical JSMPEG/FFmpeg setup path for a persistent 3D printer stream from a Steam Deck/Linux environment.

P. Breaking news + chat safety + moderation
- Make sure the breaking news feature respects moderation settings, chat spam controls, and streamer preferences.
- Streamer should be able to disable globally and per stream.
- Avoid flooding chat with duplicates or low-quality junk.

Q. UX cleanup across all touched features
- Improve empty states, loading states, error messaging, admin credential validation messaging, and broken-toggle behavior.
- Do not leave fake buttons that do nothing.
- Do not leave silent failures.

R. Connection stats / broadcaster health on Go Live
- Audit and improve the Go Live stats button/overlay.
- Fix broken bitrate reporting.
- Add a simple top-level connection overview such as excellent/good/fair/poor/reconnecting/no data, based on real measured conditions.
- Distinguish measured live stats from estimated target settings and unavailable telemetry.
- Reset stale counters/timers properly when switching streams, changing media sources, or recovering connections.

Execution requirements:

Phase 1: audit first
- Build a real bug matrix before coding.
- For each item above, identify:
  - exact frontend files
  - exact backend files
  - whether HoboStreamer.com or HoboApp owns it
  - root cause
  - fix approach
  - regression risks
- Do not make up files, routes, or data models.
- Inspect the current code first.

Phase 2: implement
- Implement the fixes directly in the real codebase.
- Keep changes modular.
- Reuse shared helpers where possible.
- Do not duplicate link parsing, notification logic, auth checks, or restream status logic unnecessarily.
- Avoid memory leaks, duplicate intervals, duplicate websocket listeners, stale state, and reconnect loops.
- Preserve current architecture unless there is a clear reason to improve it.

Phase 3: verify
After implementation, provide:
- a changed-file summary
- any schema/config/env/admin changes
- any new API keys or admin settings required
- any migration/redirect steps needed
- a manual QA checklist for every touched feature
- any assumptions made where the current code was incomplete

Important coding standards:
- No fake placeholders.
- No TODO-only output.
- No mock-only features passed off as complete.
- No giant rewrites unless necessary.
- Keep desktop and mobile behavior intact.
- Keep the Hobo network identity/admin relationship coherent across HoboStreamer and hobo.tools.
- Be explicit when a feature belongs in HoboStreamer.com versus HoboApp/hobo-tools.

Prioritization order:
1. RTMP reliability
2. JSMPEG reliability
3. Request system + YouTube failure fixes
4. Notification reliability + DM onscreen notifications
5. Kick restream + auto-go-live + viewer counts
6. Live clip stability
7. DM clickable links
8. RobotStreamer single-message deletion
9. NSFW pastes behavior
10. pastes.hobo.tools integration
11. chat drag-resize on desktop
12. hobo.tools admin email editing
13. Discord/global chat completion
14. connection stats / health overview
15. breaking news feature
16. Cozmo support
17. 3D printer / FFmpeg long-running stream quality-of-life improvements

Now start by auditing the latest code and producing the bug matrix, then move straight into implementation.