Releases: freenet/river
riverctl v0.1.22
River v0.1.15 - Port Update
Summary
This release updates the default Freenet port from 50509 to 7509 to avoid Windows firewall excluded port range.
Changes
- Updated WebSocket connection default port to 7509 (PR #38)
- Coordinates with Freenet v0.1.31 port change
Installation
cargo install riverctlOr download the latest version from crates.io.
What's Next
For instructions on using River, see the CLI Quick Start Guide.
Full Changelog: v0.1.14...v0.1.15
River v0.1.11
π River v0.1.11
π§ Bug Fixes
- Fixed tokio-tungstenite version conflict that prevented riverctl installation
- Updated freenet-stdlib dependency to v0.1.14 for compatibility with latest Freenet core
π¦ Dependency Updates
- Updated tokio-tungstenite from 0.26 to 0.27
- Updated freenet-stdlib from 0.1.13 to 0.1.14
- Updated all workspace dependencies to latest compatible versions
π Known Issues Fixed
- Resolved compilation error: "mismatched types... two different versions of crate tokio_tungstenite are being used"
π₯ Installation
cargo install riverctlThis release ensures compatibility with Freenet v0.1.22 and resolves dependency conflicts users were experiencing.
River v0.1.10
π Bug Fix Release
Fixed
- Message propagation issue resolved - Room creators now properly receive messages from other participants
- Previously, room creators weren't subscribing to their own rooms, causing them to miss UPDATE notifications
- Alice (room creator) can now see messages from Bob and other participants
- The fix automatically subscribes creators to their rooms upon creation
Technical Details
- Added automatic subscription after successful room creation
- Ensures all participants (including room creators) receive update notifications
- Fixes the asymmetric message visibility issue where only non-creators could see all messages
Installation
cargo install riverctl --version 0.1.10Testing
This release has been tested with multi-peer River chat scenarios and confirms bidirectional message propagation works correctly.
riverctl v0.1.9
What's Changed
π Improvements
- Updated
freenet-stdlibfrom 0.1.8 to 0.1.13 for better compatibility - Significantly increased WebSocket timeouts for improved network stability:
- PUT/GET operations: 2s β 10s
- SUBSCRIBE operations: 1s β 5s
- Better handling of slower network conditions
π Bug Fixes
- Fixed timeout issues that could occur on slower networks
- Improved error messages for timeout scenarios
π§Ή Code Quality
- Added appropriate
#[allow(dead_code)]annotations where needed - Simplified struct initialization using Default trait
- Fixed unused variable warnings
- General code cleanup and simplification
π¦ Dependencies
freenet-stdlib: 0.1.8 β 0.1.13- Changed to workspace-managed
river-coredependency
Installation
Install or update riverctl using cargo:
cargo install riverctlOr download the pre-built binaries from the release assets below.
Full Changelog: v0.1.8...v0.1.9
riverctl v0.1.8
Fixed
- Publish membership delta on invite accept so other members see invitee
- Add INFO logs for GET/SUBSCRIBE/UPDATE during accept
- Reduce GET/SUBSCRIBE timeouts (2s/1s) to fail fast
riverctl v0.1.7
riverctl v0.1.7
ποΈ Architecture Fix
This release fixes a critical architectural issue where riverctl was attempting to use GET operations with subscribe: true, which is not supported in Freenet's current architecture.
π What Was Fixed
-
Separated GET and SUBSCRIBE operations
GEToperations now usesubscribe: falseSUBSCRIBEoperations are performed separately after successful GET- Applied to both
get_room()andaccept_invitation()methods
-
Fixed UI build error
- Corrected import from
river_commontoriver_corein conversation.rs
- Corrected import from
π― Impact
This fix enables multi-user messaging to work properly in River. The previous implementation would fail because Freenet doesn't support performing sub-operations from within the main operation and waiting for them to complete.
π¦ Installation
cargo install riverctlπ§ Technical Details
GET with subscribe:true would require significant architectural changes in Freenet to support sub-operations within main operations. This release aligns riverctl with how the River web UI already works - performing GET and SUBSCRIBE as separate operations.
π Acknowledgments
Thanks to the Freenet team for identifying the architectural constraint and providing guidance on the proper implementation pattern.
riverctl v0.1.6
riverctl v0.1.6
π Bug Fixes
-
Fixed critical bug where invited users could not send messages (#28)
- Room state is now properly initialized when accepting invitations
- Invited users are correctly added to the members list
- Member info with nicknames is properly created
- UPDATE operations now succeed for invited users
-
Fixed command name references
- Corrected help text to show
riverctlinstead ofriver - Fixed debug command API usage
- Corrected help text to show
β¨ Improvements
- Added comprehensive unit tests for invitation flow
- Added validation to ensure room state initialization is correct
- Improved error handling and logging during invitation acceptance
π¦ Installation
cargo install riverctlπ§ Details
This release fixes a critical issue where users who joined a room via invitation could read messages but not send them. The root cause was that the room state was not being properly initialized when accepting invitations, causing the invited user to not be recognized as a valid member.
The fix ensures that:
- The actual room state is parsed from the network response
- The invited user is added to the members list with proper authorization
- Member info including the user's nickname is created
- All validation checks pass before storing the state
π§ͺ Testing
All unit tests pass, including new tests specifically for:
- Room state initialization after invitation acceptance
- Message validation for invited members
- Message filtering for non-members
riverctl v0.1.5
What's Changed
Bug Fixes
- Fixed message author attribution bug (#27) where all messages appeared to be from the viewing user
- Added
--config-dirparameter to allow separate storage directories for different users
Technical Details
- Modified
Storage::new()to accept optional config directory parameter - Updated
ApiClientto pass through config directory setting - Ensures each user maintains their own signing keys and room data
Breaking Changes
- The
RIVER_CONFIG_DIRenvironment variable is now deprecated in favor of the--config-dirCLI parameter
Known Issues
- Message streaming functionality temporarily disabled (will be re-enabled in next release)
Installation
cargo install riverctlOr download the pre-built binary from the releases page.
π€ Generated with Claude Code
riverctl v0.1.4
What's Changed
Bug Fixes
- Fixed message author attribution bug (#27) where all messages appeared to be from the viewing user
- Added
--config-dirparameter to allow separate storage directories for different users
Technical Details
- Modified
Storage::new()to accept optional config directory parameter - Updated
ApiClientto pass through config directory setting - Ensures each user maintains their own signing keys and room data
Breaking Changes
- The
RIVER_CONFIG_DIRenvironment variable is now deprecated in favor of the--config-dirCLI parameter
Known Issues
- Message streaming functionality temporarily disabled (will be re-enabled in next release)
Installation
cargo install riverctlOr download the pre-built binary from the releases page.
π€ Generated with Claude Code