• .claude/skills/logs/SKILL

    From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Saturday, May 23, 2026 21:25:00
    https://gitlab.synchro.net/main/sbbs/-/commit/c2d999815f54bdaad2964763
    Modified Files:
    .claude/skills/logs/SKILL.md
    Log Message:
    .claude/skills/logs: lessons from FTP rate-limit testing session

    Three small additions captured while testing the d7c823c9d rate-limit auto-filter rollout against the live FTP server on vert:

    - "Common mistakes" gains a note that `ls`/`stat` mtime lies when
    reading sbbsctrl-written `data/logs/{TS,MS,FS,WS}<MMDDYY>.LOG` over
    SMB/Samba while sbbsctrl still holds the file open. Observed: `tail
    -F` over the mount happily streamed new lines while `ls -la` reported
    a 20-minute-old mtime. Local NTFS on the same Windows host updates
    mtime as expected, so this is an SMB metadata-caching gotcha, not a
    Windows-general one.

    - "Quick map" entry for active rate-limit deny pressure updated to
    match the new log format the rollout introduced ("Too many requests
    per rate limit (NN over NNs) for <IP-or-CIDR>") -- the trailing
    `for <IP-or-CIDR>` makes attribution by host or subnet trivial when
    RateLimitSubnetPrefixN > 0.

    - "Investigation cookbook" gains a recipe for live-watching a Windows
    sbbsctrl disk log with `tail -F | grep --line-buffered`, including
    a small patterns table. Notes that the post-shutdown `#### Xxx
    Server thread terminated (...)` summary line only reaches the
    sbbsctrl GUI Log control, not the disk file (just describes the
    symptom; the underlying bug is now tracked as gitlab issue #1146).

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

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