0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-07-28 05:18:59 +02:00
Commit graph

267 commits

Author SHA1 Message Date
Jason Volk 5e15364e42 modules/client/sync/rooms/state: Make initial-phase state event queries concurrent. 2019-07-14 15:03:54 -07:00
Jason Volk b9df49a891 modules/client/sync/rooms/state: Make special case for invite_state inclusive. 2019-07-13 23:20:03 -07:00
Jason Volk c7a68a8cb3 ircd::ctx: Fix ctx::parallel argument allocation assumptions.
ircd::ctx: Rename tool.
2019-07-13 23:20:03 -07:00
Jason Volk 023167b440 modules/client/sync: Add a 'semaphore mode' for muted sync. 2019-07-12 19:29:51 -07:00
Jason Volk 393e4f32de modules/client/sync: Add comment on the phased sync arg. 2019-07-12 19:29:51 -07:00
Jason Volk 62ede2f954 modules/client/sync: Update some comments/docs. 2019-07-09 19:22:15 -07:00
Jason Volk 5258ffb964 modules/client/sync/rooms/state: Minor simplification. 2019-07-08 06:03:20 -07:00
Jason Volk 61fcc07fcf modules/client/sync: Refactor longpoll handler. 2019-07-08 06:03:20 -07:00
Jason Volk cbb39105e1 ircd:Ⓜ️:sync: Add next_batch_token to args struct for direct view. 2019-07-08 06:03:20 -07:00
Jason Volk c38b7b583b modules/client/sync/rooms/state: Add proper member events at phase 0. 2019-07-07 06:04:55 -07:00
Jason Volk b2ced7aea5 modules/client/sync/rooms/state: No need to fetch the creator member on phase 0. 2019-07-07 04:00:48 -07:00
Jason Volk 2bd3a8f021 modules/client/sync/rooms/ephemeral/receipt: Make the search depth a conf item. 2019-07-06 23:20:43 -07:00
Jason Volk 6fb6f096de modules/client/sync: Pack the upper-bound into the phased polylog since token. 2019-07-06 22:25:16 -07:00
Jason Volk c6a9cf3849 modules/client/sync: Split internal sync.h header. 2019-07-06 19:05:36 -07:00
Jason Volk 1177368723 modules/client/sync/rooms/summary: Add preliminary m.heroes array to summary. 2019-07-06 18:53:45 -07:00
Jason Volk 375c763f90 modules/client/sync/rooms: Add c2s r0.5.0 rooms.join.summary object. 2019-07-06 17:35:55 -07:00
Jason Volk 2b7d862330 modules/client/sync/rooms/state: Trim the initial crazyloaded state. 2019-07-06 17:35:55 -07:00
Jason Volk 9fc175bf17 modules/client/sync/rooms/state: Send some additional fundamental state events at phase 0. 2019-07-04 03:43:59 -07:00
Jason Volk 8f2495893b modules/client/sync/rooms/state: Send the room creators member event on phase 0. 2019-07-04 03:19:30 -07:00
Jason Volk d1ecaf5ffb modules/client/sync/rooms/state: Send the user's own member event on phase 0. 2019-07-04 03:07:54 -07:00
Jason Volk babc28ccd0 modules/client/sync/rooms/timeline: Add conf item for separate phased+initial limit. 2019-07-04 03:05:38 -07:00
Jason Volk 333309e52f modules/client/sync/rooms/timeline: Set initial=true for polylog phased. 2019-07-04 02:32:33 -07:00
Jason Volk 22fd1c4350 modules/client/sync/rooms/unread_notifications: Set initial=true for polylog phased. 2019-07-04 02:29:05 -07:00
Jason Volk 6ce67a81a1 ircd:Ⓜ️:user::highlight: Add conf items to toggle counting; improve match detail. 2019-06-27 01:59:19 -07:00
Jason Volk 0fb3f1d8ac ircd:Ⓜ️:user: Modernize the highlight counting interface. 2019-06-27 01:32:16 -07:00
Jason Volk 98ec2d7008 modules/client/sync: Update README. 2019-06-11 14:51:20 -07:00
Jason Volk 2e80a5ab02 modules/client/sync/rooms/state: Make the linear-sync handler able to handle belated state events. 2019-06-08 01:07:16 -07:00
Jason Volk 3d8d71c97c modules/client/rooms/join: Mask nothrow conditions; various fixes. 2019-06-07 06:02:19 -07:00
Jason Volk 077e953e3b modules/client/sync/rooms/timeline: Add conf item to toggle excluding state in timeline exposure_depth. 2019-06-07 04:08:35 -07:00
Jason Volk 25442bdff2 modules/client/sync/rooms/timeline: Consider all events for exposure depth. 2019-06-06 01:09:57 -07:00
Jason Volk a99a7e2501 modules/client/sync/rooms/timeline: Add exposure depth condition to not sync irrelevant events. 2019-06-05 17:06:37 -07:00
Jason Volk 6982fa2dac modules/client/sync/rooms/account_data: Ignore since range for tags on polylog sync. 2019-06-05 15:18:46 -07:00
Jason Volk f3ba0f163b modules/client/sync/rooms/account_data: Eliminate the idx upper bound on room tags selection. 2019-04-29 10:28:55 -07:00
Jason Volk 80fb8699a1 ircd:Ⓜ️ Add a membership string size constant. 2019-04-27 18:32:45 -07:00
Jason Volk ea7e06fe27 modules/client/rooms/state: Optimize parallel closure invariant. 2019-04-26 06:04:06 -07:00
Jason Volk b481d994f5 modules/client/sync/rooms/state: Attemt fix "invite_state" vs. "state". 2019-04-22 20:08:29 -07:00
Jason Volk ae4ae66f08 modules/client/sync/rooms: Show membership string in debug msg. 2019-04-22 14:47:06 -07:00
Jason Volk 31bbc6b1b4 modules/client/sync/rooms/account_data: Arrange room tags in the initial phase. 2019-04-16 01:32:52 -07:00
Jason Volk 25d153d64c ircd:Ⓜ️:sync: Add an initial phase convenience; add account_data as an initial phase. 2019-04-16 01:32:52 -07:00
Jason Volk a70d22151f modules/client/sync/rooms: Elide query for room head/depth for EDU's. 2019-04-15 17:09:35 -07:00
Jason Volk 77b16f32ce ircd:Ⓜ️:append: Calculate age based on depth from room head.
fixes #55
2019-04-15 14:44:58 -07:00
Jason Volk 77b4ea969f modules/client/sync/rooms/state: Split out the initial sync branch; add room avatar. 2019-04-08 06:11:16 -07:00
Jason Volk a8b536e420 modules/client/sync: Improve phased initial sync by bursting full room list at phase 0. 2019-04-08 04:43:23 -07:00
Jason Volk a82410009e ircd:Ⓜ️:sync: Introduce phased polylogarithmic initial sync. 2019-04-08 02:46:49 -07:00
Jason Volk e98e4babce modules: Add preliminary s_command; client command-message support. 2019-04-07 16:22:34 -07:00
Jason Volk d0ad243860 modules/client/sync/rooms/account_data: Ensure room_id found on room account_data handlers. 2019-04-02 09:53:02 -07:00
Jason Volk 46324b1ac8 modules/client/sync/rooms/timeline: Fix polylog timeline limited indicator. 2019-03-31 13:09:36 -07:00
Jason Volk a83e304382 modules/client/sync: Manually invalidate checkpoints on known polylog commitments. 2019-03-30 15:02:18 -07:00
Jason Volk 7042d8e041 modules/client/rooms/account_data: Move checkpoint to cover both linear branches. 2019-03-30 14:13:34 -07:00
Jason Volk f7fa89b061 ircd::json::stack: Alter checkpoint rollback() behavior to proactive. 2019-03-30 14:13:34 -07:00
Jason Volk 881d3116cc modules/client/sync/rooms/account_data: Ensure apropos() hits the linear event coming through. 2019-03-30 14:09:47 -07:00
Jason Volk e555b91fa5 modules/client/sync/rooms/ephemeral/receipt: Elide syncing user's own receipts. 2019-03-28 17:36:22 -07:00
Jason Volk 6419333457 modules/client/sync/rooms/unread_notifications: Use better counter upper bound. 2019-03-28 00:11:35 -07:00
Jason Volk 394ec523a2 ircd:Ⓜ️:sync: Do a full iteration of all linear sync items even if success. 2019-03-27 20:13:04 -07:00
Jason Volk 54f7ddb6bd modules/client/rooms/state: Log an error when a state event fetch fails during sync. 2019-03-23 02:45:05 -07:00
Jason Volk 11afd2e590 modules/client/sync/rooms: Support ignoring invites based on m.ignored_user_list. 2019-03-14 18:11:52 -07:00
Jason Volk 1f35e9c57e modules/m_event: Add option to toggle query for txnid; disable query for non-timeline appends. 2019-03-13 17:08:35 -07:00
Jason Volk fe778e6ae4 modules/client/sync/rooms: Remove unnecessary checkpoint. 2019-03-12 18:41:05 -07:00
Jason Volk 425364f13e modules/client/sync/rooms/state: Fix missing append. 2019-03-12 18:41:05 -07:00
Jason Volk 06459e655e modules/client/sync/to_device: Fix improper seek. 2019-03-12 18:41:05 -07:00
Jason Volk c416be8398 modules: Replace individual client event appending with m::append(). 2019-03-11 16:02:48 -07:00
Jason Volk 79782958fc modules/client/sync/rooms/timeline: Add conf item for default limit. 2019-03-09 17:37:48 -08:00
Jason Volk ce8824a1bd modules/client/sync/rooms: Reenable per-room debug stats. 2019-03-09 15:17:21 -08:00
Jason Volk fcfcb83d42 modules/client/sync/rooms/timeline: Log dwarning message when transaction_id missing. 2019-03-08 15:02:48 -08:00
Jason Volk 187eca0e4e modules/client/sync: Refactor linear sync handlers to assume no implicit path. 2019-03-08 14:19:04 -08:00
Jason Volk 8230819edf modules/client/sync: Optimize these user state iterations. 2019-03-08 13:42:24 -08:00
Jason Volk 1f82b884ff ircd:Ⓜ️ Implement 14.18 Room Tagging. 2019-03-05 18:42:04 -08:00
Jason Volk 8b32f0558d modules/client/sync/rooms/state: Add unsigned addendum to event output. 2019-03-05 14:43:00 -08:00
Jason Volk 85b66e2d55 modules/client/sync/rooms/timeline: For non-longpoll, attempt to query transaction_id. 2019-03-05 14:24:08 -08:00
Jason Volk 3099997049 modules/client/sync/rooms/state: Deal with "invite_state" vs. "state". 2019-03-03 16:33:10 -08:00
Jason Volk e93e460f22 modules/client/sync: Must wait for parallel completion before copying ret. 2019-03-03 16:33:10 -08:00
Jason Volk 47bcfaecb4 ircd: Upgrade various templates with argument deduction. 2019-03-02 14:20:52 -08:00
Jason Volk e763e7e9a8 modules/client/sync/account_data: Fix regressions; optimize query pattern. 2019-03-01 13:09:19 -08:00
Jason Volk ec4fbe3640 modules/client/sync/rooms/account_data: Add linear sync handler. 2019-03-01 12:58:37 -08:00
Jason Volk b6fe591142 modules/client/sync/rooms/account_data: Improve polylog sync handler. 2019-03-01 12:58:37 -08:00
Jason Volk 8fee82b0d6 modules/client/sync: Readd the transaction_id on longpoll; fix ghost events. 2019-02-28 18:28:45 -08:00
Jason Volk 4e6ed85d27 modules/client/sync/rooms/state: Fix condition for using state[] rather than timeline[]. 2019-02-28 12:45:04 -08:00
Jason Volk a13ffd8978 modules/client/sync/rooms/ephemeral/receipt: Fix competing receipt formats. 2019-02-27 18:36:34 -08:00
Jason Volk 1e9b2cad9c modules/client/sync: Improve various sync handler conditions. 2019-02-27 18:24:12 -08:00
Jason Volk d469015e95 modules/client/sync/rooms/ephemeral/receipt: Filter my origin only. 2019-02-27 18:19:11 -08:00
Jason Volk 4724110736 modules/client/sync/rooms/ephemeral: Add m.typing sync handler. 2019-02-27 18:19:11 -08:00
Jason Volk 2c239858cb modules/client/sync/account_data: Ignore proffered events without an event_idx. 2019-02-27 16:30:43 -08:00
Jason Volk 9f7a08e9da modules/client/sync/rooms/timeline: Consolidate event append paths. 2019-02-27 16:27:04 -08:00
Jason Volk 7f57a4c422 modules/client/sync: Sketch various preliminary linear sync handlers. 2019-02-26 18:17:45 -08:00
Jason Volk 78a1281b1c ircd:Ⓜ️:sync: Make data.out a pointer to the json::stack. 2019-02-26 15:50:58 -08:00
Jason Volk 55fd9505bc modules/client/sync/to_device: More efficient iteration seek. 2019-02-24 15:30:38 -08:00
Jason Volk af5b0e69a1 modules/client/sync: Employ json::stack::checkpoint using boolean return values in all handlers. 2019-02-24 14:49:29 -08:00
Jason Volk ec50b0f76e ircd:Ⓜ️:sync: Make instance-level conf::items for all sync::items. 2019-02-22 17:11:53 -08:00
Jason Volk 603cc98e30 modules/client/sync: Adjust the object creation for handlers; put the room head idx in data. 2019-02-22 16:23:02 -08:00
Jason Volk cdb0ed443d modules/client/sync/to_device: Implement to_device event polylog sync. 2019-02-22 15:40:53 -08:00
Jason Volk c9f8e44c78 ircd:Ⓜ️:sync: Add stats.info conf item; rename debug_stats item. 2019-02-22 15:40:53 -08:00
Jason Volk a4e709c6d4 ircd:Ⓜ️:sync: Add conf item for polylog item stats to debuglog. 2019-02-22 15:40:52 -08:00
Jason Volk 207a12934c ircd:Ⓜ️:user: Reorg user::account_data interface. 2019-02-21 12:11:42 -08:00
Jason Volk 0fe24757ba modules/client/sync/rooms/unread_notifications: Remove condition to send counts. 2019-02-20 16:32:01 -08:00
Jason Volk 77ababbe85 modules/client/sync/rooms: Minor constness fix. 2019-02-19 14:49:50 -08:00
Jason Volk eca9bd7da9 modules/client/sync/rooms/ephemeral/receipt: Optimize polylog-sync strategy. 2019-02-14 15:28:38 -08:00
Jason Volk 8fd1b57e86 modules/client/sync: Stub device related sync modules. 2019-02-08 09:18:39 -08:00
Jason Volk 11af393444 modules/client/sync/rooms/timeline: Bail faster if no room head idx found. 2019-02-05 01:58:12 -08:00
Jason Volk 8c5b1f283f modules/client/sync: Various range check fixes; simplify debug stats. 2019-01-26 17:26:05 -08:00
Jason Volk c080d5523c ircd:Ⓜ️:presence: Improve get() interface based on realistic usage needs. 2019-01-26 16:59:12 -08:00
Jason Volk 05f39b03d6 modules/client/sync/rooms: Don't skip sync routines based on room head index. 2019-01-25 17:03:29 -08:00
Jason Volk 33601e88a1 modules/client/sync: Increase default fibers for now; relax assertion. 2019-01-25 16:32:26 -08:00
Jason Volk e2431a3f18 modules/client/sync: Use better ctx::parallel interface for non-trivial arguments. 2019-01-21 12:40:40 -08:00
Jason Volk af3fe14e6d modules/client/sync/rooms: Checkpoint. 2019-01-18 14:54:04 -08:00
Jason Volk c5598ed60a modules/client/sync/rooms/state: Use post-fetch key filter here for now; checkpoint. 2019-01-16 18:39:40 -08:00
Jason Volk c3dcd5f586 modules/client/sync/rooms/state: Add fetch options w/ json request. 2019-01-16 16:46:01 -08:00
Jason Volk 5ae495031f ircd:Ⓜ️:event::fetch: Improve fetch options related; minor cleanup. 2019-01-16 12:19:25 -08:00
Jason Volk ba5701acca modules/client/sync: Improve parallel; comments; dynamic memory for large buffers. 2019-01-11 17:41:23 -08:00
Jason Volk 56b1e760cf modules/client/sync/rooms: Create a directory for ephemeral. 2019-01-11 13:58:23 -08:00
Jason Volk 11f905274e modules/client: Use the event::idx sequence difference for unsigned.age. 2019-01-10 16:58:44 -08:00
Jason Volk 86ae182f64 modules/client/sync: Fix rooms.ephemeral item. 2019-01-10 16:58:44 -08:00
Jason Volk 4c495e1f44 modules/client/sync: Various cleanup / simplify. 2019-01-10 16:58:37 -08:00
Jason Volk 2d860b25a8 ircd:Ⓜ️:sync: Checkpoint. 2019-01-09 20:39:12 -08:00
Jason Volk 443905859f ircd:Ⓜ️:sync: Additional abstraction; checkpoint polylog /sync modules. 2019-01-08 17:17:41 -08:00
Jason Volk af6fcb24f4 modules/client/sync: Add a README to the /sync directory. 2019-01-08 12:51:06 -08:00
Jason Volk 61e88e75bc modules/client/sync: Additional sync items reorganization. 2019-01-04 14:47:01 -08:00
Jason Volk 86911226ed ircd:Ⓜ️ Preliminary modular client sync system. 2019-01-03 17:21:02 -08:00