{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":64191019,"defaultBranch":"master","name":"buttplug","ownerLogin":"buttplugio","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-07-26T04:54:50.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/39504077?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1713640022.0","currentOid":""},"activityList":{"items":[{"before":"f73175c04a2fe65201e36e8f6509fa74a360398c","after":"a743c446b40d3585271a583c44f8b1e6047de604","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-05-11T03:00:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"chore: Patches for rebasing on top of latest device work","shortMessageHtmlLink":"chore: Patches for rebasing on top of latest device work"}},{"before":"89d14bbfff21ee3f3dc098538d32732b754a5a89","after":"47d8ee2763c7829dfcdbaf768030bcf22205245b","ref":"refs/heads/dev","pushedAt":"2024-05-11T02:48:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"fix: Correct VibrateCmd -> ScalarCmd conversion when the devices has non-vibrate features\n\nThis change reworks the conversion from VibrateCmd to ScalarCmd by building\na map of indexes of vibrate features on a devices that supports ScalarCmd\nso that devices that have non-vibrators before or embedded between vibrators\ndon't try to send vibrate commands to the those features.\n\n`VibrateCmd( 0, [1.0, 0.5] )` for a device with `ScalarCmd(Vibrate, Rotate, Vibrate)`\nnow generates `ScalarCmd( 0, [ {0, 1.0, Vibrate}, {2, 0.5, Vibrate}] )` vs previously\njust copying the feature index, which would have produced the invalid:\n`ScalarCmd( 0, [ {0, 1.0, Vibrate}, {1, 0.5, Vibrate}] )`","shortMessageHtmlLink":"fix: Correct VibrateCmd -> ScalarCmd conversion when the devices has …"}},{"before":"939986e5cbcf4bfdf6a9a51ca4ad4019c1b6b7d7","after":"440614a6ada25c32df5efd0e85f011fc8a766830","ref":"refs/heads/master","pushedAt":"2024-05-11T02:48:22.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"Update buttplug-device-config.yml","shortMessageHtmlLink":"Update buttplug-device-config.yml"}},{"before":"264d6443b5996a728c2c6246ec3cb21d06f308a0","after":"89d14bbfff21ee3f3dc098538d32732b754a5a89","ref":"refs/heads/dev","pushedAt":"2024-05-11T02:48:07.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"feat: Adding support for 3 more Vibcrafter devices\n\n* Vibcrafter Janna\n* Vibcrafter Nidalee\n* Vibcrafter Hayden\n* Vibcrafter Harlow (just renamed)","shortMessageHtmlLink":"feat: Adding support for 3 more Vibcrafter devices"}},{"before":"24c09e4a53f3862e3dec3593888936365149e84b","after":"f73175c04a2fe65201e36e8f6509fa74a360398c","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-05-08T03:47:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"chore: Simplify serial comm manager to 1 port per specifier","shortMessageHtmlLink":"chore: Simplify serial comm manager to 1 port per specifier"}},{"before":"d59d4906f4c240a7ab32d7d0701de2162a1a7605","after":"f73175c04a2fe65201e36e8f6509fa74a360398c","ref":"refs/heads/intiface-engine-device-config","pushedAt":"2024-05-08T03:47:03.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"chore: Simplify serial comm manager to 1 port per specifier","shortMessageHtmlLink":"chore: Simplify serial comm manager to 1 port per specifier"}},{"before":"f0253a154dc2c34c4caa73a3d7f45f89fb0167fd","after":"24c09e4a53f3862e3dec3593888936365149e84b","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-05-08T02:19:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"fix: Fix calculation of device actuator ranges\n\nActually use limits","shortMessageHtmlLink":"fix: Fix calculation of device actuator ranges"}},{"before":"5d7c2be14e778010372ddc8a703b2b2282ba2b5f","after":"f0253a154dc2c34c4caa73a3d7f45f89fb0167fd","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-05-06T23:55:29.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"chore: Simplify websocket communication specifiers","shortMessageHtmlLink":"chore: Simplify websocket communication specifiers"}},{"before":"be2f1a8b759b1e4d27159df664d4cd982f9ea0d4","after":"264d6443b5996a728c2c6246ec3cb21d06f308a0","ref":"refs/heads/dev","pushedAt":"2024-04-27T23:13:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"feat: Adding definitions for new Love Distance devices\n\nOnly the Orbit has been tested, but the naming convention for these\ndevices is predictable enought that I'm fairly sure this should add\nsupport for the Grasp, Link, Join G and Receive too.","shortMessageHtmlLink":"feat: Adding definitions for new Love Distance devices"}},{"before":"939986e5cbcf4bfdf6a9a51ca4ad4019c1b6b7d7","after":"d59d4906f4c240a7ab32d7d0701de2162a1a7605","ref":"refs/heads/intiface-engine-device-config","pushedAt":"2024-04-27T22:52:16.000Z","pushType":"push","commitsCount":55,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"chore: Pub get() UserDeviceIdentifier members, add constructor for UserCustom","shortMessageHtmlLink":"chore: Pub get() UserDeviceIdentifier members, add constructor for Us…"}},{"before":"939986e5cbcf4bfdf6a9a51ca4ad4019c1b6b7d7","after":"be2f1a8b759b1e4d27159df664d4cd982f9ea0d4","ref":"refs/heads/dev","pushedAt":"2024-04-26T16:10:42.000Z","pushType":"pr_merge","commitsCount":7,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"fix: renamed `GalakuOneEngineIdentifierFactory` to `GalakuIdentifierFactory`","shortMessageHtmlLink":"fix: renamed GalakuOneEngineIdentifierFactory to `GalakuIdentifierF…"}},{"before":"e0b21168e06e0d4483ba3144573701c42366d5e2","after":"5d7c2be14e778010372ddc8a703b2b2282ba2b5f","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-04-23T02:31:29.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"test: Update tests for required step-limit in user configs","shortMessageHtmlLink":"test: Update tests for required step-limit in user configs"}},{"before":"44583bd64676ed421f371b92427621622e2d17c3","after":"e0b21168e06e0d4483ba3144573701c42366d5e2","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-04-21T22:19:54.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"chore: Add validity checking on protocol addition in dcm","shortMessageHtmlLink":"chore: Add validity checking on protocol addition in dcm"}},{"before":"8436014fd435fd847d194bb206768e0bbe05937c","after":"44583bd64676ed421f371b92427621622e2d17c3","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-04-21T21:46:08.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"test: Update tests for new config loading","shortMessageHtmlLink":"test: Update tests for new config loading"}},{"before":"6ab297d8f790b366578294f8b6c74d9a42987e30","after":"8436014fd435fd847d194bb206768e0bbe05937c","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-04-21T19:53:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"chore: Update lioness protocol impl to use new config types","shortMessageHtmlLink":"chore: Update lioness protocol impl to use new config types"}},{"before":"3d887e561944b5604d0f97619012b5a2c31c4f65","after":"939986e5cbcf4bfdf6a9a51ca4ad4019c1b6b7d7","ref":"refs/heads/intiface-engine-device-config","pushedAt":"2024-04-20T19:38:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"doc: Update version/CHANGELOG for 7.1.16","shortMessageHtmlLink":"doc: Update version/CHANGELOG for 7.1.16"}},{"before":"0fc3a605e9db6cc655849df55c1de3bca1d64ecb","after":"939986e5cbcf4bfdf6a9a51ca4ad4019c1b6b7d7","ref":"refs/heads/master","pushedAt":"2024-04-20T19:07:02.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"doc: Update version/CHANGELOG for 7.1.16","shortMessageHtmlLink":"doc: Update version/CHANGELOG for 7.1.16"}},{"before":"07ddf2c9fbbabff66320a7ee772e6eff0d0a9521","after":"939986e5cbcf4bfdf6a9a51ca4ad4019c1b6b7d7","ref":"refs/heads/dev","pushedAt":"2024-04-20T19:07:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"doc: Update version/CHANGELOG for 7.1.16","shortMessageHtmlLink":"doc: Update version/CHANGELOG for 7.1.16"}},{"before":"44c6d1a82d6c3c63a120c8ec813c89a241dfbfdd","after":"6ab297d8f790b366578294f8b6c74d9a42987e30","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-04-20T18:59:12.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"feat: Start implementing user config serialization and output","shortMessageHtmlLink":"feat: Start implementing user config serialization and output"}},{"before":"8de0497d2977fd22e0a090bce492b9b87a51b5b3","after":"07ddf2c9fbbabff66320a7ee772e6eff0d0a9521","ref":"refs/heads/dev","pushedAt":"2024-04-20T18:53:10.000Z","pushType":"pr_merge","commitsCount":7,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"fix: Correct a timing issue with a RwLock in JoyHub devices","shortMessageHtmlLink":"fix: Correct a timing issue with a RwLock in JoyHub devices"}},{"before":"4628972763bf380fe0128a26fbc5523bc9e55725","after":"44c6d1a82d6c3c63a120c8ec813c89a241dfbfdd","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-04-16T05:07:22.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"doc: Update copyright years on the files that have the header","shortMessageHtmlLink":"doc: Update copyright years on the files that have the header"}},{"before":"d54fa88badbc2d1b162ff2b104a12a5c869fe9c5","after":"4628972763bf380fe0128a26fbc5523bc9e55725","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-04-15T01:21:51.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"test: Add or fix up device config tests","shortMessageHtmlLink":"test: Add or fix up device config tests"}},{"before":"0fc3a605e9db6cc655849df55c1de3bca1d64ecb","after":"3d887e561944b5604d0f97619012b5a2c31c4f65","ref":"refs/heads/intiface-engine-device-config","pushedAt":"2024-04-11T19:13:08.000Z","pushType":"push","commitsCount":22,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"chore: Change device config paths in library","shortMessageHtmlLink":"chore: Change device config paths in library"}},{"before":"c73e5ff4fc1699964456c1f513c0196aaf247140","after":"d54fa88badbc2d1b162ff2b104a12a5c869fe9c5","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-04-10T06:40:57.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"chore: Remove ProtocolAttributesType\n\nBecause it's just an Option.","shortMessageHtmlLink":"chore: Remove ProtocolAttributesType"}},{"before":"196b7b7a85aee766172dd28c74ac9221898e8fb7","after":"c73e5ff4fc1699964456c1f513c0196aaf247140","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-04-09T03:45:50.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"test: Fix device config unit tests for config v3","shortMessageHtmlLink":"test: Fix device config unit tests for config v3"}},{"before":"a9a65c6bb49aaf63602d10f41e9b9dd642047913","after":"196b7b7a85aee766172dd28c74ac9221898e8fb7","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-04-08T19:28:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"chore: Push device features up from config loading to manager","shortMessageHtmlLink":"chore: Push device features up from config loading to manager"}},{"before":"34e2e043c15bf1cdbc36b5554543e2aa19ab5836","after":"a9a65c6bb49aaf63602d10f41e9b9dd642047913","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-04-08T18:53:31.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"chore: Clean up a couple getters","shortMessageHtmlLink":"chore: Clean up a couple getters"}},{"before":null,"after":"34e2e043c15bf1cdbc36b5554543e2aa19ab5836","ref":"refs/heads/config-rewrite-minimum","pushedAt":"2024-04-08T06:13:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"test: Update test user configs for new format","shortMessageHtmlLink":"test: Update test user configs for new format"}},{"before":"f1ccb6a492d3a35c0f8f9430fb0b065ef57a9038","after":"2e180908dffe617f9fe71a708d448114de9bc9f5","ref":"refs/heads/config-rewrite","pushedAt":"2024-04-08T02:49:19.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"chore: Implement enough of DeviceFeature to get Buttplug to load config and compile","shortMessageHtmlLink":"chore: Implement enough of DeviceFeature to get Buttplug to load conf…"}},{"before":"5b9b9e4534ec925df3fbfee9c37354070d6699e9","after":"f1ccb6a492d3a35c0f8f9430fb0b065ef57a9038","ref":"refs/heads/config-rewrite","pushedAt":"2024-04-07T00:32:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"qdot","name":"qDot","path":"/qdot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34539?s=80&v=4"},"commit":{"message":"chore: Continue conversions to Device Features","shortMessageHtmlLink":"chore: Continue conversions to Device Features"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAERw91wQA","startCursor":null,"endCursor":null}},"title":"Activity · buttplugio/buttplug"}