Viewing revision r1 of NodeSpy — saved 2026-08-03 01:34 EDT .
“Initial seed content”
Jump to current version Full history

NodeSpy

Watch (and kick) live terminal sessions. Sysop-only.

Where

What it shows

Column Meaning
Slot The node number (1..BBS_NODES)
User Logged-in username
Proto telnet / ssh / rlogin
Page Their current page slug (main, boards/123, door:lord)
Last action Last thing they did (pressed E, loaded /boards/...)
Idle Seconds since their last keypress

The eye icon shows a snapshot of their last terminal screen (handy
for "this user looks stuck — what are they looking at?").

Kicking

The door-arrow icon disconnects the user. A prompt asks for a
reason — shown to them just before the connection drops:

*** Disconnected by sysop: <reason> ***

The kick is cross-process: the web app sets a flag on the user's
NodeActivity DB row, and a watchdog inside the terminal session
polls that flag every 5 seconds. Worst-case kick latency: ~5 s.

Different from a ban: a kick just drops the current connection.
The user can reconnect immediately. To stop them coming back, add
an IP ban under /admin/ip-bans/.

Audit trail

Every kick writes a UserActivity row with activity_type='kick_node',
the slot, the target username, the reason, and the sysop's
username + IP — /admin/activity shows the trail.

The terminal has its own, separate Node Monitor — with messaging

Everything above is the web NodeSpy panel, and it's kick-only. The
terminal Sysop Tools menu has a distinct Node Monitor screen (same
scrollable live-list style as Synchronet's UNIX monitor) that shows
the same live nodes — slot, user, protocol, page, action, idle time —
but adds a second capability the web panel doesn't have:

Both actions live in the same list — press the letter with a row
selected, same as any other Sysop Tools record list. This is a
terminal-only feature; there's no web-panel equivalent of the message
action.