• src/sbbs3/qtmonitor/logwi

    From Deuc¿@VERT to Git commit to main/sbbs/m on Thursday, May 07, 2026 17:30:00
    https://gitlab.synchro.net/main/sbbs/-/commit/3e357971310de3fffdd9eb2a
    Modified Files:
    src/sbbs3/qtmonitor/logwidget.cpp
    Log Message:
    qtmonitor: display control characters as Unicode Control Pictures with tooltips

    Renders C0 controls (0x00-0x1F) and DEL (0x7F) as their Unicode
    Control Pictures equivalents. Hover tooltip shows C escape (when
    applicable), caret notation, hex value, and ASCII name.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Thursday, May 07, 2026 17:30:00
    https://gitlab.synchro.net/main/sbbs/-/commit/41af1ffbe002e954dae22c20
    Modified Files:
    src/sbbs3/qtmonitor/logwidget.cpp logwidget.h
    Log Message:
    qtmonitor: add log level filter menu with per-level visibility toggles

    Show button opens a dropdown menu with checkable entries for each log
    level (Emergency through Debug) with colored dot icons. Filters use
    QTextBlock visibility so no backing store is needed. The existing
    level combo box controls what gets captured, the filter menu controls
    what is displayed.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Friday, May 08, 2026 07:48:00
    https://gitlab.synchro.net/main/sbbs/-/commit/20bd357e63a88c0e520718cb
    Modified Files:
    src/sbbs3/qtmonitor/logwidget.cpp logwidget.h mainwindow.cpp mainwindow.h settingsdialog.cpp settingsdialog.h
    Log Message:
    qtmonitor: configurable max log lines per pane, default 2M

    Replaces hardcoded 5000-line cap with a global setting (Settings >
    Log > Max lines per pane). Default 2,000,000 covers a full day at
    debug level. Changing the setting trims existing logs immediately.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Friday, May 08, 2026 08:03:00
    https://gitlab.synchro.net/main/sbbs/-/commit/9a4568e71c7091ecfaec4815
    Modified Files:
    src/sbbs3/qtmonitor/logwidget.cpp logwidget.h
    Log Message:
    qtmonitor: add incremental text filter to log panes

    Case-insensitive substring filter with 150ms debounce. Processes
    blocks in 50K chunks from newest to oldest so visible lines update
    instantly. Generation counter aborts stale scans on new input.
    Built-in clear button via QLineEdit::setClearButtonEnabled.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Friday, May 08, 2026 08:46:00
    https://gitlab.synchro.net/main/sbbs/-/commit/fa35499091104cccedf9b14f
    Modified Files:
    src/sbbs3/qtmonitor/logwidget.cpp logwidget.h mainwindow.cpp
    Log Message:
    qtmonitor: add server/system control dropdowns to log panes

    Per-server log panes get a "Server" dropdown with Recycle, Pause, and
    Resume for that server. BBS aggregate pane gets a "System" dropdown
    wired to the host-level Recycle All, Pause All, Resume All actions.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Friday, May 08, 2026 08:46:00
    https://gitlab.synchro.net/main/sbbs/-/commit/178181665e674eaa3fded99f
    Modified Files:
    src/sbbs3/qtmonitor/logwidget.cpp logwidget.h
    Log Message:
    qtmonitor: recolor log entries on dark/light mode toggle

    Walk all blocks and update foreground colors to match the new theme.
    Timestamps get the appropriate gray, message text gets the level
    color. Batched as a single edit block for performance.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Sunday, May 10, 2026 19:29:00
    https://gitlab.synchro.net/main/sbbs/-/commit/97e9b8459951c8f5e1346481
    Modified Files:
    src/sbbs3/qtmonitor/logwidget.cpp mqttclient.cpp
    Log Message:
    qtmonitor: fix action timestamps and format log timestamps

    Action topics use timestamp\tpayload wire format, not user properties.
    Parse TSV only for action topics specifically, not as a global fallback.

    Log timestamps: parse ISO format and display as "MMM dd hh:mm:ss"
    matching the format used in Activity and other panes. Formatting
    happens in mqttclient.cpp before signals are emitted.

    LogBlockData tracks timestamp length so recolorBlocks (dark mode
    toggle) can re-apply grey/colored split correctly without guessing
    the boundary by searching for spaces.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Sunday, May 10, 2026 22:02:00
    https://gitlab.synchro.net/main/sbbs/-/commit/a83a92c75022c55b56f0393b
    Modified Files:
    src/sbbs3/qtmonitor/logwidget.cpp logwidget.h mainwindow.cpp mqttclient.cpp mqttclient.h
    Log Message:
    qtmonitor: per-pane log level subscriptions to reduce MQTT traffic

    Replace wildcard log/# subscriptions with per-level subscriptions for
    each pane. Each server (term, mail, ftp, web, srvc), events, and broker
    pane independently subscribes to only the log levels it needs. Default
    is levels 0-6 (Normal), excluding Debug.

    BBS aggregate pane has no MQTT subscription of its own Ä it only
    displays messages received by other panes.

    Level selections are persisted via QSettings and restored on restart.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Monday, May 11, 2026 08:05:00
    https://gitlab.synchro.net/main/sbbs/-/commit/401ebb1a3b4eab86419f01f1
    Modified Files:
    src/sbbs3/qtmonitor/logwidget.cpp logwidget.h mainwindow.cpp
    Log Message:
    qtmonitor: filter log panes by selected host without discarding messages

    Log messages are no longer dropped when they don't match the selected
    host. Instead, all messages are retained and the host combo controls
    display visibility via the existing block filter mechanism.

    Each log block stores its source host in LogBlockData. Changing the
    host combo triggers a re-filter across all log panes, hiding/showing
    blocks based on their host. Lines with no host (broker logs) are
    always visible.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Monday, May 11, 2026 09:28:00
    https://gitlab.synchro.net/main/sbbs/-/commit/d06c9bec09d277914b855d68
    Modified Files:
    src/sbbs3/qtmonitor/logwidget.cpp mainwindow.cpp
    Log Message:
    qtmonitor: hide server control menu on Events and Broker log panes

    These panes have no server-side recycle/pause/resume controls. The menu
    was appearing because serverId was set (needed for level change signals)
    and the menu condition only checked serverId. Now it also requires a
    non-empty controlLabel.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net