{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":10744270,"defaultBranch":"master","name":"pycapnp","ownerLogin":"capnproto","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-06-17T18:43:24.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/29186932?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1712897836.0","currentOid":""},"activityList":{"items":[{"before":"1fb168796d622e1cd19b2353a43ef5bb0b15d5a1","after":"78dd54e64155c7b4513008b5295803d6dab9fde8","ref":"refs/heads/master","pushedAt":"2024-04-12T02:01:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"address flake8 format check","shortMessageHtmlLink":"address flake8 format check"}},{"before":"1f2349ab45f9c27aeb97da0d0c45225cf5aced4b","after":"1fb168796d622e1cd19b2353a43ef5bb0b15d5a1","ref":"refs/heads/master","pushedAt":"2024-01-19T16:36:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Prepare for v2.0.0 release\n\n- Update CHANGELOG.md","shortMessageHtmlLink":"Prepare for v2.0.0 release"}},{"before":"84830d6357b958eba0e7479f51692f381d49722f","after":"1f2349ab45f9c27aeb97da0d0c45225cf5aced4b","ref":"refs/heads/master","pushedAt":"2023-11-25T19:10:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Update README.md\n\nCap'n'proto has transitioned to GitHub Mailing Lists","shortMessageHtmlLink":"Update README.md"}},{"before":"3aade70bfa9c88ab28f5fa7766a34861b233dcd3","after":"84830d6357b958eba0e7479f51692f381d49722f","ref":"refs/heads/master","pushedAt":"2023-11-25T19:05:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Prepare for v2.0.0b2 release\n\n- Update CHANGELOG.md","shortMessageHtmlLink":"Prepare for v2.0.0b2 release"}},{"before":"b6ea909e9afec32388d668e2530effd0109d38f1","after":"3aade70bfa9c88ab28f5fa7766a34861b233dcd3","ref":"refs/heads/master","pushedAt":"2023-11-25T16:16:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Some fixes to the magic import system\n\n- Stop adding the directory of every .capnp file to the import path. If a .capnp\n file wants to import a file in its own directory, it should use a relative\n import. Fixes #278\n- Stop using /usr/include/capnp as an import path. This is incorrect. It should\n only be /usr/include.\n- Stop allowing additional paths to be specified for magic imports. This leads\n to inconsistencies. More specifically, the way that a nested import like\n `ma.mb.mc_capnp` gets imported by python, is to first import `ma`, then import\n `ma.mb`, and finally `ma.mb.mc_capnp`. Pycapnp's magic importing is only\n involved in the last step. So any additional paths specified don't work for\n nested imports. It is very confusing to only have this for non-nested imports.\n Users with folder layouts that don't follow pythons import paths can still use\n `capnp.load(.., .., imports=[blah])`.","shortMessageHtmlLink":"Some fixes to the magic import system"}},{"before":"0ec4d0b77835c34bf6af4a765a6eaf017929aa7f","after":"b6ea909e9afec32388d668e2530effd0109d38f1","ref":"refs/heads/master","pushedAt":"2023-11-09T17:10:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Corner case for cancelled server methods that raise exceptions\n\nWhen a server method is cancelled, but it nonetheless raises an exception (other\nthan `CancelledError`), this exception cannot be reported to the caller (because\nit has cancelled that call).\n\nThe only place where it can go is to the asyncio exception handler...","shortMessageHtmlLink":"Corner case for cancelled server methods that raise exceptions"}},{"before":"49bda5ccaec70b4625cedf9c467bd5c9050c09bb","after":"0ec4d0b77835c34bf6af4a765a6eaf017929aa7f","ref":"refs/heads/master","pushedAt":"2023-11-08T15:09:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Allow cancellation of all capability contexts","shortMessageHtmlLink":"Allow cancellation of all capability contexts"}},{"before":"ef5e03906782d18b2923d86d86a7022f9a5d631d","after":"49bda5ccaec70b4625cedf9c467bd5c9050c09bb","ref":"refs/heads/master","pushedAt":"2023-11-08T15:04:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Fix re-raising of KjException\n\n- The `KjException._to_python()` function neglected to check if the wrapper was\n set when attempting to convert to `AttributeError`, leading to exceptions while\n raising an exception.\n- The syntax `raise A, B, C` hasn't existed since Python 3. The only reason it\n works is because Cython supports it. Lets get rid of it.\n- There was an attempt to convert a certain kind of `KjException` to an\n `AttributeError`. However, the original exception remains in the context when\n the new exception is raised. This is confusing. We get rid of the original\n exception by doing `raise e._to_python() from None`.","shortMessageHtmlLink":"Fix re-raising of KjException"}},{"before":"aafec2281e70e47baa6f3d0fe5f1b11897f993e8","after":"ef5e03906782d18b2923d86d86a7022f9a5d631d","ref":"refs/heads/master","pushedAt":"2023-11-08T15:02:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Support `_DynamicListReader` in `_setDynamicField`\n\nSee the test for an explanation.\n\nNote that I'm not sure what the purpose of `_setDynamicFieldWithField` and\n`_setDynamicFieldStatic` is. It does not appear to be used. I've kept them for\nnow (they are a public API), but perhaps this can be removed.","shortMessageHtmlLink":"Support _DynamicListReader in _setDynamicField"}},{"before":"42665a61c98e4559e7c82aa16c746a67be4d4b4c","after":"aafec2281e70e47baa6f3d0fe5f1b11897f993e8","ref":"refs/heads/master","pushedAt":"2023-11-05T21:58:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Make `reraise_kj_exception` available to downstream\n\nI'm using Pycapnp in a project, where we compile `.capnp` files directly to\nCython instead of using the dynamic interface (for speed). For this, we need\naccess to the `reraise_kj_exception` C function defined by Pycapnp. This is not\npossible, because Cython does not automatically make this function available to\ndownstream users.\n\nMy previous solution, in #301, was rather flawed. The file `capabilityHelper.cpp`, where\n`reraise_kj_exception` is defined, was bundled into the distribution, so that\nthis file could be included in downstream libraries. This turns out to be a\nterrible idea, because it redefines a bunch of other things like\n`ReadPromiseAdapter`. For reasons not entirely clear to me, this leads to\nsegmentation faults. This PR revers #301.\n\nInstead, in this PR I've made `reraise_kj_exception` a Cython-level function,\nthat can be used by downstream libraries. The C-level variant has been renamed\nto `c_reraise_kj_exception`.","shortMessageHtmlLink":"Make reraise_kj_exception available to downstream"}},{"before":"c9bea05f44d936ae54a005c2dd9f43e3b5276e4b","after":"42665a61c98e4559e7c82aa16c746a67be4d4b4c","ref":"refs/heads/master","pushedAt":"2023-11-02T02:03:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Properly join list of methods in _DynamicCapabilityClient\n\nThis was already fixed in c9bea05f44, but the fix does not seem to work.\nThis commit uses a set union, which should be more robust. It also adds\na couple of assertions to verify that it indeed works.","shortMessageHtmlLink":"Properly join list of methods in _DynamicCapabilityClient"}},{"before":"7a4970605e4bfba07052adc451d65371fcce527c","after":"c9bea05f44d936ae54a005c2dd9f43e3b5276e4b","ref":"refs/heads/master","pushedAt":"2023-10-23T17:48:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"DynamicCapabilityClient: fix crash due to wrong types\n\nIn the last commit touching this line, a ')' was put in the wrong place, leading to errors like this one:\r\n\r\n```\r\n File \"capnp/lib/capnp.pyx\", line 2172, in capnp.lib.capnp._DynamicCapabilityClient.__dir__\r\nTypeError: unsupported operand type(s) for +: 'set' and 'tuple'\r\n```","shortMessageHtmlLink":"DynamicCapabilityClient: fix crash due to wrong types"}},{"before":"ca8d12090108a863014aee5ad2a11747963964c9","after":"7a4970605e4bfba07052adc451d65371fcce527c","ref":"refs/heads/master","pushedAt":"2023-10-23T17:23:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Disable the use of ninja for windows builds\n\nAperantly github added ninja to all of there runners now. This\ncauses the windows build to fail. This is expected because we\nadd the architecture as a compiler arg which is not known to\nninja. Even with this the build fails.\n\nThis commit disables ninja on windows for now. Once we fixed the\nunderlying issue with ninja and windows we can reenable it.","shortMessageHtmlLink":"Disable the use of ninja for windows builds"}},{"before":"09f7cd0d0814bc6bfb50e966eed1946072cccf20","after":"ca8d12090108a863014aee5ad2a11747963964c9","ref":"refs/heads/master","pushedAt":"2023-10-23T06:29:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Handle exceptions from server callbacks\n\nIn its current form, when a server callback throws an exception, it is\ncompletely swallowed. Only when the asyncio loop is being shut down might one\npossibly see that error. On top of that, the connection is never closed, causing\nany clients to hang, and a memory leak in the server.\n\nThis is a proposed fix that reports the exception to the asyncio exception\nhandler. It also makes sure that the connection is always closed, even if the\ncallback doesn't close it explicitly.\n\nNote that the design of AsyncIoStream is directly based on the design of\nPython's asyncio streams: https://docs.python.org/3/library/asyncio-stream.html\nThese streams appear to have exactly the same flaw. I've reported this here:\nhttps://github.com/python/cpython/issues/110894. Since I don't really know what\nI'm doing, it might be worth seeing what kind of solution they might come up\nwith and model our solution after theirs.","shortMessageHtmlLink":"Handle exceptions from server callbacks"}},{"before":"a30fd77a1c92c1bd41af9e575964a03fac07e251","after":"09f7cd0d0814bc6bfb50e966eed1946072cccf20","ref":"refs/heads/master","pushedAt":"2023-10-16T20:51:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Unlock the GIL for all capnp functions that do IO\n\nIO might block, and its rude to block while holding the GIL, since that\nprevents other threads from running.","shortMessageHtmlLink":"Unlock the GIL for all capnp functions that do IO"}},{"before":"302a96d84db08b4f31c2eadb5ef2d5bff3efc653","after":"a30fd77a1c92c1bd41af9e575964a03fac07e251","ref":"refs/heads/master","pushedAt":"2023-10-16T18:06:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Fix retransmit bug for large messages causing message corruption\n\nLogic bug: We are looping over segments sent by the C++ library and sending them\nover a python transport. If the last message is larger than the transport pause\nthreshold, this causes the transport to pause us. In that case, we forget to\nincrement the current write_index, causing us to retransmit the same message in\nan infinite loop.\n\nThis is a serious bug, because it causes messages to become corrupted.","shortMessageHtmlLink":"Fix retransmit bug for large messages causing message corruption"}},{"before":"1446386636f7290dea1cb1fd33453c30857d6cfd","after":"302a96d84db08b4f31c2eadb5ef2d5bff3efc653","ref":"refs/heads/master","pushedAt":"2023-10-16T18:05:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Update documentation to async code (#331) (#332)\n\n* Update documentation to async code (#331)\r\n\r\nThis commit updates the documentation to the latest changes added\r\nwith pycapnp 2.0.0.\r\n\r\n* Remove non existing classes/functions from the reference documentation\r\n* Adapt the quickstart to the latest changes. Mainly to new rpc handling,\r\n that now exlusively is done through asyncio.\r\n\r\n* DOC: Add section about send and receive messages over a socket\r\n\r\nSince #313 it is possible to read and write messages over a socket.\r\nThis commit adds a small section for read and write in the quickstart.","shortMessageHtmlLink":"Update documentation to async code (#331) (#332)"}},{"before":"cc088211dce416df05d4f1dea29ad6cc38f261e4","after":"1446386636f7290dea1cb1fd33453c30857d6cfd","ref":"refs/heads/master","pushedAt":"2023-10-15T15:10:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Make a server fail early when the KJ loop is not running","shortMessageHtmlLink":"Make a server fail early when the KJ loop is not running"}},{"before":"b22763f3c6ffe3ccf3363595c4c9a825876118d2","after":"cc088211dce416df05d4f1dea29ad6cc38f261e4","ref":"refs/heads/master","pushedAt":"2023-10-13T14:55:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Delete and update some Python 3.7-specific todo notes\n\nWhen I wrote some of these, I was wrong about the affected versions. Upgraded\nthem to v3.9","shortMessageHtmlLink":"Delete and update some Python 3.7-specific todo notes"}},{"before":"ae965128de14f34f3420bc2a1c07c2b356bd7798","after":"b22763f3c6ffe3ccf3363595c4c9a825876118d2","ref":"refs/heads/master","pushedAt":"2023-10-13T13:47:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Fix 'AttributeError: '_UnixSelectorEventLoop' object has no attribute 'call_soon'\n\nSee haata/pycapnp#1 for a discussion. The cause of this bug is still unknown to\nme. But it likely has been fixed in Python 3.10. For some crazy reason, you can\njust keep retrying the offending call, and the attribute will magically\n'reappear'.","shortMessageHtmlLink":"Fix 'AttributeError: '_UnixSelectorEventLoop' object has no attribute…"}},{"before":"941f018092ff3327be19f960a59e8d3ca4d5e838","after":"ae965128de14f34f3420bc2a1c07c2b356bd7798","ref":"refs/heads/master","pushedAt":"2023-10-12T14:13:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Update README example to async code (#331)","shortMessageHtmlLink":"Update README example to async code (#331)"}},{"before":"bb158228509678f6a7d162b9869ed999f767d696","after":"941f018092ff3327be19f960a59e8d3ca4d5e838","ref":"refs/heads/master","pushedAt":"2023-10-11T18:33:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Fix broken test in test_load (#329)\n\nThe new context manager for the event loop\r\nseems to be missing in `test_load_capnp`.","shortMessageHtmlLink":"Fix broken test in test_load (#329)"}},{"before":"e13a0c92542f861f669890445869ba3599e71a58","after":"bb158228509678f6a7d162b9869ed999f767d696","ref":"refs/heads/master","pushedAt":"2023-10-11T18:30:49.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Fixes for capnp 1.0 (#1)\n\n* add capnp_api.h to gitignore\r\n\r\n* Change type of read_min_bytes from size to int\r\n\r\nNot sure why this was not causing issues before or if that\r\nis the right fix ... but it seems to be fine :)\r\n\r\n* Adapt python_requires to >=3.8\r\n\r\nThis was overlooked when 3.7 was deprecated. The ci no longer\r\nworks with python 3.7 and cibuildwheel uses python_requires ...\r\n\r\n* Replace deprecated find_module with find_spec (importlib)\r\n\r\nfind_module was deprecated with python 3.4 and python 3.12\r\nremoved it (https://docs.python.org/3.12/whatsnew/3.12.html#importlib).\r\n\r\nThe new command is find_spec and only required a few adaptions","shortMessageHtmlLink":"Fixes for capnp 1.0 (#1)"}},{"before":"d48ffea9395bb65614589c5f04a10b92f56a8d94","after":"e13a0c92542f861f669890445869ba3599e71a58","ref":"refs/heads/master","pushedAt":"2023-10-03T16:04:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Experiment: Wrap all capnp code in a context-manager to avoid segfaults (#317)\n\n* Experiment: Wrap all capnp code in a context-manager\r\n\r\n* Fix segfault in on_disconnect","shortMessageHtmlLink":"Experiment: Wrap all capnp code in a context-manager to avoid segfaul…"}},{"before":"db26d602832b8cf186ff464944e752c8c8352efc","after":"d48ffea9395bb65614589c5f04a10b92f56a8d94","ref":"refs/heads/master","pushedAt":"2023-10-03T05:30:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Add custom build backend to support build args (#328)\n\nThis implements a custom build backend, inspired by the\r\n[solution used by Pillow.](https://github.com/python-pillow/Pillow/pull/7171)\r\n\r\ninstall-option is deprecated and was removed with pip 23.1. The\r\ncomonly accepted solution seems to be to define a custom build\r\nbackend for now\r\nhttps://github.com/pypa/setuptools/issues/2491#issuecomment-1589764230\r\n\r\nThis commit changes the usage from `--install-option` to `--config-settings`.","shortMessageHtmlLink":"Add custom build backend to support build args (#328)"}},{"before":"8f3bfc353652509acc29d090b8280d0818802e53","after":"db26d602832b8cf186ff464944e752c8c8352efc","ref":"refs/heads/master","pushedAt":"2023-07-21T08:40:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Pin cython to below version 3, Python 3.11 support (#320)\n\n* Pin cython to below version 3\n\nCython 3 includes backwards incompatible changes so it's no longer\npossible to install pycapnp from source.\n\n* Add py311 environment\n\nI'm not sure if this is necessary, but 3.11 is out so might as well?","shortMessageHtmlLink":"Pin cython to below version 3, Python 3.11 support (#320)"}},{"before":"b439993b1fefad5fe328306ead47078ac349568c","after":"8f3bfc353652509acc29d090b8280d0818802e53","ref":"refs/heads/master","pushedAt":"2023-06-19T20:27:15.636Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Merge pull request #307 from Zentren/dynamic_schema_loading\n\nSchema loading from the wire","shortMessageHtmlLink":"Merge pull request #307 from Zentren/dynamic_schema_loading"}},{"before":"8feb3772177b5d954516ebdece46983ff2fc0f3c","after":"b439993b1fefad5fe328306ead47078ac349568c","ref":"refs/heads/master","pushedAt":"2023-06-12T07:31:16.633Z","pushType":"pr_merge","commitsCount":22,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Merge pull request #315 from LasseBlaauwbroek/cull-sync\n\nRemove the synchronous RPC mode","shortMessageHtmlLink":"Merge pull request #315 from LasseBlaauwbroek/cull-sync"}},{"before":"d53aa24733584ce864a08fe1c6b668ac99c15c0e","after":"8feb3772177b5d954516ebdece46983ff2fc0f3c","ref":"refs/heads/master","pushedAt":"2023-06-07T18:24:44.063Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Allow reading and writing messages from sockets in `async` mode","shortMessageHtmlLink":"Allow reading and writing messages from sockets in async mode"}},{"before":"d32854eb00130e9063338b488654d68e15e60bd3","after":"d53aa24733584ce864a08fe1c6b668ac99c15c0e","ref":"refs/heads/master","pushedAt":"2023-06-07T17:51:53.961Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"haata","name":"Jacob Alexander","path":"/haata","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23465?s=80&v=4"},"commit":{"message":"Allow async capability implementation methods to return a tuple","shortMessageHtmlLink":"Allow async capability implementation methods to return a tuple"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNC0xMlQwMjowMTo1OS4wMDAwMDBazwAAAAQuqMwm","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNC0xMlQwMjowMTo1OS4wMDAwMDBazwAAAAQuqMwm","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wNi0wN1QxNzo1MTo1My45NjEyMDJazwAAAAM8zncB"}},"title":"Activity · capnproto/pycapnp"}