# Commit history · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commits/e07065265d22ebd0739e872b7adb70fe89cd1685)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: e07065265d22ebd0739e872b7adb70fe89cd1685

Requested commit: e07065265d22ebd0739e872b7adb70fe89cd1685

- [Expose \`Worktree::\{peers,replica_id\}\`](https://git.cafe/gitcafe/zed/commit/e07065265d22ebd0739e872b7adb70fe89cd1685?format=markdown) — e07065265d22ebd0739e872b7adb70fe89cd1685; Antonio Scandurra

- [Send a \`CloseWorktree\` message when a shared \`Worktree\` is dropped](https://git.cafe/gitcafe/zed/commit/ed9036f3fc591e1ce1b030fc32a17c5c5abbca6b?format=markdown) — ed9036f3fc591e1ce1b030fc32a17c5c5abbca6b; Antonio Scandurra

- [Store online peers when joining a worktree](https://git.cafe/gitcafe/zed/commit/1d53d43d6f67bb79cc01ef3bbdce43560874a63b?format=markdown) — 1d53d43d6f67bb79cc01ef3bbdce43560874a63b; Antonio Scandurra

- [Maintain a set of peers as they join and leave the worktree](https://git.cafe/gitcafe/zed/commit/7704291432d7c5ef065eb60cf6ed75ddf6b7bfc4?format=markdown) — 7704291432d7c5ef065eb60cf6ed75ddf6b7bfc4; Antonio Scandurra

- [Avoid logging errors in RPC message handlers](https://git.cafe/gitcafe/zed/commit/ab089b65754ae3ea1cd1a73d9f17d5ea56d121f8?format=markdown) — ab089b65754ae3ea1cd1a73d9f17d5ea56d121f8; Antonio Scandurra

- [:lipstick:](https://git.cafe/gitcafe/zed/commit/8e5e354bd8fdbe21b886017c3e9e364a5bab4795?format=markdown) — 8e5e354bd8fdbe21b886017c3e9e364a5bab4795; Antonio Scandurra

- [Move \`remote::update_buffer\` main logic into \`Worktree::update_buffer\`](https://git.cafe/gitcafe/zed/commit/3c8aa0ee708fea214d4f6524858261499870b8e0?format=markdown) — 3c8aa0ee708fea214d4f6524858261499870b8e0; Antonio Scandurra

- [Store shared buffers on LocalWorktree](https://git.cafe/gitcafe/zed/commit/0fde7a55efed117dbd4d66763b6644e85c9a27d6?format=markdown) — 0fde7a55efed117dbd4d66763b6644e85c9a27d6; Nathan Sobo

- [Store a reference to the LangageRegistry on the Worktree](https://git.cafe/gitcafe/zed/commit/bbf803d7dc0868b5944f6d72d7511025c1a15824?format=markdown) — bbf803d7dc0868b5944f6d72d7511025c1a15824; Nathan Sobo

- [Use entry_id on File instead of worktree::Diff to detect when buffers' files change](https://git.cafe/gitcafe/zed/commit/34963ac80d1d3bba6df91225fac9fc4b50897009?format=markdown) — 34963ac80d1d3bba6df91225fac9fc4b50897009; Nathan Sobo

- [Merge branch 'main' into rpc](https://git.cafe/gitcafe/zed/commit/e80439daaadadc4591aaf065acf0de45d47368ba?format=markdown) — e80439daaadadc4591aaf065acf0de45d47368ba; Antonio Scandurra

- [Redesign Worktree save API and make test_rescan_simple pass](https://git.cafe/gitcafe/zed/commit/b7a4393f2904ffaa739459db15e5f51a4b58879b?format=markdown) — b7a4393f2904ffaa739459db15e5f51a4b58879b; Nathan Sobo

- [Eagerly populate worktree entries on load](https://git.cafe/gitcafe/zed/commit/1793eda4706ab7fe8430f513f55f189cc4e64038?format=markdown) — 1793eda4706ab7fe8430f513f55f189cc4e64038; Nathan Sobo

- [Assign a stable identity to Worktree entries](https://git.cafe/gitcafe/zed/commit/958345b5cecd54ad8afbf4d1c94e34c2d8762806?format=markdown) — 958345b5cecd54ad8afbf4d1c94e34c2d8762806; Antonio Scandurra

- [Restructure RPC state to also keep track of remote worktrees on guests](https://git.cafe/gitcafe/zed/commit/65aa9733d7c91db30456a87e36f724d8fc98362b?format=markdown) — 65aa9733d7c91db30456a87e36f724d8fc98362b; Antonio Scandurra

- [Maintain active selections as editors are focused and blurred](https://git.cafe/gitcafe/zed/commit/e72b4ae03d4251dc4fddd843d744ac7acc4e8071?format=markdown) — e72b4ae03d4251dc4fddd843d744ac7acc4e8071; Antonio Scandurra

- [Remove selection set when an editor is closed](https://git.cafe/gitcafe/zed/commit/0bc8663d366b304ac64bd604974a4bc8684815a4?format=markdown) — 0bc8663d366b304ac64bd604974a4bc8684815a4; Antonio Scandurra

- [Avoid double handle-read in File::buffer_updated](https://git.cafe/gitcafe/zed/commit/e2b9ab500fdaa434f25bf435171a80b664725b64?format=markdown) — e2b9ab500fdaa434f25bf435171a80b664725b64; Max Brunsfeld

- [Always represent anchor as a versioned offset](https://git.cafe/gitcafe/zed/commit/60ee97be24324184a85037e232f1ffda1a15eca3?format=markdown) — 60ee97be24324184a85037e232f1ffda1a15eca3; Max Brunsfeld

- [Send and receive buffer operations](https://git.cafe/gitcafe/zed/commit/b9952bad8b76437d06de71c0489beace1de38c1f?format=markdown) — b9952bad8b76437d06de71c0489beace1de38c1f; Max Brunsfeld

- [Start work on sending buffer operations](https://git.cafe/gitcafe/zed/commit/04c80578bca54b6a6a1677aa9241958caea9dbcc?format=markdown) — 04c80578bca54b6a6a1677aa9241958caea9dbcc; Max Brunsfeld

- [Notify host when guests close buffers](https://git.cafe/gitcafe/zed/commit/7ee0862b99beec789c5cf63ba931b323284bb366?format=markdown) — 7ee0862b99beec789c5cf63ba931b323284bb366; Nathan Sobo

- [Add Entity release hooks](https://git.cafe/gitcafe/zed/commit/2257abd7dd89493c2e4f2001c789b28439764959?format=markdown) — 2257abd7dd89493c2e4f2001c789b28439764959; Nathan Sobo

- [Move \`remote\` module from \`workspace\` to \`worktree\`](https://git.cafe/gitcafe/zed/commit/d59267a7efc00345a7a39409cd3e702f6b493627?format=markdown) — d59267a7efc00345a7a39409cd3e702f6b493627; Antonio Scandurra

- [Allow cleaning up connections/handlers state using \`Peer::reset\`](https://git.cafe/gitcafe/zed/commit/779dbf86ddc16aa75e219bfc49e2350bb6e2060d?format=markdown) — 779dbf86ddc16aa75e219bfc49e2350bb6e2060d; Antonio Scandurra

- [Consolidate more logic for joining worktree in Worktree::remote](https://git.cafe/gitcafe/zed/commit/ce2f3f664a0561e71741959252e1f7d08e21a781?format=markdown) — ce2f3f664a0561e71741959252e1f7d08e21a781; Max Brunsfeld

- [Add public method for connecting to RPC server with a given address](https://git.cafe/gitcafe/zed/commit/6a166554e89bd7f2b82afae6d32599fb63c9eb0a?format=markdown) — 6a166554e89bd7f2b82afae6d32599fb63c9eb0a; Max Brunsfeld

- [Fix last usage of App::test_async in one test](https://git.cafe/gitcafe/zed/commit/54c4b31249933ef21ce2a174f94f1a61c1a6ed21?format=markdown) — 54c4b31249933ef21ce2a174f94f1a61c1a6ed21; Max Brunsfeld

- [Add a test-support feature flag that enables compilation of zed::test module](https://git.cafe/gitcafe/zed/commit/efc8bc31249400af0995e24073a5e1d206c77d88?format=markdown) — efc8bc31249400af0995e24073a5e1d206c77d88; Max Brunsfeld

- [Add a public gpui::TestAppContext::new method](https://git.cafe/gitcafe/zed/commit/a57cb2b1894500213cea86eba3eafd6906b28922?format=markdown) — a57cb2b1894500213cea86eba3eafd6906b28922; Max Brunsfeld

- [Make \`replica_id\` optional in \`OpenWorktreeResponse\`](https://git.cafe/gitcafe/zed/commit/f1587fbb6e5fa473446b0e405ce835e076b924e7?format=markdown) — f1587fbb6e5fa473446b0e405ce835e076b924e7; Antonio Scandurra

- [Respond to \`proto::OpenBuffer\` requests](https://git.cafe/gitcafe/zed/commit/02321af08a53888caaac8a5ddb2000bf24072b04?format=markdown) — 02321af08a53888caaac8a5ddb2000bf24072b04; Antonio Scandurra

- [Eagerly update worktree entries when saving](https://git.cafe/gitcafe/zed/commit/c5e08b6548594585ec1f92241a75ee8d37cb293a?format=markdown) — c5e08b6548594585ec1f92241a75ee8d37cb293a; Nathan Sobo

- [WIP \- Maintain a set of open buffers on a LocalWorktree](https://git.cafe/gitcafe/zed/commit/dc8e216fcb30811d79f7294ea4bf2308c2eb16a2?format=markdown) — dc8e216fcb30811d79f7294ea4bf2308c2eb16a2; Max Brunsfeld

- [Replace FileHandle with File entity that subscribes to Worktree update events](https://git.cafe/gitcafe/zed/commit/a364839e93620c67071614e39a989b392b28c852?format=markdown) — a364839e93620c67071614e39a989b392b28c852; Nathan Sobo

- [Emit a diff event when worktree's snapshot is updated](https://git.cafe/gitcafe/zed/commit/cabf6b1f586e75b654f3f6cab88c65462ef9a53a?format=markdown) — cabf6b1f586e75b654f3f6cab88c65462ef9a53a; Max Brunsfeld

- [Implement worktree::Snapshot::diff](https://git.cafe/gitcafe/zed/commit/8ae5c0d7d66aeccf604bdf86c555c859005d70e2?format=markdown) — 8ae5c0d7d66aeccf604bdf86c555c859005d70e2; Nathan Sobo

- [Allow async background work when polling worktree background snapshot](https://git.cafe/gitcafe/zed/commit/1364ba6f5e1d5f46088a58a67df39e07d7a7bfed?format=markdown) — 1364ba6f5e1d5f46088a58a67df39e07d7a7bfed; Nathan Sobo

- [Remove other_mount_paths](https://git.cafe/gitcafe/zed/commit/986afd26e9b52f8ccd9be8cdcbf7a7818f5bdcd9?format=markdown) — 986afd26e9b52f8ccd9be8cdcbf7a7818f5bdcd9; Nathan Sobo

- [:lipstick:](https://git.cafe/gitcafe/zed/commit/5c0f4e572fa238b9278e679016f1adda06318d2d?format=markdown) — 5c0f4e572fa238b9278e679016f1adda06318d2d; Antonio Scandurra

- [Fix deadlock when comparing \`FileHandle\`s when handles are the same](https://git.cafe/gitcafe/zed/commit/7489e86c47f2ad3f81df15b2aa6c4149f45213c9?format=markdown) — 7489e86c47f2ad3f81df15b2aa6c4149f45213c9; Antonio Scandurra

- [Put back \`worktree_id\` in \`CloseFile\` and \`OpenBuffer\` messages](https://git.cafe/gitcafe/zed/commit/95024c616eac1bc859b7055d2e7ee74a0adc8fa5?format=markdown) — 95024c616eac1bc859b7055d2e7ee74a0adc8fa5; Antonio Scandurra

- [WIP: Load remote history](https://git.cafe/gitcafe/zed/commit/2905ce3ba760756597386095433a59ddf9c60daa?format=markdown) — 2905ce3ba760756597386095433a59ddf9c60daa; Antonio Scandurra

- [Issue only one \`OpenFile\` and \`CloseFile\` request per handle](https://git.cafe/gitcafe/zed/commit/f4d6fbe14f64a63f44bcfba93db5cbaad0b654b0?format=markdown) — f4d6fbe14f64a63f44bcfba93db5cbaad0b654b0; Antonio Scandurra

- [Stub in more logic for open_file and close_file](https://git.cafe/gitcafe/zed/commit/96c118b4df364e88f4fe235c4a946380953f83ca?format=markdown) — 96c118b4df364e88f4fe235c4a946380953f83ca; Max Brunsfeld

- [WIP](https://git.cafe/gitcafe/zed/commit/0deaa3a61de0c9137d09c0dc5fc37e8b6839da85?format=markdown) — 0deaa3a61de0c9137d09c0dc5fc37e8b6839da85; Nathan Sobo

- [Update prost to include our changes](https://git.cafe/gitcafe/zed/commit/bfccb173c4a5aaedb69b22b981e3c132e433bf59?format=markdown) — bfccb173c4a5aaedb69b22b981e3c132e433bf59; Nathan Sobo

- [Start work on implementing ::file on remote WorktreeHandles](https://git.cafe/gitcafe/zed/commit/a2a6d67e1e1b378fddb76eafc94044c04bce51ee?format=markdown) — a2a6d67e1e1b378fddb76eafc94044c04bce51ee; Max Brunsfeld

- [WIP](https://git.cafe/gitcafe/zed/commit/f9d8e952f2a5e7a777bdf9c35dd4912695d86351?format=markdown) — f9d8e952f2a5e7a777bdf9c35dd4912695d86351; Antonio Scandurra

- [Add worktree to workspace when joining a remote worktree](https://git.cafe/gitcafe/zed/commit/89d25458ac58ea842d760ea8d0fec1790762ea52?format=markdown) — 89d25458ac58ea842d760ea8d0fec1790762ea52; Antonio Scandurra

- [Replace \`Worktree\` with an enum](https://git.cafe/gitcafe/zed/commit/79cac1340e25d38d2e303fa656263434c5edcb3e?format=markdown) — 79cac1340e25d38d2e303fa656263434c5edcb3e; Antonio Scandurra

- [Implement Display for ConnectionId](https://git.cafe/gitcafe/zed/commit/7a66cd1ae17ac301ec77f8ec8c123375ded26ec1?format=markdown) — 7a66cd1ae17ac301ec77f8ec8c123375ded26ec1; Max Brunsfeld

- [Add a name to EnvelopedMessage for logging purposes](https://git.cafe/gitcafe/zed/commit/cdfb33b283cdf9b6baf9b699128b22b507600437?format=markdown) — cdfb33b283cdf9b6baf9b699128b22b507600437; Max Brunsfeld

- [Add menu command to join worktree using URL on clipboard](https://git.cafe/gitcafe/zed/commit/7a88e44264a0bf479572e59efc4b586f3d50bd2b?format=markdown) — 7a88e44264a0bf479572e59efc4b586f3d50bd2b; Max Brunsfeld

- [Use strings for paths and buffer contents](https://git.cafe/gitcafe/zed/commit/3a78f053f6b410d432ae9a20254206ec628acbb1?format=markdown) — 3a78f053f6b410d432ae9a20254206ec628acbb1; Max Brunsfeld

- [Replace POST /worktrees rest endpoint with GET /rpc-address](https://git.cafe/gitcafe/zed/commit/f4dccc5353c7862ace2eec505a5f6dabd0d9f1e6?format=markdown) — f4dccc5353c7862ace2eec505a5f6dabd0d9f1e6; Max Brunsfeld

- [Make TypedEnvelope fields public](https://git.cafe/gitcafe/zed/commit/2fd0f0be50b10baa5fe85dd98080da181ea4b4af?format=markdown) — 2fd0f0be50b10baa5fe85dd98080da181ea4b4af; Max Brunsfeld

- [Ignore message-handling error in disconnect unit test](https://git.cafe/gitcafe/zed/commit/a3c938cc77a5bdc06a315d3cfbcf0bb0f6cb518d?format=markdown) — a3c938cc77a5bdc06a315d3cfbcf0bb0f6cb518d; Max Brunsfeld

- [Don't generate bindgen layout tests](https://git.cafe/gitcafe/zed/commit/531443dc9c3d665c4636236b5ec022f59ab20dcf?format=markdown) — 531443dc9c3d665c4636236b5ec022f59ab20dcf; Max Brunsfeld

- [Allow peers to receive individual messages before starting message loop](https://git.cafe/gitcafe/zed/commit/05a662b35edfafb68ed57fcc2c27b7442291604d?format=markdown) — 05a662b35edfafb68ed57fcc2c27b7442291604d; Max Brunsfeld

- [Rename \`handle_message\` to \`on_message\`](https://git.cafe/gitcafe/zed/commit/4d28d03e3f8870395cc728bb33b435184ac7889c?format=markdown) — 4d28d03e3f8870395cc728bb33b435184ac7889c; Antonio Scandurra

- [Move \`handle_messages\` into an extension method for \`Arc\<Peer\>\`](https://git.cafe/gitcafe/zed/commit/82ac7e2072f311d4e1356cb66b082fe1e59450d4?format=markdown) — 82ac7e2072f311d4e1356cb66b082fe1e59450d4; Antonio Scandurra

- [Use an \`i32\` for user_id in RPC authentication message](https://git.cafe/gitcafe/zed/commit/d243395e0680b72894b97bb3ce09add1b0f42009?format=markdown) — d243395e0680b72894b97bb3ce09add1b0f42009; Antonio Scandurra

- [Fix termination of peer's incoming future](https://git.cafe/gitcafe/zed/commit/c5cec247c46a39e3dbe3d2fe10ac3c812b682bcb?format=markdown) — c5cec247c46a39e3dbe3d2fe10ac3c812b682bcb; Max Brunsfeld

- [Remove peer message listeners when their receiver is dropped](https://git.cafe/gitcafe/zed/commit/fb736d5e78fed5594595267594fdc332093a111e?format=markdown) — fb736d5e78fed5594595267594fdc332093a111e; Max Brunsfeld

- [Move \`RpcClient\` to \`zed_rpc\` and rename it to \`Peer\`](https://git.cafe/gitcafe/zed/commit/9de4d73ffb464e5b770cee143b9e75a6986628b1?format=markdown) — 9de4d73ffb464e5b770cee143b9e75a6986628b1; Antonio Scandurra

- [Replace Request and Message with a single TypedEnvelope](https://git.cafe/gitcafe/zed/commit/5e4872fdf845f036585bbb7e168fdf57af9ba664?format=markdown) — 5e4872fdf845f036585bbb7e168fdf57af9ba664; Antonio Scandurra

- [Replace callback-based requests/messages with streams](https://git.cafe/gitcafe/zed/commit/8112efd52234bcc7e5318a5ef8fe59dcb6023aa2?format=markdown) — 8112efd52234bcc7e5318a5ef8fe59dcb6023aa2; Antonio Scandurra

- [WIP \- Allow RpcClient to register handlers for incoming messages](https://git.cafe/gitcafe/zed/commit/8b66e0aa7e15c6a5929a622f02ee4bf89aa19add?format=markdown) — 8b66e0aa7e15c6a5929a622f02ee4bf89aa19add; Max Brunsfeld

- [Remove gpui dependency from rpc_client](https://git.cafe/gitcafe/zed/commit/d3a3ad2820b4cb2c85ee9b4436544ada66655e53?format=markdown) — d3a3ad2820b4cb2c85ee9b4436544ada66655e53; Max Brunsfeld

- [Allow RpcClient to encapsulate arbitrarily many connections](https://git.cafe/gitcafe/zed/commit/3db215418c609a2cbe7cdde96ff25967aba835f3?format=markdown) — 3db215418c609a2cbe7cdde96ff25967aba835f3; Max Brunsfeld

- [Flatten protobuf message namespace](https://git.cafe/gitcafe/zed/commit/e88f33851ec5f0d0c3451c5391b133e419e084d6?format=markdown) — e88f33851ec5f0d0c3451c5391b133e419e084d6; Max Brunsfeld

- [Start sharing paths with the server via RPC](https://git.cafe/gitcafe/zed/commit/546ce14cb973ecd3eaafc6cc73b191b3130be021?format=markdown) — 546ce14cb973ecd3eaafc6cc73b191b3130be021; Antonio Scandurra

- [Simplify saving \`RpcClient\` by removing the generic connection param](https://git.cafe/gitcafe/zed/commit/cf67fc65895bfb3be300dfcd73dcf1b3395dd04f?format=markdown) — cf67fc65895bfb3be300dfcd73dcf1b3395dd04f; Antonio Scandurra

- [Move worktree sharing down into \`Workspace\`](https://git.cafe/gitcafe/zed/commit/3e391c0785408ec39206b9e0335d7522cebefad1?format=markdown) — 3e391c0785408ec39206b9e0335d7522cebefad1; Antonio Scandurra

- [Ensure that futures returns from \`RpcClient\` are 'static](https://git.cafe/gitcafe/zed/commit/7b96888ab179bbd828e8eac68ae0b331fba34e6f?format=markdown) — 7b96888ab179bbd828e8eac68ae0b331fba34e6f; Antonio Scandurra

- [:lipstick:](https://git.cafe/gitcafe/zed/commit/04bf84af44100490f360291e9b98211ab5e79d9e?format=markdown) — 04bf84af44100490f360291e9b98211ab5e79d9e; Antonio Scandurra

- [Use an async \`Mutex\` to guard access to write stream in \`RpcClient\`](https://git.cafe/gitcafe/zed/commit/1d9cfe6b64d2af4b1241bd92bb86e39a479b16c1?format=markdown) — 1d9cfe6b64d2af4b1241bd92bb86e39a479b16c1; Antonio Scandurra

- [Test \`RpcClient::subscribe\`](https://git.cafe/gitcafe/zed/commit/301531ae04861b7f6eab4b7b8f95d76a346153e6?format=markdown) — 301531ae04861b7f6eab4b7b8f95d76a346153e6; Antonio Scandurra

- [Report io errors when sending payloads for RpcClient methods](https://git.cafe/gitcafe/zed/commit/1c597ed998f408b2bdeb0e6bc67b7e1e0c3be6e8?format=markdown) — 1c597ed998f408b2bdeb0e6bc67b7e1e0c3be6e8; Max Brunsfeld

- [Change \`RpcClient\` methods to take shared references](https://git.cafe/gitcafe/zed/commit/a87d4db1555eed7bd3b71091556f588e2dc514b4?format=markdown) — a87d4db1555eed7bd3b71091556f588e2dc514b4; Antonio Scandurra

- [Add \`RpcClient::subscribe\`](https://git.cafe/gitcafe/zed/commit/e551894189be51cd22f6d0fc96dbe2d26f688931?format=markdown) — e551894189be51cd22f6d0fc96dbe2d26f688931; Antonio Scandurra

- [Use a fixed-length delimiter for encoding/decoding messages in RPC](https://git.cafe/gitcafe/zed/commit/cd1a4c49cffebbd8e3983eda4e3e2159f304afdc?format=markdown) — cd1a4c49cffebbd8e3983eda4e3e2159f304afdc; Antonio Scandurra

- [Make drop test more reliable](https://git.cafe/gitcafe/zed/commit/0ddbe0c7575acb78e5229d54c2e5c5cacdd1a87c?format=markdown) — 0ddbe0c7575acb78e5229d54c2e5c5cacdd1a87c; Antonio Scandurra

- [Close connection when \`RpcClient\` is dropped and add unit tests](https://git.cafe/gitcafe/zed/commit/8e3f40bfdd99e9b238aad2c00330cd7496338360?format=markdown) — 8e3f40bfdd99e9b238aad2c00330cd7496338360; Antonio Scandurra

- [Start work on RpcClient](https://git.cafe/gitcafe/zed/commit/b2b1ce5e81d7e8f40c9e082652823ff191894334?format=markdown) — b2b1ce5e81d7e8f40c9e082652823ff191894334; Max Brunsfeld

- [Use tiny_http for handling login HTTP request](https://git.cafe/gitcafe/zed/commit/86ff59928563d959f67c261c0ce09d464f3fd142?format=markdown) — 86ff59928563d959f67c261c0ce09d464f3fd142; Max Brunsfeld

- [Avoid crash when user denies keychain access](https://git.cafe/gitcafe/zed/commit/71d64a837ed49a20b436a339cd28872ed17a9a3d?format=markdown) — 71d64a837ed49a20b436a339cd28872ed17a9a3d; Max Brunsfeld

- [Switch \`CreateWorktreeResponse::worktree_id\` to be a \`i32\`](https://git.cafe/gitcafe/zed/commit/4efebdaa527f3cae3cba99d7f2106d5953f5b1d1?format=markdown) — 4efebdaa527f3cae3cba99d7f2106d5953f5b1d1; Antonio Scandurra

- [Start work on connecting to RPC endpoint](https://git.cafe/gitcafe/zed/commit/20542f54efd2b82de1a8b24bd263f9ed23d8574a?format=markdown) — 20542f54efd2b82de1a8b24bd263f9ed23d8574a; Max Brunsfeld

- [Update collaboration doc](https://git.cafe/gitcafe/zed/commit/e897d1c98e15a87da1d0da40ab9ea74f83748d02?format=markdown) — e897d1c98e15a87da1d0da40ab9ea74f83748d02; Max Brunsfeld

- [Add initial messages for setting up a worktree share](https://git.cafe/gitcafe/zed/commit/9c5c9fdc36aa0108f2f36d37dd1c7cb9e2d3bbab?format=markdown) — 9c5c9fdc36aa0108f2f36d37dd1c7cb9e2d3bbab; Max Brunsfeld

- [Introduce zed_rpc::proto module containing protobuf stream logic](https://git.cafe/gitcafe/zed/commit/a10f4bb4ff24513afa01e779d9968090e8a125ff?format=markdown) — a10f4bb4ff24513afa01e779d9968090e8a125ff; Max Brunsfeld

- [Store credentials in the keychain on login](https://git.cafe/gitcafe/zed/commit/ee52a5d06189ae4b67f99e97dbb684a5721927b8?format=markdown) — ee52a5d06189ae4b67f99e97dbb684a5721927b8; Max Brunsfeld

- [Add a platform API for accessing the keychain](https://git.cafe/gitcafe/zed/commit/5673f116c951214a528b856fa6baafff3d6143f8?format=markdown) — 5673f116c951214a528b856fa6baafff3d6143f8; Max Brunsfeld

- [Ensure that base64 token values are URL-safe](https://git.cafe/gitcafe/zed/commit/3214fef72788b7cce82324d3af3813c0ec29ac78?format=markdown) — 3214fef72788b7cce82324d3af3813c0ec29ac78; Max Brunsfeld

- [Introduce zed-rpc with some shared auth utilities](https://git.cafe/gitcafe/zed/commit/327c20510b2f301c45e0bbafddb3476410aeaa91?format=markdown) — 327c20510b2f301c45e0bbafddb3476410aeaa91; Max Brunsfeld

- [Start work on a login command](https://git.cafe/gitcafe/zed/commit/db3e01a12ccf32fc5b24b51285619cbe5b6ba27d?format=markdown) — db3e01a12ccf32fc5b24b51285619cbe5b6ba27d; Max Brunsfeld

- [Rename MainThreadPlatform to ForegroundPlatform and fix crash on quit](https://git.cafe/gitcafe/zed/commit/3a932cc9bf715de550601f8c05b5da044c6f7eef?format=markdown) — 3a932cc9bf715de550601f8c05b5da044c6f7eef; Nathan Sobo

- [Allow platform references to be sent to background threads](https://git.cafe/gitcafe/zed/commit/6daddf514628c383980aba0442d54e8a370bc56e?format=markdown) — 6daddf514628c383980aba0442d54e8a370bc56e; Nathan Sobo

More commits follow; continue with `GET /api/repos/gitcafe/zed/commits?after=ImViYmU1MTdiZmE5MTRhYWI2MDJjM2FiM2JkMDZhYmUzNTlmMjhlOTgi`.
