Mikayla
eed49a88bd
Fix bad merge
2023-08-09 11:04:09 -07:00
Mikayla
707e41ce1f
Merge branch 'collab-panel' of github.com:zed-industries/zed into collab-panel
2023-08-09 10:44:50 -07:00
Mikayla
99daa73325
Merge branch 'main' into collab-panel
2023-08-09 10:37:22 -07:00
Max Brunsfeld
778fd6b0a9
Represent channel relationships using paths table
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-09 10:36:27 -07:00
Mikayla
b708824d37
Position and style the channel editor correctly
...
Fix a bug where some channel updates would be lost
Add channel name sanitization before storing in the database
2023-08-08 12:46:13 -07:00
Mikayla
d00f6a490c
Fix a bug where channel invitations would show up in the channels section
...
Block non-members from reading channel information
WIP: Make sure Arc::make_mut() works
2023-08-08 11:47:13 -07:00
Nathan Sobo
49f1f1c6c2
Remove window when closing workspace in test
2023-08-08 09:13:17 -06:00
Nathan Sobo
f0da6b05fd
Remove TestAppContext::add_view
...
Instead, we now call this on window handles.
2023-08-07 22:46:48 -06:00
Nathan Sobo
f2be3181a9
Move window-related methods from TestAppContext to AnyWindowHandle
2023-08-07 20:23:04 -06:00
Nathan Sobo
486f5bc6ca
Get compiling
2023-08-07 19:08:58 -06:00
Max Brunsfeld
c537cf2a57
Merge branch 'main' into collab-panel
2023-08-07 11:50:40 -07:00
Nathan Sobo
adc50469ff
WIP
2023-08-06 12:45:31 -06:00
Max Brunsfeld
2ccd153233
Fix joining descendant channels, style channel invites
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-04 16:21:43 -07:00
Max Brunsfeld
87b2d599c1
Flesh out channel member management
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-04 14:12:08 -07:00
Max Brunsfeld
a2486de045
Don't expose channel admin actions in UI if user isn't admin
2023-08-04 10:24:46 -07:00
Max Brunsfeld
1762d2c6d4
Add test assertion where user is not admin of channel
2023-08-04 09:51:37 -07:00
Max Brunsfeld
7a04ee3b71
Start work on exposing which channels the user has admin rights to
2023-08-03 18:31:00 -07:00
Max Brunsfeld
95b1ab9574
Implement channel member removal, permission check for member retrieval
2023-08-03 18:03:40 -07:00
Nathan Sobo
d3c1966d96
WIP: Return WindowHandle<V: View> from AppContext::add_window ( #2820 )
...
Instead of returning a usize for the window id, I'm instead returning a
`WindowHandle<V: View>` where `V` is the type of the window's root view.
@as-cii helped me with a cool technique using generic associated types
where methods on `WindowHandle` can return either T or Option<T>
depending on the `BorrowWindowContext::Result` associated type.
Some example usage...
```rs
let window = cx.add_window(|cx| MyView::new(cx));
let my_view = window.root(cx); // If cx is TestAppContext, returns MyView. Otherwise returns Option<MyView>, because the window could be closed.
```
This isn't insanely beneficial on its own, but I think it will help
clean up our testing story. I'm planning on making `window` more useful
in tests for laying out elements, etc.
- [x] Rework tests that call `add_window` 😅 to expect only a window in
return.
- [x] Get tests passing
- [x] 🚬 test
2023-08-03 18:45:51 -06:00
Nathan Sobo
485c0a482e
Don't refcount window handles
2023-08-03 17:11:47 -06:00
Max Brunsfeld
a7e883d956
Implement basic channel member management UI
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-03 14:49:01 -07:00
Mikayla Maki
129f2890c5
simplify server implementation
2023-08-03 13:27:00 -07:00
Mikayla Maki
30e1bfc872
Add the ability to jump between channels while in a channel
2023-08-02 17:13:09 -07:00
Max Brunsfeld
0ae1f29be8
wip
2023-08-02 15:52:56 -07:00
Max Brunsfeld
4d55110452
Restore seeding of random GH users in seed-db
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-02 15:45:22 -07:00
Max Brunsfeld
fca8cdcb8e
Start work on rendering channel participants in collab panel
...
Co-authored-by: mikayla <mikayla@zed.dev>
2023-08-02 15:09:37 -07:00
Nathan Sobo
884cee6dfd
Get tests compiling returning WindowHandle<V: View> from add_window
2023-08-02 14:05:03 -06:00
Max Brunsfeld
a9de73739a
WIP
2023-08-02 12:15:06 -07:00
Mikayla Maki
61a6892b8c
WIP: Broadcast room updates to channel members
2023-08-02 09:21:30 -07:00
Max Brunsfeld
7d97d1dd8d
Merge branch 'main' into collab-panel
2023-08-02 09:20:53 -07:00
Max Brunsfeld
a127b0d3e6
Fix warnings surfaced in Rust 1.71
2023-08-02 09:19:23 -07:00
Mikayla Maki
7145f47454
Fix a few bugs in how channels are moved around
2023-08-01 18:42:14 -07:00
Mikayla Maki
b389dcc637
Add subchannel creation
...
co-authored-by: max <max@zed.dev>
2023-08-01 16:48:11 -07:00
Mikayla Maki
74437b3988
Add remove channel method
...
Move test client fields into appstate and fix tests
Co-authored-by: max <max@zed.dev>
2023-08-01 16:06:27 -07:00
Mikayla Maki
7434d66fdd
WIP: Add channel creation to panel UI
2023-08-01 13:22:06 -07:00
Max Brunsfeld
7954b02819
Start work on displaying channels and invites in collab panel
2023-07-31 18:00:14 -07:00
Mikayla Maki
003a711dea
Add room creation from channel join
...
co-authored-by: max <max@zed.dev>
2023-07-31 16:54:12 -07:00
Mikayla Maki
92fa879b0c
Add ability to join a room from a channel ID
...
co-authored-by: max <max@zed.dev>
2023-07-31 16:53:57 -07:00
Max Brunsfeld
4b94bfa045
Set up basic RPC for managing channels
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-07-28 17:05:56 -07:00
Max Brunsfeld
758e1f6e57
Get DB channels query working with postgres
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-07-28 14:56:02 -07:00
Mikayla Maki
0998440bdd
implement recursive channel query
2023-07-28 13:24:43 -07:00
Mikayla Maki
15631a6fd5
Add channel_tests.rs
2023-07-28 13:24:43 -07:00
Mikayla Maki
26a94b5244
WIP: Channel CRUD
2023-07-28 13:24:43 -07:00
Max Brunsfeld
bb70901e71
WIP
2023-07-28 13:24:43 -07:00
Alex Viscreanu
c7669317ec
feat(workspace): allow alternative actions to open files and symbols in split
...
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
2023-07-14 21:49:15 +02:00
Joseph T. Lyons
98a0113ac3
Add call events
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2023-07-11 13:58:55 -04:00
Piotr Osiewicz
abf3b4a54e
chore: Replace lazy_static Mutex with const. ( #2693 )
...
Mutex::new() is const-stable as of Rust 1.63.
Release Notes:
- N/A
2023-07-07 15:07:12 +02:00
Kirill Bulatov
e6ec0af743
Remove redundant hint kind checks in tests
2023-07-06 23:27:25 +03:00
Mikayla Maki
801f41e68e
Move audio dependency to dev
2023-07-05 12:15:56 -07:00
Mikayla Maki
8b8bafef22
Remove spurious audio depedency
2023-07-05 12:05:16 -07:00
Mikayla Maki
594b6e8d64
collab 0.16.0
2023-07-05 11:47:17 -07:00
Mikayla Maki
d2127825e3
Add first-pass sound support to Zed
2023-07-03 13:30:04 -07:00
Mikayla Maki
138de37cbf
Add basic sound handling infrastructure
2023-06-30 16:10:49 -07:00
Mikayla Maki
787412b545
fmt and update dependency
2023-06-29 17:49:42 -07:00
Mikayla Maki
33f5248d4f
Add the ability to make new directories by adding slashes to a file name
2023-06-29 17:35:22 -07:00
Kirill Bulatov
652909cdba
Post-rebase fixes
2023-06-29 22:39:33 +03:00
Kirill Bulatov
0972766d1d
Add more hint tests
2023-06-29 22:39:18 +03:00
Kirill Bulatov
667b70afde
Move hint settings on the language level
2023-06-29 22:39:18 +03:00
Kirill Bulatov
2c54d926ea
Test inlay hint cache
2023-06-29 22:39:18 +03:00
Kirill Bulatov
096bad1f73
Revert useless changes, simplify
2023-06-29 22:25:50 +03:00
Kirill Bulatov
acef5ff195
Query hints when editors gets open and visible
2023-06-29 22:25:50 +03:00
Kirill Bulatov
4d4544f680
Split excerpts into mutliple ranges for inlay hint queries
2023-06-29 22:25:49 +03:00
Kirill Bulatov
2c7900e11b
Use excerpt visible range in query filtering
2023-06-29 22:25:49 +03:00
Kirill Bulatov
83b3a914bc
Support better inlay cache parallelization
2023-06-29 22:25:49 +03:00
Kirill Bulatov
890b164278
Forward inlay hint refresh requests to clients, test coop inlay hints
2023-06-29 22:25:49 +03:00
Kirill Bulatov
6e3d1b962a
Draft the initial protobuf changes
2023-06-29 22:25:48 +03:00
Mikayla Maki
ce52d90a9d
Collab UI v2 ( #2618 )
...
This PR implements
https://www.figma.com/file/pLq7dvhx2mFeWFOedXpUQ5/Project-%E2%80%93-Collaboration-UI?type=design&node-id=666%3A8610&t=XFGk6KEtTCFXBvCQ-1
Release notes:
- [x] Redesigned collaboration UI
- [x] Added voice support
2023-06-28 09:14:39 -07:00
Max Brunsfeld
34b81e2aab
collab 0.15.0
2023-06-28 09:01:07 -07:00
Max Brunsfeld
5350164db9
Get integration test passing. Wait for expand entry on remote projects.
2023-06-22 10:34:28 -07:00
Max Brunsfeld
cd823ede4d
Add a bit to each entry indicating if it's outside of the worktree root
2023-06-22 10:34:28 -07:00
Max Brunsfeld
aa6f2f1816
Remove logic for marking worktree entries as collapsed
2023-06-22 10:34:28 -07:00
Max Brunsfeld
4c03231863
Maintain on the background scanner a set of expanded directories
2023-06-22 10:34:28 -07:00
Mikayla Maki
dedc117cca
Add audio APIs to Zed
...
Share mic on joining room
2023-06-16 10:13:27 -07:00
Antonio Scandurra
f068712a0a
Activate screen-sharing when leader activates a panel
2023-06-15 18:01:30 +02:00
Max Brunsfeld
c1f1ee6b05
collab 0.14.2
2023-06-09 11:50:35 -07:00
Max Brunsfeld
097632467d
collab 0.14.1
2023-06-09 11:37:47 -07:00
Max Brunsfeld
87efd25d42
Avoid dropping the worktree_repository_statuses table for now
2023-06-09 11:37:39 -07:00
Max Brunsfeld
bb65d75798
Enable rust backtraces on kubernetes
2023-06-09 11:15:21 -07:00
Max Brunsfeld
9cbb63d374
collab 0.14.0
2023-06-09 11:12:45 -07:00
Mikayla Maki
2c5e83bf72
Fixed a bug where buffer saved clocks would desynchronize in rare execution paths
...
co-authored-by: Max <max@zed.dev>
2023-06-07 16:10:45 -07:00
Mikayla Maki
28ba27c9c5
Merge branch 'main' into stream-git-statuses
2023-06-07 14:12:58 -07:00
Mikayla Maki
34e134fafb
Fix several randomized test failures with the new git status implementation
2023-06-07 14:10:17 -07:00
Max Brunsfeld
11ab1a8cc6
collab 0.13.1
2023-06-07 10:54:27 -07:00
Max Brunsfeld
6067575e38
collab 0.13.0
2023-06-07 09:29:58 -07:00
Max Brunsfeld
296a0bf510
Populate created local settings file with an empty JSON object and comments
2023-06-05 18:20:02 -07:00
Mikayla Maki
a2d58068a7
Improve test generation and implement status propogation
...
co-authored-by: max <max@zed.dev>
2023-06-05 17:30:12 -07:00
Mikayla Maki
49c5a3fa86
Add postgres migration
2023-06-05 12:17:21 -07:00
Mikayla Maki
4ac5f7b14e
Add statuses to test integration
2023-06-05 12:06:23 -07:00
Mikayla Maki
2f97c7a4f1
Remove stale comments
...
Implement status bubbling query with sum tree traversals
co-authored-by: max <max@zed.dev>
2023-06-02 16:41:01 -07:00
Max Brunsfeld
788f97ec68
Add support for folder-specific settings ( #2537 )
...
This PR allows you to customize Zed's settings within a particular
folder by creating a `.zed/settings.json` file within that folder.
Todo
* [x] respect folder-specific settings for local projects
* [x] respect folder-specific settings in remote projects
* [x] pass a path when retrieving editor/language settings
* [x] pass a path when retrieving copilot settings
* [ ] update the `Setting` trait to make it clear which types of
settings are locally overridable
Release Notes:
* Added support for folder-specific settings. You can customize Zed's
settings within a particular folder by creating a `.zed` directory and a
`.zed/settings.json` file within that folder.
2023-05-31 16:27:08 -07:00
Max Brunsfeld
ae7606ce21
collab 0.12.5
2023-05-31 15:38:26 -07:00
Mikayla Maki
22e4086658
WIP: Move statuses to be on their associated file entries in worktree
...
co-authored-by: Julia <julia@zed.dev>
2023-05-31 11:03:11 -07:00
Max Brunsfeld
8f95435548
Replicate project-specific settings when collaborating
2023-05-30 18:08:03 -07:00
Antonio Scandurra
88eb2b2163
Move history navigation logic to Workspace
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-05-29 19:47:59 +02:00
Kirill Bulatov
fdad1adaf6
Update LSP to the newest version
2023-05-28 21:55:08 +03:00
Kirill Bulatov
739d5ca373
Have proper undo for both client and host
2023-05-25 18:29:57 +03:00
Kirill Bulatov
e2ff829f98
Use Transaction instead of ProjectTransaction
...
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-05-25 16:12:14 +03:00
Kirill Bulatov
f812151840
Add integration tests
2023-05-25 09:45:50 +03:00
Kirill Bulatov
eca6d2b597
Process remote format typing also
2023-05-25 09:45:50 +03:00
Nathan Sobo
747322a02d
Merge remote-tracking branch 'origin/main' into zmd
2023-05-24 11:04:07 -06:00
Antonio Scandurra
208ff2fba7
Merge remote-tracking branch 'origin/main' into panels
2023-05-23 08:24:28 +02:00
Nathan Sobo
30de64845f
WIP
2023-05-22 23:11:27 -06:00
Mikayla Maki
9307719a4b
Add run until parked for test
2023-05-22 18:40:12 -07:00
Antonio Scandurra
146809eef0
Merge branch 'main' into panels
2023-05-22 14:10:17 +02:00
Mikayla Maki
bbb68c523c
Refactored apart the forward and the backwards iterator for diff hunks
2023-05-19 18:09:47 -07:00
Antonio Scandurra
924ec961ff
Toggle project panel when opening new workspace in a dock-agnostic way
2023-05-19 15:27:18 +02:00
Max Brunsfeld
34b0d6200f
collab 0.12.4
2023-05-18 14:58:57 -07:00
Mikayla Maki
99fcf23798
fmt
2023-05-18 14:31:08 -07:00
Mikayla Maki
95a7d69bce
Fixed an imprecise join in rejoin room
2023-05-18 14:29:18 -07:00
Max Brunsfeld
2a11a89827
collab 0.12.3
2023-05-18 12:27:08 -07:00
Joseph Lyons
55b241a4f6
collab 0.12.2
2023-05-18 12:27:01 -07:00
Max Brunsfeld
c71b59b248
Log how long it takes to handle each RPC message
2023-05-18 12:24:07 -07:00
Max Brunsfeld
67a25126d4
Define theme/ui text style settings in theme crate
2023-05-17 14:44:59 -07:00
Max Brunsfeld
89204e85c0
Merge branch 'main' into setting-store
2023-05-17 09:55:24 -07:00
Max Brunsfeld
cbd4771f10
Define project settings in project crate
2023-05-16 17:45:04 -07:00
Max Brunsfeld
65e3713d4d
Define editor settings in editor crate
2023-05-16 17:30:29 -07:00
Max Brunsfeld
39618ae32d
Define language settings in the language crate
2023-05-16 17:29:53 -07:00
Mikayla Maki
307dd2b83e
Update proto names to reflect new status info
2023-05-15 16:20:01 -07:00
Mikayla Maki
dfb6a2f7fc
fmt
2023-05-11 12:02:25 -07:00
Mikayla Maki
5b2ee63f80
Added status trickle up
2023-05-11 12:01:42 -07:00
Mikayla Maki
5accf7cf4e
Update is_deleted when sending new repositories
2023-05-11 10:21:25 -07:00
Mikayla Maki
191ac86f09
Remove the CORRECT, overly agressive deletion codepath
2023-05-11 09:24:36 -07:00
Mikayla Maki
adfbbf21b2
fmt
2023-05-10 20:09:37 -07:00
Mikayla Maki
f5c633e80c
Fixed bug in status deletion marking
2023-05-10 19:54:02 -07:00
Mikayla Maki
fca3bb3b93
Add randomized test for git statuses
2023-05-10 19:21:27 -07:00
Mikayla Maki
18becabfa5
Add postgres migration
2023-05-10 17:50:35 -07:00
Mikayla Maki
65d4c4f6ed
Add integration test for git status
2023-05-10 17:37:36 -07:00
Mikayla Maki
e20eaca595
Got basic replication working :)
2023-05-10 17:37:36 -07:00
Mikayla Maki
2b80dfa81d
Update protos
2023-05-10 17:37:36 -07:00
Mikayla Maki
23a19d85b8
Fix bug in status detection when removing a directory
2023-05-10 17:37:36 -07:00
Mikayla Maki
0082d68d4a
Revert "Convert git status calculation to use Entry IDs as the key instead of repo relative paths"
...
This reverts commit 728c6892c924ebeabb086e308ec4b5f56c4fd72a.
2023-05-10 17:37:36 -07:00
Mikayla Maki
f935047ff2
Convert git status calculation to use Entry IDs as the key instead of repo relative paths
2023-05-10 17:37:36 -07:00
Mikayla Maki
94a0de4c9f
Fix compile errors
2023-05-10 17:37:36 -07:00
Mikayla Maki
a58a33fc93
WIP: integrate status with collab
2023-05-10 17:37:36 -07:00
Max Brunsfeld
cee7edabf9
Ensure the SettingsStore global is added in tests
2023-05-10 16:39:59 -07:00
Joseph Lyons
6385e51957
collab 0.12.1
2023-05-10 18:16:20 -04:00
Antonio Scandurra
cdcb7c8084
Merge branch 'main' into panels
2023-05-10 15:23:37 +02:00
Kirill Bulatov
915154b047
Add initial include/exclude project search UI
2023-05-10 11:11:31 +03:00
Nathan Sobo
1919a826f9
Remove dock from workspace
2023-05-09 10:18:10 +02:00
Max Brunsfeld
8fd0c9fb0e
collab 0.12.0
2023-05-08 15:54:11 -07:00
Mikayla Maki
712fb5ad7f
Add postgres migration
2023-05-08 14:33:59 -07:00
Mikayla Maki
1a9afd186b
Restore randomized integration tests
2023-05-08 14:33:59 -07:00
Mikayla Maki
62e763d0d3
Removed test modifications, added special case to git initialization for when the repository is inside a .git folder
2023-05-08 14:33:59 -07:00
Mikayla Maki
2c2076bd77
Adjust tests to not create repositories inside repositories
2023-05-08 14:33:59 -07:00
Mikayla Maki
d8dac07408
Removed scan ID from repository interfaces
...
co-authored-by: Max <max@zed.dev>
2023-05-08 14:33:59 -07:00
Mikayla Maki
270147d20c
Finished RepositoryEntry refactoring, smoke tests passing
...
co-authored-by: Max <max@zed.dev>
2023-05-08 14:33:59 -07:00
Mikayla Maki
53569ece03
WIP: Change RepositoryEntry representation to be keyed off of the work directory
...
Removes branches button scaffolding
2023-05-08 14:33:59 -07:00
Mikayla Maki
b6d6f5c650
WIP: re-arranging the RepositoryEntry representation
...
Added branches to the randomized test to check the git branch
Added the remaining database integrations in collab
Co-authored-by: Max <max@zed.dev>
Co-authored-by: Petros <petros@zed.dev>
2023-05-08 14:33:59 -07:00
Mikayla Maki
8301ee43d6
WIP: Add repository entries to collab and synchronize when rejoining the room
...
co-authored-by: Max <max@zed.dev>
2023-05-08 14:33:59 -07:00
Mikayla Maki
2fe5bf419b
Add proto fields for repository entry maintenance
2023-05-08 14:33:59 -07:00
Mikayla Maki
c6d7ed33c2
Add smoke test for collaboration
2023-05-08 14:33:59 -07:00
Antonio Scandurra
0296974ab1
Merge pull request #2441 from zed-industries/implicit-ancestry
...
Determine view ancestry during layout
2023-05-05 10:58:00 +02:00
Julia
eacea55aaf
Fixup cases using buffer model handle id as buffer id
2023-05-04 12:32:31 -04:00
Antonio Scandurra
da19edc3e3
Merge branch 'main' into implicit-ancestry
2023-05-04 14:39:58 +02:00
Joseph Lyons
053b34875b
collab 0.11.0
2023-05-03 14:59:04 -04:00
Antonio Scandurra
5157442703
Fix integration test relying on deferred happening after focus
...
Focus is now one of the last things that happens during `flush_effects`,
and we shouldn't have relied on `defer` in the first place to verify
focus changes.
2023-05-03 19:00:32 +02:00
Antonio Scandurra
c65465b0b5
Ensure workspace gets rendered in collab integration tests
2023-05-03 18:31:07 +02:00
Antonio Scandurra
7f137ed3dd
Compute view ancestry at layout time
2023-05-03 16:36:14 +02:00
Antonio Scandurra
489b1f6a63
Merge remote-tracking branch 'origin/main' into simplify-action-dispatch
2023-04-28 17:31:12 +02:00
Antonio Scandurra
f881f9e3d8
Remove ToggleFollow
internal action
2023-04-28 10:07:44 +02:00
Max Brunsfeld
7258db7a4e
Merge pull request #2417 from zed-industries/hover-markdown
...
Render markdown more correctly in the editor hover popover
2023-04-27 14:15:04 -07:00
Max Brunsfeld
d298ce3fd3
Render more markdown features in hover popover
2023-04-26 15:33:10 -07:00
Max Brunsfeld
54e7464163
collab 0.10.0
2023-04-26 13:24:08 -07:00
Max Brunsfeld
ebbe52e6b0
🎨 Specify more dependencies at the workspace level
2023-04-24 17:41:55 -07:00
Max Brunsfeld
ce34bf62fe
Add failing test for diagnostic message ordering
...
Co-authored-by: Julia Risley <julia@zed.dev>
2023-04-24 13:18:37 -07:00
Max Brunsfeld
abdccf7393
Use a workspace dependency for the futures crate
2023-04-24 09:43:31 -07:00
Antonio Scandurra
c76b9794e4
Merge branch 'main' into window_context_2
2023-04-21 10:58:08 +02:00
Max Brunsfeld
abdfb5a451
collab 0.9.0
2023-04-20 09:52:32 -07:00
Max Brunsfeld
4dd917c123
Introduce a LanguageServerId wrapper type
...
Clarify the meaning of all the usizes in use in all of these
struct fields an method signatures.
2023-04-20 08:58:41 -07:00
Julia
c5f86bc6af
Avoid language servers fighting over diagnostics summaries
...
Previously each server would stomp all over the existing results
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-04-20 08:58:41 -07:00
Antonio Scandurra
c52b6328b7
Merge branch 'main' into window_context_2
2023-04-20 16:01:47 +02:00
Petros Amoiridis
f9c60b98c0
Add newline above and improve newline below
...
Add a new action for inserting a new line above the current line. @ForLoveOfCats also helped fix a bug among other things. When two collaborators had their cursors at the end of a line, and one collaborator performed a newline below action, the second collaborator's cursor would be dragged to the new line. This is also fixing that.
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-04-19 19:57:23 +03:00
Max Brunsfeld
bd7d50f339
Fix 'invalid insertion' panic when following
...
Wait for the necessary buffer operations to arrive before attempting to
set selections and scroll top.
2023-04-18 16:13:18 -07:00
Antonio Scandurra
d03c431f9a
Fix warnings/errors now that AsyncAppContext::update
returns Result
2023-04-18 14:58:57 +02:00
Antonio Scandurra
74ca223114
Fix formatting for the entire workspace
2023-04-14 12:08:33 +02:00
Antonio Scandurra
33bc47dbe2
Merge branch 'main' into window_context_2
2023-04-14 12:07:09 +02:00
Antonio Scandurra
9ef79735dc
Move more window-specific methods from AppContext
to WindowContext
2023-04-14 10:29:35 +02:00
Max Brunsfeld
a85c2d71ad
collab 0.8.3
2023-04-12 11:11:32 -07:00
Nathan Sobo
40896352ff
wip
2023-04-12 10:28:53 -06:00
Antonio Scandurra
83070a19c4
WIP
2023-04-12 15:55:43 +02:00
Max Brunsfeld
61d048cb25
Don't wait for host's reply before broadcasting buffer updates to guests
2023-04-11 12:37:08 -07:00
Antonio Scandurra
172441ab72
Cancel pending calls when participant fails to reconnect
...
Previously, we would only cancel pending calls when the room became
empty.
2023-04-11 16:33:08 +02:00
Max Brunsfeld
abfbba68f0
Improve randomized test assertion message when diff base is wrong
2023-04-10 18:28:34 -07:00
Max Brunsfeld
e79815622c
Preserve ordering between UpdateProject and CreateBufferForPeer messages
...
Previously, because UpdateProject messages were sent in a separately-
spawned task, they could be sent after CreateBufferForPeer messages that
were intended to be sent after them.
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-04-10 12:54:25 -07:00
Antonio Scandurra
9761febf82
Avoid broadcasting SaveBuffer
in response to a client's save request
...
The host will send a `SaveBuffer` message anyway and this prevents re-querying
the database, which could cause two `BufferSaved` messages to race and, as a
result, cause guest to apply them in the wrong order.
2023-04-10 10:02:13 +02:00
Antonio Scandurra
3a82c04248
Improve assertion message when buffer state diverges
2023-04-10 10:01:44 +02:00
Max Brunsfeld
e50c48852a
Wait for host to acknowledge buffer updates before sending them to other guests
2023-04-07 16:27:48 -07:00
Max Brunsfeld
f519f32ec2
Fixed removal of closed projects in randomized test
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-04-07 12:24:59 -07:00
Max Brunsfeld
22a6a243bc
Move project assertions into main assertion function
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-04-06 11:38:42 -07:00
Antonio Scandurra
4a61e2dfa4
Save server operations that were in the middle of being applied
...
Previously, if the test panicked before it had a chance to fully
apply an operation, it would end up not being saved in the plan.
With this commit we will mark the operation as applied before we
start processing it, and mark it as not applied if, once we're done,
we've found out that it couldn't be applied. This is consistent with
what we do for client operations.
2023-04-06 16:02:16 +02:00
Max Brunsfeld
bf3b8adf35
Avoid async fs call before checking if operation is applicable
...
This way, the executor isn't influenced by operations that aren't applicable.
2023-04-05 18:11:33 -07:00
Max Brunsfeld
1064b14779
Don't use TestPlan's rng in fake LSP handlers
...
These should use the test context's rng, so that they behave the same whether
a pre-recorded plan was used, or the plan is being generated.
2023-04-05 17:50:04 -07:00
Max Brunsfeld
8e68c7f808
Do include operations in serialized test plan if they cause a client to hang
2023-04-05 16:52:39 -07:00
Max Brunsfeld
661fba8640
Run executor until parked at end of each iteration of random collaboration test
...
Without this, the server doesn't get dropped at the end of the test, and we eventually run
out of file handles due to sqlite connections being retained.
2023-04-05 15:05:32 -07:00
Max Brunsfeld
781d66f628
Omit operations for non-existent users from serialized test plan
2023-04-05 15:04:27 -07:00
Max Brunsfeld
b251e249a7
Check for consistency between clients every time the system quiesces
2023-04-03 19:11:37 -07:00
Max Brunsfeld
5ecc9606af
Use synchronous locks in FakeFs
...
This way, the state can be accessed without running the deterministic
executor.
2023-04-03 18:15:07 -07:00
Max Brunsfeld
f95732e981
Fix bug where guest would drop BufferSaved messages while opening the buffer
2023-04-03 16:23:44 -07:00
Max Brunsfeld
543301f949
Avoid repeatedly loading/saving the test plan for each iteration
2023-04-03 15:58:11 -07:00
Max Brunsfeld
c960277349
Merge branch 'main' into randomized-tests-operation-script
2023-04-03 13:09:25 -07:00
Antonio Scandurra
5471217089
Use the same serde version across the entire workspace
2023-03-28 09:42:00 -07:00
Mikayla Maki
455cdc8b37
Add copilot crate
...
Refactor HTTP and github release downloading into util
Lazily download / upgrade the copilot LSP from Zed
Co-authored-by: Max <max@zed.dev>
Co-Authored-By: Antonio <antonio@zed.dev>
2023-03-28 09:41:59 -07:00
Julia
ed442cfc8c
Invoke npm from downloaded Node
2023-03-27 00:00:16 -04:00
Julia
edd6c85af7
Initial running of servers on downloaded Node
2023-03-27 00:00:16 -04:00
Max Brunsfeld
399f082415
Update wrong assertions after fixing missing event in FakeFs
2023-03-21 11:26:13 -07:00
Max Brunsfeld
fc828971f1
collab 0.8.2
2023-03-17 15:00:31 -07:00
Max Brunsfeld
691383ca68
Merge pull request #2305 from zed-industries/faster-access-token-validation
...
Faster access token validation
2023-03-17 14:56:30 -07:00
Max Brunsfeld
b8e8363a72
Add logging and metric for time spent hashing auth tokens
...
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
2023-03-17 14:32:13 -07:00
Max Brunsfeld
623133ffa0
Reduce scrypt work factor to speed up websocket authentication
...
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
2023-03-17 14:31:39 -07:00
Max Brunsfeld
9633a4b527
Return a 400, not a 500 when token validation fails
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-03-17 13:56:12 -07:00
Max Brunsfeld
26dae3c04e
Lookup access tokens by id when authenticating a connection
...
This avoids the cost of hashing an access token multiple times,
to compare it to all known access tokens for a given user.
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-03-17 11:13:50 -07:00
Antonio Scandurra
1af8f4be19
Deserialize Theme
directly into the heap to avoid stack overflow
...
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-03-17 15:58:52 +01:00
Max Brunsfeld
9633732db7
collab 0.8.1
2023-03-16 14:21:35 -07:00
Max Brunsfeld
b9bc66aa9b
Log the delay when retrying a transaction
2023-03-16 13:07:38 -07:00
Max Brunsfeld
35280f7d80
Introduce a delay before retrying a transaction after a serialization failure
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-03-16 13:07:38 -07:00
Antonio Scandurra
a6ebc9bd26
collab 0.8.0
2023-03-14 18:21:16 +01:00
Antonio Scandurra
0f429243d7
Fix seed binary
2023-03-14 12:37:56 +01:00
Antonio Scandurra
cba41ef7c5
Create user record automatically when someone logs in on the website
...
Now that we are moving out of the private alpha, we should let everyone
in when they try to log into zed.dev.
2023-03-14 12:25:04 +01:00
Max Brunsfeld
f5c4a2a0dd
Fix failure to see screenshare tracks that were started prior to joining a call
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-03-13 11:15:22 -07:00
Max Brunsfeld
e60dea7049
collab 0.7.2
2023-03-13 10:11:44 -07:00
Antonio Scandurra
bca1acf6d3
Leave room on quit
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-03-13 17:52:10 +01:00
Max Brunsfeld
e8b3d4e0fa
Encode db-max-connections env var as a string in k8s manifest
2023-03-10 17:19:16 -08:00
Max Brunsfeld
ff1c7db38f
collab 0.7.1
2023-03-10 16:36:03 -08:00
Mikayla Maki
37d01c7fb3
Merge pull request #2199 from zed-industries/welcome-experience
...
Welcome experience
2023-03-10 10:48:30 -08:00
Antonio Scandurra
8b7273e46e
Increase the amount of max connections to the database
2023-03-10 10:10:59 +01:00
Mikayla Maki
9187863d0e
re-add spaces removed by new setting
2023-03-09 00:45:05 -08:00
Antonio Scandurra
3daeabc1d6
collab 0.7.0
2023-03-09 09:30:04 +01:00
Antonio Scandurra
9328bb0153
Introduce Kubernetes liveness probe to ensure database works
2023-03-09 09:17:55 +01:00
Antonio Scandurra
89c283ecf0
Merge pull request #2252 from zed-industries/limit-messages-processed-in-parallel
...
Prevent collab server from being overwhelmed with messages
2023-03-09 08:51:48 +01:00
Mikayla Maki
152755b043
Add blank pane experience
2023-03-08 17:56:39 -08:00
Max Brunsfeld
14497027d4
collab 0.6.2
2023-03-08 12:22:16 -08:00
Antonio Scandurra
b4561b848d
Limit the number of parallel messages handled for any given connection
2023-03-08 17:04:01 +01:00
Julia
d173b1d412
Update db followers table when user leaves a project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-03-07 18:56:03 -05:00
Julia
1e5aff9e51
Update collab integration test to new reconnect timeout
2023-03-07 12:23:18 -05:00
Julia
b9110c9268
Increase reconnect timeout
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-03-03 13:10:08 -08:00
Max Brunsfeld
e7b56f6342
adjust buffer-formatting assertion to reflect final newline addition
2023-02-28 21:52:00 -08:00
Max Brunsfeld
e910fd8493
collab 0.6.1
2023-02-24 09:44:23 -08:00
Julia
465d8cc2ff
Differentiate between follow state on a per-project basis
2023-02-24 00:07:17 -05:00
Antonio Scandurra
bbeb33bc7e
Fix error when deleting rooms containing projects on refresh
...
A foreign key violation was causing the server to never delete stale
rooms during `Database::refresh_room` due to having one or more project
records referencing the room.
2023-02-23 15:54:35 +01:00
Antonio Scandurra
74e0bed38f
Fix compilation errors after restructuring room_transaction
2023-02-23 15:17:22 +01:00
Antonio Scandurra
832549f1a3
Merge branch 'main' into call-ui-follow-up
2023-02-23 15:15:46 +01:00
Antonio Scandurra
9334267bd0
Tear down peer when signing out
2023-02-23 14:47:02 +01:00
Antonio Scandurra
1c636500de
Merge pull request #2200 from zed-industries/fix-slow-project-join
...
Hold room lock through the entirety of a `room_transaction`
2023-02-23 09:11:58 +01:00
Max Brunsfeld
111aff29cc
collab 0.6.0
2023-02-22 12:35:15 -08:00
Julia
0324ca3b08
Be more specific about clearing (leader, follower) row
...
Previously anyone unfollowing someone would clear all other rows for
other followers leading to an incorrect state, fix and test
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-02-22 15:29:20 -05:00
Max Brunsfeld
0dc92bec5c
Retrieve room id from the project when following/unfollowing
...
Previously, we were accidentally using the project id as the room id.
2023-02-22 11:34:55 -05:00
Julia
e403b868b7
Add followers table to sqlite scheme for tests
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-02-22 11:22:37 -05:00
Julia
4513c40993
Following face piles finally take their first breath
2023-02-22 11:21:23 -05:00
Julia
4ffc8cd9fd
Fix deadlock in db get_room
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-02-22 11:21:23 -05:00
Julia
2592ec7265
Initial tracking of unfollows on collab server
2023-02-22 11:21:23 -05:00
Julia
d6462c611c
Begin tracking follow states on collab server
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-02-22 11:21:23 -05:00
Antonio Scandurra
8dd249a7cd
Hold room lock through the entirety of a room_transaction
...
Previously, when the host repeatedly sent `UpdateWorktree` messages,
new guests attempting to join a project would observe a severe slowdown
caused by a database serialization error (e.g., the coherence of the data
would get violated midway through `Database::join_project` due to worktree
entries being mutated as the user joined). Writing entries is pretty fast,
whereas reading all of them for a project can take more than 100ms.
Transactions that failed due to a serialization error are retried, but the guest
would keep retrying until the host finished writing because the guest's read
was slow.
This commit changes the semantics of `room_transaction` to acquire a room
lock before even starting the transaction and holding it all the way after
commit (storing it, as before, in the `RoomGuard`). This ensures that a fast
writer (the host) can't starve a slow reader (the guest), allowing the latter
to make progress by temporarily pausing writes by the former.
2023-02-22 16:04:29 +01:00
Max Brunsfeld
51cea1b1fb
Merge branch 'main' into randomized-tests-operation-script
2023-02-20 10:39:00 -08:00
Julia
bda37ffb9c
Enforce rustfmt on CI & clean up some let-else format errors
2023-02-20 13:27:35 -05:00
Max Brunsfeld
010eba509c
Make Project::save_buffer and ::save_buffers into methods
2023-02-20 09:42:44 -08:00
Max Brunsfeld
cdf64b6cad
Unify save and save_as for local worktrees
...
This fixes state propagation bugs due to missing RPC calls in save_as.
2023-02-17 17:21:48 -08:00
Max Brunsfeld
3a7cfc3901
Move the save and save_as code paths close together
2023-02-17 17:21:48 -08:00
Max Brunsfeld
eebce28b32
Respect UpdateBufferFile messages on guest buffers without file
...
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2023-02-17 12:38:04 -08:00
Antonio Scandurra
7be868e372
Avoid creating more than one room when inviting multiple people at once
...
Previously, when initiating a call by calling multiple people, only
the first person would get the call while all the others would briefly
show a "pending" status but never get the call.
This would happen because `ActiveCall` was trying to a create a different
room for each person called, because the original room creation hadn't finished
and so a `ModelHandle<Room>` wasn't being store in the active call.
With this commit, only one room can be created at any given time and further
invites have to wait until that room creation is done.
2023-02-14 12:03:30 +01:00
Antonio Scandurra
087d51634d
Fix test that wasn't properly verifying disconnection from livekit
2023-02-14 10:46:29 +01:00
Mikayla Maki
ea39983f78
Removed old experiments settings and staff mode flag, added new StaffMode global that is set based on the webserver's staff bit
2023-01-27 15:43:12 -08:00
Kay Simmons
ea0dd8972f
Merge pull request #2090 from zed-industries/workspace-window-position-persistence
...
Workspace window position persistence
2023-01-27 15:24:01 -08:00
Kay Simmons
a1308d20ce
Merge pull request #2105 from zed-industries/fix-focus-stealing-when-collaborating
...
Limit focus grabbing in followed pane
2023-01-27 15:23:43 -08:00
Kay Simmons
0f93386071
Add run until parked to test_fs_operations to ensure both update chunks are completed before asserting the changes
2023-01-27 15:07:51 -08:00
Kay Simmons
77a4f907a0
removed invalid focus assertion
2023-01-27 13:43:36 -08:00
Antonio Scandurra
5431488a9a
collab 0.5.4
2023-01-27 11:07:12 +01:00
Antonio Scandurra
ac7618da17
Merge pull request #2103 from zed-industries/connection-staleness
...
Fix connection staleness issues
2023-01-27 11:01:24 +01:00
Max Brunsfeld
1b45911857
Omit hidden worktrees when showing projects in collaboration UI
2023-01-26 14:47:37 -08:00
Petros Amoiridis
73af155dd6
Refactor Database::remove_contact
...
Refactor it to avoid sending irrelevant messages to update the UI.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-01-26 19:01:51 +02:00
Antonio Scandurra
74aeec360d
Cancel pending call when participant leaves room after a reconnection
...
Previously, if a user temporarily disconnected while there was a pending
call, we would fail to cancel such pending call when the caller left the
room. This was due to the caller reconnecting and having a different connection
id than the one originally used to initiate the call.
2023-01-26 16:44:55 +01:00
Kay Simmons
5eac797a93
mostly working now
2023-01-25 11:36:38 -08:00
Kay Simmons
15799f7af6
wip
2023-01-25 11:32:19 -08:00
Petros Amoiridis
e928c1c61e
Test removing a contact
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-01-25 17:31:42 +02:00
Petros Amoiridis
5d4eb2b7ae
Push responder and requester to remove_contacts
...
When we ask the server to remove a contact we need to push the requester and responder ids to `remove_contacts` so that when the UI updates, the correct contacts will disappear from the list.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-01-25 13:10:29 +02:00
Max Brunsfeld
9c25d37dfc
Merge branch 'main' into randomized-tests-operation-script
...
In randomized integration test, incorporate random updates of existing
files into the test's new structure.
2023-01-24 12:39:24 -08:00
Mikayla Maki
d060114f00
Added complete scripts for generating third party license files
2023-01-23 12:47:12 -08:00
Max Brunsfeld
2f42af2ac3
Add confirm_quit setting
2023-01-20 13:02:38 -08:00
Antonio Scandurra
a58b39f884
Merge branch 'main' into optimize-large-multi-buffers
2023-01-19 16:18:21 +01:00
Max Brunsfeld
17b4bfdf98
Merge pull request #2045 from zed-industries/fewer-unsaved-prompts
...
Avoid prompting to save when closing an untitled buffer that is still open elsewhere
2023-01-18 15:10:19 -08:00
Mikayla Maki
203f569f2e
collab 0.5.3
2023-01-18 12:52:58 -08:00
Antonio Scandurra
8ca0f9ac99
Fix compile errors
2023-01-18 13:58:01 +01:00
Max Brunsfeld
8651320c9f
Make workspace items expose their underlying models, remove file-related methods
2023-01-17 17:21:06 -08:00
Joseph T. Lyons
c3b102f5a8
Add users to mailing list when using an invite link
2023-01-17 16:46:01 -05:00
Antonio Scandurra
dc88a67f50
Fix assertions
2023-01-17 18:09:45 +01:00
Antonio Scandurra
cc788dc5f7
Verify saved_version
, saved_version_fingerprint
and saved_mtime
2023-01-17 16:46:06 +01:00
Antonio Scandurra
2cd9db1cfe
Ensure Buffer::{is_dirty,has_conflict}
converge in randomized test
2023-01-17 16:32:51 +01:00
Max Brunsfeld
2c84b74126
Avoid retaining project in randomized test while LSP request is outstanding
2023-01-16 09:48:54 -08:00
Max Brunsfeld
1a9ff2420e
Clean up how applications are marked as inapplicable
2023-01-12 22:09:36 -08:00
Max Brunsfeld
e04d0be853
Remove unneeded log messages in randomized test
2023-01-12 14:30:53 -08:00
Max Brunsfeld
00e8625037
Simplify management of entity ids for different app contexts in randomized test
2023-01-12 14:30:10 -08:00
Max Brunsfeld
a3c7416218
Don't include user ids with MutateClients ops in serialized test plans
2023-01-12 14:28:31 -08:00
Max Brunsfeld
02f6928328
collab 0.5.2
2023-01-11 14:00:44 -08:00
Max Brunsfeld
74f8b493b2
collab 0.5.1
2023-01-11 13:25:28 -08:00
Max Brunsfeld
49379924cb
Avoid dropping is_complete column for backward compatibility
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-01-11 13:25:02 -08:00
Mikayla Maki
048da9ddce
collab 0.5.0
2023-01-11 10:50:16 -08:00
Mikayla Maki
a3da41bfad
Fix test failures due to dependency on Settings global in client for telemetry
...
co-authored-by: kay <kay@zed.dev>
2023-01-10 16:39:03 -08:00
Max Brunsfeld
576a9bb92c
Drop project's buffers when closing a remote project
2023-01-09 14:49:36 -08:00
Max Brunsfeld
5a4fa4b11e
Merge branch 'main' into randomized-tests-operation-script
2023-01-09 12:26:11 -08:00
Max Brunsfeld
3e3a703b60
Skip inapplicable operations when running an edited test plan
2023-01-09 11:36:53 -08:00
Antonio Scandurra
529ccbda3a
Introduce git index mutations to randomized collaboration test
...
The test now fails at the following seed:
```bash
SEED=850 ITERATIONS=1 OPERATIONS=131 cargo test --package=collab random
```
2023-01-08 08:52:16 -07:00
Max Brunsfeld
c503ba00b6
Add env vars to store and load test plan from JSON files
2023-01-06 17:51:25 -08:00
Nathan Sobo
213658f1e9
Fix tests that failed due to defaulting the grouping interval to zero in tests
2023-01-06 17:56:21 -07:00
Max Brunsfeld
2351f2bd0c
Tolerate failure to join remote projects in randomized test
2023-01-06 15:40:42 -08:00
Max Brunsfeld
99390a7237
Represent all randomized test actions as operations
2023-01-06 15:32:11 -08:00
Max Brunsfeld
210286da48
Make operations for all buffer manipulations
2023-01-06 15:32:11 -08:00
Max Brunsfeld
f1b3692a35
Tweak operation rates
2023-01-06 15:32:11 -08:00
Max Brunsfeld
f243633f3e
Set up flow for mutating clients via explicit operation values
2023-01-06 15:32:11 -08:00
Max Brunsfeld
ce8dd5a286
wip
2023-01-06 15:32:11 -08:00
Max Brunsfeld
a74c5073a4
Start work on allowing random collab test to be minimized
...
Represent operations as an explicit enum.
2023-01-06 15:32:11 -08:00
Antonio Scandurra
8487ae77e7
Share new worktrees when resharing project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-01-06 12:58:19 -07:00
Nathan Sobo
1006ada458
Update scan_id on worktree entries when there is a conflict
...
Forgetting to do this meant we were unable to sync changes with reconnecting
guests in some cases.
2023-01-04 13:59:16 -07:00
Nathan Sobo
789bbf15b7
Update buffer files when synchronizing buffers
...
It's possible that the host was disconnected when attempting to notify
guests of a file save, so we need to transmit this in order to correctly
update the file's mtime.
Next failing seed OPERATIONS=200 SEED=6894
2023-01-04 12:33:48 -07:00
Nathan Sobo
1dd085fc92
Introduce completed_scan_id to worktree
...
We need to know the most recent scan id we have actually completed. This is to
handle the case where a guest disconnects when we're in the middle of streaming
worktree entries to them. When they reconnect, they need to report a scan_id
from before we started streaming the entries, because we have no record of when
the stream was interrupted.
Next failure:
SEED=5051 ITERATIONS=1 OPERATIONS=200 cargo test --release --package=collab random -- --nocapture
2023-01-03 18:26:57 -07:00
Nathan Sobo
90fb9b53ad
WIP
2023-01-03 13:30:14 -07:00
Nathan Sobo
8d70a22fa3
Record failing seed
2023-01-02 21:12:39 -07:00
Nathan Sobo
273988b8d5
Set transaction group interval to ZERO by default in tests
...
We were seeing non-deterministic behavior in randomized tests when
generating backtraces took enough time to cause transactions to group
in some cases, but not group in others.
Tests will need to explicitly opt into grouping if they want it by
setting the interval explicitly. We have tests in the text module that
currently test the history grouping explicitly, but I'm not sure
it's needed elsewhere.
2022-12-27 16:47:28 -07:00
Max Brunsfeld
599acf0daa
WIP - Panic immediately when detecting non-determinism via a change to the execution trace
2022-12-23 17:34:13 -08:00
Max Brunsfeld
42e74e7eef
Excluded deleted entries when initially sending worktrees to guests
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-12-22 11:18:10 -08:00
Antonio Scandurra
738e161bc6
WIP: failing test
...
SEED=882 RUST_LOG=collab::tests::randomized_integration_tests=info MAX_PEERS=2 ITERATIONS=1 OPERATIONS=49 cargo test --package=collab random -- --nocapture
2022-12-22 18:32:21 +01:00
Antonio Scandurra
559e14799c
Restructure randomized test to be a bit clearer and test more stuff
2022-12-22 17:54:25 +01:00
Max Brunsfeld
c321f5d94a
Assert that buffers' file state matches in randomized collab test
...
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-12-21 15:38:44 -08:00
Max Brunsfeld
89da738fae
In randomized test, open remote projects via the room
...
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-12-21 14:13:43 -08:00
Max Brunsfeld
8cd94060bb
💄 Avoid referring to all clients as guests in random integration test
2022-12-21 11:37:18 -08:00
Max Brunsfeld
d8ccdff9fc
Move randomized integration test into its own file
2022-12-21 11:26:24 -08:00
Antonio Scandurra
47348542ef
Synchronize buffers when either the host or a guest reconnects
2022-12-21 14:20:56 +01:00
Antonio Scandurra
b0336cd27e
Add failing test for buffer synchronization after disconnecting
2022-12-21 11:56:15 +01:00
Antonio Scandurra
ecd80c553c
Verify removing worktrees while host is offline
2022-12-21 11:47:01 +01:00
Max Brunsfeld
15f666a50a
Refresh project collaborator connection id for rejoined projects
2022-12-20 18:03:33 -08:00
Max Brunsfeld
213be3d6bd
Delete stale projects after cleanup interval, via server foreign key cascade
2022-12-20 17:27:42 -08:00
Max Brunsfeld
55800fc696
💄 Avoid repeated sql condition in rejoin_room
2022-12-20 17:23:52 -08:00
Max Brunsfeld
6a2066af6c
💄 Reduce indentation in Database::rejoin_room
2022-12-20 17:16:56 -08:00
Max Brunsfeld
cb8962691a
Remove unnecessary UnshareProject message sent to clients leaving a project
2022-12-20 16:58:44 -08:00
Max Brunsfeld
bb00134f5f
Clean up projects when leaving a room
2022-12-20 16:44:57 -08:00
Max Brunsfeld
21d6665c37
Merge branch 'main' into project-reconnection
2022-12-20 15:50:09 -08:00
Max Brunsfeld
6542b30d1f
Implement rejoining projects as guest when rejoining a room
...
Co-authored-by: Julia Risley <julia@zed.dev>
2022-12-20 15:02:26 -08:00
Max Brunsfeld
55ebfe8321
Handle unshared projects when rejoining a room
...
Also, construct remote projects via the room, to guarantee
that the room can manage the projects' sharing lifecycle.
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-12-20 11:10:46 -08:00
Antonio Scandurra
d31fd9bbf2
Support adding worktrees to project while host is offline
2022-12-20 17:42:08 +01:00
Antonio Scandurra
52babc51a0
Make host reconnection test pass when mutating worktree while offline
2022-12-20 17:30:58 +01:00
Antonio Scandurra
1a3940a12e
Fix project reconnection test to ensure rooms actually reconnects
2022-12-20 14:51:46 +01:00
Antonio Scandurra
1aec691b35
Sketch out project reconnection routine on the server
2022-12-20 12:03:43 +01:00
Max Brunsfeld
af85db9ea5
WIP - Retain hosts' project state when they disconnect
2022-12-19 11:38:08 -08:00
Max Brunsfeld
67b265b3d5
Add failing integration test for resharing projects on reconnect
2022-12-19 11:37:28 -08:00
Max Brunsfeld
c8b209306e
collab 0.4.2
2022-12-19 11:29:22 -08:00
Antonio Scandurra
0ede89d82a
WIP
2022-12-19 20:05:00 +01:00
Julia
de9c58d216
Merge pull request #1983 from zed-industries/multi-buffer-git-gutter
...
Multi buffer git gutter
2022-12-19 10:53:42 -05:00
Antonio Scandurra
a5f624203e
collab 0.4.1
2022-12-16 12:02:03 +01:00
Antonio Scandurra
aa44de3d16
Fix test ensuring room is left when disconnected from LiveKit
2022-12-16 10:52:32 +01:00
Max Brunsfeld
ad37034960
Identify LiveKit room participants by user id, not peer id
...
This way, their participant id can remain the same when they reconnect.
2022-12-15 17:19:32 -08:00
Antonio Scandurra
c2f5381e5a
collab 0.4.0
2022-12-15 19:37:53 +01:00
Antonio Scandurra
2679e245a5
Minor stylistic change
2022-12-15 16:40:16 +01:00
Antonio Scandurra
5a334622ea
💄
2022-12-15 16:34:59 +01:00
Antonio Scandurra
5720c43fe7
Merge branch 'main' into fix-reconnects-after-deploy
2022-12-15 15:32:05 +01:00
Antonio Scandurra
5fb522a9b1
collab 0.3.14
2022-12-15 11:31:51 +01:00
Antonio Scandurra
86e5ae1f2e
Allow nulls in projects.host_connection_{id,server_id}
...
The server version on stable won't be able to fill values for those
columns when we deploy the migration to preview.
With this commit we're also dropping the unused `worktree_extensions`
and `project_activity_periods` tables. The last version of the server
on stable (0.2.6) doesn't contain any code that accesses those tables.
2022-12-15 11:30:51 +01:00
Antonio Scandurra
aadd7f2886
collab 0.3.13
2022-12-15 10:53:17 +01:00
Antonio Scandurra
067a19c971
Avoid logging an error when user who hasn't joined any room disconnects
2022-12-15 10:45:03 +01:00
Antonio Scandurra
688f179256
Use "id" nomenclature more consistently
2022-12-15 10:15:59 +01:00
Antonio Scandurra
af77f1188a
Re-add server_id indices for room_participants/project_collaborators
2022-12-15 09:58:25 +01:00
Julia
0dedc1f3a4
Get tests building again
2022-12-15 00:17:28 -05:00
Max Brunsfeld
6c58a4f885
Fix stale server queries, use foreign keys from connectionsn to servers
2022-12-14 17:34:24 -08:00
Max Brunsfeld
e08d6cd6de
Merge pull request #1921 from zed-industries/multibuffer-following
...
Allow following collaborators into editors with multi-excerpt buffers (refactors + find-all-refs)
2022-12-14 15:33:11 -08:00
Max Brunsfeld
954c9ac3fd
Add integration test coverage for following into multibuffers
2022-12-14 15:28:58 -08:00
Max Brunsfeld
e4c5dfcf6c
Use run_until_parked instead of 'condition' in all integration tests
2022-12-14 15:05:35 -08:00
Antonio Scandurra
363e3cae4b
WIP
2022-12-14 19:25:07 +01:00
Antonio Scandurra
930be6706f
WIP
2022-12-14 18:02:39 +01:00
Antonio Scandurra
05e99eb67e
Introduce an epoch to ConnectionId
and PeerId
2022-12-14 15:55:56 +01:00
Antonio Scandurra
9bd400cf16
collab 0.3.12
2022-12-14 11:43:33 +01:00
Antonio Scandurra
674fddac87
Instrument rpc::Server::start
and reduce cleanup timeout again
2022-12-14 11:42:12 +01:00
Antonio Scandurra
63e7b9189d
collab 0.3.11
2022-12-14 11:25:04 +01:00
Antonio Scandurra
9530976f61
Try using a longer timeout for cleaning up stale rooms
2022-12-14 11:24:36 +01:00
Antonio Scandurra
02c30b0091
collab 0.3.10
2022-12-14 09:35:52 +01:00
Antonio Scandurra
b9c7796547
Reduce readiness probe delay and period
2022-12-14 09:35:36 +01:00
Antonio Scandurra
e00cb6b074
collab 0.3.9
2022-12-14 09:05:19 +01:00
Antonio Scandurra
dc47552180
Fix kubernetes configuration for readiness probe
2022-12-14 08:58:19 +01:00
Antonio Scandurra
98a593b263
collab 0.3.8
2022-12-14 08:56:02 +01:00
Antonio Scandurra
897506c797
Define readiness probe to know when the new server can accept traffic
2022-12-14 08:54:46 +01:00
Antonio Scandurra
59c9a57570
collab 0.3.7
2022-12-14 08:43:18 +01:00
Antonio Scandurra
dde6cf596e
Don't wait for stale project deletion before listening for connections
2022-12-14 08:42:34 +01:00
Antonio Scandurra
2596fefa04
collab 0.3.6
2022-12-13 23:09:02 +01:00
Antonio Scandurra
34b69896e4
Listen to SIGTERM in addition to ctrl-c for graceful shutdown
2022-12-13 23:08:43 +01:00
Antonio Scandurra
7824ace58b
collab 0.3.5
2022-12-13 22:40:55 +01:00
Antonio Scandurra
b150efbd96
Set log level to debug for preview deployment
...
Also, add a log statement when we receive the interrupt signal.
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-12-13 22:38:55 +01:00
Max Brunsfeld
c20204d269
collab 0.3.4
2022-12-13 11:17:37 -08:00
Max Brunsfeld
45bfcfc3b8
Fix excessive delay before clearing stale room data
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-12-13 11:17:20 -08:00
Max Brunsfeld
5218a2f966
collab 0.3.3
2022-12-13 10:17:01 -08:00
Max Brunsfeld
95748123b5
Merge remote-tracking branch 'origin/collab-0.3.x'
2022-12-13 10:16:25 -08:00
Max Brunsfeld
6ad326ac58
Wait longer before deleting outdated rooms from the database
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-12-13 10:14:43 -08:00
Antonio Scandurra
99c5f8c713
collab 0.3.2
2022-12-13 15:16:41 +01:00
Antonio Scandurra
073a2988e6
Move creation of room_id index into its own migration
2022-12-13 13:57:41 +01:00
Antonio Scandurra
70aac75dd5
Run until parked before asserting about participants in restart test
2022-12-13 13:53:51 +01:00
Antonio Scandurra
4dc838fbb7
Reset connection pool when tearing down the server in tests
2022-12-13 13:51:25 +01:00
Antonio Scandurra
d4c8fa3090
Use a synchronous mutex for ConnectionPool
2022-12-13 13:50:51 +01:00
Antonio Scandurra
a594ba8f8a
Simulate server restarts in randomized test
2022-12-13 12:18:38 +01:00
Antonio Scandurra
417db95693
Fix typo in index name
2022-12-13 11:44:48 +01:00
Antonio Scandurra
0220d7ba5d
Include room_id
in CallCanceled
message
...
This ensures we don't accidentally cancel old calls.
2022-12-13 11:43:09 +01:00
Antonio Scandurra
e2b132ef23
💄
2022-12-13 11:37:39 +01:00
Antonio Scandurra
7e8d9d52d3
Delete stray debug statement
2022-12-13 11:36:40 +01:00
Antonio Scandurra
6a6a032f1f
Delete stale rooms/participants after RECONNECT_TIMEOUT
2022-12-13 11:32:37 +01:00
Antonio Scandurra
beea9b68ff
Allow re-joining room after server restarts
2022-12-12 16:03:21 +01:00
Antonio Scandurra
3cd77bfcc4
Always cast connection ids to i32
...
Postgres doesn't support unsigned types. This also adds indices to
support querying `project_collaborators` and `room_participants`
by connection id.
2022-12-12 11:43:08 +01:00
Antonio Scandurra
456396ca6e
Rename connection_lost
to answering_connection_lost
2022-12-12 11:43:08 +01:00
Antonio Scandurra
26b5653427
Delete hosted projects from database when connection is lost
2022-12-12 11:43:08 +01:00
Antonio Scandurra
895c365485
Introduce random reconnections in the randomized test
2022-12-12 11:43:08 +01:00
Antonio Scandurra
8fa26bfe18
Fix test_calls_on_multiple_connections
after adding room reconnection
2022-12-12 11:43:08 +01:00
Antonio Scandurra
aca3f02590
Re-join room when client temporarily loses connection
2022-12-12 11:43:08 +01:00
Antonio Scandurra
d74fb97158
Remove Executor
trait from collab
and use an enum instead
...
This will let us save off the executor and avoid using generics.
2022-12-12 11:43:08 +01:00
Antonio Scandurra
0366d725ea
collab 0.3.1
2022-12-09 08:19:41 +01:00
Antonio Scandurra
2697112a8a
Don't drop unregistered
column in reconnection support migration
...
We don't use this column anymore because, when a project is unshared, we
simply remove it from the `projects` table. However, this column is expected
in the stable version of the server and the database is shared between stable
and preview. If we dropped it, stable would start throwing errors.
2022-12-09 08:11:18 +01:00
Mikayla Maki
925c9e13bb
Remove terminal container view, switch to notify errors
2022-12-08 20:21:00 -08:00
Joseph Lyons
ab978ff1a3
collab 0.3.0
2022-12-08 16:35:13 -05:00
Joseph T. Lyons
dcd4b8f7db
Merge pull request #1941 from zed-industries/Allow-overwriting-signup-data
...
Allow overwriting signup data if a user signs up more than once with the same email address
2022-12-08 16:11:28 -05:00
Joseph Lyons
d71d543337
Ensure that subsequent signup happens after initial
...
We can't rely on the fact that the test won't run fast enough such that both `created_at`s are the same time. This ensures the subsequent signup happens after the initial one and that the database doesn't overwrite the initial one.
2022-12-07 08:15:01 -05:00
Antonio Scandurra
665219fb00
Fix inviting user that had already signed up via a different email
2022-12-07 14:07:01 +01:00
Antonio Scandurra
1b8f23eeed
Add failing test showcasing inviting existing user via different email
2022-12-07 14:06:59 +01:00
Joseph Lyons
5f31907127
Clean up test
2022-12-07 07:12:27 -05:00
Joseph Lyons
97989b04a0
Remove comment
2022-12-06 17:18:54 -05:00
Joseph Lyons
694840cdd6
Allow overwriting signup data if a user signs up more than once with the same email address
2022-12-06 17:12:12 -05:00
Antonio Scandurra
3b5b48c043
Query project count as i64 instead of i32 when gathering metrics
...
Using the latter will cause a type mismatch when performing the query.
2022-12-06 15:00:32 +01:00
Antonio Scandurra
fc7b01b74e
Fix busy status when accepting a contact request
...
Previously, we would send an contact update when accepting a request
using the same `busy` status for both the requester and the responder.
This was obviously wrong and caused the requester to see their own
busy status as the newly-added responder contact's status.
2022-12-06 10:19:34 +01:00
Antonio Scandurra
744714b478
Remove unused UserId
import from seed script
2022-12-06 09:07:25 +01:00
Antonio Scandurra
9a62150dce
Merge branch 'main' into reconnections-2
2022-12-05 19:18:40 +01:00
Antonio Scandurra
7bbd97cfb9
Send diagnostic summaries synchronously
2022-12-05 19:07:06 +01:00
Antonio Scandurra
5443d9cffe
Return project collaborators and connection IDs in a RoomGuard
2022-12-05 18:37:01 +01:00
Antonio Scandurra
be3fb1e985
Update sea-orm to fix bug on failure to commit transactions
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-12-05 18:36:25 +01:00
Antonio Scandurra
b97c35a468
Remove project_id foreign key from room_participants
2022-12-05 15:16:06 +01:00
Antonio Scandurra
eec3df09be
Upgrade sea-orm
2022-12-05 14:56:01 +01:00
Antonio Scandurra
d3c411677a
Remove random pauses to prevent the database from deadlocking
2022-12-05 12:03:45 +01:00
Antonio Scandurra
d97a8364ad
Retry transactions if there's a serialization failure during commit
2022-12-05 10:49:53 +01:00
Antonio Scandurra
0ed731780a
Remove duplication between transaction
and room_transaction
2022-12-05 09:46:03 +01:00
Julia
11c1254e71
Merge pull request #1924 from zed-industries/simon-says-dont-move
...
Do not reorder tab opened by follower to end of item list
2022-12-04 13:00:07 -05:00
Kay Simmons
1cc3e4820a
working serialized writes with panics on failure. Everything seems to be working
2022-12-03 16:06:01 -08:00
Mikayla Maki
992b94eef3
Rebased to main
2022-12-03 16:06:01 -08:00
Kay Simmons
d20d21c6a2
Dock persistence working!
...
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2022-12-03 16:06:01 -08:00
Kay Simmons
c1f7902309
wip
2022-12-03 16:06:01 -08:00
Mikayla Maki
4798161118
Distributed database pattern built.
...
Co-Authored-By: kay@zed.dev
2022-12-03 16:06:01 -08:00
Mikayla Maki
a5edac312e
Moved to workspaces crate... don't feel great about it
2022-12-03 16:05:26 -08:00
Mikayla Maki
3451a3c7fe
Rebase - Got Zed compiling and fixed a build error due to conflicting dependencies that cargo didn't catch :(
...
Co-Authored-By: kay@zed.dev
2022-12-03 16:04:10 -08:00
Julia
4bc1d77535
Fix tab following order test to wait for file open to propagate
...
Now it can actually repro the original bug
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-12-02 16:09:37 -05:00
Antonio Scandurra
d96f524fb6
WIP: Manually rollback transactions to avoid spurious savepoint failure
...
TODO:
- Avoid unwrapping transaction after f(tx)
- Remove duplication between `transaction` and `room_transaction`
- Introduce random delay before and after committing a transaction
- Run lots of randomized tests
- Investigate diverging diagnostic summaries
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-12-02 20:36:50 +01:00
Antonio Scandurra
1c30767592
Remove stale Error
variant
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-12-02 19:20:51 +01:00
Antonio Scandurra
969c314315
Merge branch 'main' into reconnections-2
2022-12-02 19:09:33 +01:00
Antonio Scandurra
568de814aa
Delete empty rooms
2022-12-02 16:56:41 +01:00
Antonio Scandurra
27f6ae945d
Clear stale data on startup
...
This is a stopgap measure until we introduce reconnection support.
2022-12-02 16:30:00 +01:00
Antonio Scandurra
1b46b7a7d6
Move modules into collab
library as opposed to using the binary
...
This ensures that we can use collab's modules from the seed script
as well.
2022-12-02 14:37:52 +01:00
Antonio Scandurra
7502558631
Make all tests pass again after migration to sea-orm
2022-12-02 14:22:36 +01:00
Antonio Scandurra
48b6ee313f
Use i32 to represent Postgres INTEGER
types in Rust
2022-12-02 13:58:54 +01:00
Antonio Scandurra
dec5f37e4e
Finish porting remaining db methods to sea-orm
2022-12-02 13:58:23 +01:00
Julia
239a04ea5b
Add test that should have exercised tab reordering while following
...
Except it doesn't, it passes both with and without the prior commit.
Investigate further
2022-12-02 00:31:16 -05:00
Antonio Scandurra
585ac3e1be
WIP
2022-12-01 18:39:24 +01:00
Antonio Scandurra
29a4baf346
Replace i32 with u32 for database columns
...
We never expect to return signed integers and so we shouldn't use
a signed type. I think this was a limitation of sqlx.
2022-12-01 17:47:51 +01:00