Nikita Vilunov 
							
						 
						
							
								4e8eb09184 
								
							 
						 
						
							
							
								
								reduce usage of unwraps ( #70 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#70  
							
						 
						
							2024-06-04 21:54:57 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								d0420ec834 
								
							 
						 
						
							
							
								
								core: use members instead of subscribers in RoomInfo  
							
							
							
						 
						
							2024-06-03 13:06:41 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								e48a6d3b0b 
								
							 
						 
						
							
							
								
								irc: test scenario with reboot and two users to cover bug  #72  
							
							
							
						 
						
							2024-06-03 13:06:29 +02:00  
				
					
						
							
							
								
								Mikhail 
							
						 
						
							
								bb0b911e5e 
								
							 
						 
						
							
							
								
								irc: basic `chathistory` capability support without `batch` markers ( #73 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#73 
Co-authored-by: Mikhail <mikhail@liamets.dev>
Co-committed-by: Mikhail <mikhail@liamets.dev> 
							
						 
						
							2024-06-01 11:34:53 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								1a21c05d7d 
								
							 
						 
						
							
							
								
								xmpp: add support leaving MUCs via unavailable presence ( #71 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#71  
							
						 
						
							2024-05-27 14:24:23 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								43d105ab23 
								
							 
						 
						
							
							
								
								core: subscribe to rooms on player actor startup  
							
							
							
						 
						
							2024-05-26 18:56:28 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								f02971d407 
								
							 
						 
						
							
							
								
								xmpp: add tracing instrumentations  
							
							
							
						 
						
							2024-05-26 13:55:28 +02:00  
				
					
						
							
							
								
								Mikhail 
							
						 
						
							
								381b5650bc 
								
							 
						 
						
							
							
								
								xmpp, core: Send message history on MUC join ( #68 )  
							
							... 
							
							
							
							Re-send the entire message history on MUC join. Contributes to #5 .
Reviewed-on: lavina/lavina#68 
Co-authored-by: Mikhail <mikhail@liamets.dev>
Co-committed-by: Mikhail <mikhail@liamets.dev> 
							
						 
						
							2024-05-26 11:20:26 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								bce8b332d2 
								
							 
						 
						
							
							
								
								irc: handle repeated joins correctly  
							
							
							
						 
						
							2024-05-25 12:40:58 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								580923814b 
								
							 
						 
						
							
							
								
								xmpp: send user-item and empty room subject on muc join ( #69 )  
							
							... 
							
							
							
							Co-authored-by: Mikhail <mikhail@liamets.dev>
Reviewed-on: lavina/lavina#69  
							
						 
						
							2024-05-22 09:29:44 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								1b59250042 
								
							 
						 
						
							
							
								
								xmpp: add x-user element to muc presence response ( #67 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#67  
							
						 
						
							2024-05-14 14:44:49 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								89918d9de1 
								
							 
						 
						
							
							
								
								xmpp: add item-not-found error condition to room disco#info iq  
							
							
							
						 
						
							2024-05-13 16:42:52 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								26720a2a08 
								
							 
						 
						
							
							
								
								core: separate the model from the logic implementation ( #66 )  
							
							... 
							
							
							
							This separates the core in two layers – the model objects and the `LavinaCore` service. Service is responsible for implementing the application logic and exposing it as core's public API to projections, while the model objects will be independent of each other and responsible only for managing and owning in-memory data.
The model objects include:
1. `Storage` – the open connection to the SQLite DB.
2. `PlayerRegistry` – creates, stores refs to, and stops player actors.
3. `RoomRegistry` – manages active rooms.
4. `DialogRegistry` – manages active dialogs.
5. `Broadcasting` – manages subscriptions of players to rooms on remote cluster nodes.
6. `LavinaClient` – manages HTTP connections to remote cluster nodes.
7. `ClusterMetadata` – read-only configuration of the cluster metadata, i.e. allocation of entities to nodes.
As a result:
1. Model objects will be fully independent of each other, e.g. it's no longer necessary to provide a `Storage` to all registries, or to provide `PlayerRegistry` and `DialogRegistry` to each other.
2. Model objects will no longer be `Arc`-wrapped; instead the whole `Services` object will be `Arc`ed and provided to projections.
3. The public API of `lavina-core` will be properly delimited by the APIs of `LavinaCore`, `PlayerConnection` and so on.
4. `LavinaCore` and `PlayerConnection` will also contain APIs of all features, unlike it was previously with `RoomRegistry` and `DialogRegistry`. This is unfortunate, but it could be improved in future.
Reviewed-on: lavina/lavina#66  
							
						 
						
							2024-05-13 14:32:45 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								d1a72e7978 
								
							 
						 
						
							
							
								
								move repo methods into submodules and clean up warnings  
							
							
							
						 
						
							2024-05-10 23:50:34 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								6749103726 
								
							 
						 
						
							
							
								
								scalability: initial support for remote rooms ( #61 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#61  
							
						 
						
							2024-05-10 20:44:24 +00:00  
				
					
						
							
							
								
								Mikhail 
							
						 
						
							
								3b454ad7cd 
								
							 
						 
						
							
							
								
								xmpp: unit-tests for resource bind it and muc presence  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#64 
Co-authored-by: Mikhail <mikhail@liamets.dev>
Co-committed-by: Mikhail <mikhail@liamets.dev> 
							
						 
						
							2024-05-10 13:35:34 +00:00  
				
					
						
							
							
								
								Mikhail 
							
						 
						
							
								5512a74999 
								
							 
						 
						
							
							
								
								Check if user is a member before inserting a membership ( #62 )  
							
							... 
							
							
							
							It would typically fail on insertion due to uniqueness constraints: user id - room id.
Reviewed-on: lavina/lavina#62 
Co-authored-by: Mikhail <mikhail@liamets.dev>
Co-committed-by: Mikhail <mikhail@liamets.dev> 
							
						 
						
							2024-05-08 22:10:32 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								bb0fe3bf0b 
								
							 
						 
						
							
							
								
								use borrows in http endpoint handlers  
							
							
							
						 
						
							2024-05-05 19:24:42 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								8ac64ba8f5 
								
							 
						 
						
							
							
								
								get rid of storage usages in projections  
							
							
							
						 
						
							2024-05-05 19:24:23 +02:00  
				
					
						
							
							
								
								homycdev 
							
						 
						
							
								abe9a26925 
								
							 
						 
						
							
							
								
								irc: implement WHOIS command ( #43 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#43 
Co-authored-by: homycdev <abdulkhamid98@gmail.com>
Co-committed-by: homycdev <abdulkhamid98@gmail.com> 
							
						 
						
							2024-05-05 17:21:40 +00:00  
				
					
						
							
							
								
								Mikhail 
							
						 
						
							
								adf1d8c14c 
								
							 
						 
						
							
							
								
								xmpp: Implement Message Archive Management stub for XEP-0313 ( #60 )  
							
							... 
							
							
							
							https://xmpp.org/extensions/xep-0313.html 
Reviewed-on: lavina/lavina#60 
Co-authored-by: Mikhail <mikhail@liamets.dev>
Co-committed-by: Mikhail <mikhail@liamets.dev> 
						
							2024-05-05 15:12:58 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								9a09ff717e 
								
							 
						 
						
							
							
								
								management api endpoints for rooms  
							
							
							
						 
						
							2024-05-01 17:30:31 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								a87f7c9d73 
								
							 
						 
						
							
							
								
								xmpp: extract common fragments of integration tests into functions  
							
							
							
						 
						
							2024-04-29 23:56:18 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								25605322a0 
								
							 
						 
						
							
							
								
								player shutdown API ( #58 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#58  
							
						 
						
							2024-04-29 17:24:43 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								31f9da9b05 
								
							 
						 
						
							
							
								
								xmpp: fix incorrect auth test  
							
							
							
						 
						
							2024-04-29 19:13:32 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								c1dc2df150 
								
							 
						 
						
							
							
								
								xmpp: document xml parsing types  
							
							
							
						 
						
							2024-04-28 17:29:31 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								c69513f38b 
								
							 
						 
						
							
							
								
								xmpp: use mutable namespace and event in parser coroutines  
							
							
							
						 
						
							2024-04-28 17:19:31 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								8ec9ecfe2c 
								
							 
						 
						
							
							
								
								xmpp: handle incorrect credentials by replying with an error  
							
							
							
						 
						
							2024-04-28 17:11:29 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								a047d55ab5 
								
							 
						 
						
							
							
								
								xmpp: handle correctly unavailable self-presence and improve basic test scenario  
							
							
							
						 
						
							2024-04-28 15:43:22 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								ea81ddadfc 
								
							 
						 
						
							
							
								
								dialog message persistence  
							
							
							
						 
						
							2024-04-27 12:58:27 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								4ff09ea05f 
								
							 
						 
						
							
							
								
								tracing otlp exporter and instrumentation annotations ( #57 )  
							
							... 
							
							
							
							Resolves  #56 
Reviewed-on: lavina/lavina#57  
						
							2024-04-26 10:16:23 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								ec49489ef1 
								
							 
						 
						
							
							
								
								validate that rooms and dialogs are owned exclusively on shutdown  
							
							
							
						 
						
							2024-04-23 19:18:46 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								d305f5bf77 
								
							 
						 
						
							
							
								
								argon2-based password hashing ( #55 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#55  
							
						 
						
							2024-04-23 16:31:00 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								799da8366c 
								
							 
						 
						
							
							
								
								basic dialog implementation with irc and xmpp support ( #53 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#53  
							
						 
						
							2024-04-23 16:26:40 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								d805061d5b 
								
							 
						 
						
							
							
								
								refactor auth logic into a common module ( #54 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#54  
							
						 
						
							2024-04-23 10:10:10 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								6c08d69f41 
								
							 
						 
						
							
							
								
								sasl: remove unused code  
							
							
							
						 
						
							2024-04-23 00:41:54 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								12d30ca5c2 
								
							 
						 
						
							
							
								
								irc: implement server-time capability for incoming messages ( #52 )  
							
							... 
							
							
							
							Spec: https://ircv3.net/specs/extensions/server-time 
Reviewed-on: lavina/lavina#52  
							
						 
						
							2024-04-21 21:00:44 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								ddb348bee9 
								
							 
						 
						
							
							
								
								refactor lavina core by grouping public services into a new LavinaCore struct.  
							
							... 
							
							
							
							this will be useful in future when additional services will be introduced and passed as dependencies 
							
						 
						
							2024-04-21 19:45:50 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								5a09b743c9 
								
							 
						 
						
							
							
								
								return AlreadyJoined when a player attempts to join a room they are already in  
							
							
							
						 
						
							2024-04-20 17:09:44 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								cebe354179 
								
							 
						 
						
							
							
								
								update libraries  
							
							
							
						 
						
							2024-04-19 14:27:19 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								02a8309d9e 
								
							 
						 
						
							
							
								
								xmpp: relax the jid regex a bit  
							
							
							
						 
						
							2024-04-18 01:42:28 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								fbb3d4f4f9 
								
							 
						 
						
							
							
								
								xmpp: rewrite xml element parsers using coroutines  
							
							
							
						 
						
							2024-04-16 17:44:34 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								048660624d 
								
							 
						 
						
							
							
								
								irc: support registration with different order of NICK/USER/CAP END commands ( #51 )  
							
							... 
							
							
							
							Resolves  #33 
Reviewed-on: lavina/lavina#51  
						
							2024-04-16 11:35:14 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								6bba699d87 
								
							 
						 
						
							
							
								
								xmpp: disco-info iq for rooms  
							
							
							
						 
						
							2024-04-15 23:08:43 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								6d493d83a3 
								
							 
						 
						
							
							
								
								xmpp: use the Jid type in IQs' to and from fields, separate presence handling  
							
							
							
						 
						
							2024-04-15 18:18:51 +02:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								757d7c5665 
								
							 
						 
						
							
							
								
								persistent room topics ( #50 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#50  
							
						 
						
							2024-04-15 09:12:23 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								0105a5b710 
								
							 
						 
						
							
							
								
								persistent memberships ( #49 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#49  
							
						 
						
							2024-04-15 09:06:10 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								57b6af8732 
								
							 
						 
						
							
							
								
								xmpp: configurable server hostname ( #47 )  
							
							... 
							
							
							
							Reviewed-on: lavina/lavina#47  
							
						 
						
							2024-04-15 00:33:26 +00:00  
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							
								0944c449ca 
								
							 
						 
						
							
							
								
								xmpp: in integration tests extract server startup code  
							
							
							
						 
						
							2024-04-13 02:32:41 +02:00  
				
					
						
							
							
								
								Mikhail 
							
						 
						
							
								fd694cd75c 
								
							 
						 
						
							
							
								
								Add message timestamps ( #41 )  
							
							... 
							
							
							
							Resolves  #38 
Reviewed-on: lavina/lavina#41 
Co-authored-by: Mikhail <mikhail@liamets.dev>
Co-committed-by: Mikhail <mikhail@liamets.dev> 
						
							2024-04-12 21:32:21 +00:00