On This Page
Hub Chat is a browser-based Direct Connect client for a hub assigned to your account. It opens a live server-side session to that hub and shows connection progress, main chat, guests, private conversations, notifications, and recovery actions without requiring a separate desktop client. It is an operational client, not an anonymous public chat room: use it only for a hub you are authorized to manage.
The browser receives live updates through the event stream when it is available and falls back to polling when it is not. A refresh can recover a retained session when the same signed-in account remains authorized, but a page URL or browser storage is not a promise that a worker will survive a browser, network, deployment, or hub interruption.
Overview
Hub Chat connects with the selected hub endpoint, protocol, port, nickname, and client profile. The connection panel is the authoritative place to check whether the worker started and the hub accepted the login. Main Chat and permitted private-message controls stay unavailable until the client is connected and logged in.
Use this page to inspect a hub you manage, send a short test message when the hub account permits it, and reproduce a connection or protocol problem. It does not grant a hub role, bypass a password, open client ports, publish files, or override the hub's registration, share, and chat rules.
Overview And Availability
Anonymous visitors cannot open a hub-specific session. A signed-in user must be authorized for the selected hub under the site's Hub Chat policy; site administrators can also use the operational route. The application resolves the hub address and protocol from the hub record, then uses the configured or generated client nickname and profile. The target hub can still reject that identity, request a password, redirect it, or apply its own class restrictions.
The application prevents duplicate active sessions for the same user and endpoint. Starting another client can replace a retained session, so two tabs are not a safe way to create independent logins. If a refresh cannot recover a retained session because it was closed, expired, or is no longer authorized, open Hub Chat from the hub profile again.
Starting A Session
- Open a hub profile assigned to your account and choose Hub Chat.
- Review the resolved address, protocol, port, nickname, and client profile. Enter a hub password only when the hub administrator supplied it.
- Wait for Starting, then Connected, in the connection panel. A hub can still send a password request, redirect, or rule message during login.
- Confirm the logged-in state before sending a public message or selecting a guest.
- Use Main Chat for public testing, or choose a guest and the envelope action for a private conversation.
If the hub rejects the login, read the visible error and, where the diagnostic panels are enabled, the redacted protocol evidence. Correct the address, protocol, nickname, password, or hub-side account before reconnecting; repeated retries do not make an invalid login valid.
Runtime Modes
Interactive is for active use: the browser renders chat, guest, raw-protocol, and private-conversation updates and uses the ordinary event-stream/polling behavior. Background, displayed as Background Low CPU, keeps the session receiving main-chat and private-message traffic but pauses the guest list, raw protocol panels, and diagnostics until Interactive is selected again.
Background Low CPU reduces browser work; it does not turn the tab into a permanently hosted desktop client or guarantee delivery after a browser, network, worker, hub, or deployment interruption. Switch to Background only after confirming the connection, then return to Interactive before inspecting guests, protocol evidence, or diagnostics. The visible connection state, not the selected runtime mode, is the evidence that the hub session is usable.
Sender And Preview Control
The notification controls affect browser notifications, not text rendered inside Hub Chat. Notification mode chooses whether the browser may alert for private messages, mentions, all eligible main-chat messages, or no messages. Content chooses whether an alert shows a preview, only the sender, or a generic hidden-content notice.
Preview is useful but can reveal hub text on a locked screen or shared computer. Sender identifies who wrote without showing the body. Hidden is safer for private or moderation-sensitive traffic. The choices are stored in browser storage when available; they do not change what the hub receives, what the worker processes, or who can access the page.
Browser Notifications
- Select a notification mode and a sender/preview content level.
- Choose Enable Browser Notifications and accept the browser permission prompt.
- Move focus away from the page and send an eligible test message.
- Select an alert to return focus to Main Chat or the relevant private conversation.
The browser reports supported, granted, denied, disabled, and unavailable states. A denied permission must be changed in browser or operating-system site settings; Hub Chat cannot override it. Private messages are eligible when notifications are enabled. Main-chat alerts follow the selected mode: All alerts on eligible public messages, while Mentions alerts only when the configured nickname is mentioned. Initial history replay and messages sent by this client are not treated as new alerts.
Restart Session And Close Session
Restart Session is for a live but unhealthy worker. It requests a controlled stop and starts a fresh worker with the saved profile, nickname, and client settings. Use it after correcting a transient worker or socket problem, not to bypass a rejected password or hub nickname rule. A restart does not make rejected credentials valid.
Before a deployment stops an active retained session, Hub Chat adds this system message to the visible conversation: This hub connection is restarting for a deployment. It will reconnect automatically when the new release is ready. The published release restarts only sessions recorded during that pause. If the restart fails, the session remains closed or shows an error so the owner can review the cause before using Reconnect.
Reconnect is available after a terminal closed or error state and starts the saved connection again. Close Session ends the active worker and hub connection and removes the normal retained-session recovery path. It is not a promise to erase messages already rendered in the browser or any separate operational evidence; treat the next live snapshot as authoritative.
Closing a browser tab is not the same as Close Session: a refresh can still recover an authorized retained session, while Close Session explicitly asks the service to stop it. A closed session can be opened again from an assigned hub profile after its endpoint and credentials have been reviewed.
Connection Panel
Hub Connection and Connection Status remain visible in every state. When the page loads while the client is Connecting, Connected, or Reconnecting, both card bodies start collapsed so the workspace stays readable; expand either header to review its settings or status.
New Hub Chat sessions use HubCHAT as the default login nickname. Their default description is HubCHAT - hublist.pwiam.com. Change it before connecting when the hub requires a registered or unique account.
The Connection Status card above the workspace is shared with Hub GPT and Hub Mod. It remains visible before a live chat opens and reports this user's saved hub-session state as Disconnected, Connecting, Connected, Reconnecting, Failed, or Stopped, together with the endpoint, nickname, worker state, connection times, and last error. The live-client badge below continues to show the current browser session.
The connection panel is collapsible to keep the workspace readable. Collapsing it hides the panel only; it does not stop the worker or discard state. The named browser states are Starting, Connected, Closing, Closed, and Error. Connected is meaningful when the worker reports both a socket connection and completed login.
| State | Meaning | Next Step |
|---|---|---|
| Starting | The application requested the worker and waits for it to establish the hub session. | Wait briefly; inspect an Error if it appears. |
| Connected | The client connected and logged in with the displayed nickname and target. | Use Main Chat or a permitted private action. |
| Closing | A close or restart is stopping the current worker. | Do not send; wait for Closed or the replacement connection. |
| Closed | The session is no longer connected. | Verify the cause, then use Reconnect. |
| Error | The worker or connection failed and exposes a visible failure message when available. | Correct the reported cause before reconnecting or restarting. |
Password challenges, redirects, and protocol-specific login steps are hub messages rather than separate permanent browser states. Raw Hub Response and Raw Hub Request panels are optional bounded diagnostics; outgoing passwords are redacted. Confirm TLS failures, an invalid nickname, or a rejected password from the panel message or hub response rather than guessing from a spinner.
Main Chat
Main Chat shows public messages delivered to this client, including system or hub notices alongside user messages. Rendered entries carry the sender and timestamp where the incoming event provides them. The visible history is bounded client state, not a promise of a permanent archive.
Enter a public message and choose Send. Press Enter to send; press Shift+Enter for a new line. Plain NMDC, NMDCS, and non-RTF0 connections accept up to 240 characters. An ADC or ADCS connection that negotiated RTF0 accepts up to 8,192 characters and preserves the reviewed CommonMark structures shown in Available Formatting. The composer stays disabled while the client is not logged in. Before writing a frame, the service rejects blank input, removes NUL bytes, and normalizes carriage-return line endings; only plain NMDC-family messages replace the Direct Connect frame separator with a space. A local or server-side echo is shown once and is reconciled with the hub echo, including ADC RT and timestamp parameters. If the worker rejects a send because the session closed, the hub class cannot speak, or the transport failed, review the failure message and connection panel before retrying. When rich text is available, focusing the editor reveals a Help toolbar with the formatting explanation, Available Formatting, and Copy Test Sample actions.
Example: after Connected appears, send Hello, I am checking the hub connection. once and wait for the hub's echo or response. Do not paste an API key, account password, or long diagnostic transcript into public chat.
Guests
The Guests panel shows the hub users parsed from the current session and its reported count. Search filters the visible list by nickname without reconnecting. The table can be sorted through its visible columns and, when the hub supplied them, can show nickname, role, share, slots, client tag, IP, IPv4, IPv6, upload speed, download speed, description, and history. Selecting a guest or using the envelope action opens a private conversation when private messaging is available.
The compact header keeps the Guests title alongside the reported current, maximum, and limit counts. Its people, chart, and limit icons have hover labels, so the figures remain readable on narrow screens without creating a second tall status row.
A robot icon marks a hub-reported bot and a key icon marks a hub-reported operator. The current client does not render a separate registered-user icon, so registration must not be inferred from an icon. A guest can leave while a thread stays open; its presence becomes offline, and a later reuse of the same nickname must be treated as fresh live state.
Guest Activity records joined and left events when enabled. Its header toggles the activity panel vertically without clearing recorded events. Treat the current guest list and newest event as evidence instead of assuming that two appearances of one nickname represent the same connection.
Private Conversations
Private Conversations is the workflow for starting or reviewing a direct discussion with a selected hub guest. It is not a guarantee that every guest accepts private messages; the hub, target, and connection can refuse the action.
- Find a guest and use the envelope action or selection control.
- Open the conversation and review Messages.
- Enter a short private message and send it after the target and connection are available.
- Use Conversations to return to an opened or remembered thread.
If no guest is selected, the client asks for a target. If the guest leaves, the thread can show offline and outbound delivery can fail. If the nickname no longer exists or private messages are disabled, verify the current Guests list and connection state before opening another thread.
Private Feed Messages
NMDC direct frames addressed with $To:, including messages from #_PH_FEED, belong in the private conversation for their sender. They may contain moderation, search, or operational feed events; they are not public-chat messages.
Main Chat contains only actual public frames. Hub Chat, Hub GPT, and Hub Mod tests use private messages and must never publish correlation values or system probes. If a private feed appears in Main Chat, stop further testing on that session and inspect the routing fault.
Messages
Messages is the selected private conversation's message area. It shows incoming and outgoing entries with the sender and timestamp supplied by the session. The composer stays disabled until a target is selected and the session is logged in; it rejects blank text, uses the 240-character limit for plain connections, and uses the 8,192-character reviewed CommonMark limit after an ADC or ADCS connection negotiates RTF0. When rich text is available, focusing the editor reveals a Help toolbar with the formatting explanation, Available Formatting, and Copy Test Sample actions.
Unread state tracks incoming conversation activity and is cleared through the normal reading action. The server snapshot is authoritative after refresh; the browser may retain only short-lived optimistic actions while it waits for acknowledgment. A visible thread is not proof that all private history is permanently stored.
Conversations
Conversations is the searchable list of opened or remembered private threads. It identifies the active thread, highlights unread activity, and shows online or offline presence when known. Search matches a nickname or displayed message text without querying the hub again.
The close control hides a thread while keeping its history. It appears again when you open the guest from Guests or the guest sends a later private message. Closing never disconnects or bans the guest.
Reconnection And Failures
A temporary browser-stream failure can fall back to polling. A hub restart, network interruption, invalid nickname, password rejection, TLS problem, or worker failure can leave the session Closed or Error. Deployment changes can also interrupt a worker. Use the latest visible error and connection state before recovery.
An initial connection failure stays at Error. Its connection reason appears in the status area and transcript instead of triggering repeated automatic restarts. Correct the endpoint, network path, TLS, or credentials before using Reconnect once.
For NMDCS or ADCS, a TLS certificate error means the certificate could not be trusted for the exact host name. Inspect the endpoint with TLS Certificate, install a valid certificate whose subject alternative names include the advertised host and its complete issuing chain, then reconnect. Do not disable certificate checks or switch to plaintext as a workaround.
Reconnect is appropriate for a terminal state after verifying the same endpoint and credentials. Restart is appropriate for a running worker that needs controlled replacement. Repeated failure is evidence of a hub-side or configuration problem, not a reason to retry faster. Close the session when testing is complete or a duplicate login is suspected.
Privacy And Logging
Hub Chat displays public messages delivered to the client and private messages in threads opened for that session. The application keeps operational session state to support authorized recovery, but this page makes no permanent-archive, fixed-retention, or deletion promise. Raw protocol panels redact outgoing passwords.
Browser notifications can expose message content outside the page when Preview is selected. Choose Sender or Hidden on shared devices. Never send passwords, OpenAI keys, recovery codes, or other sensitive information through public or private hub chat. Give diagnostic screenshots only to people authorized to administer the hub.
Hub Chat Examples
- Public check: wait for Connected, send one short greeting, and confirm the hub accepted or echoed it.
- Private check: search for a test guest, choose the envelope action, and send one non-sensitive confirmation.
- Notification check: choose Private plus Sender, grant permission, unfocus the page, and have a test guest send a private message.
- Recovery check: after a controlled hub restart leaves Closed, inspect the error, choose Reconnect once, and confirm the same nickname reaches Connected.
Hub Chat Troubleshooting
| Problem | Likely Cause And Verification | Recovery |
|---|---|---|
| The page remains on Connecting | The worker has not completed login or the endpoint is unreachable. Check the connection message and target. | Correct endpoint availability, protocol, or port, then reconnect once. |
| The hub rejects the nickname | The name is reserved, duplicated, malformed, or blocked by hub rules. | Use an authorized unique nickname and restart or reconnect. |
| The hub requests a password | The account is registered or restricted; the panel or redacted transcript shows the request. | Enter the authorized hub password; never paste it into chat or support. |
| Messages are not sending | The client is not logged in, the hub class cannot speak, or the worker stopped. | Restore the connection or use an account allowed to speak; retry one short message. |
| The guest list is empty | The hub has not sent users, login is incomplete, or visibility is restricted. | Wait for events, review hub rules, and confirm the session before changing profile flags. |
| A private conversation cannot be opened | The target left, private messages are disabled, or the hub rejects the route. | Search current Guests, select an online test guest, and inspect the state. |
| Browser notifications do not appear | Permission is denied, the mode is Disabled, the page is focused, or the browser blocks alerts. | Check browser permissions, select an eligible mode, unfocus, and test again. |
| The session disconnects repeatedly | A hub restart, TLS issue, network problem, duplicate identity, or worker error recurs. | Read Last Error, correct one cause, and reconnect once rather than looping. |
| Restart Session does not recover | The saved profile is still invalid or the hub refuses it. | Close the session, correct the account or endpoint, then start a new authorized session. |
| The page shows stale information | The stream fell back, browser state is old, or the worker ended. | Refresh, confirm the state, and start a new session only when recovery is unavailable. |
Transfers
The generic Hub Chat workspace opens a Transfers tab before the retained Hub Chat session tabs. It is a local, owner-scoped view of attachment transfers started from this browser. Selecting the tab does not create a hub connection, dismiss a session, or alter the original magnet link; it only reads the transfer metadata that the server has already recorded for the signed-in account.
Use the Status choice to show every transfer or one lifecycle state: Queued, Negotiating, Endpoint Ready, Running, Complete, or Failed. The search field accepts a filename, Tiger Tree Hash, sender nickname, or protocol such as ADC or ADCS. Submit the filter without leaving the workspace; active transfers refresh more frequently while idle history uses a slower bounded poll.
The table shows the file name, lifecycle state, public or private channel, source nickname, protocol, declared and verified size, progress, and last update. Active transfers use an indeterminate progress indicator until the peer negotiation supplies a verified result. Complete means the received bytes matched both the declared size and Tiger Tree Hash; Failed keeps a safe error summary so the owner can investigate. Temporary transfer bytes are removed after streaming, while bounded metadata remains until its expiry.
Remove is an explicit owner action that deletes the selected transfer record and any remaining temporary bytes. It does not remove the chat message, the source user's file, or the original magnet link. The endpoint accepts only the server-issued job identifier and a valid form token; requester hashes, peer addresses, transfer tokens, and spool paths never appear in the browser response. If the tab cannot load, check that you are signed in and that Hub Chat is enabled, then use the connection panel for the relevant session.
Related Pages
Use Hub to choose a hub, Hub for general hub guidance, and Hub GPT when the hub uses a configured bot instead of a user-controlled session.
Parent Page
Return to Hub for the Hub Help index and surrounding Direct Connect tools.
Configuration Reference
This reference covers the connection profile and the live controls used by an assigned hub owner.
When this page loads for an already connected client, Hub Connection and Connection Status start collapsed. Both card headers remain visible; expanding or collapsing either panel does not disconnect or reconnect the client.
When a Hub Chat, Hub GPT, or Hub Mod worker restarts, the open product page keeps monitoring the saved session and reconnects its event stream automatically; a browser refresh is not required. If a release changes the browser/server protocol incompatibly, the page stops retrying and explicitly asks you to reload before reconnecting.
A restart notice appears as a System message inside the open Hub Chat transcript, so the chat layout remains stable. When the browser and worker versions are incompatible, that System message includes the same-page reload action.
Shared Client Controls
Restart, Reconnect, and Reset Public Messages are available in Hub Chat, Hub GPT, and Hub Mod whenever the session is not actively closing. Restart starts the retained session worker again; Reconnect uses the saved connection profile and keeps the same workspace session. The public transcript preserves every client-visible NMDC(S)/ADC(S) frame in the order it is received; matching display text never removes a separately received hub frame.
Reset Public Messages permanently removes the saved public transcript from the current workspace. It does not disconnect the hub or alter Guests, raw protocol panes, Boards, or private conversations. Older public messages stay cleared after refreshes and cannot return from an older history request.
Protocol Notices And Workspace Behavior
On ADC and ADCS hubs, an IMSG can carry the hub message of the day or a connection notice. Hub Chat displays the complete text once as a Hub notice and never invents a sender for it.
A TCP socket can open even when the endpoint speaks the other Direct Connect protocol family. If an NMDC or NMDCS attempt receives an ADC handshake, Hub Chat stops it before reporting a connection and names the configured scheme. A successful connection is recorded before the hub MOTD or history that follows login. Select ADC or ADCS for an ADC hub, or NMDC or NMDCS for a legacy hub, then connect again.
When a remote hub closes without a protocol reason, Hub Chat records one clear System notice and uses bounded reconnect. An intentional Close Session remains final.
The red X closes only the selected Hub Chat workspace tab and stops that connection. It does not delete the saved public or private snapshot, related history, or another open tab.
A saved workspace tab remains visible after a worker closes, a deployment pauses it, or the connection is temporarily unavailable. Close Session disconnects only; use the red X when you explicitly want to remove that tab from this browser workspace.
The connection form belongs to the selected tab. Connect applies the edited endpoint and profile to that same session while retaining its transcript. New Connection creates a separate tab only when you choose it. Leaving the password field blank keeps the protected password already stored for that session.
Opening or switching a conversation moves Messages to its newest entry. Scroll upward to review older entries; switching always shows the newest entry in the selected conversation.
ADC BBS0 Boards
BBS0 is available only after a connected ADC or ADCS hub advertises both ADBBS0 and ADTIGR. The hub is authoritative for board descriptors and post indexes; when a selected board provides indexed posts, the application automatically requests each available document body by TTH from an online peer. The workspace never infers boards from public-chat text or user lists.
The BBS0 panel appears only after the connected ADC or ADCS hub advertises both required capabilities and a valid board descriptor. It remains hidden for NMDC or NMDCS hubs and ADC hubs without BBS0; a saved browser state or manual request cannot create a board, post, or write permission.
Select a board to request its current post index. Once entries arrive, the client automatically retrieves their available document bodies and presents each as a panel with a title header, structured author and time metadata, body, and footer actions. Posts are grouped by their protocol parent relationship: a root post has no parent and a reply has an immediate parent. Every reply-capable post has its own independent Reply text area and Reply button directly below the post; it sends that post TTH as the immediate parent while the New Topic composer remains separate. Publishing creates an immutable subject-and-message document. Once the hub confirms the matching index entry, your scope-checked locally published document body remains available after refresh or reconnect; replies and withdrawals remain subject to board permission.
Selecting a board requests its index and starts bounded automatic document retrieval for each listed post. Refresh Posts requests the selected board index again and retries previously unavailable retrievals; it does not create or infer boards. There are no manual per-post retrieval controls. A verified remote document is displayed as soon as its transfer completes, while a matching hub-confirmed locally published document can restore its body after refresh or reconnect. If a responding peer cannot provide the required identity, the client may make one encrypted compatibility retry only for that verified identity failure. A no-source result has no peer to retry.
Queue acknowledgement releases the submitted control spinner immediately and the client checks state in the background. Automatic retrieval shows progress or a terminal result inside the affected post without locking an unrelated board switch, refresh, or per-post reply. A queued, pending, or failed notice can be closed with its X after you read it; a pending notice means the hub has not answered yet, not that the action was repeated.
Automatic retrieval remains busy only during a bounded search or transfer. A no-source result means no online peer offered that document, so the verified index remains visible without its body. The client performs at most one encrypted compatibility retry only after a responding peer fails identity verification; it is never a broad unauthenticated fallback. If verification fails, the affected post shows the result and Refresh Posts can start a new bounded request. Document bodies are shown only after verification or for a confirmed document you authored.
Post To Board, Reply, and Withdraw appear only when the current board descriptor grants the matching permission. A board can allow reading while disallowing posts or withdrawals. The server rechecks those permissions and the live logged-in session, so changing browser state cannot grant access.
CSRF-protected actions are checked against the active logged-in connection. Publishing announces an exact TTH and size; remote text is shown only after document verification, never re-shared, and always rendered as text rather than HTML.
ADC RTF0 Markdown Messages
On an ADC or ADCS hub that advertises ADRTF0 during login, Hub Chat displays incoming RT1 messages as formatted CommonMark and changes the shared composer to its limited rich-text toolbar. The server converts editor data to safe CommonMark and sends RT1 only while that same connection remains negotiated. NMDC and NMDCS, and ADC or ADCS hubs without the extension, remain plain text.
Press Enter to send the message. Press Shift+Enter to insert a line break. The editor grows to five visible lines and then scrolls without limiting message length. The Send button remains on the right and grows to the same height as the editor.
Choose Source to edit the canonical CommonMark behind the visual message. Paste or edit reviewed Markdown there, then choose Source again to validate and apply it; Escape cancels the source edit and restores the unchanged visual message. The same parser and safety policy run before sending, so editor markup is never submitted and unsafe raw HTML cannot bypass validation.
The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
Use the Emoji control to search the complete Unicode emoji list by common name or alias, choose a category to browse it, then select an emoji to insert its Unicode character into the current message. The picker closes after insertion; Escape or a click outside closes it without changing the message.
Unicode Text And Emoji
Hub Chat and the embedded Hub GPT monitor keep valid UTF-8 text intact, including flags, skin-tone modifiers, keycaps, and joined emoji. When a legacy NMDC relay has reversibly reinterpreted UTF-8 as Windows-1251, the client repairs recognized emoji sequences before displaying them or passing them to Hub GPT. When a legacy output encoding cannot represent a message, Hub Chat sends the original UTF-8 text rather than silently removing characters.
The editor measures its rendered content and begins at the configured minimum of one line, grows to the configured maximum of five lines, and then scrolls internally. Line limits are editor properties, not CSS height rules. Its formatting toolbar opens above or below according to the available viewport space and remains available while focus stays within the editor controls. These settings do not change other editors in the application.
Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
Raw HTML, images, scripts, arbitrary attachments, and unsafe URL schemes are removed before content reaches the editor or the hub. Hub Chat permits only reviewed web, Direct Connect, and validated magnet links. It never fetches remote media automatically; a verified attachment transfer begins only when an authorized user activates its separate download icon.
Hub Chat: Open the Hub Chat workspace to use this editor with an available ADC or ADCS connection. The repository reference docs/adc-rtf0.md records the protocol boundary, sanitizer, and exact wire-format rules.
Verified ADC And ADCS Attachment Downloads
A valid TTH magnet remains an ordinary link that can be opened or copied. When the stored message identifies an online ADC or ADCS source, a separate download icon appears immediately before that link. Nothing is fetched while the message renders.
Activating the icon asks the existing signed-in Hub Chat session to request that exact stored attachment from its current sender. The browser sends only the session, message channel, stored message ID, and attachment position; it never supplies a host, filename, size, or magnet URI for the server to trust.
The receiver negotiates a Direct Connect peer transfer for the advertised TTH, writes it to a private temporary file, and compares both the exact byte count and Tiger Tree Hash before returning download headers. A mismatch is discarded without exposing a partial file to the browser.
Downloads are user initiated, rate limited, limited per session and across the application, and capped at 64 MiB by default. The source guest must still be online and reachable. Verified and failed temporary files are removed after completion or expiry.
For active reception, the transfer worker binds the selected TCP or TLS port before advertising it to the source. Open the configured active port range in the host firewall and upstream NAT; ADCS also needs the configured certificate and private key. If binding or acceptance times out, the same job automatically tries passive reverse negotiation. If it still fails, confirm that the same guest is online and reachable. A missing icon means the link is not a complete supported TTH magnet or its stored source cannot be identified; the original magnet remains available for a desktop Direct Connect client.
When the receiver is busy, the same transfer remains in the list and is retried automatically after five minutes. It does not create a second record. You can dismiss the in-page notice or remove the transfer when it is no longer needed.
If a peer does not open its transfer endpoint in time, the application retries that verified download once. If it still fails, Transfers shows the reason and lets the requester retry manually after checking that the peer is still sharing the file.
Private Message Delivery States
An authorized operator message is tracked by its client message ID. A delivery state describes the local queue or socket write; it is not a reply from the remote user or service bot.
- Private message queued for delivery.
- Queued means the browser accepted the request and the worker has not yet written it to the hub. It remains pending until login and a write attempt are available.
- Message written to the hub. No reply has been received.
- Written means the client wrote one private frame to the hub. The recipient can still be offline, ignore it, or answer later, so this state never claims a reply.
- The private message was not sent. Reconnect and try again.
- Failed means the private frame was not written. The worker keeps the command available for a reconnect attempt and shows a safe System notice in the same private conversation.
Read-Only Transfer Cache
Generated hublist files shared only after hub-mediated peer authorization.
The transfer cache is disabled by default for Hub Chat, Hub GPT, and Hub Mod. Each product has an independent global switch, host, ports, connection cap, and bandwidth cap; a hub owner cannot enable it from a per-hub page.
This feature fails closed. Enabling the switch does not advertise a share until the immutable manifest, listener, advertised host, port, and any TLS files are healthy.
Settings And Defaults
- Enable Transfer Cache
- Allow this product to advertise its read-only generated-file cache after every health check passes. Disabled is the default.
- Advertised Public Host
- Public hostname or unicast IP sent to authorized Direct Connect peers. Private, loopback, local, and reserved addresses are rejected.
- Plain Transfer Port
- Optional NMDC or ADC peer port from 1024 to 65535. It must be unique across enabled Hub products.
- TLS Transfer Port
- Optional NMDCS or ADCS peer port from 1024 to 65535. TLS certificate and key paths remain environment-owned.
- Maximum Concurrent Transfers
- Maximum active peer connections for this product, from 1 to 32.
- Bandwidth Limit In Bytes Per Second
- Per-product transfer limit from 65,536 to 104,857,600 bytes per second.
Global Transfer Monitoring
The Hub Transfers administration page totals completed verified uploads and downloads for a selected date range. It starts with the current month, shows daily totals, and never exposes peer names, addresses, filenames, or raw transfer secrets.
Use the first and last dynamic port to reserve a bounded private range. An active transfer receives only a currently free port in that range. The inventory separates assigned, stale, operating-system occupied, and available ports, and calculates allocation from the configured range rather than a guessed capacity.
Transfer Status stops new work before a peer connection is opened. Allowed Roles limits workspace access; existing Hub Chat, Hub GPT, and Hub Mod product rules still apply, so global permission never grants product access by itself.
Check Transfer Health queues a bounded async_transfer check of the saved range and local listener reports. A healthy result confirms application-side facts it can observe; it cannot prove that a router, NAT, or external firewall permits inbound Internet traffic.
Keep the async_transfer worker supervised with the documented deployment command. If status is stale or no snapshot appears, confirm that worker first, then review the local listener report and port allocation before changing firewall or public endpoint settings.
Health And Advertisement
An enabled product advertises transfers only while the shared gateway has bound every configured listener and reports a current healthy state. A missing host, occupied port, unavailable TLS file, failed listener, or stale worker keeps the advertised endpoint and share disabled.
Save the transfer settings, then use Check Public Ports. It requires one running shared gateway, a fresh listener report that exactly matches the saved host and ports, stable public DNS with no private or reserved address, and a successful TCP connection to every resolved address and configured plain or TLS port. The probe sends no protocol payload. Because it originates on the application server, also verify the endpoint from an authorized external Direct Connect client when NAT or firewall hairpin behavior differs.
The gateway reads one immutable manifest generation built from approved public hublist artifacts. A generation records each published name, byte size, and TTH. A missing file, changed hash, symlink, malformed file list, or incomplete atomic publication makes the manifest unhealthy.
When both the product listener and manifest are healthy, the client profile advertises the manifest byte total, active transfer port, slots, and supported NMDC or ADC transfer capabilities. When either dependency is unhealthy, it advertises no cache share or transfer endpoint.
Discovery And Authorization
A bounded NMDC or ADC search is matched only against the current manifest. Results identify an exact published file and TTH; broad, malformed, oversized, or unrelated searches do not enumerate the server filesystem.
The hub coordinates discovery and CTM/RCM negotiation but does not proxy file bytes. The product observes the peer nickname, direction, and public endpoint through its authenticated hub session, registers a short-lived authorization, then the peer opens the separate transfer connection.
Every inbound or outbound transfer requires a recent, one-time authorization tied to the product, hub session, peer nickname, public address, direction, and expiry. Direct scanners, expired records, replay, wrong products, wrong peers, wrong addresses, and private or reserved outbound destinations are rejected.
Files And Read-Only Limits
The share contains only generated hublist downloads copied into the dedicated cache plus its generated Direct Connect file list. It never exposes arbitrary application files, source paths, uploads, remote URLs, or files outside the approved generation.
Each immutable manifest also contains HUBLIST.PWIAM.COM.md, a project-owned read-only information file. It identifies PWiAM as the host of Public DC Hublist, summarizes hub search and generated hublist files, and introduces the Hub Chat, Hub GPT, and Hub Mod products. Peers can read it with the other approved manifest entries; the application generates it and a peer cannot upload, replace, or modify it.
The gateway is download-only. It accepts only file-list and ranged download requests for exact manifest entries, rejects traversal and invalid ranges, and does not implement uploads, deletion, rename, directory creation, or arbitrary path access.
Maximum Concurrent Transfers limits active peers per product. Bandwidth Limit In Bytes Per Second applies a shared per-product rate cap. Frame size, handshake time, idle time, requested range, and authorization lifetime are also bounded so slow or oversized peers cannot hold unlimited resources.
TLS And Peer Security
The plain and TLS listeners are separate. A TLS port is advertised only when its environment-owned certificate and private-key paths are usable. Encryption does not replace hub-mediated authorization; current Direct Connect CTM messages do not carry a verifiable certificate hostname or keyprint, so peer TLS encrypts transport without asserting a public Web PKI identity.
Troubleshooting
If the share is absent, keep the product disabled and check the current manifest, advertised public host, unique public port, listener health, TLS paths, worker state, and firewall forwarding in that order. Rebuild and verify the manifest, restart the shared gateway, then test one authorized file-list request and one artifact request. Never weaken endpoint validation or accept a direct unauthenticated socket to make a test pass.
Hub Connection
- Host Or Address
- Enter a public hostname, IP address, or hub-style address such as dchub://example.com:411.
- Protocol
- Choose the hub protocol to connect with.
- TCP Port
- Optional. Leave empty to use the common default port for the selected protocol.
- Connect To Hub
- The connection form belongs to the selected tab. Connect applies the edited endpoint and profile to that same session while retaining its transcript. New Connection creates a separate tab only when you choose it. Leaving the password field blank keeps the protected password already stored for that session.
- New Connection
- The connection form belongs to the selected tab. Connect applies the edited endpoint and profile to that same session while retaining its transcript. New Connection creates a separate tab only when you choose it. Leaving the password field blank keeps the protected password already stored for that session.
- Username / Nickname
- Optional. Use your registered hub username or leave empty to generate a temporary nick like user-123456.
- Hub Password
- Optional. Used for registered NMDC/NMDCS nicknames when the hub requests a password.
- Upload Speed
- Optional upload capacity advertised in ADC and ADCS identity data. Enter an amount and unit; the protocol receives bytes per second.
- Download Speed
- Optional download capacity advertised in ADC and ADCS identity data. Enter an amount and unit; the protocol receives bytes per second.
Advanced Client Profile
- Client Tag Name
- Client name sent in NMDC and ADC identity tags.
- Client Version
- Client version sent in NMDC and ADC identity tags.
- Connection Speed
- Connection value advertised in the NMDC client tag.
- Client Mode
- Sets the M value in the NMDC client tag. Active sends M:A; passive sends M:P.
- Fake Share
- Share size sent to the hub in bytes. Use 0 to test minimum-share restrictions.
- Normal Hubs
- Number of normal hubs reported in the client tag.
- Registered Hubs
- Number of registered hubs reported in the client tag.
- Operator Hubs
- Number of operator hubs reported in the client tag.
- Open Slots
- Open upload slots reported to the hub.
- TCP Port
- Choose an available application-managed TCP listening port for active ADC transfers. Allow the selected port through the host firewall and any upstream NAT.
- UDP Port
- Choose an available application-managed UDP port for active ADC searches. Allow the selected UDP port through the host firewall and any upstream NAT.
- TLS Port
- Choose an available application-managed TLS transfer port. ADCS reception also requires the configured certificate and private key, plus an inbound TCP firewall and NAT rule for this port.
- Client Description
- Optional description exposed to the hub as the diagnostic client description.
- Client Email
- Optional email field exposed to NMDC hubs.
- NMDC Support Flags
- Choose the NMDC $Supports flags sent during login. BotINFO is off by default for normal chat-client behavior.
NMDC Support Flags
Choose the NMDC $Supports flags sent during login. BotINFO is off by default for normal chat-client behavior.
NoHello: Advertises the faster login flow in which the hub can omit a separate $Hello exchange. It is part of the normal default profile; disable it only when reproducing an older handshake. It does not authenticate the account.NoGetINFO: Advertises support for a fast initial user list without individual $GetINFO requests. Keep it for a normal connection; disable it only while diagnosing legacy user-list behavior.UserIP2: Advertises support for extended user and IP information. A hub may then send address data, so use it only when that handling is appropriate for the test. It grants no access or operator permission.BotList: Advertises support for the $BotList frame and bot markers in the Guests list. It is a normal default; disable it only when testing an older parser or hub profile.FailOver: Advertises support for hub-directed failover or redirect behavior. The flag does not make the client follow arbitrary addresses; the client connection policy still applies.NickRule: Advertises that the client understands nickname rules sent by the hub. It helps the client report validation correctly, but it never overrides the hub rule.HubURL: Advertises hub-URL exchange. When the hub sends $GetHubURL, this client sends one $MyHubURL built from the configured endpoint. Disable it only for a compatibility test.ExtJSON2: Advertises compatibility with extended JSON metadata. The flag does not send JSON by itself; enable it only when the hub supports the format being tested.BotINFO: Advertises bot-client behavior. Leave it disabled for normal chat-client behavior unless you are testing a bot-specific hub rule.MiniSlots: Advertises fractional slot counts in user information. It describes how the client reports slots and does not grant additional transfer capacity.XmlBZList: Advertises compressed XML file-list support. Enable it only when the transfer client can actually create and read XmlBZList data.ADCGet: Advertises the ADCGET transfer command for files, file lists, and hash-tree requests over an NMDC connection.TTHL: Advertises Tiger Tree leaf-list transfers used to verify file blocks before or during a download.TTHF: Advertises Tiger Tree Hash file transfers. The flag describes transfer compatibility and does not publish a file by itself.UserCommand: Advertises support for hub-provided $UserCommand menus. Enable it only when the client can receive and safely present reviewed command entries.
Status
- Hub Chat
- Admin-only tool that connects to a hub as a configurable diagnostic user and shows raw hub responses, chat lines, private messages, and user-list data returned during the session.
- Starting
- Starting hub chat worker...
- Connected
- Connected as %nick% to %target%. Keep this panel open until you close the session.
- Closing
- Disconnected from hub.
- Closed
- The remote hub closed the connection without a protocol reason.
- Error
- Could not refresh the live hub session. Retrying...
- Logged In
- Connected as %nick% to %target%. Keep this panel open until you close the session.
- Raw Hub Response
- Shows the exact protocol lines received from the hub so an administrator can verify replies, errors, and server commands.
- Raw Hub Requests
- Optional. Used for registered NMDC/NMDCS nicknames when the hub requests a password.
- Connected
- Connected as %nick% to %target%. Keep this panel open until you close the session.
- Closed Or Filtered
- Disconnected from hub.
- Close Workspace Tab
- The red X closes only the selected Hub Chat workspace tab and stops that connection. It does not delete the saved public or private snapshot, related history, or another open tab.
- The remote hub closed the connection without a protocol reason.
- When a remote hub closes without a protocol reason, Hub Chat records one clear System notice and uses bounded reconnect. An intentional Close Session remains final.
- This Hub Chat session is unavailable after a restart. Its tab remains here until you dismiss it.
- A saved workspace tab remains visible after a worker closes, a deployment pauses it, or the connection is temporarily unavailable. Close Session disconnects only; use the red X when you explicitly want to remove that tab from this browser workspace.
- Hub Chat
- On ADC and ADCS hubs, an IMSG can carry the hub message of the day or a connection notice. Hub Chat displays the complete text once as a Hub notice and never invents a sender for it.
Runtime Mode
- Runtime Mode
- Background Low CPU Mode is active. Main chat and private messages are still received. Guest list, raw protocol, and diagnostics are paused until Interactive mode.
- Interactive
- Background Low CPU Mode is active. Main chat and private messages are still received. Guest list, raw protocol, and diagnostics are paused until Interactive mode.
- Background Low CPU
- Background Low CPU Mode is active. Main chat and private messages are still received. Guest list, raw protocol, and diagnostics are paused until Interactive mode.
- Switch To Background
- Background Low CPU Mode is active. Main chat and private messages are still received. Guest list, raw protocol, and diagnostics are paused until Interactive mode.
- Switch To Interactive
- Background Low CPU Mode is active. Main chat and private messages are still received. Guest list, raw protocol, and diagnostics are paused until Interactive mode.
- Restart Session
- Restarting hub chat session.
- This hub connection is restarting for a deployment. It will reconnect automatically when the new release is ready.
- An active retained session shows this notice before deployment stops its worker. Only that recorded session is restarted after the published release is ready.
- Reconnect
- The hub session could not be reconnected from the browser.
- Reset Public Messages
- Reset Public Messages permanently removes the saved public transcript from the current workspace. It does not disconnect the hub or alter Guests, raw protocol panes, Boards, or private conversations. Older public messages stay cleared after refreshes and cannot return from an older history request.
- Close Session
- The hub session could not be closed from the browser.
- The hub session runtime mode could not be changed.
- Choose Interactive or Background Low CPU mode.
Hub Chat
- Hub Chat
- Press Enter to send. Press Shift+Enter for a new line. The editor grows from one line to five and then scrolls; the Send button stays on its right.
- Chat Message
- Press Enter to send. Press Shift+Enter for a new line. The editor grows from one line to five and then scrolls; the Send button stays on its right.
- Type a public hub message...
- Press Enter to send. Press Shift+Enter for a new line. The editor grows from one line to five and then scrolls; the Send button stays on its right.
- Rich-text formatting is available for this ADC/ADCS connection. Messages are sent as safe CommonMark.
- On an ADC or ADCS hub that advertises ADRTF0 during login, Hub Chat displays incoming RT1 messages as formatted CommonMark and changes the shared composer to its limited rich-text toolbar. The server converts editor data to safe CommonMark and sends RT1 only while that same connection remains negotiated. NMDC and NMDCS, and ADC or ADCS hubs without the extension, remain plain text.
- Available Formatting
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Copy Test Sample
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Rich-text Message
- On an ADC or ADCS hub that advertises ADRTF0 during login, Hub Chat displays incoming RT1 messages as formatted CommonMark and changes the shared composer to its limited rich-text toolbar. The server converts editor data to safe CommonMark and sends RT1 only while that same connection remains negotiated. NMDC and NMDCS, and ADC or ADCS hubs without the extension, remain plain text.
- Rich-text formatting is not available for the current hub connection.
- Raw HTML, images, scripts, arbitrary attachments, and unsafe URL schemes are removed before content reaches the editor or the hub. Hub Chat permits only reviewed web, Direct Connect, and validated magnet links. It never fetches remote media automatically; a verified attachment transfer begins only when an authorized user activates its separate download icon.
- Download __file__
- A valid TTH magnet remains an ordinary link that can be opened or copied. When the stored message identifies an online ADC or ADCS source, a separate download icon appears immediately before that link. Nothing is fetched while the message renders.
- Send
- Press Enter to send. Press Shift+Enter for a new line. The editor grows from one line to five and then scrolls; the Send button stays on its right.
- No public messages are stored for this session.
- Press Enter to send. Press Shift+Enter for a new line. The editor grows from one line to five and then scrolls; the Send button stays on its right.
- Enter a message before sending.
- Explains that public or private Hub client commands require a non-empty message body before they can be sent.
- Connect to a hub before sending messages.
- Explains that you must connect before the hub can accept chat commands or messages.
- Status
- Explains that you must connect before the hub can accept chat commands or messages.
- The message could not be queued for the active hub session.
- Explains that you must connect before the hub can accept chat commands or messages.
- The hub accepted this connection, but the current nick is in a class that cannot write to main chat. Use a registered hub nickname and password if you expect chat access.
- Press Enter to send. Press Shift+Enter for a new line. The editor grows from one line to five and then scrolls; the Send button stays on its right.
- Collapse Hub Chat
- Collapses Hub Chat into a left-side rail and expands Guests to the full workspace width without closing the session.
- Expand Hub Chat
- Restores Hub Chat from the left rail and returns Hub Chat and Guests to their normal side-by-side widths.
Rich Text Editor
- Rich Text Editor
- On an ADC or ADCS hub that advertises ADRTF0 during login, Hub Chat displays incoming RT1 messages as formatted CommonMark and changes the shared composer to its limited rich-text toolbar. The server converts editor data to safe CommonMark and sends RT1 only while that same connection remains negotiated. NMDC and NMDCS, and ADC or ADCS hubs without the extension, remain plain text.
- Rich-text Message Editor
- On an ADC or ADCS hub that advertises ADRTF0 during login, Hub Chat displays incoming RT1 messages as formatted CommonMark and changes the shared composer to its limited rich-text toolbar. The server converts editor data to safe CommonMark and sends RT1 only while that same connection remains negotiated. NMDC and NMDCS, and ADC or ADCS hubs without the extension, remain plain text.
- Write a message...
- Choose Source to edit the canonical CommonMark behind the visual message. Paste or edit reviewed Markdown there, then choose Source again to validate and apply it; Escape cancels the source edit and restores the unchanged visual message. The same parser and safety policy run before sending, so editor markup is never submitted and unsafe raw HTML cannot bypass validation.
- Undo
- Choose Source to edit the canonical CommonMark behind the visual message. Paste or edit reviewed Markdown there, then choose Source again to validate and apply it; Escape cancels the source edit and restores the unchanged visual message. The same parser and safety policy run before sending, so editor markup is never submitted and unsafe raw HTML cannot bypass validation.
- Redo
- Choose Source to edit the canonical CommonMark behind the visual message. Paste or edit reviewed Markdown there, then choose Source again to validate and apply it; Escape cancels the source edit and restores the unchanged visual message. The same parser and safety policy run before sending, so editor markup is never submitted and unsafe raw HTML cannot bypass validation.
- Clear Formatting
- Choose Source to edit the canonical CommonMark behind the visual message. Paste or edit reviewed Markdown there, then choose Source again to validate and apply it; Escape cancels the source edit and restores the unchanged visual message. The same parser and safety policy run before sending, so editor markup is never submitted and unsafe raw HTML cannot bypass validation.
- Bold
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Italic
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Strikethrough
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Inline Code
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Heading
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Paragraph
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Quote
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Horizontal Rule
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Line Break
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Code Block
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Bulleted List
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Numbered List
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Task List
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Decrease Indent
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Increase Indent
- The reviewed subset accepts headings, hard breaks, horizontal rules, quotes, ordered and nested lists, disabled task markers, aligned tables, safe labelled links, inline code, fenced or indented code, Unicode emoji, bold, italic, and strike-through. Available Formatting contains copyable syntax examples for the exact subset.
- Insert Table
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Add Row Before
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Add Row After
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Delete Row
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Add Column Before
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Add Column After
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Delete Column
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Toggle Header Row
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Delete Table
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Align Cell Left
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Center Cell
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Align Cell Right
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Link
- Raw HTML, images, scripts, arbitrary attachments, and unsafe URL schemes are removed before content reaches the editor or the hub. Hub Chat permits only reviewed web, Direct Connect, and validated magnet links. It never fetches remote media automatically; a verified attachment transfer begins only when an authorized user activates its separate download icon.
- Remove Link
- Raw HTML, images, scripts, arbitrary attachments, and unsafe URL schemes are removed before content reaches the editor or the hub. Hub Chat permits only reviewed web, Direct Connect, and validated magnet links. It never fetches remote media automatically; a verified attachment transfer begins only when an authorized user activates its separate download icon.
- Enter a safe link URL
- Raw HTML, images, scripts, arbitrary attachments, and unsafe URL schemes are removed before content reaches the editor or the hub. Hub Chat permits only reviewed web, Direct Connect, and validated magnet links. It never fetches remote media automatically; a verified attachment transfer begins only when an authorized user activates its separate download icon.
- Emoji
- Use the Emoji control to search the complete Unicode emoji list by common name or alias, choose a category to browse it, then select an emoji to insert its Unicode character into the current message. The picker closes after insertion; Escape or a click outside closes it without changing the message.
- Search Emoji
- Use the Emoji control to search the complete Unicode emoji list by common name or alias, choose a category to browse it, then select an emoji to insert its Unicode character into the current message. The picker closes after insertion; Escape or a click outside closes it without changing the message.
- Emoji Categories
- Use the Emoji control to search the complete Unicode emoji list by common name or alias, choose a category to browse it, then select an emoji to insert its Unicode character into the current message. The picker closes after insertion; Escape or a click outside closes it without changing the message.
- Help
- Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures.
- Source
- Choose Source to edit the canonical CommonMark behind the visual message. Paste or edit reviewed Markdown there, then choose Source again to validate and apply it; Escape cancels the source edit and restores the unchanged visual message. The same parser and safety policy run before sending, so editor markup is never submitted and unsafe raw HTML cannot bypass validation.
- Edit the clean source content...
- Choose Source to edit the canonical CommonMark behind the visual message. Paste or edit reviewed Markdown there, then choose Source again to validate and apply it; Escape cancels the source edit and restores the unchanged visual message. The same parser and safety policy run before sending, so editor markup is never submitted and unsafe raw HTML cannot bypass validation.
- The source could not be applied safely. Review it and try again.
- Raw HTML, images, scripts, arbitrary attachments, and unsafe URL schemes are removed before content reaches the editor or the hub. Hub Chat permits only reviewed web, Direct Connect, and validated magnet links. It never fetches remote media automatically; a verified attachment transfer begins only when an authorized user activates its separate download icon.
Guests
- Guests
- No guest list has been returned yet.
- Search Guests By Nickname
- Search guest nickname...
- Nickname
- Search guest nickname...
- Role
- Search guest nickname...
- Share
- No guest list has been returned yet.
- Client
- No guest list has been returned yet.
- IP Address
- No guest list has been returned yet.
- Tag
- No guest list has been returned yet.
- IPv4
- No guest list has been returned yet.
- IPv6
- No guest list has been returned yet.
- Upload Speed
- No guest list has been returned yet.
- Download Speed
- No guest list has been returned yet.
- Description
- No guest list has been returned yet.
- History
- No guest list has been returned yet.
- Operator
- Search guest nickname...
- Bot
- Search guest nickname...
- Message
- Choose a guest before sending a private message.
- Guest Activity
- No guest activity yet. Join and leave events will appear here.
- joined
- Guest Activity
- left
- Guest Activity
- Collapse Guests
- Collapses Guests into a right-side rail and expands Hub Chat to the full workspace width.
- Expand Guests
- Restores Guests from the right rail and returns both panels to their normal side-by-side widths.
Transfers
- Transfers
- Hub Chat transfer history
- Status
- Show all transfers or limit the table to one lifecycle status.
- Search Transfers
- Search by filename, Tiger Tree Hash, sender nickname, or protocol.
- Progress
- Transfer in progress
- Remove
- Actions
Private Conversations
- Private Conversations
- No messages yet. Use the envelope button beside a guest to start one.
- Messages
- Type a private message...
- Private Chat: %nick%
- Type a private message...
- Private Message
- Choose a guest before sending a private message.
- Type a private message...
- Choose a guest before sending a private message.
- Send
- Choose a guest before sending a private message.
- Conversations
- Search nickname or message...
- Search Private Conversations
- Search nickname or message...
- Message
- Choose a guest before sending a private message.
- Close Private Chat
- Hides the selected private conversation from Conversations while keeping its history. It returns when you open the guest from Guests or the guest sends a newer private message; it does not disconnect or ban the guest.
- Unread Messages
- Type a private message...
- Guest Online
- No messages yet. Use the envelope button beside a guest to start one.
- Guest Offline
- No messages yet. Use the envelope button beside a guest to start one.
- Private messaging is disabled for this hub chat session.
- No messages yet. Use the envelope button beside a guest to start one.
- The private message could not be queued for the active hub session.
- Explains that you must connect before the hub can accept chat commands or messages.
- Private message queued for delivery.
- Queued means the browser accepted the request and the worker has not yet written it to the hub. It remains pending until login and a write attempt are available.
- Message written to the hub. No reply has been received.
- Written means the client wrote one private frame to the hub. The recipient can still be offline, ignore it, or answer later, so this state never claims a reply.
- The private message was not sent. Reconnect and try again.
- Failed means the private frame was not written. The worker keeps the command available for a reconnect attempt and shows a safe System notice in the same private conversation.
Browser Notifications
- Browser Notifications
- Choose a notification mode, then enable browser permission.
- Enable Browser Notifications
- Choose a notification mode, then enable browser permission.
- Disabled
- Browser notifications are not available in this browser.
- Private Messages Only
- Choose a notification mode, then enable browser permission.
- Mentions + Private Messages
- Choose a notification mode, then enable browser permission.
- All Messages
- Choose a notification mode, then enable browser permission.
- Notification Content
- Choose a notification mode, then enable browser permission.
- Show Sender And Preview
- Choose a notification mode, then enable browser permission.
- Show Sender Only
- Choose a notification mode, then enable browser permission.
- Hide Message Content
- New hub chat message.
- Private message from %nick%
- Choose a notification mode, then enable browser permission.
- Mention in %hub%
- Choose a notification mode, then enable browser permission.
- Message in %hub%
- Choose a notification mode, then enable browser permission.
- Browser notifications are enabled.
- Choose a notification mode, then enable browser permission.
- Notifications are disabled.
- Choose a notification mode, then enable browser permission.
- Notification permission is blocked in browser settings.
- Choose a notification mode, then enable browser permission.
- Browser notifications are not available in this browser.
- Choose a notification mode, then enable browser permission.
Error
- System
- A restart notice appears as a System message inside the open Hub Chat transcript, so the chat layout remains stable. When the browser and worker versions are incompatible, that System message includes the same-page reload action.
- The hub worker is restarting. This page will reconnect automatically.
- When a Hub Chat, Hub GPT, or Hub Mod worker restarts, the open product page keeps monitoring the saved session and reconnects its event stream automatically; a browser refresh is not required. If a release changes the browser/server protocol incompatibly, the page stops retrying and explicitly asks you to reload before reconnecting.
- This hub connection could not be restored automatically. Reload the page to reconnect.
- When a Hub Chat, Hub GPT, or Hub Mod worker restarts, the open product page keeps monitoring the saved session and reconnects its event stream automatically; a browser refresh is not required. If a release changes the browser/server protocol incompatibly, the page stops retrying and explicitly asks you to reload before reconnecting.
- This page is using an older live-client version. Reload the page to reconnect.
- When a Hub Chat, Hub GPT, or Hub Mod worker restarts, the open product page keeps monitoring the saved session and reconnects its event stream automatically; a browser refresh is not required. If a release changes the browser/server protocol incompatibly, the page stops retrying and explicitly asks you to reload before reconnecting.
- Reload This Page
- When a Hub Chat, Hub GPT, or Hub Mod worker restarts, the open product page keeps monitoring the saved session and reconnects its event stream automatically; a browser refresh is not required. If a release changes the browser/server protocol incompatibly, the page stops retrying and explicitly asks you to reload before reconnecting.
- Could not refresh the live hub session. Retrying...
- Explains that you must connect before the hub can accept chat commands or messages.
- The chat session security token expired. Refresh the page and connect again.
- Explains that you must connect before the hub can accept chat commands or messages.
- The hub session could not be closed from the browser.
- Explains that you must connect before the hub can accept chat commands or messages.
- The hub session could not be reconnected from the browser.
- Explains that you must connect before the hub can accept chat commands or messages.
- The public messages could not be reset from the browser.
- Reset Public Messages permanently removes the saved public transcript from the current workspace. It does not disconnect the hub or alter Guests, raw protocol panes, Boards, or private conversations. Older public messages stay cleared after refreshes and cannot return from an older history request.
- The hub session could not be restarted from the browser.
- Explains that you must connect before the hub can accept chat commands or messages.
- The hub session runtime mode could not be changed.
- Choose Interactive or Background Low CPU mode.
Icon Reference
| Icon | Label | What It Does |
|---|---|---|
| Hub Chat | Admin-only tool that connects to a hub as a configurable diagnostic user and shows raw hub responses, chat lines, private messages, and user-list data returned during the session. | |
| Hub Connection | Identifies the saved hub endpoint and login profile used to open and maintain this Direct Connect session. | |
| Raw Hub Response | Shows the exact protocol lines received from the hub so an administrator can verify replies, errors, and server commands. | |
| Raw Hub Requests | Shows the redacted protocol lines sent by the client so an administrator can verify exact commands without exposing secrets. | |
| Starting | Means the worker is opening the socket and completing the Direct Connect login handshake; chat is not ready yet. | |
| Connected | Means the hub accepted the login and the client can receive live traffic and send commands allowed for that account. | |
| Error | Marks a session that could not start or continue; the accompanying details identify the failed connection or worker step. | |
| Closed | Means the live socket and worker session have ended, so no further hub traffic or messages can be sent. | |
| Switch To Background | Switches to the low-bandwidth persistent mode that keeps public and private messages connected while pausing expensive diagnostics. | |
| Switch To Interactive | Restores full live updates for guests, raw protocol traffic, and diagnostics while keeping the same hub connection. | |
| Enable Browser Notifications | Choose a notification mode, then enable browser permission. | |
| Restart Session | Stops the current worker and starts a new session with the saved connection and client-profile settings. | |
| Reconnect | Closes the current socket and immediately attempts a fresh login with the same saved session settings. | |
| Reset Public Messages | Permanently removes saved public messages from the current workspace while preserving the hub connection and private conversations. | |
| Close Session | Ends the worker and hub connection intentionally; the saved configuration remains available for a later session. | |
| Collapse Hub Chat | Collapses Hub Chat into a left-side rail and expands Guests to the full workspace width without closing the session. | |
| Expand Hub Chat | Restores Hub Chat from the left rail and returns Hub Chat and Guests to their normal side-by-side widths. | |
| Collapse Guests | Collapses Guests into a right-side rail and expands Hub Chat to the full workspace width. | |
| Expand Guests | Restores Guests from the right rail and returns both panels to their normal side-by-side widths. | |
| Send | Queues the entered public message or hub command for delivery through the active logged-in session. | |
| Help | Open Available Formatting beside the composer for the exact reviewed CommonMark subset, syntax examples, and compatibility notes. The toolbar appears while focus remains within the editor and shows only actions that apply to the current format and selection. Safe inbound messages can also display headings, tables, task lists, hard breaks, and other supported structures. | |
| Download Attachment | Starts a user-initiated ADC or ADCS peer transfer for the exact TTH magnet in the stored message, verifies its size and Tiger Tree Hash, then downloads the verified file in the browser. | |
| Guests | Lists users currently reported by the hub, including role, presence, client, share, and available identity details. | |
| Search Guests By Nickname | Filters the displayed guest list by nickname without sending a search request or command to the hub. | |
| Message | Opens or returns to a private conversation with the selected guest without sending a message by itself. | |
| Conversations | Lists private-message threads kept for this session, including unread state and whether each guest remains online. | |
| Regular Guest Role | A gray user marker beside a nickname in the Guests table means the hub reported neither operator nor bot privileges. | |
| Bot Role | A silver robot marker beside a nickname in the Guests table means the hub identified that session as a bot. | |
| Operator Role | A gold key marker beside a nickname in the Guests table means the hub granted operator privileges to that session. | |
| Login Identity | Groups the nickname, password, client tag, share, slots, and other identity values advertised during hub login. | |
| NMDC Support Flags | Choose the NMDC $Supports flags sent during login. BotINFO is off by default for normal chat-client behavior. | |
| Guest Joined | Shown in Guest Activity when the hub announces that a nickname entered the hub; no administrator action is required. | |
| Guest Left | Shown in Guest Activity when the hub announces that a nickname left or disconnected from the hub. | |
| Sortable Column | Appears in a Guests or Conversations table header when that column is available for sorting but is not the active sort. | |
| Ascending Sort | Appears in the active table header when values are ordered from lowest to highest; select it to reverse the order. | |
| Descending Sort | Appears in the active table header when values are ordered from highest to lowest; select it to reverse the order. | |
| Close Workspace Tab | The red X closes only the selected Hub Chat workspace tab and stops that connection. It does not delete the saved public or private snapshot, related history, or another open tab. | |
| Guest Online | A green presence marker in Conversations means the guest is currently present in the connected hub. | |
| Guest Offline | A gray presence marker in Conversations means the guest is no longer present, while the saved conversation remains available. | |
| Transfers | Hub Chat transfer history | |
| Read-Only Transfer Cache | Marks the shared read-only generated-file cache settings and the Help section that explains listener health, manifest validation, search, CTM/RCM authorization, transfer limits, and troubleshooting. | |
| Check Public Ports | After saving these settings, check the shared gateway, its current listener report, public DNS, and every configured plain or TLS port. The check opens a short TCP connection from the application server, sends no Direct Connect data, and does not claim reachability from every external network. | |
| Open Help | Opens this help article. |
Comments
No Comments Yet. Start The Conversation.