{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":53632140,"defaultBranch":"master","name":"micro","ownerLogin":"zyedidia","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-03-11T02:06:28.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/5513065?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1697927778.0","currentOid":""},"activityList":{"items":[{"before":"1f71667616d2d0149e42f99a5d73ca34f4f6dd51","after":"762e31f2fd156284c7538ff6741ead9de5f52b3e","ref":"refs/heads/master","pushedAt":"2024-07-16T04:21:47.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Merge pull request #3333 from masmu/feature/reset-search\n\nImplemented `ResetSearch` and allow action chaining of `FindNext` and `FindPrevious`","shortMessageHtmlLink":"Merge pull request #3333 from masmu/feature/reset-search"}},{"before":"a10624cc3360e29cd2dfdad6181625ad27e9c314","after":"1f71667616d2d0149e42f99a5d73ca34f4f6dd51","ref":"refs/heads/master","pushedAt":"2024-07-15T07:35:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmaluka","name":"Dmytro Maluka","path":"/dmaluka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/147101?s=80&v=4"},"commit":{"message":"Fix termpane not closing automatically after terminal job finished (#3386)\n\nFix regression caused by the fix 0de16334d384 (\"micro: Don't forward\r\nnil events into the sub event handler\"): even if the terminal was\r\nstarted with `wait` set to false, it is not closed immediately after\r\nit finished its job, instead it shows \"Press enter to close\".\r\n\r\nThe reason is that since the commit b68461cf72cb (\"Terminal plugin\r\ncallback support\") the termpane code has been (slightly hackily) relying\r\non nil events as notifications to close the terminal after it finished\r\nits job. So fix this by introducing a separate CloseTerms() function\r\nfor notifying termpanes about that, decoupled from HandleEvent() which\r\nis for tcell events only.","shortMessageHtmlLink":"Fix termpane not closing automatically after terminal job finished (#…"}},{"before":"dc7759204bd9af8ed7d8acfd340a367ec3cfbf74","after":"a10624cc3360e29cd2dfdad6181625ad27e9c314","ref":"refs/heads/master","pushedAt":"2024-07-07T08:20:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmaluka","name":"Dmytro Maluka","path":"/dmaluka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/147101?s=80&v=4"},"commit":{"message":"Fixing tabmove not working properly when there's a split in pane (#3371)","shortMessageHtmlLink":"Fixing tabmove not working properly when there's a split in pane (#3371)"}},{"before":"882b98f3f1e0c9799ab367f4f6166586b2e5be62","after":"dc7759204bd9af8ed7d8acfd340a367ec3cfbf74","ref":"refs/heads/master","pushedAt":"2024-06-28T08:37:41.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"dmaluka","name":"Dmytro Maluka","path":"/dmaluka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/147101?s=80&v=4"},"commit":{"message":"Merge pull request #3357 from niten94/shell-sigint-recv\n\nReceive SIGINT only in RunInteractiveShell","shortMessageHtmlLink":"Merge pull request #3357 from niten94/shell-sigint-recv"}},{"before":"0fa4a3a8db09f1690dc171fbe8b57dd5f052b35d","after":"882b98f3f1e0c9799ab367f4f6166586b2e5be62","ref":"refs/heads/master","pushedAt":"2024-06-21T14:53:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Fix typo in README.md (#3361)","shortMessageHtmlLink":"Fix typo in README.md (#3361)"}},{"before":"a3e25e3701a6fb752cb65bd17d201b04f1cc8bd0","after":"0fa4a3a8db09f1690dc171fbe8b57dd5f052b35d","ref":"refs/heads/master","pushedAt":"2024-06-20T21:24:51.000Z","pushType":"pr_merge","commitsCount":7,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Merge pull request #3354 from JoeKar/feature/action-nightly\n\nworkflows: General improvements","shortMessageHtmlLink":"Merge pull request #3354 from JoeKar/feature/action-nightly"}},{"before":"f0f4afa2729d09a174bfc02f601ef72fc49ed41e","after":"a3e25e3701a6fb752cb65bd17d201b04f1cc8bd0","ref":"refs/heads/master","pushedAt":"2024-06-19T19:35:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"docs: Improve plugin documentation (#3240)\n\n* docs: Improve documentation\r\n\r\n`commands.md`\r\n - documented the `reopen` command\r\n - improved the documentation of the `reload` command\r\n\r\n`plugins.md`\r\n - added direct links to relevant external documentation pages\r\n - rewrote some sections\r\n - documented missing functions/callbacks\r\n - added a note about installing/managing plugins\r\n\r\n* Omit number of default plugins\r\n\r\nCo-authored-by: Jöran Karl <3951388+JoeKar@users.noreply.github.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Jöran Karl <3951388+JoeKar@users.noreply.github.com>","shortMessageHtmlLink":"docs: Improve plugin documentation (#3240)"}},{"before":"3fb34cf4f26520e3036ad86204d74cfc45d98dd3","after":"f0f4afa2729d09a174bfc02f601ef72fc49ed41e","ref":"refs/heads/master","pushedAt":"2024-06-19T16:56:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Added a way to install the program in ALT Linux (#3348)","shortMessageHtmlLink":"Added a way to install the program in ALT Linux (#3348)"}},{"before":"dc62dd9d829b3860f31012e3dff4cc3fb3792a2c","after":"3fb34cf4f26520e3036ad86204d74cfc45d98dd3","ref":"refs/heads/master","pushedAt":"2024-06-18T16:10:30.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"dmaluka","name":"Dmytro Maluka","path":"/dmaluka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/147101?s=80&v=4"},"commit":{"message":"Merge pull request #3355 from dmaluka/tab-mouse-events-fix\n\nFix non-working mouse events at the top line of the screen","shortMessageHtmlLink":"Merge pull request #3355 from dmaluka/tab-mouse-events-fix"}},{"before":"ced6d9487a4dfac12f6f36781914147cf1a992e5","after":"dc62dd9d829b3860f31012e3dff4cc3fb3792a2c","ref":"refs/heads/master","pushedAt":"2024-06-17T10:59:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"autosave: don't save unmodified buffer (#3356)\n\nSaving a buffer every time without even checking if it was modified\r\n(i.e. even when the user is not editing the buffer) is wasteful,\r\nespecially if the autosave period is set to a short value.","shortMessageHtmlLink":"autosave: don't save unmodified buffer (#3356)"}},{"before":"352580a50aa40acf88df321c51a3a5b72c5099d3","after":"ced6d9487a4dfac12f6f36781914147cf1a992e5","ref":"refs/heads/master","pushedAt":"2024-06-15T12:35:29.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Merge pull request #3334 from JoeKar/feature/action-nightly\n\nnightly: Use GitHub Actions for scheduled builds","shortMessageHtmlLink":"Merge pull request #3334 from JoeKar/feature/action-nightly"}},{"before":"55f45ce8ff08a7ede4d4a125c8ea06de5da9da61","after":"352580a50aa40acf88df321c51a3a5b72c5099d3","ref":"refs/heads/master","pushedAt":"2024-06-14T17:52:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"detect .pyw files (#3346)","shortMessageHtmlLink":"detect .pyw files (#3346)"}},{"before":"650c0a8db0dc755a363abf2f697e3f3122dd2da3","after":"55f45ce8ff08a7ede4d4a125c8ea06de5da9da61","ref":"refs/heads/master","pushedAt":"2024-06-13T17:57:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Fix highlighting of `load` and `reference` directives in Cake syntax. (#3341)","shortMessageHtmlLink":"Fix highlighting of load and reference directives in Cake syntax. ("}},{"before":"bad1a4b8ca2d670e58db6a3fe296b2f7cfb76c15","after":"650c0a8db0dc755a363abf2f697e3f3122dd2da3","ref":"refs/heads/master","pushedAt":"2024-06-12T17:23:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Update README.md to include nix install and flox install (#3340)\n\n* Update README.md to include nix install and flox install\r\n\r\n* Update README to indent Linux install section","shortMessageHtmlLink":"Update README.md to include nix install and flox install (#3340)"}},{"before":"5540cae61006a5c436a645b5239a308bca343bc9","after":"bad1a4b8ca2d670e58db6a3fe296b2f7cfb76c15","ref":"refs/heads/master","pushedAt":"2024-06-11T20:00:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Update README.md to add brew install on MacOS (#3338)\n\nAdd installation option for Homebrew on MacOS. Homebrew is a popular package manager on MacOS - likely more popular than MacPorts.","shortMessageHtmlLink":"Update README.md to add brew install on MacOS (#3338)"}},{"before":"9face7484eda328f61a9502b05bd9a2332310d7b","after":"5540cae61006a5c436a645b5239a308bca343bc9","ref":"refs/heads/master","pushedAt":"2024-06-10T19:01:27.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Merge pull request #3337 from dmaluka/keyrune-usage-fix\n\nFix usage of tcell's `Rune()`","shortMessageHtmlLink":"Merge pull request #3337 from dmaluka/keyrune-usage-fix"}},{"before":"9eb8782ff2ce4b2bab358317bcaeb6ea11efb56c","after":"9face7484eda328f61a9502b05bd9a2332310d7b","ref":"refs/heads/master","pushedAt":"2024-06-09T15:57:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmaluka","name":"Dmytro Maluka","path":"/dmaluka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/147101?s=80&v=4"},"commit":{"message":"Update Zig syntax to handle ZON (Zig Object Notation) files. (#3329)","shortMessageHtmlLink":"Update Zig syntax to handle ZON (Zig Object Notation) files. (#3329)"}},{"before":"46e55c8e9134354d534d5610508f3039112c9467","after":"9eb8782ff2ce4b2bab358317bcaeb6ea11efb56c","ref":"refs/heads/master","pushedAt":"2024-06-04T22:56:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmaluka","name":"Dmytro Maluka","path":"/dmaluka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/147101?s=80&v=4"},"commit":{"message":"Rework FindMatchingBrace() interface and implementation (#3319)\n\nInstead of passing a single brace pair to FindMatchingBrace(), make it\r\ntraverse all brace pairs in buffer.BracePairs on its own.\r\n\r\nThis has the following advantages:\r\n\r\n1. Makes FindMatchingBrace() easier to use, in particular much easier\r\n to use from Lua.\r\n\r\n2. Lets FindMatchingBrace() ensure that we use just one matching brace -\r\n the higher-priority one. This fixes the following issues:\r\n\r\n ([foo]bar)\r\n ^\r\n\r\nwhen the cursor is on `[`:\r\n\r\n- Both `[]` and `()` pairs are highlighted, whereas the expected\r\n behavior is that only one pair is highlighted - the one that the\r\n JumpToMatchingBrace action would jump to.\r\n\r\n- JumpToMatchingBrace action incorrectly jumps to `)` instead of\r\n `]` (which should take higher priority in this case).\r\n\r\nIn contrast, with `((foo)bar)` it works correctly.","shortMessageHtmlLink":"Rework FindMatchingBrace() interface and implementation (#3319)"}},{"before":"dd913df9e9b92bebeac26b22068cc30ffe1f8804","after":"46e55c8e9134354d534d5610508f3039112c9467","ref":"refs/heads/master","pushedAt":"2024-06-04T19:10:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Fixed trailing line spaces being ignored by word- or subword-jumps (#3321)","shortMessageHtmlLink":"Fixed trailing line spaces being ignored by word- or subword-jumps (#…"}},{"before":"e9bd1b35f4ee62352a361fdec94684accd6f4874","after":"dd913df9e9b92bebeac26b22068cc30ffe1f8804","ref":"refs/heads/master","pushedAt":"2024-06-02T18:00:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmaluka","name":"Dmytro Maluka","path":"/dmaluka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/147101?s=80&v=4"},"commit":{"message":"Reordered prompt done callback to avoid accessing out of bound history (#3318)\n\n* Reordered prompt done callback to avoid accessing out of bound history\r\n\r\n* Formatting","shortMessageHtmlLink":"Reordered prompt done callback to avoid accessing out of bound history ("}},{"before":"35630aa736f85f21d70bfba96a86c30ae2f4baf0","after":"e9bd1b35f4ee62352a361fdec94684accd6f4874","ref":"refs/heads/master","pushedAt":"2024-05-22T20:21:06.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Merge pull request #3270 from niten94/sh-break-continue\n\nAdd, move commands in shell syntax file","shortMessageHtmlLink":"Merge pull request #3270 from niten94/sh-break-continue"}},{"before":"917650826a9da1b8d7223d2e3b9b1ad5ac845aa2","after":"35630aa736f85f21d70bfba96a86c30ae2f4baf0","ref":"refs/heads/master","pushedAt":"2024-05-22T04:24:19.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Merge pull request #2665 from masmu/feature/sub-words\n\nImplemented sub-word cursor movement","shortMessageHtmlLink":"Merge pull request #2665 from masmu/feature/sub-words"}},{"before":"b70f0eb113b3b2e831e87be4d335c5b86f0330d3","after":"917650826a9da1b8d7223d2e3b9b1ad5ac845aa2","ref":"refs/heads/master","pushedAt":"2024-05-14T16:03:07.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"dmaluka","name":"Dmytro Maluka","path":"/dmaluka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/147101?s=80&v=4"},"commit":{"message":"Merge pull request #3291 from dmaluka/diffgutter-cleanup\n\nDiffgutter: simplify + fix race","shortMessageHtmlLink":"Merge pull request #3291 from dmaluka/diffgutter-cleanup"}},{"before":"1f51d0b9e2ae7722eda60c5a82de2ab1ea9b16a2","after":"b70f0eb113b3b2e831e87be4d335c5b86f0330d3","ref":"refs/heads/master","pushedAt":"2024-05-14T16:01:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmaluka","name":"Dmytro Maluka","path":"/dmaluka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/147101?s=80&v=4"},"commit":{"message":"Add onAnyEvent callback (#3244)\n\nImplement a radical approach to improving abilities of plugins to detect\r\nand handle various changes of micro's state: add onAnyEvent callback\r\nwhich is called, literally, after any event. A plugin can use this\r\ncallback to compare a state after the previous event and after the\r\ncurrent event, and thus is able to catch various events that cannot be\r\ndetected using other callbacks.\r\n\r\nSome examples of such events:\r\n\r\n- change of current working directory\r\n- switching cursor focus between a bufpane and the command bar\r\n- change of message text in the status bar","shortMessageHtmlLink":"Add onAnyEvent callback (#3244)"}},{"before":"385437d400e9784beede6aace682e1943da8965a","after":"1f51d0b9e2ae7722eda60c5a82de2ab1ea9b16a2","ref":"refs/heads/master","pushedAt":"2024-04-27T21:22:57.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Merge pull request #3271 from JoeKar/fix/inactive-mouse-release\n\nFix lost mouse release events in case the pane becomes inactive","shortMessageHtmlLink":"Merge pull request #3271 from JoeKar/fix/inactive-mouse-release"}},{"before":"1c35f3dc395cef4b6ea9b02165e428a231723c9c","after":"385437d400e9784beede6aace682e1943da8965a","ref":"refs/heads/master","pushedAt":"2024-04-26T15:37:19.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Merge pull request #3266 from JoeKar/fix/keysequence-comparison\n\nbindings: Correct `KeySequenceEvent` comparison (fix crash)","shortMessageHtmlLink":"Merge pull request #3266 from JoeKar/fix/keysequence-comparison"}},{"before":"ff5b1476392e101df0d06e215ecd45bd89c041de","after":"1c35f3dc395cef4b6ea9b02165e428a231723c9c","ref":"refs/heads/master","pushedAt":"2024-04-26T15:36:12.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"JoeKar","name":"Jöran Karl","path":"/JoeKar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3951388?s=80&v=4"},"commit":{"message":"Merge pull request #3261 from JoeKar/fix/command-term\n\naction: Stop processing chained actions/commands in the moment the current `Pane` is not a `BufPane` (fix crash)","shortMessageHtmlLink":"Merge pull request #3261 from JoeKar/fix/command-term"}},{"before":"3f810c24d231daaee00239a919feb415e864653f","after":"ff5b1476392e101df0d06e215ecd45bd89c041de","ref":"refs/heads/master","pushedAt":"2024-04-25T19:59:44.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"dmaluka","name":"Dmytro Maluka","path":"/dmaluka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/147101?s=80&v=4"},"commit":{"message":"Merge pull request #3267 from dmaluka/dokeyevent-improvements\n\nSmall fixes and improvements for InfoPane's key event handling","shortMessageHtmlLink":"Merge pull request #3267 from dmaluka/dokeyevent-improvements"}},{"before":"147943837db6f4f786aa0a15924b655285f57dca","after":"3f810c24d231daaee00239a919feb415e864653f","ref":"refs/heads/master","pushedAt":"2024-04-25T19:58:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmaluka","name":"Dmytro Maluka","path":"/dmaluka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/147101?s=80&v=4"},"commit":{"message":"Fix Deselect() after mouse selection (#3268)\n\nEnsure that the selection start is always before the selection end,\r\nregardless of the direction of a mouse selection, to make\r\nh.Cursor.Deselect() handle its `start` argument correctly.\r\n\r\nThis makes the cursor behavior after mouse selections consistent with\r\nthe cursor behavior after keyboard selections.\r\n\r\nFixes #3055","shortMessageHtmlLink":"Fix Deselect() after mouse selection (#3268)"}},{"before":"24406a5ae80f0742f6970aad0e083f64bb421551","after":"147943837db6f4f786aa0a15924b655285f57dca","ref":"refs/heads/master","pushedAt":"2024-04-25T00:27:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmaluka","name":"Dmytro Maluka","path":"/dmaluka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/147101?s=80&v=4"},"commit":{"message":"Fix cursor moving down when selection exist. Solves (#3087) (#3091)\n\nPreviously `CursorDown` function called `Deselect` with a wrong\r\nargument which lead to the situation when cursor was moved to the\r\nstart instead of the end of the selection\r\n\r\nSigned-off-by: Yevhen Babiichuk (DustDFG) ","shortMessageHtmlLink":"Fix cursor moving down when selection exist. Solves (#3087) (#3091)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEgFkK8AA","startCursor":null,"endCursor":null}},"title":"Activity · zyedidia/micro"}