Skip to content

Releases: freenet/river

riverctl v0.1.22

25 Dec 23:24

Choose a tag to compare

Changes

  • Fixed: dump_state debugging utility no longer installed alongside riverctl

Users can update with:

cargo install riverctl --force

[AI-assisted - Claude]

River v0.1.15 - Port Update

18 Oct 15:51

Choose a tag to compare

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 riverctl

Or 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

04 Sep 23:44

Choose a tag to compare

πŸš€ 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 riverctl

This release ensures compatibility with Freenet v0.1.22 and resolves dependency conflicts users were experiencing.

River v0.1.10

26 Aug 20:05

Choose a tag to compare

πŸ› 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.10

Testing

This release has been tested with multi-peer River chat scenarios and confirms bidirectional message propagation works correctly.

riverctl v0.1.9

11 Aug 21:19

Choose a tag to compare

What's Changed

πŸš€ Improvements

  • Updated freenet-stdlib from 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-core dependency

Installation

Install or update riverctl using cargo:

cargo install riverctl

Or download the pre-built binaries from the release assets below.

Full Changelog: v0.1.8...v0.1.9

riverctl v0.1.8

09 Aug 15:12

Choose a tag to compare

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

04 Aug 17:08

Choose a tag to compare

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

    • GET operations now use subscribe: false
    • SUBSCRIBE operations are performed separately after successful GET
    • Applied to both get_room() and accept_invitation() methods
  • Fixed UI build error

    • Corrected import from river_common to river_core in conversation.rs

🎯 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

01 Aug 15:18

Choose a tag to compare

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 riverctl instead of river
    • Fixed debug command API usage

✨ 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

31 Jul 02:32

Choose a tag to compare

What's Changed

Bug Fixes

  • Fixed message author attribution bug (#27) where all messages appeared to be from the viewing user
  • Added --config-dir parameter to allow separate storage directories for different users

Technical Details

  • Modified Storage::new() to accept optional config directory parameter
  • Updated ApiClient to pass through config directory setting
  • Ensures each user maintains their own signing keys and room data

Breaking Changes

  • The RIVER_CONFIG_DIR environment variable is now deprecated in favor of the --config-dir CLI parameter

Known Issues

  • Message streaming functionality temporarily disabled (will be re-enabled in next release)

Installation

cargo install riverctl

Or download the pre-built binary from the releases page.

πŸ€– Generated with Claude Code

riverctl v0.1.4

31 Jul 02:29

Choose a tag to compare

What's Changed

Bug Fixes

  • Fixed message author attribution bug (#27) where all messages appeared to be from the viewing user
  • Added --config-dir parameter to allow separate storage directories for different users

Technical Details

  • Modified Storage::new() to accept optional config directory parameter
  • Updated ApiClient to pass through config directory setting
  • Ensures each user maintains their own signing keys and room data

Breaking Changes

  • The RIVER_CONFIG_DIR environment variable is now deprecated in favor of the --config-dir CLI parameter

Known Issues

  • Message streaming functionality temporarily disabled (will be re-enabled in next release)

Installation

cargo install riverctl

Or download the pre-built binary from the releases page.

πŸ€– Generated with Claude Code