Another Claude Prompt

·Plain text · · 57 views ·221 lines

A concise summary: A project roadmap for HoboStreamer codebase focusing on fixing RTMP/JSMPEG streaming, chat, 3D printer streams, and a long list of backlog items (NSFW pastes, links, requests, notifications, restreams, admin features, and moderation) across multiple repos.

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.

Comments

Sign in with your OpenVibe account to comment.

No comments yet.