mirror of
https://github.com/kc1awv/rrcd.git
synced 2026-06-11 15:23:31 -07:00
4.0 KiB
4.0 KiB
Changelog
This project follows the versioning policy in VERSIONING.md.
0.2.1 - 2026-01-08
- JOINED/PARTED room notifications: Existing room members now receive real-time notifications when users join or leave
- When a user joins a room, existing members receive a
JOINEDmessage with the joining user's identity hash - When a user leaves a room, remaining members receive a
PARTEDmessage with the parting user's identity hash - Joining/parting users continue to receive the full member list (when
include_joined_member_listis enabled) - See EX1-RRCD.md for detailed protocol documentation
- When a user joins a room, existing members receive a
Minor fixes:
- fixed JOINED/PARTED notification logic to ensure correct member list updates
- improved type checking and annotations in several modules
- added black, ruff, and mypy to development dependencies for code quality enforcement
0.2.0 - 2026-01-07
- Major internal refactoring: Improved code organization and maintainability
- Extracted modular components from monolithic service class:
SessionManager: Centralized session lifecycle and state managementMessageRouter: Message routing and forwarding logicCommandHandler: Slash-command parsing and executionRoomManager: Room state, membership, and mode managementResourceManager: RNS.Resource transfer handling and coordinationTrustManager: Operator and ban list managementStatsManager: Statistics tracking and reportingConfigManager: Enhanced configuration loading and validation
- Moved message chunking and encoding logic to dedicated
messagesmodule - Consolidated constants and improved code organization
- Reduced service.py from ~4000 lines to <600 lines by delegating to specialized managers
- No breaking changes to protocol, configuration format, or user-facing behavior
Future development will focus on testing, feature enhancements, and optimizations rather than large structural changes.
0.1.3 - 2026-01-05
- Added
/listcommand to discover registered public rooms with their topics (available to all users) - Added
+p(private) channel mode to hide rooms from/listand/whocommands - Private rooms are only visible in
/whoto server operators - Updated mode handling to support
+p/-pflags and persist private status to room registry - Consolidated version number to single source in
rrcd/__init__.py(pyproject.toml now reads it dynamically) - Documentation updates for new command and mode in README.md and EX1-RRCD.md
Minor fixes
- Fix potential deadlock in _resource_advertised
- Add resource timeout cleanup
- Improve notice as resource handling and probe for link MDU with fallback
- Improve nickname updates, O(1) lookups, nick tracking, disambiguation on multiple matches
0.1.2 - 2026-01-01
- Implemented RNS.Resource transfer for messages exceeding MTU limits, with resource envelope handling and automatic fallback
- Allow hub-directed commands (e.g.,
/stats,/reload,/who,/kline) to be sent without a room field - Removed validation that rejected empty room fields in envelopes, per RRC specification
- Hub-level commands now send responses with no room field (
room=None) for better client compatibility - Refactored greeting messages to use dedicated MOTD resource kind for clearer semantics
- Added missing configuration options to default config template
0.1.1 - 2025-12-30
- Protocol extension: hub may attach an optional nickname (
K_NICK = 7) to forwardedMSG/NOTICEenvelopes for improved user identification
0.1.0 - 2025-12-29
Initial public release.
- Standalone Reticulum Relay Chat daemon (hub service)
- RRC v1 envelope + CBOR wire encoding
- Core hub features: HELLO/WELCOME gating, JOIN/PART, MSG/NOTICE forwarding, PING/PONG
- Operator and moderation commands via slash-command convention in MSG/NOTICE bodies
- Persistent config + room registry in TOML (
rrcd.toml,rooms.toml) - Reduced lock contention by flushing outbound packets outside the shared state lock
- Added small packaging metadata and README polish