{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":468450861,"defaultBranch":"main","name":"comapeo-core","ownerLogin":"digidem","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-03-10T17:45:33.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/405221?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1727371848.0","currentOid":""},"activityList":{"items":[{"before":"5f0dff798b75c292a00e5b338efbeb49822d9d39","after":"c07a8a88dd24fbd9fc2ac4b70ddd5ad944e1ee39","ref":"refs/heads/invite-should-wait-for-peers","pushedAt":"2024-09-26T19:42:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"test: invite helper should automatically wait for peers\n\nOur `invite` helper breaks if other peers aren't found. There's no time\nwe'd use `invite` without waiting for other peers to be found, so let's\nalways wait for them in `invite`.","shortMessageHtmlLink":"test: invite helper should automatically wait for peers"}},{"before":"417c5c9ece6d70607620b38a5d571f7fa93276bb","after":"d66c0a87b4ee5bd3e47271b41c0ede211cf80f59","ref":"refs/heads/ac/fix-release-workflow-on-dispatch","pushedAt":"2024-09-26T19:31:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"achou11","name":"Andrew Chou","path":"/achou11","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/18542095?s=80&v=4"},"commit":{"message":"use Gregor's suggestion\n\nCo-authored-by: Gregor MacLennan ","shortMessageHtmlLink":"use Gregor's suggestion"}},{"before":"eeda7275791c4cb80247b7cb2a0187d2d4c9ca36","after":"417c5c9ece6d70607620b38a5d571f7fa93276bb","ref":"refs/heads/ac/fix-release-workflow-on-dispatch","pushedAt":"2024-09-26T17:43:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"achou11","name":"Andrew Chou","path":"/achou11","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/18542095?s=80&v=4"},"commit":{"message":"switch order of checks","shortMessageHtmlLink":"switch order of checks"}},{"before":"266ad3b82f62225e0700d740a32430f42cd7393a","after":"eeda7275791c4cb80247b7cb2a0187d2d4c9ca36","ref":"refs/heads/ac/fix-release-workflow-on-dispatch","pushedAt":"2024-09-26T17:36:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"achou11","name":"Andrew Chou","path":"/achou11","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/18542095?s=80&v=4"},"commit":{"message":"use github.event_name field instead","shortMessageHtmlLink":"use github.event_name field instead"}},{"before":null,"after":"266ad3b82f62225e0700d740a32430f42cd7393a","ref":"refs/heads/ac/fix-release-workflow-on-dispatch","pushedAt":"2024-09-26T17:30:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"achou11","name":"Andrew Chou","path":"/achou11","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/18542095?s=80&v=4"},"commit":{"message":"chore: fix release workflow to run when using workflow dispatch","shortMessageHtmlLink":"chore: fix release workflow to run when using workflow dispatch"}},{"before":"d5f2b43ba820e355778bfe781511ce82a2f48e1c","after":"5f0dff798b75c292a00e5b338efbeb49822d9d39","ref":"refs/heads/invite-should-wait-for-peers","pushedAt":"2024-09-26T17:09:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"test: invite helper should automatically wait for peers\n\nOur `invite` helper breaks if other peers aren't found. There's no time\nwe'd use `invite` without waiting for other peers to be found, so let's\nalways wait for them in `invite`.","shortMessageHtmlLink":"test: invite helper should automatically wait for peers"}},{"before":null,"after":"dfaceb29186c695b04f037ffa31321c7588d1270","ref":"refs/heads/server","pushedAt":"2024-09-26T17:08:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"test: fix race condition if multiple invites are sent (#863)\n\nWe have a test helper, `invite`, that invites people to projects. It\r\nworks like this:\r\n\r\n1. Tell the invitee(s) to accept any invite they receive.\r\n2. Send the invite.\r\n\r\nThis is fine for most of our tests, where only one invite will be sent\r\nto each manager. But we have [at least one test][0] where multiple\r\ninvites are sent.\r\n\r\nThat can cause a race condition. Imagine the following scenario where\r\n`invite` is called twice:\r\n\r\n1. Tell the invitee to accept any invite they receive (listener 1).\r\n2. Tell the invitee to accept any invite they receive (listener 2).\r\n3. Send the first invite.\r\n4. Both listeners fire, sending one valid \"accept\" response and one that\r\n gets dropped.\r\n4. Send the second invite. There are no listeners, and the test hangs.\r\n\r\nThis commit changes `invite`. Now, it works like this:\r\n\r\n1. Generate an invite ID.\r\n2. Tell the invitee(s) to accept any invite with that ID.\r\n3. Send the invite.\r\n\r\nAs far as I know, this isn't a problem today. But an [upcoming test\r\nchange][1] causes this to happen much more reliably, so I think this is\r\nworth fixing. (I think it's worth fixing even without that upcoming\r\nchange. Also, I tested this with those changes and it does, indeed, fix\r\nhung tests.)\r\n\r\n[0]: https://github.com/digidem/comapeo-core/blob/d2e5590aa749b690e5c07c3b64791db5e403ee29/test-e2e/sync.js#L530\r\n[1]: https://github.com/digidem/comapeo-core/pull/856","shortMessageHtmlLink":"test: fix race condition if multiple invites are sent (#863)"}},{"before":"8f7f94f3fb4d25c7b754863727f16f8436f12b23","after":null,"ref":"refs/heads/fix-test-invite-race-conditions","pushedAt":"2024-09-26T16:57:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"}},{"before":"ab66b21a74201c9c393c4e69516fe1c763d51858","after":"dfaceb29186c695b04f037ffa31321c7588d1270","ref":"refs/heads/main","pushedAt":"2024-09-26T16:57:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"test: fix race condition if multiple invites are sent (#863)\n\nWe have a test helper, `invite`, that invites people to projects. It\r\nworks like this:\r\n\r\n1. Tell the invitee(s) to accept any invite they receive.\r\n2. Send the invite.\r\n\r\nThis is fine for most of our tests, where only one invite will be sent\r\nto each manager. But we have [at least one test][0] where multiple\r\ninvites are sent.\r\n\r\nThat can cause a race condition. Imagine the following scenario where\r\n`invite` is called twice:\r\n\r\n1. Tell the invitee to accept any invite they receive (listener 1).\r\n2. Tell the invitee to accept any invite they receive (listener 2).\r\n3. Send the first invite.\r\n4. Both listeners fire, sending one valid \"accept\" response and one that\r\n gets dropped.\r\n4. Send the second invite. There are no listeners, and the test hangs.\r\n\r\nThis commit changes `invite`. Now, it works like this:\r\n\r\n1. Generate an invite ID.\r\n2. Tell the invitee(s) to accept any invite with that ID.\r\n3. Send the invite.\r\n\r\nAs far as I know, this isn't a problem today. But an [upcoming test\r\nchange][1] causes this to happen much more reliably, so I think this is\r\nworth fixing. (I think it's worth fixing even without that upcoming\r\nchange. Also, I tested this with those changes and it does, indeed, fix\r\nhung tests.)\r\n\r\n[0]: https://github.com/digidem/comapeo-core/blob/d2e5590aa749b690e5c07c3b64791db5e403ee29/test-e2e/sync.js#L530\r\n[1]: https://github.com/digidem/comapeo-core/pull/856","shortMessageHtmlLink":"test: fix race condition if multiple invites are sent (#863)"}},{"before":"a7a3ecd5fd9102d991a6f22011a04c3e01bc8281","after":"b1fad02d7a50532d9235c71a72cbe74bf3d8adbb","ref":"refs/heads/feat/addRemoteDetectionAlertDataType","pushedAt":"2024-09-26T16:50:12.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"tomasciccola","name":null,"path":"/tomasciccola","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/117094913?s=80&v=4"},"commit":{"message":"Merge branch 'main' of github.com:digidem/comapeo-core into feat/addRemoteDetectionAlertDataType","shortMessageHtmlLink":"Merge branch 'main' of github.com:digidem/comapeo-core into feat/addR…"}},{"before":"eedd446bcb1a45142039207200458a2a2949206e","after":"a7a3ecd5fd9102d991a6f22011a04c3e01bc8281","ref":"refs/heads/feat/addRemoteDetectionAlertDataType","pushedAt":"2024-09-26T16:48:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tomasciccola","name":null,"path":"/tomasciccola","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/117094913?s=80&v=4"},"commit":{"message":"udpate 'remoteDetectionAlert' fixture with geometry","shortMessageHtmlLink":"udpate 'remoteDetectionAlert' fixture with geometry"}},{"before":"2123d7e90c83f528b0bf482889c927602d9dd165","after":null,"ref":"refs/heads/move-unit-tests-to-test-folder","pushedAt":"2024-09-26T14:24:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"}},{"before":"143fa7a4f4993e03fb79225a411e806d07e5caeb","after":"ab66b21a74201c9c393c4e69516fe1c763d51858","ref":"refs/heads/main","pushedAt":"2024-09-26T14:24:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"chore: move unit tests from `tests/` to `test/` (#868)\n\nThis is a simple rename.\r\n\r\nI did this so that we could match [Node's convention][0]:\r\n\r\n> If a directory named `test` is encountered, the test runner will\r\n> search it recursively for all all `.js`, `.cjs`, and `.mjs` files. All\r\n> of these files are treated as test files, and do not need to match the\r\n> specific naming convention detailed below. This is to accommodate\r\n> projects that place all of their tests in a single `test` directory.\r\n\r\nNotice that `npm run test:unit` now just runs `node --test` with no\r\narguments.\r\n\r\n[0]: https://nodejs.org/docs/latest-v20.x/api/test.html#running-tests-from-the-command-line","shortMessageHtmlLink":"chore: move unit tests from tests/ to test/ (#868)"}},{"before":"b744890bce405d005e1f3ff349d411ce992f2d59","after":"2123d7e90c83f528b0bf482889c927602d9dd165","ref":"refs/heads/move-unit-tests-to-test-folder","pushedAt":"2024-09-26T14:07:43.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"Merge branch 'main' into move-unit-tests-to-test-folder","shortMessageHtmlLink":"Merge branch 'main' into move-unit-tests-to-test-folder"}},{"before":"b27270e11e52e4cec2161a3db360944e5b05b399","after":null,"ref":"refs/heads/speed-up-memberapi-getmany","pushedAt":"2024-09-26T14:05:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"}},{"before":"267fd69d9b177a9304d21949a00877cf49d25046","after":"143fa7a4f4993e03fb79225a411e806d07e5caeb","ref":"refs/heads/main","pushedAt":"2024-09-26T14:05:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"perf: speed up member list function (#867)\n\nPreviously, `MemberApi.prototype.getMany` would iterate through\r\n`allDeviceInfo` for every role.\r\n\r\nNow, it only iterates through `allDeviceInfo` once.","shortMessageHtmlLink":"perf: speed up member list function (#867)"}},{"before":"1357bb761be1a295410263fe681df353fe7aa928","after":"eedd446bcb1a45142039207200458a2a2949206e","ref":"refs/heads/feat/addRemoteDetectionAlertDataType","pushedAt":"2024-09-26T13:57:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tomasciccola","name":null,"path":"/tomasciccola","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/117094913?s=80&v=4"},"commit":{"message":"remove old mapeo-schema","shortMessageHtmlLink":"remove old mapeo-schema"}},{"before":"068ef5a019958133065480b2b0946b4e88c8fa31","after":"1357bb761be1a295410263fe681df353fe7aa928","ref":"refs/heads/feat/addRemoteDetectionAlertDataType","pushedAt":"2024-09-26T13:54:12.000Z","pushType":"push","commitsCount":38,"pusher":{"login":"tomasciccola","name":null,"path":"/tomasciccola","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/117094913?s=80&v=4"},"commit":{"message":"Merge branch 'main' of github.com:digidem/comapeo-core into feat/addRemoteDetectionAlertDataType","shortMessageHtmlLink":"Merge branch 'main' of github.com:digidem/comapeo-core into feat/addR…"}},{"before":"956efa21492837a309dcbb912f53eadbbd2cc0f4","after":null,"ref":"refs/heads/speed-up-core-replication-stream-test","pushedAt":"2024-09-26T12:32:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"}},{"before":"e8764c49f0204427ed09c8a0ea85f77567e0af68","after":"267fd69d9b177a9304d21949a00877cf49d25046","ref":"refs/heads/main","pushedAt":"2024-09-26T12:32:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"test: speed up bitfield test slightly (#869)","shortMessageHtmlLink":"test: speed up bitfield test slightly (#869)"}},{"before":null,"after":"956efa21492837a309dcbb912f53eadbbd2cc0f4","ref":"refs/heads/speed-up-core-replication-stream-test","pushedAt":"2024-09-25T21:22:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"test: speed up bitfield test slightly\n\nSpeed up the test by about 1 second on my machine by making two changes:\n\n- Only create the blocks once, rather than on every loop.\n- Use a byte buffer instead of a string to [skip string-to-buffer\n encoding][0]\n\n[0]: https://github.com/holepunchto/hypercore/blob/16375ac22e87907b212c03d0e4a8e6b0a38f8c76/index.js#L957-L966","shortMessageHtmlLink":"test: speed up bitfield test slightly"}},{"before":null,"after":"b744890bce405d005e1f3ff349d411ce992f2d59","ref":"refs/heads/move-unit-tests-to-test-folder","pushedAt":"2024-09-25T21:02:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"chore: move unit tests from `tests/` to `test/`\n\nThis is a simple rename.\n\nI did this so that we could match [Node's convention][0]:\n\n> If a directory named `test` is encountered, the test runner will\n> search it recursively for all all `.js`, `.cjs`, and `.mjs` files. All\n> of these files are treated as test files, and do not need to match the\n> specific naming convention detailed below. This is to accommodate\n> projects that place all of their tests in a single `test` directory.\n\nNotice that `npm run test:unit` now just runs `node --test` with no\narguments.\n\n[0]: https://nodejs.org/docs/latest-v20.x/api/test.html#running-tests-from-the-command-line","shortMessageHtmlLink":"chore: move unit tests from tests/ to test/"}},{"before":null,"after":"b27270e11e52e4cec2161a3db360944e5b05b399","ref":"refs/heads/speed-up-memberapi-getmany","pushedAt":"2024-09-25T20:50:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"perf: speed up member list function\n\nPreviously, `MemberApi.prototype.getMany` would iterate through\n`allDeviceInfo` for every role.\n\nNow, it only iterates through `allDeviceInfo` once.","shortMessageHtmlLink":"perf: speed up member list function"}},{"before":"1b03ac05158051c94f5ad87098054943fa43912b","after":"8f7f94f3fb4d25c7b754863727f16f8436f12b23","ref":"refs/heads/fix-test-invite-race-conditions","pushedAt":"2024-09-25T20:29:01.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"Merge branch 'main' into fix-test-invite-race-conditions","shortMessageHtmlLink":"Merge branch 'main' into fix-test-invite-race-conditions"}},{"before":"b1fe1d8760e6b33f4bc27ab98103f4d32d501288","after":null,"ref":"refs/heads/additional-assertions-in-blocked-sync-test","pushedAt":"2024-09-25T16:20:13.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"}},{"before":"756c8475814955d69a2f97263512968a51ea3525","after":"e8764c49f0204427ed09c8a0ea85f77567e0af68","ref":"refs/heads/main","pushedAt":"2024-09-25T16:20:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"test: additional assertions in \"blocked from sync\" test (#864)\n\nWe test that blocked members shouldn't be able to sync. However, it's\r\npossible that this test had false positives if the blocked member was\r\nsimply missing from the project entirely!\r\n\r\nThis adds two assertions to make sure that the other members see the\r\nblocked one, and that they are indeed blocked.","shortMessageHtmlLink":"test: additional assertions in \"blocked from sync\" test (#864)"}},{"before":"eb6582e1b32a0ecab5813dedada243d4ca49a08a","after":null,"ref":"refs/heads/more-exact-waitforpeers","pushedAt":"2024-09-25T14:57:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"}},{"before":"063b4464919573da9f81c7920105cb0942451b38","after":"756c8475814955d69a2f97263512968a51ea3525","ref":"refs/heads/main","pushedAt":"2024-09-25T14:57:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"test: be more exact when waiting for peers (#866)\n\n`waitForPeers`, a test helper, currently checks that the *number* of\r\nconnected peers is expected. This has two problems:\r\n\r\n- If the number of connected peers is *more than needed*, it will never\r\n resolve.\r\n- If the *number* of connected peers is correct but the actual peers are\r\n different, the promise could resolve prematurely.\r\n\r\nThis snippet highlights the problem:\r\n\r\n```javascript\r\nconst managers = await createManagers(3, t)\r\nconst [a, b, c] = managers\r\n\r\nconnectPeers(managers)\r\n\r\nawait waitForPeers([a, c])\r\n```\r\n\r\nI think this is a useful change on its own, but will also make [an\r\nupcoming change][0] easier.\r\n\r\n[0]: https://github.com/digidem/comapeo-core/pull/865","shortMessageHtmlLink":"test: be more exact when waiting for peers (#866)"}},{"before":null,"after":"238a05eed6d7534577eaff089038c214e4cb98ea","ref":"refs/heads/2024-09-24-server-prototype","pushedAt":"2024-09-24T21:40:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"Remove a console.log from a test","shortMessageHtmlLink":"Remove a console.log from a test"}},{"before":null,"after":"eb6582e1b32a0ecab5813dedada243d4ca49a08a","ref":"refs/heads/more-exact-waitforpeers","pushedAt":"2024-09-24T19:07:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"EvanHahn","name":"Evan Hahn","path":"/EvanHahn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/777712?s=80&v=4"},"commit":{"message":"test: be more exact when waiting for peers\n\n`waitForPeers`, a test helper, currently checks that the *number* of\nconnected peers is expected. This has two problems:\n\n- If the number of connected peers is *more than needed*, it will never\n resolve.\n- If the *number* of connected peers is correct but the actual peers are\n different, the promise could resolve prematurely.\n\nThis snippet highlights the problem:\n\n```javascript\nconst managers = await createManagers(3, t)\nconst [a, b, c] = managers\n\nconnectPeers(managers)\n\nawait waitForPeers([a, c])\n```\n\nI think this is a useful change on its own, but will also make [an\nupcoming change][0] easier.\n\n[0]: https://github.com/digidem/comapeo-core/pull/865","shortMessageHtmlLink":"test: be more exact when waiting for peers"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yNlQxOTo0MjozOC4wMDAwMDBazwAAAATB5U78","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yNFQxOTowNzoyNi4wMDAwMDBazwAAAAS_iJKK"}},"title":"Activity · digidem/comapeo-core"}