Tags give the ability to mark specific points in history as being important
-
-
-
-
v3.17.0
73b886fa · ·v3.17.0 - Enhanced Resilience & Fresh Start Fixes critical issue where daemon could appear healthy while notification stream silently died, causing hours of missed messages. - Track all notifications (including receipts) - Restart if no notifications for 30 minutes (even if pings succeed) - Detects "healthy daemon, dead notification stream" scenario - Skip messages older than 5 minutes at startup - Ensures fresh, responsive start after recovery - No more churning through hours of backlog - Fixed 8-hour message outage caused by silent notification stream death - Daemon was responding to pings but not delivering messages 1. TCP Keepalive (10s) → dead connections 2. Heartbeat (30s) → unresponsive daemon 3. Notification monitoring (30 min) → silent stream death [NEW] 4. Skip old messages (5 min) → fresh start [NEW] 5. RPC reconnect (5 attempts with backoff) 6. Watchdog ping (2 min) 7. Circuit breaker (5 restarts in 5 min)
-
v3.16.0
c9b3f42e · ·v3.16.0 - Daemon Resilience & Auto-Recovery Major stability improvements to prevent and recover from signal-cli daemon failures. - TCP keepalive (10s) for faster dead connection detection - 30-second heartbeat to detect unresponsive daemon - Proactive reconnect on socket errors (EPIPE, ECONNRESET) - Connection stats tracking for monitoring - Circuit breaker prevents restart loops (max 5 in 5 min) - Exponential backoff between restarts (2s to 60s) - Auto-restart on daemon exit/error events - Auto-restart on RPC disconnect - Critical alerts when circuit breaker trips 1. TCP Keepalive (10s) → detects dead TCP connections 2. Heartbeat (30s) → detects unresponsive daemon 3. RPC Reconnect (5 attempts with backoff) 4. Daemon Watchdog (2 min) → backup health check 5. Circuit Breaker → prevents restart loops - New VERIFICATION_CHECKLIST.md for operational verification - Updated LESSONS_LEARNED.md with daemon failure patterns
-
-
-
v3.15.0
3f97b74b · ·v3.15.0: Command extraction progress - Extract info commands (wiki, forum, faq, docs, zeroeth) - Extract utility commands (cleaner) - Daemon watchdog for auto-restart - Total extracted commands: 17
-
v3.14.0
cacb53df · ·v3.14.0 - Refactoring & Reliability Improvements Major Changes: - Extract types to bot.types.ts for better code organization - Create modular command system with command-registry.ts - Move 10+ commands to src/bot/commands/ directory - Add math utilities (csv-analyzer, graph-engine, math-engine) - Add unit tests for text-formatting Bug Fixes: - Increase daemon startup timeout from 30s to 60s for cold starts - Add progress logging during daemon startup - Fix auto-start reliability on container restart Cleanup: - Delete unused signal-bot.ts (replaced by signal-bot-v2.ts) - Add CHORE_ROADMAP.md for technical debt tracking - Add scripts for dice game cleanup
-
v3.13.0
9c1a5b25 · ·v3.13.0 - Identity Management & Wiki Consolidation - New script: `find-unregistered-users.js` - Detect abandoned Signal accounts - Uses `UNREGISTERED_FAILURE` response to find accounts trust command misses - Caches results for fast subsequent operations - `--scan` to detect, `--remove` to clean up, `--list` to view cached results - Supporting scripts: `trust-all-users.js`, `remove-failed-users.js`, `list-failed-users.js` - Key discovery: `sendReceipt` reveals true registration status vs `trust` command - Consolidated all wiki content to dedicated wiki repository - New wiki page: Safety Numbers & Identity - explains trust concepts and scripts - Expanded sidebar with Games, Storage, Development, and Administration sections - Removed `docs/wiki/` directory (content moved to wiki repo) - All documentation now lives in the wiki for easier community editing - `scripts/find-unregistered-users.js` - Main unregistered user detection - `scripts/trust-all-users.js` - Bulk trust identities - `scripts/remove-failed-users.js` - Remove trust failures from groups - `scripts/list-failed-users.js` - List failed users with group counts - `scripts/check-group-members.js` - Check specific group for failures - `scripts/list-group-signal.js` - List group members from signal-cli
-
v3.12.0
13c2a1c5 · ·v3.12.0 - Breakout Room Enhancements & DM Commands Major Features: - Enhanced breakout room summaries with SEO optimization and AI-generated tags - DM commands for verified members (personal productivity, Q&A, Outline) - Daily community rollups and sender key refresh scheduler - File attachment summarization in breakout reports - Smart duplicate prevention for question breakouts Breakout Room Improvements: - AI-enhanced Discourse posts with "What You'll Learn", keywords, and tags - File summaries with structured format (What This Is, Key Points, Who Should Read) - Technologies & Tools section for technical discoverability - !breakout -q <hash> now adds users to existing room (prevents duplicates) - --new flag to force create new breakout room for questions - 2-minute archive delay before member removal (configurable) - DISCOURSE_BREAKOUT_CATEGORY env var for separate category routing - Leverages existing IrregularChat file archive for document context DM Commands: - Verified members can now use commands in DMs - Q&A commands (!ask, !answer) work in DM - Outline/forum commands available in DM - DM access restricted to verified community members only UX Improvements: - Bold formatting in help menu and auto-summaries - Markdown enabled in AI prompts (Signal parser compatible) - Text-formatting utilities for truncation and timestamps - Standardized DM notifications and error messages - Eliminated dead-end success messages - Help meme sent separately to avoid text width issues - !tils command: -a (all groups) and -m (mine) flags Bug Fixes: - !sn command auto-trusts user identity first - !request @user standardized (prevents self-vouching) - Fixed formatForSignal to preserve markdown styles - Removed duplicate title from news link responses - PeerTube file size limit to prevent OOM crashes - Updated command count to 70+ in help menu Database: - Migration file numbering fixed (001-017 sequential) - Migrations for intro forum tracking and scheduled rollups Documentation: - Comprehensive breakout room documentation - !sngtg command documented - TIL section added to wiki - Branch naming conventions documented - Phase 2 roadmap updates Environment Variables: - DISCOURSE_BREAKOUT_CATEGORY - Category ID for breakout summaries - BREAKOUT_ARCHIVE_DELAY_SECONDS - Delay before archiving (default: 120) Full Changelog: https://git.irregularchat.com/irregulars/Community-Signal-Moderation-Bot/compare/v3.11.0...v3.12.0
-
v3.11.0
6ab3a744 · ·v3.11.0 - Mentions, Markdown Styling & UX Polish Major Features: - Full Markdown styling support for Signal messages (bold, italic, strikethrough, spoiler, monospace) - Proper Signal @mentions throughout verification flow - Multi-source display name resolution (DB → Cache → Signal API) - !inquire command for Q&A follow-up questions - Research Tools integration for enhanced news analysis @Mentions Now Work In: - !request @NewUser - New user gets notified - Verification "Do you vouch?" - Voucher gets notified - Group welcome messages - Voucher mentioned - Breakout room joins - New member mentioned - Entry/INDOC welcome - New member + voucher mentioned Improvements: - deploy.sh now syncs compose.yml and verifies env vars - Fixed textStyles parameter (was textStyle) for signal-cli - Display name extraction from mention text (not just DB) - Breakout room DMs with catch-up summaries Database: - 013_add_qa_inquiries.sql - Q&A inquiry tracking Documentation: - Wiki: Text Formatting page added - Phase 2 Roadmap created (ROADMAP_PHASE_2.md) - UX Guide compliance tracking Bug Fixes: - Question hash FK instead of question_id - Various build fixes for attachments/sendMessage
-
v3.10.0
5c6acca4 · ·v3.10.0 - Per-group Auto-Scan Toggle Features: - Add auto_scan_enabled setting to toggle virus scanning per group - New command: !room autoscan on/off for group admins - Auto-scan defaults to ON for all groups Fixes: - Fix auto-archive to always save files to database for !rollup tracking - Files now tracked even if MinIO upload fails Database Migrations: - 010_breakout_summary_columns.sql - Breakout room summary fields - 011_auto_scan_setting.sql - auto_scan_enabled column
-
v3.9.0
d4aa6033 · ·v3.9.0 - Q&A Enhancements & Breakout Outline Integration - `!question <hash>` - Expanded question view with full context - `!clarify <hash> <text>` - Add clarifications/elaborations to questions - `!accept <hash> <answer_id>` - Accept answer as solution (DMs answerer) - `!reject <hash> <answer_id> <reason>` - Reject with reason (DMs answerer) - Full question text in `!questions` list (no truncation) - Cross-group question lookup for expanded view - Outline document auto-created when breakout starts - Public share link in welcome message - Outline link in late joiner catch-up DM - Document updated with full summary when session ends - New tables: q_and_a_clarifications, q_and_a_answer_responses - New columns on q_and_a_answers: status, rejection_reason, answerer_uuid - New columns on breakout_rooms: outline_document_id, outline_url
-
-
-
-
v3.6.1
07a5f37a · ·feat: Q&A broadcast support Features: - !ask --broadcast: Share questions to all groups when asking - !shareq: Share existing questions with keyword targeting - !shareq <id> suas counter - Groups matching keywords - !shareq <id> all - All groups - Reply to question with !shareq Changes: - Added handleShareQuestion method - Updated help menu with Q&A broadcast commands - Updated wiki documentation
-
v3.6.0
9c158c0a · ·feat: Keyword-based breakout broadcast targeting Features: - !broadcast command now accepts keywords to match groups by name - !broadcast suas counter fpv broadcasts to groups matching those keywords - !broadcast all broadcasts to all groups - Improved breakout announcement tracking with fallback lookups Changes: - Track initial breakout announcements in parent group - Add timestamp range matching (within 5 seconds) for announcements - Add parent group fallback when timestamp matching fails - Update help menu and wiki documentation
-
v3.5.1
38da9860 · ·v3.5.1 - Fix MinIO presigned URL signature validation - Fix presigned URL generation to preserve all AWS SDK v3 parameters - Use separate presignClient with PUBLIC endpoint for correct signatures - Update documentation to reflect MinIO as primary storage - Add RustFS documentation for historical reference - Fixed 403 Forbidden errors on presigned URLs (signature validation) - Fixed NoSuchKey errors by syncing Topics directory to MinIO bucket