Max Brunsfeld
0db4b29452
Avoid N+1 query for channels with new messages
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-10-02 16:22:28 -07:00
Max Brunsfeld
d9d997b218
Avoid N+1 query for channels with notes changes
...
Also, start work on new timing for recording observed notes edits.
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-10-02 15:58:34 -07:00
Conrad Irwin
528fa5c57b
Refactor to remove toggle_follow
2023-10-02 16:51:02 -06:00
Conrad Irwin
27d784b23e
Fix bug in following
...
Prior to this change you could only follow across workspaces when you
were heading to the first window.
2023-10-02 16:29:42 -06:00
Conrad Irwin
39af2bb0a4
Ensure notifications are dismissed
...
Before this change if you joined a project without clicking on the
notification it would never disappear.
Fix a related bug where if you have more than one monitor, the
notification was only dismissed from one of them.
2023-10-02 11:01:21 -06:00
Mikayla
1d5b665f13
Implement channel changes for messages
2023-10-01 22:32:11 -07:00
Mikayla
51cf6a5ff3
Add database implementation of channel message change tracking
2023-10-01 22:32:11 -07:00
Mikayla
e0ff7ba180
Add channel note indicator and clear changed status
2023-10-01 22:32:10 -07:00
Mikayla
9ba975d6ad
Channel notifications from the server works
2023-10-01 22:30:21 -07:00
Mikayla
1469c02998
Add observed_channel_notes table and implement note diffing
2023-10-01 22:26:27 -07:00
Conrad Irwin
92bb9a5fdc
Make following more good
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-09-29 17:59:19 -06:00
Max Brunsfeld
ca0a4bdf8e
Introduce a WorkspaceStore for handling following
2023-09-28 18:58:52 -07:00
Max Brunsfeld
0058702749
Remove unused db query method
2023-09-28 17:13:10 -07:00
Max Brunsfeld
e9c1ad6acd
Undo making project optional on stored follower states
...
Following works without a project, but following in unshared projects does
not need to be replicated to other participants.
2023-09-28 14:21:44 -07:00
Max Brunsfeld
ce940da8e9
Fix errors from assuming all room_participant rows had a non-null participant_index
...
Rows representing pending participants have a null participant_index.
Co-authored-by: Conrad <conrad@zed.dev>
2023-09-28 12:03:53 -07:00
Max Brunsfeld
0f39b63801
Rename color_index to participant_index
...
Co-authored-by: Conrad <conrad@zed.dev>
2023-09-28 11:37:22 -07:00
Max Brunsfeld
545b5e0161
Assign unique color indices to room participants, use those instead of replica_ids
...
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Antonio <antonio@zed.dev>
2023-09-28 11:06:09 -07:00
Max Brunsfeld
4ffa167256
Allow following into channel notes regardless of project
2023-09-21 17:12:59 -07:00
Max Brunsfeld
ed8b022b51
Add initial failing test for following to channel notes in an unshared project
2023-09-21 13:14:15 -07:00
Max Brunsfeld
c71566e7f5
Make project id optional when following - server only
2023-09-21 13:14:15 -07:00
Mikayla
4ff44dfa3b
Fix bugs in moving channels that could cause channels to be stranded or moved unexpectedly
...
Made channel linking not query in a loop
co-authored-by: Max <max@zed.dev>
2023-09-20 15:32:06 -07:00
Mikayla Maki
e37373a636
Add UI/UX for moving channels ( #2976 )
...
TODO:
- [x] Add drag and drop
- [x] Polish up in-flight decisions.
- [x] Fix chat panel panic
- [x] Add nice hover effect highlighting the matching ones
- [x] Fix and test keyboard
Release Notes:
- N/A
2023-09-19 17:56:22 -07:00
Mikayla
ac65e7590c
Add hover styles to channels matching the current selection
...
Fix chat desync from moving / linking channels
2023-09-19 17:50:02 -07:00
Mikayla
dadad397ef
Finish optimizing channel representations and operations
2023-09-18 20:24:37 -07:00
Piotr Osiewicz
616d328f3c
chore: Use aho-corasick 1.1 in direct dependencies ( #2983 )
...
Nothing too fancy, we've depended indirectly on 1.0/1.1 already, so this
is essentially bookkeeping.
Release Notes:
- N/A
2023-09-18 17:01:08 +02:00
Mikayla
5f9c56c8b0
WIP: Send the channel name and the channel edges seperately, so we're not repeating them constantly
...
This commit is currently broken and includes debug data for a failed attempt at rewriting the insert_edge logic
2023-09-15 17:57:23 -07:00
Mikayla
363867c65b
Make DAG tests order independent
2023-09-15 13:44:01 -07:00
Mikayla
52057c5619
Simplify path representation in collab panel
...
Optimize set representation in collab
2023-09-15 13:35:46 -07:00
Mikayla
5400605483
Fix merge conflicts
2023-09-15 12:30:26 -07:00
Mikayla
f9fff3a7b2
fmt
2023-09-15 11:39:56 -07:00
Mikayla
d424e27164
Finish testing new channel store client behavior
2023-09-15 11:39:56 -07:00
Mikayla
67ad75a376
Clean up implementation of channel index, get simple channel moving test cases working
2023-09-15 11:39:56 -07:00
Mikayla
9afb67f2cf
Implement final move, link, unlink db APIs
2023-09-15 11:39:56 -07:00
Mikayla
7fa68a9aa4
WIP: improve move and link handling around 'root paths', currently very incorrect and in need of a deeper rework
2023-09-15 11:39:56 -07:00
Mikayla
cda54b8b5f
Improve database and RPC API for moving and linking channels, improve test legibility
2023-09-15 11:39:55 -07:00
Mikayla
3a62d2988a
Finish integration tests for channel moving
...
Refactor channel store to combine the channels_by_id and channel_paths into a 'ChannelIndex'
2023-09-15 11:23:43 -07:00
Mikayla
9e68d4a8ea
WIP: Add channel DAG related RPC messages, change update message
2023-09-15 11:23:12 -07:00
Mikayla
49fbb27ce9
Improve channel deletion to be DAG aware
2023-09-15 11:20:04 -07:00
Mikayla
bd9e964a69
Add removing of previous channel channel, allowing for channel moving operations
2023-09-15 11:20:04 -07:00
Mikayla
fc78db39ef
Expand DAG tests to include more complex tree operations and removal behavior
2023-09-15 11:20:04 -07:00
Mikayla
d5512fad0d
Add channel linking operation
2023-09-15 11:20:04 -07:00
Mikayla
aa9a9be7e9
Add channel moving test
2023-09-15 11:20:04 -07:00
Max Brunsfeld
59269d422b
Allow deleting chat messages
2023-09-14 16:29:40 -07:00
Max Brunsfeld
9d8c6a7ed1
Merge branch 'main' into chat-again
2023-09-14 14:50:45 -07:00
Max Brunsfeld
18c899a0a8
Remove dead code for old admin pages
2023-09-13 15:02:59 -07:00
Max Brunsfeld
1c50587cad
Remove channel chat participant when connection is lost
2023-09-11 17:37:05 -07:00
Max Brunsfeld
f2112b9aad
Rejoin channel chats upon reconnecting
2023-09-11 17:11:33 -07:00
Max Brunsfeld
ddda5a559b
Restore chat functionality with a very rough UI
2023-09-08 09:59:35 -07:00
Max Brunsfeld
da5a77badf
Start work on restoring server-side code for chat messages
2023-09-07 16:32:49 -07:00
Max Brunsfeld
3422eb65e8
Restore channel chat model and panel view
2023-09-07 11:38:27 -07:00
Max Brunsfeld
58f58a629b
Tolerate channel buffer operations being re-sent
2023-09-06 14:58:25 -07:00
Max Brunsfeld
b75e69d31b
Check that channel notes text converges in randomized test
2023-09-06 14:25:07 -07:00
Max Brunsfeld
e779adfe46
Add basic randomized integration test for channel notes
2023-09-06 14:09:36 -07:00
Max Brunsfeld
66c3879306
Extract randomized test infrastructure for use in other tests
2023-09-06 14:08:43 -07:00
Max Brunsfeld
ec5ff20b4c
Implement clearing stale channel buffer participants on server restart
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-09-05 11:34:24 -07:00
Max Brunsfeld
6827ddf97d
Start work on refreshing channel buffer collaborators on server restart
2023-09-01 17:51:00 -07:00
Max Brunsfeld
e6babce556
Broadcast new peer ids for rejoined channel collaborators
2023-09-01 17:23:55 -07:00
Max Brunsfeld
d370c72fbf
Start work on rejoining channel buffers
2023-09-01 16:52:12 -07:00
Max Brunsfeld
03f0365d4d
Remove local timestamps from CRDT operations
...
Use lamport timestamps for everything.
2023-08-31 16:23:06 -07:00
Kirill Bulatov
ab49f8c592
Rewrite inlay hint collab tests to remove races
2023-08-31 00:37:00 +03:00
Max Brunsfeld
46429426ef
Avoid accidental gpui transitive dependency in collab
...
* Make Fs depend on Text, not vise versa
Co-authored-by: Joseph <joseph@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-30 13:16:01 -07:00
Max Brunsfeld
791f6cf9e7
Update some tests to reflect code action debouncing
2023-08-28 17:45:32 -07:00
Mikayla Maki
8ddee0e58d
Server-sent feature flags ( #2894 )
...
This PR adds the wiring to both the server and the client for sending
and receiving individual feature flags, as well as a client side API for
convenient access to these feature flags.
Release Notes:
- N/A
2023-08-25 17:11:33 -07:00
Piotr Osiewicz
2495d6581e
Un serialize project search ( #2857 )
...
This is the first batch of improvements to current project search. There
are few things we can do better still, but I want to get this out in
next Preview.
Most of the slowness at this point seems to stem from updating UI too
often.
Release Notes:
- Improved project search by making it report results sooner.
---------
Co-authored-by: Julia Risley <julia@zed.dev>
2023-08-26 01:31:52 +02:00
Mikayla
6fdf101745
Update database and RPC to provide configured feature flags
2023-08-25 14:34:32 -07:00
Max Brunsfeld
404f76739c
Format let-else statements
2023-08-25 10:11:32 -07:00
Max Brunsfeld
c7c220309d
Avoid creating redundant snapshots of channel notes buffers
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 16:55:45 -07:00
Max Brunsfeld
358a20494c
Make channel notes read-only when disconnected
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 16:50:13 -07:00
Max Brunsfeld
1ae54ca620
Dedup channel views
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 14:29:04 -07:00
Max Brunsfeld
5888e7b214
Dedup channel buffers
2023-08-24 13:40:44 -07:00
Max Brunsfeld
24141c2f16
Ensure collaborators cursor colors are the same in channel buffers as in projects
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 11:31:41 -07:00
Max Brunsfeld
3268cce41a
Fix error in update_channel_buffer when there are no operations to store
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-24 11:26:22 -07:00
Max Brunsfeld
7e83138805
Start work on showing consistent replica ids for channel buffers
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-23 18:37:01 -07:00
Max Brunsfeld
11ef5e2740
Simplify buffer_operations schema
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-23 18:37:01 -07:00
Max Brunsfeld
1d08f44e70
Snapshot channel notes buffers when everyone leaves
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-23 18:37:01 -07:00
Mikayla
4eff8ad186
Add channel notes view
...
co-authored-by: Max <max@zed.dev>
2023-08-23 18:37:00 -07:00
Mikayla
5a0315c4d5
Achieve end to end channel buffer synchronization
...
co-authored-by: max <max@zed.dev>
2023-08-23 18:34:43 -07:00
Max Brunsfeld
95ea664725
WIP
2023-08-23 18:34:43 -07:00
Max Brunsfeld
71611ee7a2
Get join_buffer_for_channel compiling
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-23 18:34:43 -07:00
Mikayla
364ed1f840
WIP: pass synchronize channel buffers integration test
2023-08-23 18:34:43 -07:00
Mikayla
a7a4e2e369
Add buffer integration test
...
Rearrange channel crate structure
Get channel buffer from database
co-authored-by: Max <max@zed.dev>
2023-08-23 18:34:43 -07:00
Max Brunsfeld
ff5035ea37
Start work on storing channel buffers
2023-08-23 18:34:43 -07:00
Max Brunsfeld
29e43384f0
Simplify macro for running a test with both databases
2023-08-23 18:34:43 -07:00
Max Brunsfeld
b35aaf144b
Break up Database impl into multiple files, organized by topic
2023-08-18 17:03:34 -07:00
Max Brunsfeld
e964137d79
Reorganize source files of collab::db
...
* Move all sea_orm tables into a 'tables' module
* Move TestDb into its own file
* Move id types into their own module
2023-08-18 16:23:33 -07:00
Kirill Bulatov
269dad5a9c
Respect completion resolve server capabilities
...
Only query for additional edits if the server supports it
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-08-18 16:55:47 +03:00
Mikayla Maki
6d3518cb50
Collab panel touch ups ( #2855 )
...
This will also fix the bug that @JosephTLyons observed where accepting a
channel invite would not show sub channels.
Release Notes:
- Offline section is now collapsed by default
- Manage members now shows full list
- Dragging of docks now follows the mouse exactly, and double clicks
reset size. (https://github.com/zed-industries/community/issues/1816 )
2023-08-17 01:09:01 -07:00
Mikayla
75679291a9
Add fix for lost channel update bug
2023-08-17 00:56:21 -07:00
Mikayla
5bc481112e
Add test for lost channel update
2023-08-16 20:05:21 -07:00
Mikayla
3074455386
WIP
2023-08-16 16:56:00 -07:00
Kirill Bulatov
f9131f657e
Use InlayHint instead of Inlay where appropriate
2023-08-16 23:38:11 +03:00
Max Brunsfeld
1ffde7bddc
Implement calling contacts into your current channel
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-15 14:56:54 -07:00
Max Brunsfeld
ddf3642d47
Avoid flicker when moving between channels
2023-08-15 13:18:56 -07:00
Mikayla
111e17b220
Merge branch 'main' into collab-panel
2023-08-15 03:25:45 -07:00
Max Brunsfeld
cbf497bc12
Fix race condition when UpdateChannel message is received while fetching participants for previous update
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 17:36:35 -07:00
Max Brunsfeld
d7f21a9155
Ensure channels are sorted alphabetically
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-14 16:27:35 -07:00
Kirill Bulatov
5d2750e0d4
Hide inlay cache fields
2023-08-14 11:25:02 +03:00
Max Brunsfeld
b3447ada27
Dial in the channel creating/renaming UI
...
* Ensure channel list is in a consistent state with no flicker while the
channel creation / rename request is outstanding.
* Maintain selection properly when renaming and creating channels.
* Style the channel name editor more consistently with the non-editable
channel names.
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-09 17:11:57 -07:00
Max Brunsfeld
ac1b2b18aa
Send user ids of channels of which they are admins on connecting
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-09 14:40:47 -07:00
Max Brunsfeld
60e25d780a
Send channel permissions to clients when they fetch their channels
2023-08-09 13:56:03 -07:00
Mikayla
a3623ec2b8
Add renames
...
co-authored-by: max <max@zed.dev>
2023-08-09 12:20:48 -07:00
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
d2127825e3
Add first-pass sound support to Zed
2023-07-03 13:30:04 -07:00