{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":764840732,"defaultBranch":"master","name":"shpool","ownerLogin":"shell-pool","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-02-28T20:03:59.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/153937019?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1719862281.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"272c7614f9d8274e2c629a1c27d604ef6dd57b96","ref":"refs/heads/tweak-bug-report-template","pushedAt":"2024-07-01T19:31:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"tweak bug report template\n\nMostly, I want to instruct people on how to pull logs\nwithout the journalctl prefix since the logging framework\nalready adds a log prefix. I took the opportunity to tweak\nsome phrasing as well though.","shortMessageHtmlLink":"tweak bug report template"}},{"before":"3659623b0e227f845f167796fb7a43ed8ed84c1e","after":"bb9c276dd66daf4d75734125ae962d12a7ed657b","ref":"refs/heads/automate-release","pushedAt":"2024-07-01T18:50:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Aetf","name":"Aetf","path":"/Aetf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1519759?s=80&v=4"},"commit":{"message":"ci: add automated release and publish workflow\n\n* Enable release-plz to create release PRs automatically\n* Enable automatic binary builds on Linux\n* Enable version updates for rust and github actions using dependabot\n\nRequired repo secrets are\n\n* `RELEASE_PLZ_APP_ID` and `RELEASE_PLZ_APP_PRIVATE_KEY` for the GitHub\n App. (See\n https://release-plz.ieni.dev/docs/github/token#use-a-github-app for\n setup)\n* `CARGO_REGISTRY_TOKEN` for publishing to crates.io\n\nGitHub repo further needs to be configured to allow GitHub actions to\ncreate and approve pull requets. See\nhttps://release-plz.ieni.dev/docs/github/quickstart#1-change-github-actions-permissions","shortMessageHtmlLink":"ci: add automated release and publish workflow"}},{"before":"20dd1c0761f9c625fec27e8d32608ff1a744e6a9","after":"905e376664a49d4d048b55b5b85bb7eee18d794f","ref":"refs/heads/kitty-term-bug","pushedAt":"2024-07-01T17:44:44.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"Merge branch 'master' into kitty-term-bug","shortMessageHtmlLink":"Merge branch 'master' into kitty-term-bug"}},{"before":"cae705c9e9c2050de87f1be54d39ae927227f24b","after":"14d289ae62860054ea63966f0b393130f7827c11","ref":"refs/heads/ban-whitespace-in-session-names","pushedAt":"2024-07-01T17:44:21.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"Merge branch 'master' into ban-whitespace-in-session-names","shortMessageHtmlLink":"Merge branch 'master' into ban-whitespace-in-session-names"}},{"before":"8596a21cc659ab190a0296ce51b5d26ce5a92622","after":"05f79e1a3cb16cdced80e714b2e1504bd1b42e77","ref":"refs/heads/add-motd-pager-debounce","pushedAt":"2024-07-01T17:44:05.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"Merge branch 'master' into add-motd-pager-debounce","shortMessageHtmlLink":"Merge branch 'master' into add-motd-pager-debounce"}},{"before":"aa66265f042b4d32cb230a78ab6c868121d6d240","after":null,"ref":"refs/heads/fix-blank-prompt","pushedAt":"2024-07-01T13:41:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"}},{"before":"d28e986c1f3d5456cf314ba1d6be64c04accfdff","after":"7d76d92bdc4244ac1d9c443e7c2fcfafee3ad8f2","ref":"refs/heads/master","pushedAt":"2024-07-01T13:41:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"avoid prompt setup code when prompt_prefix = \"\"\n\nThis patch makes shpool truely do nothing when the user\nhas blanked out their prompt prefix. Previously, we were\njust not running any shell setup code, but we were still\nemitting sentinals. This is bad because it means\nthat users who have written interactive code in their\nstartup files cannot use shpool at all.\n\nFixes #64","shortMessageHtmlLink":"avoid prompt setup code when prompt_prefix = \"\""}},{"before":"afeae1d8ee2c02844e97311ec699eae7d321b9fe","after":null,"ref":"refs/heads/link-troubleshooting-in-readme","pushedAt":"2024-07-01T13:41:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"}},{"before":"9d33d0f4fc2bf727df3d991856e303e262d143cc","after":"d28e986c1f3d5456cf314ba1d6be64c04accfdff","ref":"refs/heads/master","pushedAt":"2024-07-01T13:41:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"link to the troubleshoting guide from the README\n\nThis patch links to the troubleshooting wiki page from\nthe README. It to help address #64.","shortMessageHtmlLink":"link to the troubleshoting guide from the README"}},{"before":"24624a4d5c68899ccaf062c0042952b2ddc4f2b0","after":"3659623b0e227f845f167796fb7a43ed8ed84c1e","ref":"refs/heads/automate-release","pushedAt":"2024-06-28T22:11:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Aetf","name":"Aetf","path":"/Aetf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1519759?s=80&v=4"},"commit":{"message":"ci: add automated release and publish workflow\n\n* Enable release-plz to create release PRs automatically\n* Enable automatic binary builds on Linux\n* Enable version updates for rust and github actions using dependabot\n\nRequired repo secrets are\n\n* `RELEASE_PLZ_APP_ID` and `RELEASE_PLZ_APP_PRIVATE_KEY` for the GitHub\n App. (See\n https://release-plz.ieni.dev/docs/github/token#use-a-github-app for\n setup)\n* `CARGO_REGISTRY_TOKEN` for publishing to crates.io\n\nGitHub repo further needs to be configured to allow GitHub actions to\ncreate and approve pull requets. See\nhttps://release-plz.ieni.dev/docs/github/quickstart#1-change-github-actions-permissions","shortMessageHtmlLink":"ci: add automated release and publish workflow"}},{"before":null,"after":"24624a4d5c68899ccaf062c0042952b2ddc4f2b0","ref":"refs/heads/automate-release","pushedAt":"2024-06-28T22:03:55.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Aetf","name":"Aetf","path":"/Aetf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1519759?s=80&v=4"},"commit":{"message":"ci: add automated release and publish workflow\n\n* Enable release-plz to create release PRs automatically\n* Enable automatic binary builds on Linux\n* Enable version updates for rust and github actions using dependabot\n\nRequired repo secrets are\n\n* `RELEASE_PLZ_APP_ID` and `RELEASE_PLZ_APP_PRIVATE_KEY` for the GitHub\n App. (See\n https://release-plz.ieni.dev/docs/github/token#use-a-github-app for\n setup)\n* `CARGO_REGISTRY_TOKEN` for publishing to crates.io\n\nGitHub repo further needs to be configured to allow GitHub actions to\ncreate and approve pull requets. See\nhttps://release-plz.ieni.dev/docs/github/quickstart#1-change-github-actions-permissions","shortMessageHtmlLink":"ci: add automated release and publish workflow"}},{"before":"d4c1daeddf0dcc754e7933b735793224a17030d4","after":null,"ref":"refs/heads/system-config","pushedAt":"2024-06-25T19:56:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Aetf","name":"Aetf","path":"/Aetf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1519759?s=80&v=4"}},{"before":"8d4610624a0bfc1bf04eaa278c7ba96b51d1ddb2","after":"9d33d0f4fc2bf727df3d991856e303e262d143cc","ref":"refs/heads/master","pushedAt":"2024-06-25T19:56:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Aetf","name":"Aetf","path":"/Aetf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1519759?s=80&v=4"},"commit":{"message":"Configuration loading overhaul (#58)\n\n* Gracefully handle missing XDG_RUNTIME_DIR env var in tests\r\n\r\n* Configuration loading overhaul\r\n\r\n- Simple merging logic for `Config`\r\n- Load config from system-wide locations (fixes #30)\r\n- Dynamically pick up changes from newly created config files (fixes #29)\r\n- Use `directories-rs` to find user level config directory path\r\n\r\nA new `ConfigWatcher` is introduced, which opportunistically watches the\r\nclosest existing parent of target paths and rewatches dynamically accordingly.\r\nThis way we can get notifications for new file creations in addition to\r\nmodifications.\r\n\r\n`ConfigWatcher` also does debounce (100ms by default) to only trigger\r\none config reload for multiple events in a short time period.\r\n\r\nThe core idea of the watcher is as follow:\r\n\r\nGiven a watching target path `/base/sub/config.toml`,\r\na) readd watches if any segment in the path is created/removed;\r\nb) reload config only if the event is about the full target path.\r\n\r\nThe actual implementation extends this idea to handle multiple targets.\r\nPlease refer to `config_watcher.rs` for details and extensive test cases.\r\n\r\nA few design points:\r\n\r\n- Notify event handling is done in a separate thread, rather than in\r\n notify's internal event handler thread, because the code is more\r\n readable and calling unwatch/watch in that thread may lead to deadlock\r\n in some cases. (notify-rs/notify#410, notify-rs/notify#463)\r\n- For simplicity, `ConfigWatcher` doesn't provide infomation about\r\n which exact config file was changed, assuming a reload would need to\r\n read all config files anyway.","shortMessageHtmlLink":"Configuration loading overhaul (#58)"}},{"before":"bada7b9040d72acc31066e4aa898b9a5e2bdcc44","after":"d4c1daeddf0dcc754e7933b735793224a17030d4","ref":"refs/heads/system-config","pushedAt":"2024-06-25T19:46:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Aetf","name":"Aetf","path":"/Aetf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1519759?s=80&v=4"},"commit":{"message":"Configuration loading overhaul\n\n- Simple merging logic for `Config`\n- Load config from system-wide locations (fixes #30)\n- Dynamically pick up changes from newly created config files (fixes #29)\n- Use `directories-rs` to find user level config directory path\n\nA new `ConfigWatcher` is introduced, which opportunistically watches the\nclosest existing parent of target paths and rewatches dynamically accordingly.\nThis way we can get notifications for new file creations in addition to\nmodifications.\n\n`ConfigWatcher` also does debounce (100ms by default) to only trigger\none config reload for multiple events in a short time period.\n\nThe core idea of the watcher is as follow:\n\nGiven a watching target path `/base/sub/config.toml`,\na) readd watches if any segment in the path is created/removed;\nb) reload config only if the event is about the full target path.\n\nThe actual implementation extends this idea to handle multiple targets.\nPlease refer to `config_watcher.rs` for details and extensive test cases.\n\nA few design points:\n\n- Notify event handling is done in a separate thread, rather than in\n notify's internal event handler thread, because the code is more\n readable and calling unwatch/watch in that thread may lead to deadlock\n in some cases. (notify-rs/notify#410, notify-rs/notify#463)\n- For simplicity, `ConfigWatcher` doesn't provide infomation about\n which exact config file was changed, assuming a reload would need to\n read all config files anyway.","shortMessageHtmlLink":"Configuration loading overhaul"}},{"before":"121e4ce6e5ba6f12aa76354a07b57ab544970121","after":"bada7b9040d72acc31066e4aa898b9a5e2bdcc44","ref":"refs/heads/system-config","pushedAt":"2024-06-25T19:31:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Aetf","name":"Aetf","path":"/Aetf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1519759?s=80&v=4"},"commit":{"message":"Configuration loading overhaul\n\n- Simple merging logic for `Config`\n- Load config from system-wide locations (fixes #30)\n- Dynamically pick up changes from newly created config files (fixes #29)\n- Use `directories-rs` to find user level config directory path\n\nA new `ConfigWatcher` is introduced, which opportunistically watches the\nclosest existing parent of target paths and rewatches dynamically accordingly.\nThis way we can get notifications for new file creations in addition to\nmodifications.\n\n`ConfigWatcher` also does debounce (100ms by default) to only trigger\none config reload for multiple events in a short time period.\n\nThe core idea of the watcher is as follow:\n\nGiven a watching target path `/base/sub/config.toml`,\na) readd watches if any segment in the path is created/removed;\nb) reload config only if the event is about the full target path.\n\nThe actual implementation extends this idea to handle multiple targets.\nPlease refer to `config_watcher.rs` for details and extensive test cases.\n\nA few design points:\n\n- Notify event handling is done in a separate thread, rather than in\n notify's internal event handler thread, because the code is more\n readable and calling unwatch/watch in that thread may lead to deadlock\n in some cases. (notify-rs/notify#410, notify-rs/notify#463)\n- For simplicity, `ConfigWatcher` doesn't provide infomation about\n which exact config file was changed, assuming a reload would need to\n read all config files anyway.","shortMessageHtmlLink":"Configuration loading overhaul"}},{"before":"433df56db8f279702e55cee52de5ed0f26bf791a","after":"aa66265f042b4d32cb230a78ab6c868121d6d240","ref":"refs/heads/fix-blank-prompt","pushedAt":"2024-06-25T16:18:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"avoid prompt setup code when prompt_prefix = \"\"\n\nThis patch makes shpool truely do nothing when the user\nhas blanked out their prompt prefix. Previously, we were\njust not running any shell setup code, but we were still\nemitting sentinals. This is bad because it means\nthat users who have written interactive code in their\nstartup files cannot use shpool at all.\n\nFixes #64","shortMessageHtmlLink":"avoid prompt setup code when prompt_prefix = \"\""}},{"before":null,"after":"433df56db8f279702e55cee52de5ed0f26bf791a","ref":"refs/heads/fix-blank-prompt","pushedAt":"2024-06-25T16:13:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"avoid prompt setup code when prompt_prefix = \"\"\n\nThis patch makes shpool truely do nothing when the user\nhas blanked out their prompt prefix. Previously, we were\njust not running any shell setup code, but we were still\nemitting sentinals. This is bad because it means\nthat users who have written interactive code in their\nstartup files cannot use shpool at all.\n\nFixes #64","shortMessageHtmlLink":"avoid prompt setup code when prompt_prefix = \"\""}},{"before":null,"after":"afeae1d8ee2c02844e97311ec699eae7d321b9fe","ref":"refs/heads/link-troubleshooting-in-readme","pushedAt":"2024-06-25T15:51:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"link to the troubleshoting guide from the README\n\nThis patch links to the troubleshooting wiki page from\nthe README. It to help address #64.","shortMessageHtmlLink":"link to the troubleshoting guide from the README"}},{"before":"33efabd1331b52b932f9d3c35432db1439af9e8c","after":"8596a21cc659ab190a0296ce51b5d26ce5a92622","ref":"refs/heads/add-motd-pager-debounce","pushedAt":"2024-06-25T15:24:07.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"teach motd.pager to allow debouncing\n\nThis should make the motd pager mode much less annoying\nby allowing people to set up their shpool to only show the motd\nevery day or every few days.\n\nCloses #31","shortMessageHtmlLink":"teach motd.pager to allow debouncing"}},{"before":"0e09941203e07a7ffe018657ae8a0300bf046b5a","after":"33efabd1331b52b932f9d3c35432db1439af9e8c","ref":"refs/heads/add-motd-pager-debounce","pushedAt":"2024-06-25T15:17:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"teach motd.pager to allow debouncing\n\nThis should make the motd pager mode much less annoying\nby allowing people to set up their shpool to only show the motd\nevery day or every few days.\n\nCloses #31","shortMessageHtmlLink":"teach motd.pager to allow debouncing"}},{"before":null,"after":"0e09941203e07a7ffe018657ae8a0300bf046b5a","ref":"refs/heads/add-motd-pager-debounce","pushedAt":"2024-06-25T15:16:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"teach motd.pager to allow debouncing\n\nThis should make the motd pager mode much less annoying\nby allowing people to set up their shpool to only show the motd\nevery day or every few days.","shortMessageHtmlLink":"teach motd.pager to allow debouncing"}},{"before":"179e0e672dbd83c4bd212a8b9bde56be5c9a34c4","after":"121e4ce6e5ba6f12aa76354a07b57ab544970121","ref":"refs/heads/system-config","pushedAt":"2024-06-24T04:18:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Aetf","name":"Aetf","path":"/Aetf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1519759?s=80&v=4"},"commit":{"message":"Configuration loading overhaul\n\n- Simple merging logic for `Config`\n- Load config from system-wide locations (fixes #30)\n- Dynamically pick up changes from newly created config files (fixes #29)\n- Use `directories-rs` to find user level config directory path\n\nA new `ConfigWatcher` is introduced, which opportunistically watches the\nclosest existing parent of target paths and rewatches dynamically accordingly.\nThis way we can get notifications for new file creations in addition to\nmodifications.\n\n`ConfigWatcher` also does debounce (100ms by default) to only trigger\none config reload for multiple events in a short time period.\n\nThe core idea of the watcher is as follow:\n\nGiven a watching target path `/base/sub/config.toml`,\na) readd watches if any segment in the path is created/removed;\nb) reload config only if the event is about the full target path.\n\nThe actual implementation extends this idea to handle multiple targets.\nPlease refer to `config_watcher.rs` for details and extensive test cases.\n\nA few design points:\n\n- Notify event handling is done in a separate thread, rather than in\n notify's internal event handler thread, because the code is more\n readable and calling unwatch/watch in that thread may lead to deadlock\n in some cases. (notify-rs/notify#410, notify-rs/notify#463)\n- For simplicity, `ConfigWatcher` doesn't provide infomation about\n which exact config file was changed, assuming a reload would need to\n read all config files anyway.","shortMessageHtmlLink":"Configuration loading overhaul"}},{"before":"219d03824ddfde712eaad7a0a827ad29bb299495","after":"179e0e672dbd83c4bd212a8b9bde56be5c9a34c4","ref":"refs/heads/system-config","pushedAt":"2024-06-24T04:16:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Aetf","name":"Aetf","path":"/Aetf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1519759?s=80&v=4"},"commit":{"message":"Configuration loading overhaul\n\n- Simple merging logic for `Config`\n- Load config from system-wide locations (fixes #30)\n- Dynamically pick up changes from newly created config files (fixes #29)\n- Use `directories-rs` to find user level config directory path\n\nA new `ConfigWatcher` is introduced, which opportunistically watches the\nclosest existing parent of target paths and rewatches dynamically accordingly.\nThis way we can get notifications for new file creations in addition to\nmodifications.\n\n`ConfigWatcher` also does debounce (100ms by default) to only trigger\none config reload for multiple events in a short time period.\n\nThe core idea of the watcher is as follow:\n\nGiven a watching target path `/base/sub/config.toml`,\na) readd watches if any segment in the path is created/removed;\nb) reload config only if the event is about the full target path.\n\nThe actual implementation extends this idea to handle multiple targets.\nPlease refer to `config_watcher.rs` for details and extensive test cases.\n\nA few design points:\n\n- Notify event handling is done in a separate thread, rather than in\n notify's internal event handler thread, because the code is more\n readable and calling unwatch/watch in that thread may lead to deadlock\n in some cases. (notify-rs/notify#410, notify-rs/notify#463)\n- For simplicity, `ConfigWatcher` doesn't provide infomation about\n which exact config file was changed, assuming a reload would need to\n read all config files anyway.","shortMessageHtmlLink":"Configuration loading overhaul"}},{"before":"1563d9c8e02e0d7360e99d6fd98edda4d71c7be1","after":"219d03824ddfde712eaad7a0a827ad29bb299495","ref":"refs/heads/system-config","pushedAt":"2024-06-24T01:21:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Aetf","name":"Aetf","path":"/Aetf","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1519759?s=80&v=4"},"commit":{"message":"Configuration loading overhaul\n\n- Simple merging logic for `Config`\n- Load config from system-wide locations (fixes #30)\n- Dynamically pick up changes from newly created config files (fixes #29)\n- Use `directories-rs` to find user level config directory path\n\nA new `ConfigWatcher` is introduced, which opportunistically watches the\nclosest existing parent of target paths and rewatches dynamically accordingly.\nThis way we can get notifications for new file creations in addition to\nmodifications.\n\n`ConfigWatcher` also does debounce (100ms by default) to only trigger\none config reload for multiple events in a short time period.\n\nThe core idea of the watcher is as follow:\n\nGiven a watching target path `/base/sub/config.toml`,\na) readd watches if any segment in the path is created/removed;\nb) reload config only if the event is about the full target path.\n\nThe actual implementation extends this idea to handle multiple targets.\nPlease refer to `config_watcher.rs` for details and extensive test cases.\n\nA few design points:\n\n- Notify event handling is done in a separate thread, rather than in\n notify's internal event handler thread, because the code is more\n readable and calling unwatch/watch in that thread may lead to deadlock\n in some cases. (notify-rs/notify#410, notify-rs/notify#463)\n- For simplicity, `ConfigWatcher` doesn't provide infomation about\n which exact config file was changed, assuming a reload would need to\n read all config files anyway.","shortMessageHtmlLink":"Configuration loading overhaul"}},{"before":"488c767599345efe6273529b7d5b5ae8a6394cb5","after":"cae705c9e9c2050de87f1be54d39ae927227f24b","ref":"refs/heads/ban-whitespace-in-session-names","pushedAt":"2024-06-21T18:32:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"ban whitespace in session names\n\nWhitespace in session names mangles list output\nand is just generally confusing. I don't see a reason\nfor it (though if someone has a usecase, this decision\ncan be rolled back, we can solve the list issue with\nquoting or a json format or something).\n\nFixes #60","shortMessageHtmlLink":"ban whitespace in session names"}},{"before":"954a01edde9fbf4f96915ed11cb642e477ff1c0c","after":"20dd1c0761f9c625fec27e8d32608ff1a744e6a9","ref":"refs/heads/kitty-term-bug","pushedAt":"2024-06-21T18:31:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"avoid err if we can't resolve terminfo for TERM\n\nThis patch will hopefully address #59. Unfortunately,\nI wasn't able to write a test to reproduce the issue,\nso it is just a blind fix.","shortMessageHtmlLink":"avoid err if we can't resolve terminfo for TERM"}},{"before":null,"after":"488c767599345efe6273529b7d5b5ae8a6394cb5","ref":"refs/heads/ban-whitespace-in-session-names","pushedAt":"2024-06-21T18:09:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"ban whitespace in session names\n\nWhitespace in session names mangles list output\nand is just generally confusing. I don't see a reason\nfor it (though if someone has a usecase, this decision\ncan be rolled back, we can solve the list issue with\nquoting or a json format or something).\n\nFixes #60","shortMessageHtmlLink":"ban whitespace in session names"}},{"before":"0d228683a06e922c6d071c6b2915adb92ab847b7","after":"954a01edde9fbf4f96915ed11cb642e477ff1c0c","ref":"refs/heads/kitty-term-bug","pushedAt":"2024-06-21T17:59:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"avoid err if we can't resolve terminfo for TERM\n\nThis patch will hopefully address #59. Unfortunately,\nI wasn't able to write a test to reproduce the issue,\nso it is just a blind fix.","shortMessageHtmlLink":"avoid err if we can't resolve terminfo for TERM"}},{"before":null,"after":"0d228683a06e922c6d071c6b2915adb92ab847b7","ref":"refs/heads/kitty-term-bug","pushedAt":"2024-06-21T17:55:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"},"commit":{"message":"avoid err if we can't resolve terminfo for TERM\n\nThis patch will hopefully address #59. Unfortunately,\nI wasn't able to write a test to reproduce the issue,\nso it is just a blind fix.","shortMessageHtmlLink":"avoid err if we can't resolve terminfo for TERM"}},{"before":"32913dd6aa1bff46887060dd691cfacfe5355cb9","after":null,"ref":"refs/heads/disallow-blank-sessions","pushedAt":"2024-06-20T12:14:35.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ethanpailes","name":"Ethan Pailes","path":"/ethanpailes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4305381?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEdByrDQA","startCursor":null,"endCursor":null}},"title":"Activity ยท shell-pool/shpool"}