Nikita Vilunov 
							
						 
						
							 
							
							
							
							
								
							
							
								dd33b41beb 
								
							 
						 
						
							
							
								
								send subject  
							
							 
							
							
							
						 
						
							2024-05-21 00:06:52 +02:00  
						
					 
				
					
						
							
							
								
								Mikhail 
							
						 
						
							 
							
							
							
							
								
							
							
								3724465c72 
								
							 
						 
						
							
							
								
								Sketch x tag internals  
							
							 
							
							
							
						 
						
							2024-05-20 20:16:56 +02: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 
							
						 
						
							 
							
							
							
							
								
							
							
								7f2c6a1013 
								
							 
						 
						
							
							
								
								continue propagated traces in http request handlers  
							
							 
							
							
							
						 
						
							2024-05-05 19:24:58 +02: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 
							
						 
						
							 
							
							
							
							
								
							
							
								4b5ab02322 
								
							 
						 
						
							
							
								
								start next version  
							
							 
							
							
							
						 
						
							2024-04-26 13:43:43 +02:00  
						
					 
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							 
							
							
							
							
								
							
							
								843d0e9c82 
								
							 
						 
						
							
							
								
								bump version  
							
							 
							
							
							
						 
						
							2024-04-26 13:31:47 +02:00  
						
					 
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							 
							
							
							
							
								
							
							
								72f5010988 
								
							 
						 
						
							
							
								
								clean up http.rs a little  
							
							 
							
							
							
						 
						
							2024-04-26 12:28:13 +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  
						
					 
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							 
							
							
							
							
								
							
							
								cccc05afe9 
								
							 
						 
						
							
							
								
								xmpp: ignore text elements with spaces at the stream root  
							
							 
							
							
							
						 
						
							2024-04-11 23:08:09 +02:00  
						
					 
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							 
							
							
							
							
								
							
							
								8b099f9be2 
								
							 
						 
						
							
							
								
								xmpp: fix handling of the `bind` iq  
							
							 
							
							
							
						 
						
							2024-04-07 12:06:23 +00:00  
						
					 
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							 
							
							
							
							
								
							
							
								36b0d50d51 
								
							 
						 
						
							
							
								
								irc: allow PART without a reason  
							
							 
							
							
							
						 
						
							2024-04-06 23:01:24 +00:00  
						
					 
				
					
						
							
							
								
									
								
								Nikita Vilunov 
							
						 
						
							 
							
							
							
							
								
							
							
								adece11fef 
								
							 
						 
						
							
							
								
								xmpp: make xml-headers optional in the c2s stream  
							
							 
							
							
							
						 
						
							2024-04-06 22:37:27 +00:00